Hello, this is my first post on this site, but I have been lurking for a while reading through other peoples posts. I'll start by explaining a little bit about myself. I'm doing a Computing and IT degree in my spare time during the evenings after work. One of the modules I chose was Java. My Java module started in October last year and this was my first experience of coding. It started quite simply with "What is an Object?", but I still found myself constantly referring to the glossary to remind myself of the meaning of terms like Integer, and Encapsulation. I really enjoyed the module, and when it finished in June I wanted to continue learning Java. The OU module used BlueJ, so the first thing I did was download Eclipse and try and replicate some of the code I had already written. If anyone reading this has ever used BlueJ, you may remember that it doesn't require a main(String args) method, so this was my first hurdle with Eclipse as somehow I had learnt basic Java without learning the first step.
In August this year I purchased both the OCA and OCP study guides by Jeanne Boyarsky and Scott Selikoff, and in the first week of October I passed the OCA exam. This community really helped with that, especially when I read about the Enthuware mock exams that so many other people recommended. Those mock tests really helped me prepare, and a bargain at less than £10. Also the coding bat website was a great suggestion, and I have enjoyed working through the problems when I have some spare time.
I am beginning to see now just how big the Java language is, and I am hoping someone reading this may be able to point me towards a good resource to continue learning, as most of the books I see are titled "Beginning Java" or "Learn Java in 24 hours", and I want a good book/resource that goes beyond the basics. I think it may be too early to start reading the OCP study guide, but i'm hoping to give that exam a go this time next year.
In summary, I have covered the areas in the OCA exam, as well as Sets, Maps, some I/O (I've used BufferedFileReader/Writer), and I'm currently playing around with JFrame/Pane, Swing, Action Listener (although I cant get this to work yet). I've made a few simple programs to cement what I have learnt, i'm really proud of them, but you would all probably laugh at them.
Thank you for reading, any suggestions would be appreciated.
Welcome to CodeRanch Robert. I enjoyed that read, have a cow!
I can recommend trying to create a desktop application in Java, maybe some sort of game, and then try to extend it with some online capabilities. I definitely learned a lot from that when I first started out. Alternatively, you can try to create something that will make your daily life easier.
As far as books go, I'm a really big fan of Joshua Bloch's Effective Java, and Java Puzzlers. They are incredibly informative, and fun to read too.
Maybe now I can bring myself to answer — after reading the word BlueJ. I remember it well. It is now over eleven years since I last used it, and the scars are healing quite nicely. But I am pleased to hear your training started with, “What is an object?” You will find Eclipse has a bit of a learning curve, but once you beat it into submission it will serve you well.
I would suggest you stick around in this forum and show people your code, as well as commenting about others' code. You will come across some skilled and experienced people who are only too pleased to help — and me Reading and writing code is one of the best ways to learn. Particularly if you have it reviewed by people who know what they are doing. You will rapidly gain confidence by helping others too.
Please search this forum and this one; you will find lots of people ask, “what next?” and their answers will probably help you, too.
If you are comfortable with the basics, then go back and learn the principles behind writing good programs. These are the books that I would recommend as references:
1. Understanding the Four Simple Rules of Design by Corey Haines
2. Clean Code by Robert Martin
3. Agile Software Development: Principles, Patterns, and Practices by Robert Martin
4. The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
These books will reference books like Refactoring: Improving the Design of Existing Code by Martin Fowler and many others that you will want to read as well. It's an almost never ending chain of references from there on.
The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck
Hello Robert. I'm wondering, do you already work in IT in some capacity? I have been working in IT for about 12 years and have about 5-6 years Java programming experience over that time (amongst other languages and tech). However, like you I am fairly new to this site... you are right that Java is a huge language, but doing the certification track as you have been doing certainly is an excellent way to get deeper (I can tell you that even as an experienced developer it opened my mind to a few things).
That being said, there really is no substitute for just plain coding. I think maybe the best advice anyone can give is just code, code, code! I realise this can be easier said than done if (like me) you're not terribly good at dreaming up requirements. I personally would have struggled to do what you have done had I not already been required to learn programming on the job, so I think you've already shown that you have quite a good deal of the right kind of mental attitude and potential! Just think of something that you want to automate or facilitate with software and get to it! Try to start small and realistic, but make it something that you are really motivated to build, maybe for personal reasons or to meet a need someone has. If you get stuck, post a question on here, there are many people willing to answer. Have fun!
p.s congrats on passing the OCA. It's not any easy exam, even for experienced programmers, so you've done well. Enjoy coding!
posted 4 years ago
Thank you for all of your replies, I will look into getting some of the books you have suggested and I will definitely stick around on these forums.
Theo, no I do not work in IT. I'm looking to leave the military in about 18 months time, so the aim is to learn what I can and build a portfolio of projects I can show to a potential employer and hopefully land an entry level Java job. Id love to be in the position to learn this on the job, but until then I'm just making do with a few hours here and there.
If I were you, I'd begin looking at the job listings and let that be your guide. Most of the jobs I see want HTML5 knowledge, so I'm going to be learning that once I've passed my OCP. I see jobs asking people to know Maven, Hibernate or Swing.
Look for the type of jobs you want and spend the next 18 months becoming the person who's perfect for it.
And congrats on passing the OCA! I passed mine at the start of September, so I feel your pride and triumph.