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?!