Read good books
- The Pragmatic Programmer: From Journeyman to Master (Paperback)
Design Patterns
- Wikipedia on THE book - examples in smalltalk and C++
- Java Design Patterns - Free ebook (PDF) from 1998
Listen to good podcasts
Review of Software Engineering Radio (se-radio.net) Podcasts for new developersThe ratings are highly subjective and indicate my personl recommendation of relevance for junior developers as well as sound quality etc.
- #81: 4 stars - Nice motivating episode with Erich Gamma (Patterns, JUnit)
Interview Erich Gamma - #82: 4 stars - Organisation of large codebases into modules, packages, classes etc is a very important aspect of SE to keep complexity mangeable. Evolution of APIs!
Organization of Large Code Bases with Juergen Hoeller - #83: 4 stars - Requirement-driven SE with a very nice British accent
Jeff DeLuca on Feature Driven Development - #94: 3 stars - Introduction to business models with open source. Explains different motivations for organisations to do open-source and different ways to make money
Open Source Business Models with Dirk Riehle - #98: 4 stars - Every developer should know REST - nice introduction
Stefan Tilkov on REST - #104: 2,5 stars - Good intro what a plugin really is.
Plugin Architectures - #109: 4,5 stars - Enlighting episode how to deal with a very complex, scalable, evolving IT system
eBay's Architecture Principles with Randy Shoup - #110: 4,5 stars - Basic knowledge about different roles in SE!
Roles in Software Engineering I - #112: 4,5 stars - Second episode
Roles in Software Engineering II - #114: 4,5 stars - Requirements engineering is hard, the episode is well-structured
Christof Ebert on Requirements Engineering - #117: 4 stars - Good intro from behind the scenes what UML is and isn't
Bran Selic on UML - #118: 4,5 stars - Solid demystification of a basic technology
Eelco Visser on Parsers - #119: 4 stats - Inspiring introduction to an emerging technology
DSLs in Practice with JP Tolvanen - #123: 3,5 stars - Good overview to model-driven anything
Microsoft OSLO with Don Box and Doug Purdy - Unreviewed episodes: #0 - #67, #69 - #71, #73 - #79, #85 - #86, #89, #91 - #92, #95, #125, #127 and newer.
- Episodes not mentioned have less than 2,5 stars.
- 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.
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.
ReplyDeleteFor 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