Software engineering is a hard skill. It is technical and requires the study and practice of many subjects. It can be overwhelming at times to think of everything you must learn. I talked with a coworker about this today. He expressed that not only was there a lack of depth to his existing knowledge, but he also did not know what he needed to learn to master the craft of software engineering. It is one thing to know that you lack the depth of knowledge; it is another thing to identify all the parts of a system you need to know to be proficient. (For those interested in a further read, The Five Orders of Ignorance discusses ignorance uniquely.)
I look at trending repos page in GitHub regularly. One day I came across the Developer Roadmap repo. (You can also view the roadmaps at roadmap.sh.) I starred it and soon forgot all about it. The discussion I had with my coworker today reminded me about the project. I sent him a link and he loved the holistic approach of the roadmap. From it you can quickly identify all the major subjects you should be familiar with to master the technical aspects of software engineering. From today’s discussion with my coworker, I have decided to continue this blog with a little more direction: I intend to write a blog post for all the major aspects related to backend developer roadmap.
I work at Divvy – a fintech company that uses Elixir, Phoenix, Graphql (Absinthe), and React. The blog is focused on Elixir web development. As such, I will cover these topics with an Elixir + Erlang/BEAM/OTP twist. As I review the roadmap, there is a lot that I know decently well – there is also a lot I have not put into practice in production environments. By writing articles for these subjects, I hope to 1) solidify my understanding of them, 2) help my fellow software engineers in their career progression, and 3) help others discover unknown topics needed to master this craft.
I do not know yet what this project will look like. For many of the topics, the post may be links and references to other materials for further learning. I hope to include walkthroughs and exercises for the meatier subjects that others can follow so they can learn with hands-on practice. I am fine if the posts do not end up having a wide readership – I am motivated to see this project through for my benefit. I want to be sure of my skills in these topics. Explaining a subject in a digestible way is a great way to test and prove your understanding.
If you care to join the ride, be sure to subscribe to the RSS feed. Have a blessed day!