cft

It’s Not Too Late to Become a Software Developer

In Case You’re Holding Yourself Back


user

Bowei Han

3 years ago | 7 min read

The software development industry continues to boom as the world moves towards the next echelon of technology and automation.

Artificial intelligence, IoT, immersive technologies, and progressive applications are all trending topics in 2020 — to the point where even traditional low-tech businesses are finding them hard to ignore.

Thanks to this rapid progression, the demand for software developers continues to grow (or skyrocket, for certain roles).

Programming also happens to be a pretty neat job! As a software developer, I love:

  • Having unique problems to solve every single day and feeling accomplished when I’m able to solve them.
  • Being able to flex my creativity muscles, since every problem can be solved in a bazillion ways.
  • Working with supportive teammates towards a common goal.
  • Having an excuse to work towards personal growth as part of my day job.
  • The flexibility in my work schedule and location.
  • Being well compensated for what I do.

I’m writing this post for everyone who looks at a career in software development with a sense of yearning, yet has not been able to take the leap. Basically, the younger me.

A Little Bit About Me

Image by Michal Jarmoluk from Pixabay
Image by Michal Jarmoluk from Pixabay

My first gig out of school involved the heavy use of lab coats and safety glasses. I had just wrapped up a post-graduate degree in chemistry and was fortunate enough to get my first taste of adult work life.

The job wasn’t all that bad but after one too many whiffs of ammonia, I knew this wasn’t where I was going to spend my next thirty years.

My next few years consisted of a lot of soul searching. I bounced between a few different roles in a few different industries, trying to make my hard-earned degree work for me. I was feeling pretty lost at the time.

The process of convincing myself that I needed to pursue a career in software development was like trying to retrieve a suppressed memory. In hindsight, there were signs:

  • Creating a Pokemon clone with PyGame was one of my favorite high school projects.
  • I almost switched my major to computer science in my second year of university (but talked myself out of it).
  • I was way happier tinkering with VBA than running lab experiments.

Turns out I had suppressed this entire career choice, in part, because of my self-limiting beliefs.

My Self-Limiting Beliefs

Image by Tumisu from Pixabay
Image by Tumisu from Pixabay

The mind is both afraid of the unknown and incredibly good at making shit up. Here are some reasons it took so long for me to make the leap.

I can’t waste my education

That rolled-up piece of paper cost me five years of my prime and a whole bunch of money. How could I pursue a career in anything but chemistry?

I believed wasting my education would take me off the golden path and put me perpetually behind my peers in terms of career development.

There’s too much to learn

Languages, operating systems, linear algebra, cloud technologies…I didn’t even know what most of those things meant. I couldn’t even fathom the amount of knowledge required to build a working piece of software. How could I learn all of this in a reasonable amount of time?

I believed the knowledge barrier to entry into a software development career was dauntingly high for a newcomer.

Software developers have to be great at math

Algorithms, algorithms, algorithms. Software is built on-top of brilliant algorithms. Brilliant algorithms are written by brilliant people. Software developers are experts in binary math, algebra, statistics, calculus, and discrete math.

I believed being mediocre at math would limit my ability to progress as a software developer.

I’ll be so far behind the computer science grads

Computer science grads spent four years studying maths, algorithms, operating systems, logic, and computation full-time. I was taking online courses part-time while caring for my cat. How could I possibly catch up?

I believed there would be a near-insurmountable knowledge gap between computer science graduates and self-taught developers.

I’m too old

There were people my age who had already been developing software for a decade. Could I still learn at the same rate I did when I was younger? Was I young enough to be hired as a junior developer? Was I too old for a career change?

I believed age would play a role when it came to job opportunities and my ability to learn.

Fast forward to today, I’ve completed my career transition and have been working as a software developer for several years.

I’ve had the opportunity to help several people close to me successfully make the transition to software development.

I also hear from people in my social circle who have been eyeing a career change for years and can’t seem to mobilize.

If any of these beliefs are holding you back, here’s why you should power through anyway.

The Reality

Photo by Panos Sakalakis on Unsplash
Photo by Panos Sakalakis on Unsplash

I can’t waste my education

The most important things you take away from a post-graduate degree are [1] how to learn [2] how to work with others and [3] how to chug a bottle of Smirnoff Ice.

Your education provides you with a generic skillset to help you function in society and many degrees are already structured as generalist programs.

I dare you to find me five people who will say their bachelor's degree prepared them with enough knowledge to do their first real job.

There’s also nothing wasteful about being knowledgeable in a subject matter you don’t use to put food on the table. The perspective you’ve already gained is priceless and will help you take the next step in your career.

There’s too much to learn

Yeah, there’s probably too much to learn…if you want to become an encyclopedia. Don’t lump all software developers together when there are so many different types of jobs out there — each requiring vastly different knowledge bases and skillsets.

Frontend, backend, machine learning, data, and infrastructure are different types of engineering that require completely different learning paths.

Start by choosing a career path and finding a roadmap. You’ll find picking a specific role to specialize in immediately cuts down how much you need to learn to land your first developer job. You can always switch it up later.

Software developers have to be great at math

There are definitely fields that require you to have some background in math, such as machine learning, game development, graphics, and robotics. That being said, production coding in these fields often boils down to using libraries that abstract away most of the lower-level mathematical concepts.

For developers working on web and mobile applications (frontend, backend, full-stack, ios, android) there usually isn’t much math involved. The math in these roles typically boils down to [1] logical and arithmetic operators and [2] basic time and space complexity (it’s not as daunting as it sounds).

If you’ve managed to pick up a programming language, it’s unlikely you’ll encounter any math you won’t be able to teach yourself in a reasonably short time.

I’ll be so far behind the computer science grads

I’ll admit, this thought gave me anxiety even after I was performing well as a professional software developer. Knowledge gaps can be a bit tough to gauge because you don’t know what you don't know.

As a newbie to the field, there are definitely gaps in CS theory you’ll want to fill on your own time. I spent a solid amount of time working during the day and following my own supplemental curriculum at night. You’ll want to eventually cover the core computer science principles.

This may seem like quite a mountain to climb, but there are a few things to keep in mind…

  • You don’t have to climb this mountain right away. You can be a perfectly employable software developer without knowing how to build an operating system from scratch. Continue to work on your skills after landing that first job.
  • The mountain isn’t growing at a faster rate than you are climbing it. Most of the core software engineering concepts have existed for decades. Trending programming paradigms such as functional programming existed well before the 1960s.

On another note, computer science degrees typically focus more on theory. Solid practice in applied programming (e.g. through a bootcamp or an online resource such as freeCodeCamp) may actually make you better at writing production-ready code out of the gate than CS graduates.

I’m too old

It’s a bit silly that I even had this thought, considering I made the switch while still in my twenties. I guess all the ageism in tech articles had gotten to me.

I can’t say definitively that ageism in tech isn’t an issue — there’s almost certainly some truth there.

I can say, however, that I’ve seen success stories in my personal network from individuals in their 40s and 50s. Don’t take it from me, take it from these 300 developers who got their first tech job in their 30s, 40s, and 50s.

So what are you waiting for?

Transitioning to software development was one of the best decisions I’ve ever made. If you have a real desire to become a software developer and are willing to put in the effort, get on it!

  • You aren’t trapped by your education.
  • You don’t have to learn absolutely everything.
  • You don’t need to be a whiz at math.
  • You can compete with CS grads.
  • You aren’t too old.

And you've got me rooting for you.

Upvote


user
Created by

Bowei Han


people
Post

Upvote

Downvote

Comment

Bookmark

Share


Related Articles