• Post Reply Bookmark Topic Watch Topic
  • New Topic

How to keep developing java skills after having read HeadFirstJava?  RSS feed

 
Bart Boersma
Ranch Hand
Posts: 52
1
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey guys,

The title is quite self explanatory. I just finished reading HeadFirstJava. Currently, I am developing my own small simple games such as snake, space invaders and heli attack 2. How would you guys advice me to continue developing my java skills.

1) Are there any books that are a good follow-up to HeadFirstJava?
2) Tutorials are nice, but they are a lot of watching and not a lot of doing. Are there any other methods to develop Java skills?

Regards,
 
Jesper de Jong
Java Cowboy
Sheriff
Posts: 16057
88
Android IntelliJ IDE Java Scala Spring
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You are already on the right track by creating and working on your own little projects. In my opinion, programming is something that you learn for a large part by doing, not just by reading theory.

One very good book to learn about best practices and pitfalls is Effective Java.
 
Bart Boersma
Ranch Hand
Posts: 52
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah that is in my line of thought, good that it is confirmed by more experienced java users.

I will defintely pick up the book you suggest sooner or later.

Thanks
 
okom ijin
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When studying programming one learns (1) to explain what he wants to JVM (2) to write code that other programmers can read.

HeadFirstJava helps with first part. Derek Banas tutorials for transition. Clean Code by Martin helps with the second part.

HeadFirstJava is the best Java book that I know of, but it is not good enough. After reading, whenever I needed a Dictionary I would go for While it does work, there are two problems:
(1) One should use an abstract List, rather than a concrete implementation whenever possible.
(2) Dictionaries should be implemented using , not a pair of
This isn't a question of preference. Bad style makes it prohibitively difficult to support a project. One should learn to write readable code in order to improve coding skills.

I am not a big fan of other Martin's books (to me, those are boring to read and not concise enough), but Clean Code is awesome. It explains that code is written once and read many times. Write-only implementation of a new feature is a disaster for a project. Someday someone would have to change the behavior of this feature and that would be a pain. There are techniques to make code more readable.
----
On a side note, does this forum support post editing/deletion?
 
okom ijin
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bart Boersma wrote:
2) Tutorials are nice, but they are a lot of watching and not a lot of doing. Are there any other methods to develop Java skills?
Regards,


Once again, check out Derek Banas.

Typical tutorial of other guys: " So... Hmm.. I will teach you today to use Java Swing. Well (5 sec pause) it is a way to display GUI and windows in Java" ... 10 minutes later you finally see a single line `JFrame window=new JFrame();` inside of main method.
Viewer has a dilema - fastforward and miss an important point or Mait for 10 more minutes to get an extra line of code.

Derek tutorial : "In this 15 minute video tutorial we will cover all fundamentals of a language" ... 4 minutes later there are two pages of code that Derek commented as he typed. It now can display several elements.
https://www.youtube.com/watch?v=3XB3in9Xqy8
 
Junilu Lacar
Sheriff
Posts: 11477
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Practice only makes habit; only perfect practice makes perfect. The code you write when you're focused on learning the mechanics of a language and following tutorials is probably not going to the best code in terms of quality, maintainability, expressiveness, flexibility of design, testability, etc.  My advice would be to start learning the aspects of programming related to craftsmanship.  If you go back to the Java code you've written and see mostly static methods, then read up on object-oriented design principles. Learn how to test your code. Learn how to refactor.  Many programmers like to chase that next technology that they can put on their resume but the ones who really stand out from the crowd are the ones who can demonstrate the skills it takes to write good quality code.

A few books you can start with, besides the ones that have already been mentioned:

1. Clean Code by Robert Martin
2. Understanding the Four Rules of Simple Design by Corey Haines
3. Refactoring by Martin Fowler

These books will reference other good books from which you can learn much more about programming and it's just an endless chain after that.
 
Campbell Ritchie
Marshal
Posts: 56525
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Also post as much as you can on websites like this one.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!