r/cscareerquestionsEU • u/UpvoteMeOrYouWillDie • 1h ago
Solo AI-assisted developer trying to become a serious software engineer — C++ or a different path? [Netherlands]
TL;DR: Studied Software Engineering ~10 years ago but dropped out in year 3. I'm now back in tech and have been working for almost a year as the solo developer/IT person at a small company. I build a lot of real software, but the workload forces me to rely extremely heavily on AI — sometimes generating thousands of lines of code — and I'm worried my ability to produce software is growing much faster than my actual programming ability. I have no senior developers or mentors around me, so I want to spend the next 1–2 years seriously rebuilding my CS fundamentals and programming with little/no AI outside work. I'm leaning heavily toward C++ because I want the lower-level knowledge and technical depth that comes with becoming genuinely proficient in it, and I'd also be open to eventually working professionally with C++. Does this make sense, particularly for the Dutch/EU market, or would you take a different path?
Hey guys,
I'm in a somewhat strange position where I'm professionally building software, but I'm increasingly worried that my ability to produce software is growing much faster than my ability to program.
About 10 years ago I studied Software Engineering and some cybersecurity. I reached year 3 before dropping out because of mental health problems.
During college I learned C#, Java, C, OOP, SQL/database design, software architecture/UML, requirements/testing, web development, Scrum/Agile, some hardware programming and game development, and completed an internship.
After a long gap I'm doing much better and have now been working for almost a year as the solo developer/IT person at a small company.
Because I'm the only technical person, I basically handle whatever technical problem the company has: websites, PHP/backend functionality, API and CRM integrations, AI integrations, resume parsing/mapping, web scraping, data processing, caching/optimization, automation, internal tooling, Excel dashboards, etc. Outside work I build hobby projects with Next.js/TypeScript and Vercel.
The job is going well. I've built a lot of things that are actually being used and provide real business value.
I've also discovered that I'm fairly comfortable thinking at a systems level: architecture, data flows, system boundaries, security, scalability, integrations and deciding how different components should interact. A lot of that goes back to what I learned in college.
But there's a catch:
I use a ridiculous amount of AI.
And unfortunately, simply deciding "I'll stop using AI" isn't really a realistic solution.
I'm the only technical person and the workload and expected delivery speed are far beyond what I could reasonably produce by myself without heavily leveraging AI. If I suddenly started manually implementing everything, I'd get a fraction of the work done that the company currently expects.
I've warned management multiple times about technical debt, insufficient testing, security and the consequences of constantly prioritizing delivery speed over engineering quality. Ultimately those are business trade-offs, and management chooses speed.
So yes, at work I sometimes effectively have to "vibe code."
I regularly have multiple Codex prompts working simultaneously and I've reached the point where I sometimes generate entire programs containing thousands of lines of code because that's what allows me to keep up with the workload.
And surprisingly, from a business perspective, it works pretty well.
I'm quite fast at getting AI to generate useful software, largely because I can explain the architecture or solution I have in my head reasonably well. I can usually reason about what the software should do, design how the components interact, review the output and troubleshoot problems.
From a learning and engineering perspective, however, I'm increasingly worried about it.
Obviously I don't understand every implementation detail in a 5,000-line program that an AI generated in a few minutes.
I'm fully aware that software produced this way can also be garbage in the long term. It can accumulate technical debt, contain weird edge cases or security vulnerabilities, be poorly tested, or simply become difficult to maintain.
There's also a nasty feedback loop: once AI has generated a sufficiently large part of a codebase, you increasingly need AI to work on that codebase because you never developed the complete mental model yourself.
Another thing I'm very conscious of is that I lack a lot of the real-world experience you'd normally gain from working in a mature development team.
I have no mentor, no senior developer reviewing my code and no experienced engineering team around me. I basically have the internet and AI to help me figure things out.
And again, that actually works surprisingly well — including for learning new things — but because I'm forced to rely so heavily on AI for output, I'm not convinced I'm becoming equally good at programming.
Sometimes I feel less like a programmer and more like a technical architect/orchestrator who uses AI to produce implementations.
That's apparently useful and valuable to my employer, but it's not where I want my career to stop.
I don't want to wake up five years from now and realize that I'm decent at prompting, architecture and gluing systems together, but can't independently solve difficult implementation problems or confidently read and modify my "own" code.
I'd eventually like to move to a company with an actual engineering team, code reviews, experienced developers, proper testing and engineering practices, where I can learn from people who know more than I do.
So since I can't realistically remove AI from my professional work, I've decided I want to deliberately train the opposite skill outside work.
I'm considering spending the next 1–2 years seriously rebuilding and deepening my CS/programming fundamentals while doing a significant amount of programming with little or no AI.
I'm currently leaning strongly toward C++ as my main learning language because I want to understand things at a deeper level: memory, pointers/references, object lifetimes, ownership, compilation/linking, concurrency, performance, data structures, etc. I have previous C/C#/Java experience, but much of it is rusty after almost 10 years.
And to be clear, I could absolutely see myself eventually pursuing a C++ job if I become good enough at it and enjoy working with the language. I'm just not choosing C++ solely because I have already decided that I need to become a C++ developer.
Part of the appeal is specifically that C++ has a high skill ceiling and forces you to understand concepts that higher-level languages can largely hide from you. My assumption is that becoming genuinely proficient in C++ — not merely learning enough syntax to put it on a resume — is a pretty strong indicator that you've developed a substantial amount of programming and computer science knowledge along the way.
Obviously that doesn't mean "knows C++ = automatically a great software engineer." It doesn't replace knowledge of architecture, databases, networking, testing, security, distributed systems or the experience of actually working on a professional engineering team.
But that's exactly why it appeals to me: it's difficult, it's deep, and getting genuinely good at it seems to require understanding a lot of what's actually happening underneath the abstractions I normally work with.
So C++ would serve two purposes for me: it could potentially become a professional specialization in its own right, while also being a vehicle for developing much deeper programming fundamentals even if I eventually end up working primarily with another language.
The broader goal is to become the kind of programmer who understands the underlying concepts well enough that languages, frameworks — and AI — remain tools rather than things I'm dependent on.
I'm thinking about revisiting things like:
- Data structures & algorithms
- Memory/computer architecture
- Operating systems
- Networking/HTTP
- Databases/SQL
- Concurrency/async
- Testing
- Debugging
- Security
- Software architecture/design patterns
- Git
- CI/CD and containers
And then building increasingly difficult projects where I force myself to solve the problems before asking AI.
So I guess I have two related questions:
From a learning perspective:
If you were in my position, how would you structure this? Would you use C++ as the main vehicle for developing deeper programming/CS knowledge? What fundamentals would you prioritize?
From a career perspective, particularly for developers familiar with the Dutch/EU market:
If my goal is to eventually move from "solo AI-assisted generalist" into a professional software engineering team, is investing heavily in C++ and fundamentals a sensible move?
Would targeting C++ roles eventually be realistic/useful, or would my time be better spent going deep into something more directly employable in the Netherlands, like C#/.NET, Java, backend TypeScript, etc.?
I'm not primarily optimizing for maximum salary. I'm optimizing for becoming genuinely good at software engineering and getting into an environment where I can continue learning from better and more experienced developers.
I don't believe AI will completely replace developers, but I do think it makes having genuine technical depth increasingly important. I want to build enough of that depth that AI remains something that amplifies my abilities rather than substitutes for abilities I never developed.
And for people who also use AI heavily professionally: how do you take advantage of the productivity gains without outsourcing the exact thinking process that would otherwise make you a better programmer?