Code as a Career Multiplier

Adding Programming to Your Professional Toolkit.

    2026-04-14

    This article was written in response to a need observed where engineers asked how to get into software development. There are many other technical and non-technical professionals that are also interested in exploring the programming or the extended software development landscape. Pursuing this interest is highly encouraged since augmenting professions with programming skills can truly act as a career multiplier.

    The goal, however, is to not just give the reader a list of tips or things to learn. There is a very unique mindset that fulltime software developers need to adopt in order to fulfil their responsibilities. While civil engineers construct a bridge the requirements are not changed as is the case in software development. One is not good and the other bad. Different professions are just different in nature, and so are their ways of thinking. Learning to think like a software developer while writing code for a different domain can result in software that can reliably solve a real world problem in a powerful way.

    Note

    The nature of this article leans more toward the subjective side. These are topics that spark a variety of opinions in a discipline that evolves rapidly. Points in this article may change. However, the goal remains cultivating a way of thinking instead of a checklist to follow. The reader is encouraged to critique these topics and disagree where necessary.

    Paradigms

    Below is a graph that maps out 16 ways of thinking that will further be referred to as paradigms. Clicking on each node will show the description of the paradigm. There are also connections between the paradigms and clicking on each connecting edge will show the relation between the paradigms.

    Once important paradigms are presented the article will continue to present fundamental tools and technologies that receive little official coverage but are vital for effective development. Although it falls outside the scope of this article a few words will be shared on programming languages. The article will end with a broader overview of practices and disciples the reader needs to simply know of.

    There is much to learn in the software development landscape. It's impossible to master them all, but fortunately not necessary.

    Important Tools and Technologies

    There is a side of development that is seldom officially taught. It's not programming, algorithms or databases. It is tools, small practices and technologies that make development smoother, more reliable and more efficient. It spreads informally by word of mouth between colleagues, friends or developer influencers. It can therefore be difficult to prioritise such adoption if there is little urgency. Worst case, the newcomer may not learn about an important tool for years.

    The MIT Missing Semester course is a recommended resource to remedy this.

    Programming Languages

    Regarding programming languages, it is important to understand the difference between interpreted and compiled languages as well as dynamic and static typed languages. Each language have their domain of focus and knowing this helps to gauge how far one is operating from the language limitations.

    A very useful resource for learning about the domains of different languages is this presentation by Brian Kernighan.

    Methodologies and Disciplines

    Breaking work down is always difficult but generally a very important skill to master. In software development it is the key that small batches of work enable regular value delivery, feedback and corrections to the delivery plan. The goal is, what many call agility, but simply the ability to constantly correct the trajectory and easily adapt to change.

    The Agile Manifesto is a good methodology starting point.

    Lean software development advocates for reducing waste and increasing value delivery. The way software is developed should be constantly evaluated for processes and practices that are not delivering as much value as was originally expected. Be wary of becoming too dependent on methodologies that claim to be agile but are excessively rigid.

    There is more than just programming when looking at the entire software development landscape. Some people manage infrastructure, some do quality assurance. roadmap.sh is a good resource to get an overview of disciplines and the skills and technologies that need to be mastered.