Only Software matters

Experiences in software development

  • Enter your email address to follow this blog and receive notifications of new posts by email.

    Join 637 other subscribers
  • MVB

  • JavaCodeGeeks

    Java Code Geeks

  • My recent tweets

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)

10 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 …  […]

  7. For most recent news you have to pay a quick visit the web and on web I found this web page as a most excellent site for hottest updates.|

Leave a reply to Patroklos Papapetrou Cancel reply