This post is based on my personal experience and is a bit oversimplified for brevity.

Is Software Engineering Still the Golden Ticket? What About Medicine… or Trades?

A few years ago, if you asked anyone, “What should I study to make good money?” the answer was almost always: programming. Fast forward to today, and the answer isn’t so clear-cut.

A tech degree is no longer a guarantee for a job. This recent WSJ article highlights some harsh realities. I’ve seen similar patterns with students reaching out to me. Not long ago, even an average CS graduate from Berkeley could count on multiple solid job offers—good pay, great location, and reputable companies. Now, even top-tier students with perfect GPAs are struggling to get any offer. This isn’t just a temporary glitch; I suspect it’s part of a broader and likely irreversible employment trend.

Medicine: A Long Road, but a Clear Reward

Medicine requires:

  • 7+ years of education and training, where you’re making very little money.
  • An average $200K in debt before you even start your career.

That’s roughly $900K+ in missed income and loans combined if you compare it to someone who gets a head start in another field. But once you’re in, you’re earning $150K-$300K/year on average—often higher than a typical software engineer.

Software Engineering: Faster, Cheaper, but Changing

The beauty of software engineering is the low cost of entry:

  • No need for hundreds of thousands in debt.
  • You can make money while you’re still learning or often before you start school.

But like medicine, there’s a spectrum:

  • Your average programmer might hit a ceiling sooner.
  • Specialists, like AI Engineers are earning 20%-500% (yes 5X) more than typical developers.

Trades: The Unexpected Millionaires

Here’s a curveball: skilled trades are booming. A recent WSJ article shows how plumbers, HVAC technicians, and other trade entrepreneurs are turning into millionaires.

  • There’s a huge demand for tradespeople.
  • Less competition compared to software engineering.
  • Less chances of being replaced by an AI bot. These days you can speak to AI, have it examine your MRIs, blood tests and give you advice.

But let’s be real: trades are a grind. They’re hard, physical work, and that’s part of why they pay so well. Even if you invest gradually there’s still a higher entry cost compared to software:

  • Licensure and certification requirements.
  • Bonding, insurance, and union fees.
  • Tools, equipment, and vehicles—often big upfront costs.

However, trades offer something unique: if you’re entrepreneurial, you can split expenses across partners and scale up. Yes, there’s significant investment, but like any business, the costs can turn into profits once you establish yourself.

In a way, the recurring costs for trades mirror other fields like medicine. Doctors need malpractice insurance, medical equipment, and offices; trade entrepreneurs need tools, trucks, and employees. Both can be expensive to start—but both can be highly rewarding for those who persevere.

AI: Hot and Harder

If you’re eyeing AI, be ready for the challenge. It’s not your “just learn to code” pathway:

  • You’ll need a solid foundation in linear algebra, calculus, probability, statistics, and a deeper understanding of algorithms, data structures, and machine learning models.
  • AI jobs demand more brainpower, more effort, and arguably more talent than regular programming roles—but they’re hiring, and the pay reflects that.

TL;DR:

Medicine pays off in the long run but takes time and money. Software engineering remains accessible but isn’t the easy-money path it once was. Skilled trades like plumbing and HVAC? They’re quietly turning people into millionaires. AI? It’s hot, it’s hiring, and it pays—but only if you’re ready to go the extra mile.


The remainder of this post, assumes that you’re aiming to get into the Tech World.

Do I need a four year degree?

What most people don’t realize is the difference of what you’re taught at university vs how much of it is useful at your actual job.

In university you’re taught only a whole lot of breadth without much depth. At work you actually need depth without much breadth.

For example, to become an iOS engineer you don’t need to be good in the following courses, but still be a great at iOS Programming:

  • Android
  • Web Development
  • Database
  • Data Science
  • Networking
  • Server
  • Security
  • Operating Systems
  • UI & UX
  • AI
  • Data Structure and Algorithms
  • Mathematics
  • Compilers
  • Computer Graphics
  • Hardware, CPU, etc.

In a four year course the university teaches you lots of stuff, they rather be safe than sorry and have you absorb 100X more than what you actually need so it may increase your chances of landing a job. They also get you spending at the university for four years rather than one or two.

For anyone who already has a degree in something, it’s recommended that you just focus on the new domain that you want and learn that, don’t go out and get a four year degree from scratch.

For example in order to become an iOS developer you have to learn:

  • Swift (and general programming concepts)
  • SwiftUI (how to create views)
  • Networking
  • Working with the Developer Tools (Xcode)
  • Some more intricate subjects of Swift Programming.
  • Understanding the main Apple Frameworks / Libraries (built-in functionality of different systems of the Apple Operating System)

