In the last days I held presentations at several universities to students in informatics and programming. We talked about what they can do during their student years to build up as much skills as possible before graduating.

Here are some of the resources I talked about:

Practice

Challenge

Books

I consider that reading books is one of the most important things a programmer can do to boost it’s knowledge. During the last 25 years I’ve read hundreds of books, most of which were not worth the effort. the books below are the ones which stood the test of time.

I list them in the order I would read them if I would start over my carreer.

The first books I recommend to programmers lay the foundation of writing code and developing applications:

If someone is so inclined the following two books get into details of various programming techniques:

The next three books build upon the fundamentals and deal with the more nuanced (and more important) aspects of writing code:

As one accumulates experience, one can start looking at the bigger picture: habits, techniques, patterns, processes, design, architecture:

All programmers should know and understand project management fundamentals in software projects. The following two books cover most of the problems one encounters:

The last bunch of books are on varied topics, all helping one in advancing one’s carreer:

Videos