Programmer General Competency List

After getting some boosts from a small talk with a friend, I decided to make a general list of fields in computer science and software engineering. I got this list from this blog, so there will be a chance this list gonna be developed in the future.

In the previous post I wrote I would create a tree. But somehow visualizing tree is difficult, so I will just make it a list. Then detailing it later for each item in the list. Here we go.

  • data structures
  • algorithms
  • system programming
  • source code version control
  • build automation
  • automated testing
  • problem decomposition
  • systems decomposition
  • communication
  • code organization within a file
  • code organization across files
  • source tree organization
  • code readability
  • defensive coding
  • error handling
  • IDE
  • API
  • frameworks
  • requirements
  • scripting
  • database
  • languages with professional experience
  • platforms with professional experience
  • domain knowledge
  • tool knowledge
  • languages exposed to
  • codebase knowledge
  • knowledge of upcoming techs
  • platform internals
  • books
  • blogs

I know this list is very overwhelming, but I do really think I should have tracked my skills and the levels just to make it easier and fun and encouraging to learn. So many things to learn, but isn’t it fascinating?!

Leave a comment