Being a jack of all trades is only needed in environments (such as startups) where there's limited human resources, otherwise mastery in one domain is all that's necessary

Unless you’re joining a startup where you need to be a jack of all trades, you do not need to learn much about the rest that is taught in a four year Computer Science Program. As an iOS developer, I’ve never been asked to write code for Android, Server, Security etc.

I’m a senior iOS developer. Some of my skills are easily transferrable to other domains and but most are not. I have zero experience with Android, Web, OS, Security, Hardware, AI, etc. Yet I’m very successful at the work I do.

You’ll be fine if you’re great in one domain and clueless in others. This knowledge can save you a lot of time and anxiety.

How do I pick the domain I like?

Ask ChatGPT to ask you the following question:

Can You ask me 10 questions and then help me figure out which field (iOS, web, Android, Security, Networking, web, DB, AI, Compilers, data structures and algorithms, framework development, server, etc) of Computer science is best for me?

It will help you get a good start.

Pick domains that you have access to mentors

Would you rather go to the east without any tour guide or go to the west with a tour guide?

People usually go with the journey where they have a trusted guide. It’s the same when it comes to making a career for yourself in tech. Having a good mentor is critical, especially in the early stages. If you were undecided between which domain to pick, then try picking one that you can find mentors easier. There’s lots of things that you’re either utterly clueless about or just don’t know that you don’t know. Only way to resolve them is if you have a mentor or a support group or waste 10X more hours figuring things on your own

But strangers don’t answer my questions online

They do. They do that a LOT!

  • Answering questions of a newbie is easy. Takes almost no effort.
  • Some people actually really love and enjoy helping others.

All you have to do is write a well crafted question. Get it to the right audience and wait for folks to come out and share their experience and wisdom. It’s both refreshing and easy for a seasoned engineer to share answers.

I vividly remember my first encounters with Stackoverflow.com

  • In 2012 I asked a question. It (rightfully) got marked as duplicate and closed. I couldn’t get answers to it. Back then I was mad and sad. Put away learning and didn’t come back to the site for two years later. The website is rigorous about duplicate (or low quality questions) because they don’t want to answer the same question again and again.
  • In 2014 I asked a well crafted question. In less than an hour I got detailed answers from three very experienced engineers. I’ve often got answers from people working at Apple, Google or other places. People who literally wrote books, protocols and stuff. The internet is an amazing place!

How can I find such strangers to answer my questions?

  • Stackoverflow.com (The world’s most commonly used question-and-answer website for computer programmers)
  • ChatGPT (The AI that can answer your questions)
  • Medium.com (A social publishing platform where users can share stories, ideas, and perspectives)
  • Meetup.com and their associated Slack (a communication platform very similar to Discord) groups. Meetup is a platform that assists groups of like-minded people meet in person on online. Slack is an app that helps teams collaborate and communicate with great ease online.:

The last one is key. People tend to care a bit more when its someone from their own town, neighborhood. Most Meetup groups these days have their own Slack group where you could remain in contact through out the week / month.

I learned a ton from my local Slack group. It was named PhillyCocoaHeads. I got to ask a lot about basic Programming concepts from people that I never met in person. Without their help, I would not be where I am today.

This Slack has a 'code-help' channel where people can ask their questions and get answers. Some of the other channels are 'book-club' and 'today-i-learned'

Stackoverflow.com’s main benefit is that it’s open to public and conversations are forever available. Though the UI of the site and its culture need some love. Slack may have a time limit for how long it keeps the history of conversations (typically 180 days) and is only available to the members of its Slack organization. Yet it’s in real time and often with people that you actually know.

Medium.com is public but it is not meant to be a Q&A place or where discussions happen. It’s more of a fancy micro blog platform. ChatGPT (and don’t forget claude.ai) is getting better and better at answering and having conversations, but often there’s some tribal knowledge or lack of a human element that makes understanding directly from ChatGPT difficult.

Nowadays if I need something, I search for it or ask ChatGPT. If I can’t figure things out (or need a bit more depth) then depending on the factors listed below, I decide to take it to to either Stackoverflow or Slack

  • The type of question.
  • How experienced and responsive the Slack vs Stackoverflow folks are on that subject.
  • When was the last time I asked a question. I don’t want to be asking too many questions from the same people.

Example:

  • On Stackoverflow, due to its requirements that questions must have straightforward answers, you can not ask an open ended question of: “Is using Java better or Kotlin to make a server? Why”. So Slack is your only choice.

  • Everyone you know in your Slack group has knowledge on iOS, no one knows anything about Network Security. So your only choice is to ask the question on Stackoverflow.

Should I learn on my own or join a BootCamp or get an associate degree?

