Only Software matters

Experiences in software development

20 +2 Subjects Every Software Engineer Should Know … and the books you need

Posted by Patroklos Papapetrou on July 19, 2012


I recently read an extremely interesting and useful article about the 20 subjects that every software engineer should know or learn….
What is really cool is that it’s not restricted to products, languages but it describes generally accpepted technologies, methodologies and practices.
It applies both to  junior and exeperienced software engineers. The former have a guideline about the fields that need to focus whereas the latter have the chance to re-evaluate their knowledge.
What’s missing, IMHO, is to give the reader a clue about which are the best book(s) related to these subjects so in this post I give my advices on that. Of course the list of books is not complete and it’s just my opinion based on my experience.

Hope you find it useful as well!

1. Object oriented analysis & design

2. Software quality factors

3. Data structures & algorithms: Basic data structures like array, list, stack, tree, map, set etc. and useful algorithms are vital for software development. Their logical structure should be known.
6. Software processes and metrics
8. Operating systems basics
10. Network basics
13. Dependency management
15. ORM (Object relational mapping)
18. Internationalization (i18n)

9 Responses to “20 +2 Subjects Every Software Engineer Should Know … and the books you need”

  1. [...] I recently read an extremely interesting and useful article about the 20 subjects that every software engineer should know or learn…. What is really cool is that it’s not restricted to …  [...]

  2. [...] A story about Acceptance Criteria and a medical procedure to help your #Agile team || @scoopit bit.ly/NHMnRO #agiledev 2 hours ago Follow @ppapapetrou76 « 20 +2 Subjects Every Software Engineer Should Know … and the books you need [...]

  3. Kevin Wright said

    So I guess functional programming shouldn’t be considered a suitable topic for a “software engineer” then?

    • That’s a nice thought. I don’t have the answer actually :) My question is which is more importand OO or functional programming? Which is hardest to learn first? Does OO programming let you easily learn functional programming? Is functional programming so much “famous” ?

      • Kevin Wright said

        Functional is definitely easier first, and this classic needs to be on any list of “essential” books for programmers: http://mitpress.mit.edu/sicp/full-text/book/book.html

        It comes as quite a culture shock when you finally come to realise that many design patterns and practices that evolved since Pascal/C++ are just workarounds for not having functions as a first-class concepts in a programming language.

  4. I would add one that only a few know about:

    “LISP: A Gentle Introduction to Symbolic Computation”. It explains one of the best languages in the world, and it also explains some very basic concepts in programming in a very smart way (including recursion, which, according to my experience, is one of the most complicated concepts to explain to wannabe programmers).

  5. [...] I recently read an extremely interesting and useful article about the 20 subjects that every software engineer should know or learn…. What is really cool is that it’s not restricted to …  [...]

  6. [...] I recently read an extremely interesting and useful article about the 20 subjects that every software engineer should know or learn…. What is really cool is that it’s not restricted to …  [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 629 other followers

%d bloggers like this: