This is my first of what will hopefully be many posts on here as I progress to becoming a Java developer.
I have taken a few programming classes in college to this point, learning the basics of object-oriented programming, and having also learned the core/basics of the C++ and Java languages. I plan on completing a Bachelors of Computer Science degree, though at the moment I am working full time and only attending school part time. And programming seems to be one field where I could teach myself enough to land a job even prior to completing my degree. That is my goal - to learn enough on my own, outside of school, to where I could land my first programming job. I still plan on completing the Bachelors degree as well, but it will take me a good bit longer considering I am only going part-time.
I have learned the basics of Java - but want to learn enough to actually start building some of my own applications, both for computers as well as mobile devices. I feel that if I could build my own applications that I will have learned enough to qualify for a Java developer position, at least an entry-level one. Also, my applications will be resume material themselves.
I also am considering becoming certified in Java, to further supplement my resume.
So, having learned the basics, but with still more to learn, what would you guys recommend for next steps? Are there certain books, video series, or websites which you would recommend to take me from basic Java to the level of understanding I would need to qualify for a job?
Thanks in advance for any help. I'm looking forward to getting started on this journey.
And programming seems to be one field where I could teach myself enough to land a job even prior to completing my degree.
i am sorry to tell you that is a dream. i thought the same for a little while. the truth is if you do not have a masters you probably won't get a job no matter how good you are. just my opinion based on experience.
Although I've used Google's App Engine to create a simple CRUD-style application with Java, I've never done Android development (Does one old Windows CE app count as "mobile experience"? ;-)
...want to learn enough to actually start building some of my own applications, both for computers as well as mobile devices
If you've taken a programming class or two, along with all the resources online and help from forums like this one, pick one *small* thing to start with and work on it step by step. Experience is key. You mention mobile, so maybe start with the tutorials here: http://developer.android.com/training/basics/firstapp/index.html ?
One of many things you can take away from a small project is to get some idea if you really want to do something like that as your "day job" - and also if you want to continue to invest in the education.
Besides this site of course, I've found these Java resources useful (listed in order from beginner to advanced):
- http://codingbat.com/java - Really short, single concept exercises (e.g., use an array, parse a string, etc.)
- http://docs.oracle.com/javase/tutorial/ - The official Java Tutorials.
- book: Effective Java (2nd Ed.) by Joshua Bloch - a level (or two) beyond just "how to" - gives many code design choices.
As for your plan to land a programming job before you have a CS degree, I would not put all your hopes in that one basket, but it might be possible.
I know the job market very tough now, but back when I was first trying to get a programming job (1998-99) the first question recruiters asked was "What is your job experience?", followed by, "Oh, you have no experience? Come back and see us even after just six months experience." They didn't care that I had a bachelor's degree or what my major was. They'd skip right to the work experience (or lack of). If you find that's still true in today's job market, you might try getting a job at small business (that doesn't create software as its main purpose) or something like a school or small non-profit where, although you'd have to assist with other IT support duties, you could still get some programming experience by maintaining and enhancing an application they use (hopefully Java-based).
I've found that at a few small shops where a non-programmer has picked up enough, say MS Access, to be dangerous and created a popular application, but it now needs to be re-written or at least have a few things optimized by a "real programmer", because performance is terrible.
Or maybe pick an open source project that seems interesting, use it and when you find a bug, submit a fix / patch for it.
Some sites with learning / programming job advice:
- http://norvig.com/21-days.html - See 1/4 of the way down the page under: "So You Want to be a Programmer" (note degree is optional).
- http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html - Note how some interviewee's with Master's degrees can't solve the simple programming questions - experience is key.
That used to be called JavaBat. Its examples look very simple, but they usually have a sting in their tail.
George Rypysc wrote: . . . codingbat.com . ..
Thank you for useful advice and welcome to the Ranch
Since this discussion seems to be about finding jobs, I shall duplicate it in the jobs forum.
Perhaps you can try exploring opportunities in Malaysia. Malaysia IT market is booming as Singapore market is saturating now days. Malaysia has limited availability of talent pool, hence their dependency of expatriate workers are more. If you have Bachelors degree with 2 years of programming experience, then Malaysia is the right place to work for. As far as certification is concerned you can do it parallely whenever you get time as it is just an added advantage. Your prime experience programming matters !!
Mike: I disagree with Randall about the need for a Masters degree. I do have one, but I didn't prior to my first job. And that's not something I look for in entry level candidates either. The good thing about being a student is that you can go to your career services office at school and see what internship opportunities or part time jobs are listed. These positions don't expect experience so you can get out of the "no experience" trap. The problem is that you work full time and probably don't have time for that approach.
One thought I had was that if I learned enough to actually build an application or two, possibly even a mobile app as well, that my work would stand for itself on a resume, and show that I clearly was well-versed in Java.
I also figured the certification would tell employers I knew what I was doing in Java.
What do you guys think about these items on a resume?
The past few years I always felt I was a good programmer because my knowledge of Java was rock solid, even some of the more obscure areas. Recently however, I actually found that my skills in the area of project development were extremely limited. I encountered many people who were much better at building software than I was, even though I could school them in the Java language.
Lately I've focused my efforts on a few topics that don't necessarily relate to Java, but that I feel will make me a great programmer if I master them. Lately I've been studying Scrum (an Agile development method), Test driven development, Git (version control), and Maven (much more than a build tool). Git and Maven have been an absolute joy to work with, even though Maven was difficult to get into at first. I feel just knowing the basics of these methods already make me a much more well-rounded programmer.
Take yourself out of your comfort zone, and check out some technologies that you always heard about, but thought you'd learn "some day".