The path to success is anything between 6-24 months. There are no shortcuts. No Program is a silver bullet.

The programs are meant to show you the path and help you stay on the path. Do not think by joining a university, bootcamp, the job is done. You are the one that has to spend time experimenting, finding yourself mentors, attending meetups, do networking, figuring out bugs, practicing, preparing for interviews, writing your resume, setting up sample or real (but small) projects / apps, etc.

With the right dedication, the right person, and a bit of luck and support, any of these approaches can work. The advantage of bootcamps is their laser focus on a single domain, unlike universities.

Self-learning vs Instructor / Professor / Mentor

Bootcamps jump start you a whole lot easier than self-learning. In a bootcamp, you have your peers and a mentor that helps with you on a daily basis.

With self-learning you often might get stuck on a bug and be clueless for hours or days whereas a mentor / professor can help resolve it in 5 minutes. Or may be looking at a tutorial and not realizing that the tutorial is no longer applicable or that it no longer compiles, etc.

If you have took a class or two on general programming then self-learning or if you have a mentor that you can reach out to 2-4 times a week (especially in the early stages) then self-learning becomes a lot easier. Otherwise bootcamps (associate degree programs) are better.

When is it beneficial to get an undergrad or masters degree?

  • When you have no degrees at all.
  • When you want to go all in and you have time for it. Some of the top Machine Learning, AI experts at Apple, Google, Microsoft have done extensive research with truly experienced professors during their Masters or PhD programs enabling them to innovate in ways that others can’t.
  • You’re attending an Ivy League university that has great professors.
  • The university cultivates building networks with your peers and has a great connection with the local companies and is great at helping you land your first job. This is less of an issue if you have a good amount of friends and family that can give you referrals.
  • Universities may also have certain budgets to undertake certain high risk, high reward projects.

Some Top Free Courses

  • CS50 - Harvard. World Class. Lots of assignments per lecture. Covers basics. Might be too difficult for a beginner. The course has huge online presence across social media.
  • Swift and iOS Learning - Apple. There are lots of fun and extremely beginner friendly tutorials there. The app is is great on iPads but also works for MacBooks. It’s only helpful if you want to learn iOS Programming.
  • CodeAcademy. Lots of free courses. They make it easy to track your progress. All you need a is browser.
  • I’m specifically leaving out introductory courses for learning Machine Learning / AI. Because I haven’t took any myself, nor you can start learning AI without having a decent background in a programming language and some other concepts.

I’ve gone through a bootcamp, done my own self-learning. How can I stand out?

It’s tough. A lot tougher than it was in 2020. Have something small but working that’s already being used by more than 100 people.

Best examples I can think of are:

  • A well crafted website that shows your portfolio.
  • We had an engineer at work who at the time of joining was a relatively junior engineer, but he already had an app in the App Store. It didn’t matter how many people were using his app. It just meant that he was a doer. His app was a simple but extremely functional app for a Train Time Table. He identified a problem: It was difficult for commuters to to look into small font pdfs and try to find the time of the next train. He turned into a very easy to read app.
  • At a conference, an engineer I met talked about an app he owns. The app would just scan a banana and tell you if the banana was ripe or not. I asked him why did he do the app, he said:
    • There are some color blind people that can’t tell. My ignorance made me first think that the app was made just for run. I was intrigued at the idea that you can build apps that you never end up using yourself.
    • I can speak about my own app experience during interviews.
    • I got to try out new Apple code for Machine Learning.
    • The app was super simple to build, it had only 2 - 3 screens. But I did it good. It made me stand out in a lot of conversations.
  • But overall if you show you can create, do and demonstrate a persistent sense of ownership and create (don’t just seek jobs but rather create them too), then you have higher chances.

I tend to overlook resumes overloaded with flashy keywords. I prefer the underdog who is consistently building and seeking to create a job on their own at a steady pace, even if it’s small and unpolished.

How Important is Networking? And when should I start?

Don’t start networking when your resume is ready. Start it as soon you’re learning. It’s just that the manner and intensity of your networking should be different. If you’re new then networking for you just means:

just have a profile on Stackoverflow, on your local slack group and show up in meetups. People are more willing to spend time, give you referrals if they see you making progress.

Referrals are super critical to your early success. So the better your network is, the more chances that the referrals will help your resume get to the right person.

Summary

Find a mentor or join platforms and groups where you can quickly ask questions and get answers. A four-year degree isn’t always necessary, as most jobs focus on specific tasks. However, if you aim to be among the best, a degree can help. Whether you choose a bootcamp or self-study, having a mentor is key. Ultimately, success comes down to the effort, networking and the hard work you put in.