Skip to content


Invest in yourself

As I grow in my professional life, I’m see that it’s very important to be well informed. When you are doing a project, it’s hard to keep up with the rest of the technologies that aren’t in the project. I made a deal with myself months ago, to keep investing in myself. You only live once, right?
Since I’m fairly new as a professional developer, I found the best way to improve myself is to keep broadening my knowledge.

Depth first or breadth first?

Should I learn as many topics as I can, learning as many different technologies? Or should I pick a few, learning everything there is about them? I believe I should do both because the following reason. To go into depth on a technology, learning everything their is about it, you need to have on hand experience with the technology. I’ve found, the best time to learn a technology is to learn it as you are working with it on a project. It enables you to work faster in the project, deliver better quality since you understand the technology better.

Breath first studying is more suited for general knowledge, best practices, project management and so on. I’ve found that reading blogs really helps to keep up with the fast it-world.

Find the resources

I get my general information from RSS feeds. There are some good aggregators out there, like dzone. I use Java weblogs , SDN, JavaLobby, OnJava .

Further, there are some very interesting people out there. Joel , Karl Baum, Raible Design, James Gosling, Peter Veentjer are my personal favourites.

Other resources are books. Some books are absolutely a goldmine. Since I started working as a pro, I’ve read following books:

  • Effective Java by Josh Bloch. I definitely LOVED this book. This one really teaches a lot about good solid programming. Probably the best book if you want to learn to code like a pro.
  • Head First Design Patterns. Another great book. I knew at first some of the GoF patterns, but after reading the book it gave me a great insight into some of the nicer coding styles. It is a good addition to the Effective Java, since this book does cover best practices on a larger scale.
  • Expert Spring MVC and Webflow. As preparation for my first project, which was in Spring and WebFlow, this book provided a lot of information. The Spring MVC part (which is the largest part by far), is really good. It doesn’t cover everything, but provides a very solid basis for this technology. The webflow part is very outdated. I could not find 1 code example that actually works as is. The code is based on release candidates and the code base changed a lot during that time. It’s frustrating and hard, I don’t recommend learning webflow from it.
  • Java Persistence with Hibernate. I love Hibernate, and this is the definite guide to it. (There is Hibernate in Action, which was the predecessor). Now this book is not easy, but it starts from the base. After reading this book, you know everything there is about hibernate.

I’ve read some more books, but these were my favourites.

Then thirdly I use forums to expand my expertise. Currently I’m fairly active on the Spring forums. Helping others truly does help yourself. It makes you think about certain problems, and to be honest it’s hard to provide adequate answers. Also you are involved in problems you don’t experienced in real life. The next time you would have that particular problem, the answer you’ve read will help you straight away.

Lastly, I’d like to point out that I’m using this blog as an investment in myself. Learning to formulate my thought into a solid text is very hard for me. I spend time trying, and by trying I’m learning. It easy to know something but hard to express it into an understandable way to other. I believe this blog will eventually help me communicate (by letter mostly) to other people.

As always, I’d love to answer to any comments you might have. Thanks for reading and see you the next time!

Posted in general.


