Making a Living as a Programmer
Programming careers can be quite lucrative compared to most professions. There are countless angles on how to profit as a programmer. To help out some of you, I want to share my own observations from my 35 year career as a programmer.
Every avenue can be rewarding. I am just going to highlight a few of the challenges for each direction you might take.
But first, here's the short version of my career.
I taught myself C programming back in the early 80's. Got a Fortune 50 job (major Airline), and wrote C programs in MS-DOS, Windows, and various Unix platforms. I even wrote a couple device drivers for network cards and modems for Linux and MS-DOS platforms. That job was 17 years and very lucrative for me.
Then I started a web design and Internet marketing company. Not too many small businesses had websites so I saw an opportunity. That lasted until Covid when my company collapsed. At the high point, I had 50 developers in four countries doing work. As good as that sounds, it was never profitable. Many lessons learned.
Now I am back at the major Airline again in a different role, trying to get back into my programming or project management type of role. So far that's not been easy. But that's another story. :slight_smile:
What I've Learned
Independent Consultant Developer - There is very little demand for independent developers outside of corporate contracting. Small businesses don't have the budget. If you want to go this route, you find a recruiter and look for contract work. That's a great way to go as many corporations hire from their contractors. Or you can stay on contract and keep the higher salary.
Independent Web Design / Developer - Small companies have small budgets. Plus there is a ton of competition. To succeed here is nearly impossible because there's always someone who will work cheaper. Larger companies hire dedicated staff. Small companies want the cheapest option. The few people with any success in this area usually focus on a specific industry such as medical, oil and gas, automotive sales, etc. Then they build reusable code and market it as a service, not as a one-off website. That gets them recurring income and a single shared code-base.
Corporate Programmer - These jobs are harder to get. They get thousands of resumes and it's tough to get an interview. Then you jump through hoops and they end up hiring someone else. But once you do get hired, you make serious money and very quickly you become indispensable. One of the biggest challenges is the look for experience with tools and products you probably never heard of. Where I work, it's all about BIG DATA solutions. Hard to learn that stuff on your own.
Independent Product Developer - If you have an idea for an app or a game and you build it yourself and support it yourself, you can actually do really well. This is really challenging, but imagine that you build a useful app that people pay a few dollars for and tens of thousands of people buy it. You're off and running. It's competitive though. You must build something of good quality and desirable. A buddy of mine and some of his friends (not me) build a database app that tracked airplane parts so you can find what you need wherever it is. 5 guys in six months built it and they sold it for around 10 million. Big win for him.
In Conclusion - You can make many in any of these ways. Each have their own challenges. None are easy. You have to do some soul-searching to see which avenue works best for you. Hint! Most people do not have what it takes to run their own company, so be careful with your ego and really evaluate your own strengths.
Final thoughts - Mark Cuban said, "Businesses succeed when they either deliver the lowest price products or the highest quality products. Companies in the middle ground are the one's that fail. There's too much competition in that space." With that said, being lowest cost is really tough. You have low profits and lots of competition from people who will work cheaper than you. Then on the other end, having the best product means a huge investment in time and money and with that comes major risks.
A programming career is tough but rewarding. I started when everyone else programmed in COBOL and Fortran. These days there are thousands of educated and capable people to compete with.
In my opinion -- if you want to get into programming, focus on learning the newest technologies that most schools are not teaching yet. Look into the bleeding edge products from Azure, AWS, AI, AR, etc. If you know things that companies want but most programmers do not know, that is your key to breaking in. Lead the pack, don't follow it. Mosh's courses are a great start on the basics, but look harder at bleeding edge technologies and find a way to learn those tools.
Jerry