Photo by Jordan Whitefield

Intrinsic Motivation in Software Engineering


Software engineering is a career that requires constant Intrinsic Motivation. Full Stop.

A lot of jobs outside of software will require some Intrinsic Motivation upfront to get to the point at which an individual can be motivated by something like a paycheck. Software engineering is a field where intrinsic motivation doesn’t stop once you start getting paid to be a professional in the field. This is a field where employers may look at you in a different light if you aren’t working on personal development projects. This is also a field that requires individuals to spend unpaid time to continue to learn about developments within the field. I haven’t worked within another field that is constantly evolving so I could be incorrect about how unique the tech field is to be relevant I not only need to work professionally I also need to use my time to learn and even develop projects.

The hardest part of all of this is to be able to stay properly up to date without getting stuck with shiny object syndrome (something I have struggle with in the past). There is a fine line we have to hit between staying current and bouncing around between any of the new javascript frameworks that are coming out and never actually progressing in them technically.

I have been slowly learning iOS Development, and the biggest thing I have learned about it is that progress is a requirement. This can be the introduction of new tools and libraries, like Android Jetpack or SwiftUI. This can even mean learning new languages with Android’s shift from Java to be Kotlin first and iOS’s shift from Objective-C to Swift. Even if I didn’t want to learn the native tools, I could have learned a new way to use a language I already know to build apps with tools like React Native to build apps with Javascript or .NET MAUI to use C#. Change is hard, and change in technology is harder at the pace it changes. Just from when I first learned about software development as a career in 2010 to getting my first developer job in 2019, it feels like the entire internet changed (ReactJS was released in 2013).

Now I am not here to say that the only way to have a career in software is to constantly. I worked with a senior engineer in the past that had no interest in new technologies and new methods. This isn’t me trying to say he wasn’t intelligent and didn’t work hard. He was extremely smart and an incredibly hard worker gladly putting in 10-12 hour days. I learned a lot from him (mainly the magic of sed and awk) that are invaluable skills college didn’t teach me and bootcamps probably don’t teach. However, with all of that motivation to work he had no interest in working with web technologies or moving past some of his UNIX commands. He was very set in his ways and very comfortable in his position (when I was working with him, he had been in that position for almost 20 years). It was a position that allowed him to not continue evolving with technology and when faced with using some newer technologies for a specific task, he refused to learn them. If that is what someone wants to do in this career, then that is their choice and is a way to approach this career also. Those jobs exist and no one can judge the developer that wants to work 9-5 and not think about software between the stop of one work day and the start of the next.