13 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Paul says

    Great article.

    There are two requirements to improving, the desire to so, and the motivation to do so.

    I highly recommend helping people in forums as a way to solidify your knowledge in a given area. I’ve often found myself working for a few hours on some interesitng problems.

    Some other books to take a look at
    Bitter Java, if you think of Effective Java as “Do’s”, this is the “Do Not” book
    Refactoring, a great read whether refactoring some inheirited code or writing tomorrow’s legacy code
    The Pragmatic Programmer, just chock full of goodness

  2. Doyle says

    You could read all that stuff but as new developer you need to write lots of code all the time. Heck even as a seasoned developer you should be doing that.

  3. Depth Breadth says

    Don’t you mean “depth” and “breadth”?

  4. Jim Bethancourt says

    Another great way to learn is to go to your local JUG meetings if at all possible. You’ll learn about topics you may not have thought to look at twice but may end up serving you well on the job, and you’ll meet lots of really great people along the way.

    Cheers,
    Jim Bethancourt
    Houston JUG President

  5. Andries Inzé says

    Paul, I am currently reading ‘Refactoring’, indeed a great book.

    And indeed dept and breath are totally wrong.

    I find JUG event’s not accessible. BEJUG (Belgian JUG, and I’m Belgian) asks € 100 + VAT on a yearly basis. I find this to be too much for the couple meetings they offer.

  6. onur says

    I don’t understand why you offered java only books. Java is so 90′s and should only be used for legacy stuff

  7. Andries Inzé says

    I’ve read more then half of Beginning Ruby: From Novice to Professional, as a breadth first education. However, since the most part of new projects are still in Java (and .Net), I believe strongly that the best investment for me is Java.

    My point was not that you should read Java books, but that good books offer information (and education) that you can’t find easily online. Each of us should decide for themself what are the best topics to study.

  8. Tahir Akram says

    If we are working in any project, we will face real time problems and hence to we learn a lot in order to give the solutions. We go best in depth of the technology or the framework we are using. Means working in real time project gives us better chances to explore things in more depth.

    But still there are many things, that one can love to learn, offcourse these things are not in his job, so one will go to some books and tutorials to learn it out. Do this type of learning can be compared to learning in projects?

    Because while reading book you just test some tutorials, and when you see things getting work, you feel happy to say that you have done it. But you didn’t implement this in real time scenario.

    So I want to ask, if I also want to invest in myself. how can I justify my off-project learning (means extra learning) better, to boost for my next job. Because employer needs the person best in ability and sharp in technology…

    so what you guys think …


    regards
    Tahir Akram

  9. taffit says

    >> Java is so 90’s and should only be used for legacy stuff
    Made my day… And professionally argumented, too… Time to wake up man…
    There are always pros and cons for every programming language, but this is absolutely wrong.

    Good article though. The problem with depth vs. breadth is well analyzed: as an IT worker you must have a broad knowledge of many technologies (and it helps you if you switch projects / technologies), at the other side you have to be specialized enough to complete a certain project. And the more you are specialized – guess what – the better solutions you produce.

    My personal advice is to keep on learning your whole life, specialize yourself on one technology but every now and then gain a little deeper insight at other methods / technologies / whatever.

    Just my 2 cents…

  10. funjava says

    I remember that about 2 years ago, I wanted to learned Struts just for the goal of learning a new Web framework. I picked up the book “Jakarta Struts Live” and read it. Until now I have never used Struts in a read project. And I have forgotten all things about Struts. But what I have really learned from the book is TDD (Test Driven Development).
    And then 1 year ago, I worked with Hibernate in a project for 6 months. I have read “Hibernate” in action. Now I have forgotten many of details about Hibernate. But in my mind, the problem of mapping between 2 worlds: object and relational is now much more clearer and my skill of database modeling have improved too.
    Good books do teach you about the techno you are working with, but you can forget about it 6 months later. The basic knowledge and method that you can learn from books, in the other hand last for your all professional life and take you to a higher level in the way you work.

  11. Thorbjørn says

    My best advice to you is to USE the things you read about. Solve a problem – yours or any others – with the technologies, and you will learn lots more than just by reading about it.

    Programming is a craft – you need to practice all the time.

Continuing the Discussion

  1. Top Posts « WordPress.com linked to this post on July 20, 2007

    [...] Invest in yourself As I grow in my professional life, I’m see that it’s very important to be well informed. When you are doing […] [...]

  2. Invest in yourself « Je pense en Java, Java is fun linked to this post on July 20, 2007

    [...] under Software Development , Programming , Uncategorized  Yes, the most effective way is Invest in yourself [...]



Some HTML is OK

or, reply to this post via trackback.

 



Improve Your Life, Go The myEASY Way™