Apr 6, 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 comment:

  1. Christian HerlambangApril 12, 2009 1:05 PM

    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

    ReplyDelete