This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am interested in pursuing a career in Java programming and am wondering what it realistically takes to be hired for an entry-level position. I have no work experience in java. My understanding of the language I believe is about equivalent to that of someone who finished their first college level Java course. I have the means to go back to school and obtain a second degree (in computer science), which would take me 2 years since my elective credits carry over, however I feel this option is still very time consuming, expensive, and since there are many different subjects in computer science besides just "Java" it might be missing the point anyway.
So the basic question is, how long would it take me to become employable for an entry-level position assuming I devote myself full time to learning, certification, and completing small projects to showcase abilities?
First, you are looking for a job in Java programming and a career in programming/development/technology. Java programming is too specific for a career.
College (or any form of learning) covers more than just Java. Some is relevant like how computers work, database design, complexity measurements. Since you already have a degree in something, you might take a certificate program in computer programming. Which would just be the most relevant classes.
Another consideration besides learning speed/depth is employability. Some type of experience - an internship, a volunteer thing, etc is absolutely critical. Especially without a degree. But even with. Now that most people have some experience in college, that's who you are competing with. This also varies by region.
As for the benefit of a second degree, another factor is what you first degree was in. If it was something relevant like business, engineering, math, etc, a second degree has less value. If it was something like art history, it's probably of less value. (This is not an insult to anyone with a degree in art history; it's the most distant type of degree that comes to mind. I fully believe someone who studied art history can be a good programmer with the right study. However on the resume, this shines less brightly.)
Unfortunately my degree is in philosophy which might sound pretty far off, but it includes math and logic courses and involves thinking in a manner much like a computer scientist. I'm mainly curious as to what a realistic timetable would look like. For example, after six months of full time study I would hope to achieve basic certifications and then I could look for internships or volunteer projects. After a year I think I would have enough to put my resume out there while continuing to build it. I think I could be hired between one and two years for an entry-level position. Is this completely unrealistic for someone who can devote 40 or more hours a week to it?
College would certainly be great since you don't have a formal background in CS.
But if you want/need to be employed immediately a training course, self study and practice projects can certainly get you an entry level job, in lot less time and money, not an issue.
you learn more on job than in school /college .. always.
a lot depends on the market too, do you have IT jobs in your area... you'll get it far easily.
One of the great things about programming is that it is a very interactive process even in isolation and because of this, it does have a natural way of being able to be taught in isolation.
I think it is easy to learn yourself and self taught programmers generally program better and understand what they are doing more than those who learned to program through classwork.
Of course, anything can be self-learned in principal, provided you have the proper resources, but it's a matter of how difficult or easier it is compared to a classroom setting. I just think that having someone to help around and give you comments about how you're doing or having people to work with helps more in a class.
writing a CV