4.06.2009

How to become a good developer

Some of the students I work with asked me: How do I become a good (Java) developer? Instead of an answer, here is a reading list, that will hopefully help.

Read good books

Design Patterns

Listen to good podcasts

Review of Software Engineering Radio (se-radio.net) Podcasts for new developers
The ratings are highly subjective and indicate my personl recommendation of relevance for junior developers as well as sound quality etc.

Suggested order:

  • Start with Roles in SE (#110 and #112), then learn who defines what will be built: Requirements: (#83).
  • Next learn about quality via patterns and testing (#81), learn how to deal with API changes (#82). Round up your knowledge with two nice episodes on loose coupling basics (#98) and applied (#109).
  • Then listen to individual technologies like parsers, UML, DSLs and modeling.
Ok, enjoy listening and give me and other readers some feedback - e.g. if you more introductionary material to become a good developer.

1 comments:

Christian Herlambang said...

In additions to read good books[1] and listen to pod cast, I would recommend to read software development related blogs[2]. However, reading and listening are no substitute for writing code. Therefore, getting involved in open source project is a good way for practice.

For Design Patterns book I would recommend Head First Design Patterns[3]. It's more fun to read than Gang of Four (GOF).

Be patient, it takes 10.000 man hours[4] to be good at something. :)

BTW: Max, how could you not mention "Code Complete"[5] in your reading list? I saw one in your office :p

[1] "What is the single most influential book every programmer should read?,"
http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

[2] "What are the best programming and development related Blogs?,"
http://stackoverflow.com/questions/78955/what-are-the-best-programming-and-development-related-blogs

[3] E. Freeman, "Head first design patterns," Available at:
http://www.ubka.uni-karlsruhe.de/hylib-bin/suche.cgi?opacdb=UBKA_OPAC&nd=11497968&session=1669824457

[4] P. Norvig, "Teach Yourself Programming in Ten Years," http://norvig.com/21-days.html.

[5] S. McConnell, "Code Complete: A Practical Handbook of Software Construction," http://www.cc2e.com/. Available at: http://www.ubka.uni-karlsruhe.de/hylib-bin/suche.cgi?opacdb=UBKA_OPAC&nd=11303179&session=1628476662