Why Learn to Code?
Should I learn to code?
Rising cost of living
Given the rising cost of living, it's important to note that software development is one field with a higher than expected outlook for compensation.
Considering post-secondary education
Conventional wisdom says you should pick a field based on your goals and interests. However, it's this same reasoning that has produced such a poor ROI (return on investment) for so many who have attained a post-secondary degree for the sake of getting one. Preston Cooper at FREOPP produced an incredibly thorough analysis on the ROI of different degrees, and it's worth a read. That's not to say you should ignore your personal interests, but it might be worth taking the time to find (or develop) interest (or better yet, love) in a field that is in-demand.
Note: although a degree in a field with high ROI does suggest higher demand, there are other factors that might contribute to higher incomes. One example is a governing board (or government legislative committee) that caps the number of students that can pass through some part of the academic-to-professional pipeline, limiting the supply of professionals in that field. Granted, that’s a taxpayer-funded program, but these hard caps exist throughout the pipeline. What if one year happened to produce more qualified candidates? Static limits don’t adjust for that.
Considerations if you’re already working in another field
Would working with large data sets improve your work?
It might be worth asking yourself if learning to code would benefit your current output. If increasing the amount of data you work with in some part of your work would improve the quality or quantity of your output, then learning to code will make processing that additional dataset relatively easy. The options for programming language in this area are broad and depend on your task. A non-exhaustive list of common languages with great open-source libraries to handle these tasks include Python, Scala, Java, and R.
Note: the fact that I haven’t contributed to an open-source library (yet write this blog and extensively use open-source libraries) is a potential point of tension among my peers. It’s on my list to resolve this.
Would automating some repetitive task(s) improve your work?
If there’s some repetitive task that you’d like to reduce to pressing
enter on your keyboard after writing a single line in a terminal, then a high-level, concise programming language like Python is the typical choice for developers.
Even if learning to code isn’t something you want to be doing every day, having this experience opens the door to many non-coding, more people-oriented roles. However, these roles typically interface directly or indirectly with developers, so having some foundation in building software will helps communication and ideation. A long, but still non-exhaustive list of the many roles that surround developers can be found at devopsschool.com.
Looking further ahead in the future
Even if learning to code doesn’t fit your goals for this life, it’s important to notice history’s steady trend-line towards automation. If one assumes the rise of technology is a never-ending progression, then its rise will impact your children more than it impacted you, and it will impact their children more than it will impact them. Having familiarity with coding would provide them a valuable on-ramp into this field. At best, you would be a mentor, at worst you would still be a valuable person for bouncing ideas.
Sam Malayek works in Vancouver for Amazon Web Services, and uses this space to fill in a few gaps. Opinions are his own.