It's 2025; you are young, ambitious, and preparing for a career in programming.
However, seems like everybody in the industry is discussing how AI will replace programmers.
Maybe it's right about them, but not about you.
I will not recommend or sell you an AI tool or tell you some bullshit, like "be better than others and follow your passion."
I will share a [not easy] strategy you can follow to improve your chances, along with some practical insights - what you can start learning right now.
Disclaimer: I was the head of the R&D department and interviewed over a hundred people. My area of operation was primarily related to software and firmware that run on specialized devices, such as IoT modules, cameras, industrial controllers, specialized tablets, etc. However, we also occasionally did related web development projects.
1. Avoid following common recommendations
You: Where should I start?
They: Python. JavaScript/React. Mobile apps. Testing. It's easy to learn.
Wrong.
Easy to learn doesn't mean right for you.
You are young, your brain is agile. You can handle learning more complicated things. Don't waste the opportunity to gain unique skills.
LLMs are trained on common stuff
JavaScript and Python are the default languages for LLMs due to their extensive training datasets. So React, Node.js, Django, you name it — risky choice.
Don't get me wrong, LLMs can't write code well (and won't be soon), require professional guidance and supervision
Overcrowded.
Training courses are easy to sell. Recommended by almost everybody. Bubble.
2. Look for the natural LLM barriers
Connected To the Physical World
Mistake cost is too high (and can even be fatal); therefore, humans will continue to play a significant role in the R&D process for a long time. And also, you need hands.
- Machinery and industrial control
- Medicine
- Automotive
Low-Maintenance And No-Maintenance Systems
Software or firmware upgrades in the field are often costly or impossible. No one lets the device with LLM-generated code exit the factory.
- Environmental data loggers
- Fixed-function devices (like an air-conditioner)
- Remote Asset Trackers
Mission Critical Systems
The reason is the same as in the previous points.
- Telecommunication, networks
- Power Grid Management
- Transportation
- Financial Transaction Systems
But am I good enough for that?
You may think that no one will allow you to touch it. However, it's not true - experienced colleagues will review your code in detail, provide guidance, and education. Trials will take months if not years. And in comparison to guiding the LLM, this will pay off. You are a valuable asset.
In college, one of my fellow students worked on a nuclear power plant control sub-system.
Low-Latency and High Performance
Requires precision, collective effort, and is highly context-dependent (an average approach will not cut it). The quality and complexity are significantly higher than the median, which renders the LLM invalid for such cases (until real revolution in approach/architecture and probably hardware).
- Data Processing Cores
- Financial market
- Transaction Systems
- Data compression, encoding, decoding
3. Search For Niches
Here is my top 3. I recommend starting with the first one; it's a solid foundation for the next two and a programming career in general.
Microcontroller (MCU) Programming
The average age of developers in this area is approximately 40, and there is almost no new talent
Unreachable for LLMs and will always remain relevant. Nearly any electrical device more intelligent than a kettle without a colorful display is powered by an MCU.
Writing low-level code to run on low-power hardware is a challenging task. However, it is also fun. Use your fantasy to select the first learning project - build a canon with ultrasonic target detection (my first project), a crawling robot, an active balancing camera mount. It's a dream.
Start with a dev board and bare metal (HAL, learn UART, SPI, I2C), then conquer FreeRTOS and dive into electrical engineering a little—you're safe.
You can try to argue that hardware will get so powerful that we can just run AI/AI-generated JavaScript everywhere. That is not true; there will always be a demand for highly energy-efficient and robust systems.
Warning: Arduino is not recommended to start learning embedded development. It's not recognized by the industry as a professional tool (for DIY, kids, it's ok). STM Discovery boards are the default choice (it's much easier to work with than you may think).
Embedded Linux
Gold specialists. I knew three who know how to modify the Linux kernel, write device drivers, and configure & automate the Yocto/Buildroot building process.
If a MCU is not the brain of the device and it's not 4/5G cellular enabled, it's likely running on Linux. Advanced industrial controllers, cameras, drones, smart home hubs, portable game consoles, medical equipment, and much more.
Android System (not apps)
! Training materials are difficult to find
Even rarer specialists. I knew two, but I couldn't manage to hire a single one in-house (it was impossible to compete with x2-x3 offers from corporations).
If the company plans an Android-based product (even if it's developed and produced in China), there's no way around this competence.
Build an Android from the sources. Add drivers, configure peripherals. Embed the application with system privileges, tweak power cycle and battery management, guide OTA implementation, and write platform native code (not Java/Kotlin).
Android rocks when all-around connectivity is required, advanced media and camera capabilities, and touch-heavy UIs are needed. It's not only about smartphones. POS terminals, interactive panels, digital signage, 4G-connected cameras, vending machines, smart speakers, and various other gadgets.
Conduct Your Research
I am talking from the perspective of my industry alone. For example, low-level, high-performance server code (C/C++/Zig/Rust) - follows the same logic: LLM safe, challenging to master, and not so popular (as it could seem). Also, there is "hardware programming" .
Bonus: don't run for the money
Today's trends are not tomorrow's reality. Making your choice based only on salary ranking may sound reasonable, but
- It's not your ranking, but those who came before you.
- You can easily end up in an overpopulated niche that was once on the hype.
However, Go and Kotlin are solid choices for today. Industry-proven, well-paid, job opportunities are growing, and extensive training materials are available. If you jump in right now, you probably won't miss.
Cautions Of Suggested Approach
Not So Common
You should search first to see if there are companies that can offer such jobs within your reach.
It won't be many. Not all cities (even countries) can offer that. However, demand for specialists exceeds supply and continues to grow. Relocation is also common.
Fewer Remote Opportunities
If you work with something physical, you need to visit the office often. You need help from your hardware fellas to debug.
Requires Education?
It's recommended to have a related university degree. But training materials are available online (that's how I mainly learned). At least half of the people I was working with had an education in other fields (but mostly engineering).
My perspective is limited to my industry. Still, you can extrapolate suggested principles (and even find new ones following the same logic) to other areas.
Conclusion
I can think of nothing more interesting than programming. I hope you also share my passion one day, while earning a good income as a bonus.
Good Luck!
Wow I haven’t seen articles about programming and AI from this POV yet. Thanks for sharing your experience 🙌🏼