Software Engineers Just Want to Keep Learning: Study

What motivates software engineers to pursue new opportunities?

According to data crunched by Triplebyte, “opportunity for professional growth” is the biggest motivator, ahead of software engineer salary, better work/life balance, and “impressive team members.” (The company, which tries to streamline the technical hiring process, asks every engineer on its platform about what would excite them most in their next position.)  

For most software engineers, professional growth is necessary for a healthy career. “It’s not uncommon for us to see skilled programmers left on the sidelines for the sin of sticking with PHP or Perl for a little too long,” Triplebyte wrote in a note accompanying the data. “For all that software engineering is a lucrative and comfortable career in some respects, a smart and career-aware engineer knows that their long-term employability is more precarious than it might look at any given time.”

Of course, as Triplebyte points out, professional growth can mean any number of things. Some companies might direct engineers to great online-learning resources and call it a day; others might hire in-house tutors to walk engineers through a new programming language or tool. The urge to learn isn’t restricted to tech professionals at the very beginning of their careers; at all levels, there’s a hunger to gain as much knowledge as possible.

Whether or not they’re on the hunt for a new job, software engineers have lots of avenues for learning new skills on their own. Fortunately, the number of (often free) educational hubs is proliferating online. For instance, Code with Google provides access to Google’s various computer science courses (such as machine learning, Python programming, and data science). 

Or if you’re interested in expanding into machine learning and artificial intelligence (A.I.) (and why wouldn’t you be, given how important those things are becoming to most software engineers?), everyone from Google to Bloomberg and OpenAI all offer courses of varying intensity; for instance, if you’ve mastered the underlying mathematical concepts and want to really plunge into the intricacies of machine learning, check out Bloomberg’s online video course.

Even if you don’t spend your free time in online courses, education is absolutely vital to your career, especially given how quickly things change in tech. Up-skilling is the surest path to job security, especially for software engineers.

6 Responses to “Software Engineers Just Want to Keep Learning: Study”

  1. Josef Stadelmann

    It will never be eaten as hot as it gets cooked. Learning on the job is all. Learning in spare time after work does not provide free tiem to relax, a matter many companies are not valuating sufficently. How can one give its best close to a burn-out? Learning in courses, master in front is still a good organization to me. Still it allows sufficent space for work shops, discussions, presentations.

    We, I am old, did not make only mistakes in doing so. Otherwise we would not be here we are. Not everything old is bad. Good principles are very valuable. Lets do it, but do it right the first time, and take the time, to do it. Josef

  2. Michael Rucker

    My 2 cents:

    I’m closing in on retirement, but I keep learning all kinds of new things. As far as Languages go, I started out with dBase II years ago and now am working with Apex/LWC in Salesforce. Here is a progression of languages I’ve learned and programmed in since 1983. I’m usually on Pluralsight/Trailhead every week learning something.
    dBase II -> BASIC -> C -> C++-> LISP -> COBOL -> VB -> VB.Net -> C# -> TSQL -> Apex -> LWC->

    Learning these things (and other tech) over the years has moved me along in my career and pay.
    You need to keep learning stuff. I was told once that you need to be more valuable than the money someone pays you.

  3. Steve Naidamast

    As a retired senior software engineer who is still doing development, I can tell you that to continuously study new tools gets old very quickly.

    The idea is to develop high quality applications for users. However, in recent years the increasing emphasis on tools and paradigms have made a mockery of long tested software engineering practices.

    Its always good to invest oneself with the knowledge of new tools and the like. However, it should not be the primary emphasis in development as it has become. In addition, most of the new tools and concepts are highly redundant offering little real value in development except to male coding look increasingly arcane and difficult to understand.

    There is absolutely nothing wrong with developing with the old ways of good design, implementation, and testing. yet, today we have increasingly technical ideologues all of whom are trying to promote their own agendas and not quality development.

    When one reads about the many complaints coming out of the Web Development Community regarding the constant quagmire of development tools and constructs that are being fostered in this area of our profession, it is becoming obvious that no software engineers do not want to spend inordinate amounts of time learning new technologies. They want to feel like they have accomplished something while contributing to the organizations they work for.

  4. It appears that most of the comments have been made by older, more experienced (seasoned, senior, …) developers. I suppose that may be due to the wisdom, domain knowledge, and experience gained over the years and decades doing development work.

    I find myself in that same group, completing my 36th year with an organization that I love. I enjoy learning, but it isn’t my biggest motivator. Beyond providing a reasonable living for me and my family, the greatest motivating factor about work is the contribution that it makes to a worthwhile cause that makes a difference in the lives of people. I also love the creative aspect of software development.

    I agree with Steve that the constant need to learn new languages and tools (and the vocabulary that accompanies them) gets old very quickly–even from one version of a language to another. New capabilities and efficiencies are wonderful, but the overhead involved is, at times, very unproductive. Often management expectations, deadlines, budgets, and users aren’t appropriately prepared to take that into account. We use the word “language”, but somehow miss the concept that it really is learning a new language. And like regular languages, it may not take a long time to learn some new words or phrases, but it takes time and experience to become fluent.

    In software development, sadly, “older” developers tend to be looked upon as “outdated”, “irrelevant”, or “obsolete”. While that may be true in some cases, in others it may mean “more mature”, “stable”, or “reliable”.

    Some of that “old” knowledge can also be valuable. For example, I was recently approached about extracting some financial data demanded by a foreign government from a system that I worked on over twenty years ago. The system was a custom DOS-based accounting system and had been retired after the first few years of the new millennium. The last remaining PC that supported the system was set up with special disk partitioning software to allow it to access hard drives which were larger than the operating system natively supported. It had an internal CD drive, but no other drives. It had been placed in long term storage for just such possible eventualities. But, when they took it out of storage and fired it up, the operating system was corrupted, the system would not boot up, and attempts to repair the issue failed. There was no working backup of the partitioning software, the operating system, or the accounting system. The company that produced the partitioning software was no longer in business. The partitioning was not recognized on other PCs (they saw it as an unformatted hard drive).

    Through an extremely long, frustrating, and tedious process, I was able to extract the necessary data and help them avoid the threatened government penalties. Some very old domain knowledge also allowed me to provide them data that needed to be included, but that they had not requested because they were unaware of it.

  5. As a retired developer of modest ability who made a decent living from development, I worked with a number of technologies through the years and ended up on and tsql. After flirting with learning MVC I decided enough was enough. To me, it seemed like lots of extra coding time to save a few nanoseconds of loading which the users of the intranet sites I worked on would hardly notice. I’m glad I have other interests as I don’t really fancy spending my time writing hello world and baseball scoring apps to learn python or whatever. My advice to younger folk is to have other interests to pursue in retirement.

  6. I’m not retired yet nor 30+ years of experience but I always liked to learn new things (not only languages). As a matter of fact, I only master one language that I learnt in the university, 15 years of experience actually. Now, what language that old can get me a wealthy life and offer me new things to learn you might ask, well, that’s the C language.

    And now that I see, I really don’t care about the languages but the technologies. You might guess that since I use C (and sometimes ASM) I deal a lot with firmware for the processors and drivers for the peripherals. Still, I can’t say I master all the OS or know every peripheral standard which is *JUST GREAT*, that means: learning!!

    Developing drivers for new peripherals or firmware for upcoming microcontrollers is what I live for and what I like to learn. Enabling JTAG for HS devices and statcol for HW buffers to debug DRAM issues provides lots of learning for a whole new thing, I mean is not your typical USB control point debugging.