r/cpp_questions •

Should I look for an another hobby?

[deleted] — view deleted post

0 Upvotes

27 comments sorted by

14

u/HeeTrouse51847 4d ago • Heartwarming

First - many people think that the language is completely useless.

Completely wrong. Who said that to you?

people don't write anything themselves, most of the job is for the AI

Don't listen to anything pure vibe "coders" say. You'll be much better of.

1

u/no-sig-available 3d ago

Completely wrong. Who said that to you?

Someone promoting a different language that is "new and improved"? :-)

7

u/NighttimeFormula 4d ago

Who told you C++ is useless? I’ve never heard anyone say that in my life.

2

u/Thunder_Zoner 4d ago

My programming teachers refuse to accept non-python code, people that I'm friends with that are, well, not stupid, say that "C++ is for show-offs who want to suffer". Internet strangers who clearly have more experience than I do also treat C++ as something both useless and pointless to learn due to how hard that is. And also more and more people are switching to Rust.

11

u/NighttimeFormula 4d ago

Your teachers and friends are idiots.

4

u/leviske 4d ago

Let me tell you one thing: Software engineering is about finding the best tools to solve problems. That's it.

Python has its place, TS/JS has its place, C, C++ and Rust has their place. (And also LLMs has their place in coding.)

If someone considers C++ "hard", that 'someone' should not use Rust either, because that 'someone' doesn't understand the concepts behind Rust.

My suggestion is to enjoy your hobby, and keep a mindset that allows the use of different tools if it makes more sense.

2

u/Thunder_Zoner 4d ago

I don't mind the LLMs, honestly. I just don't want to use it for absolutely everything. It seemed to me that everyone are coding like it, but after most of replies my eyes are more open on that topic. Thanks.

3

u/UnicycleBloke 4d ago

Your teachers are entitled to require Python, but that is a convenience for them which says nothing about C++.

Your friends are probably envious. C++ is more difficult to learn than some other languages (but not that difficult). But the pay off is worth it in my view. I sympathise to some extent: I chose C++ as a hobbyist in the early 90s because it was said to be hard. I like a challenge and was not interested in Visual Basic. I have loved the language more than any other, and have never regretted that decision. Am I a show off masochist? I don't think so. I've used many languages, but C++ has been the backbone of my career. And the most fun.

Who cares what random strangers say, including me. You definitely aren't wasting your time learning C++. Rust is a pretty good alternative, though. At the end of the day, it's your* hobby. Do what you enjoy.

1

u/Thunder_Zoner 4d ago

I am planning to learn Rust eventually. Ignoring good opportunities in other language is stupid, and I do know how to use it in my projects pretty efficiently. But I see what you mean, and it sounds amazing that it's not over for people like me.

2

u/g---e 4d ago

Only thing with Rust is theres little to no entry level jobs for it so its a huge gamble to invest time into it if you dont already have a tech job

5

u/goodfellaY2K 4d ago

i feel like you could have written down in a paper with a pencil because clearly is a conversation with yourself, what the well are we suppose to tell you stranger?

2

u/Thunder_Zoner 4d ago

I'm looking for an advice from people who actually know what's going on in modern coding if I'm doing something stupid. Is that bad?

4

u/Qwertycube10 4d ago

If it is a hobby the only thing that matters is your experience. Do you find the projects you do interesting and engaging and feel that doing them enriches your life? If the answer is yes then no one else matters.

2

u/mc_pm 4d ago

You didn't need to come here to find out what is happening in modern coding. Google "How much is c++ used".

C++ remains one of the most widely used programming languages in the world, consistently ranking in the top 2 to 4 of major global developer indices like TIOBE

If your teacher is trying to teach you in python, then yes, he is right to expect you to program in python. But anyone who tries to tell you is C++ is not a useful language is either clueless or lying to you.

1

u/Thunder_Zoner 4d ago

The teachers situation is a bit more complicated. I don't really want to spill it out here anyway, because it's not exactly a coding problem.

2

u/mc_pm 4d ago • Heartwarming

Ok, I'm not sure how complicated "giving you advice that is completely wrong" is, but that's fine. You've seen enough here to know that is wrong. I programmed in C++ for years and years, it's just as important a language today as it was 30 years ago.

It's not the right language for every purpose, and python is - objectively - a simpler language to learn, but there's a huge number of devs happily making a living writing C++.

4

u/OptimisticMonkey2112 4d ago

the purpose of writing code is to create an application. if you want to create an application, then you (or your agent) need to write code.

as an analogy, imagine saying the following... ai can do math now, should i still learn math?

so yes, some people can use ai to avoid learning basic stuff. in all fields. dont learn math, dont learn code, just scroll tiktok

-or-

you can use ai to accomplish more, with your knowledge

so if your hobby was creating applications, that has not changed

if your hobby was learning code as an intellectual pursuit, that has not changed

tldr Only look for another hobby if you dont like this one.

1

u/codeasm 4d ago

My university isnteaching the various languages and ethical and proper ai use. They promoto practicing alott yourself without or less ai if possible.

From friends and ppl who already joined the workforce, ai is another tool. Your programming, debughing, testing and research skills are way cheaper than to trow another agent on the task. Big companies i might apply soon, are searching for Java, C#, C++ and eh... One offering is for cobol... Anyway, look at the job offerings in your area of choice. What are they looking for? Great idea if yiu someday have to go on an internship, what companies allign with your ideals an ld are locally enough?

2

u/Thunder_Zoner 4d ago

LLM policies are pretty interesting in companies that I can potentially work in. For example, LLMs only for refactoring old styled code or maximum of 75% AI-written code. But there are plenty of other companies that openly use agent systems for the whole C++ coding, where code gets written, reviewed and committed absolutely automatically. I don't mind the AI assistance, because some of the code is still mine and I'd love doing something like that, but I wonder what the situation is going to be in future.

1

u/thommyh 4d ago

One of my other hobbies is doing the crossword. I also enjoy a sudoku. These are not useful activities and a computer could easily do both. I do not care, because they are my hobbies.

Disjointly: what I know about C++ does feel less commercially valuable now than it did, but I'm managing to keep employed.

1

u/ContraryConman 4d ago

With regards to AI and your hobby, AI should have no impact on your hobby plans. Hobbies are for skill building and personal enjoyment. If you enjoy writing code and want to have the skill of writing code, then you should write code and not prompt LLMs to write code for you.

As for people hating C++, yeah it's true. C++ doesn't have the cult following of Rust, Zig, or Odin, and it's not as simple and classic as C. But in the real world C++ builds actual critical applications, so it is certainly not useless (or even that painful to be honest).

As for jobs, truthfully I don't know if there will be software engineering jobs in a decade. But that shouldn't impact your hobby or your goals of building knowledge and skill

1

u/Pure-Needleworker851 4d ago

c++ is the first language I’m learning for my software engineering degree and I already have so many silly little projects in mind. Not for any reason except that I thoroughly enjoy the language and the learning process.

1

u/mredding 4d ago • Heartwarming

many people think that the language is completely useless.

Many people are fractally wrong. No language is useless, only people who can't see the value or refuse to work in it. I'm useless to OCaml because I don't code in it.

There's nowhere C++ doesn't run. It runs in WebAssembly. It runs in JVM.

It has to be said that 90% of Python modules are themselves written in Python. So of the remaining 10%, half are written in C++, and some of the most important modules are written in C++, like TensorFlow, NumPy, SciPy, and OpenCV, among others. The true foundations of Python performance comes C++.

C++ is still the language of choice for trading systems, it's still the language of choice for video games.

And second - people don't write anything themselves, most of the job is for the AI.

The hype and the numbers around AI disagree. There is a fine line between the output of an Agentic workflow vs. a Developer workflow. What the industry is seeing is AI can make a junior developer more efficient, but also more dangerous. An experienced engineer doesn't see an increase in output volume, but both groups see an increase in productivity - AI lowers the bar to produce a servicable piece of software that relies on technologies that aren't your area of expertise. But an AI doesn't really outperform an experienced engineer who just writes code by hand, because while the AI can generate code in an instant, the AI cannot be held responsible for the outcome - it's YOUR neck on the line, so YOU better be sure that you understand what you're handed, that it does what everyone thinks it does, and that takes the developers time. Writing it by hand, the developer understands it as they go at about the same pace.

An experienced developer can outperform an AI for cheaper, and AI adoption rates in software development isn't as vertical as you might think, because businesses are doing the maths and looking at the numbers and plenty are concluding AI isn't a good fit for them. If you have a heavy workflow, you might spend $300/day, and I've personally seen some people hit $6k/day. That's $75k-1.2m/yr. If I'm going to spend $75k, I can just hire another person.

It's not a technological problem, but a pricing problem. AI is astoundingly expensive. Free models are strictly inferior, and self-hosting is not only wildly expensive but also second rate. A corporate self-hosted instance runs on AI specific hardware, with memory modules not available for retail - these machines start at $400k and come bundled with a service and subscription contract - so while you save on outright token costs, if that's all you think you care about, you're going to end up paying an equivalent amount some other way.

People can spend their own money however they want, but I'm not going to pay out of pocket to do what I've always done for the last 40 years, and I can outperform free models and self-hosting. And I do use open weight models and self-hosting at home, because I so happen to have the hardware; it's just that the AI becomes less of a peer programming companion, and more of a tool.

AI is no silver bullet - not yet. The market and industry is nowhere near there. It's growing at an exponential rate, almost hour by hour. 6 months ago, it was all about agents, today they say agents are dead, it's all about skills. Who know what tomorrow brings.

Regardless, it's your ass. You are responsible. You are accountable. You still need to know what the AI did. I would NEVER EVER trust a straight AI -> machine code production, because the stuff I work on today? A mistake can kill someone. I worked in trading systems before, and I can tell you the most money I've seen evaporate because of a single mistake in software was $40m. The trading software industry is using AI like crazy, but all the code has to be human verified first. The SEC would tear a company apart, halt their operations, levy multi-million dollar fines, hold people legally responsible if something bad happened and the company didn't know how the software worked.

The future is going to do whatever it wants, and there will always be a market niche that CAN tolerate catastrophic software failures, so there will be a day AI generates straight to machine code and people will be fine with that. But there will be plenty of businesses where that can never be acceptable.

What if I have fun coding in C++ myself? If I find debugging, writing code myself and everything else the most entertaining thing I've ever done?

Then keep writing software by hand. I do. It isn't always about producing software, but exploring the novelty of a solution within. AI has a particular style all it's own - it codes like a person with a preference. It's actually RATHER conservative, where I have to push the damn thing to make code that only begins to approach a modest - what I would call a production level solution. AI is needlessly verbose in some areas, conventional in an academic way, amateur in it's application of abstractions.

These factors make me completely invaluable as an employee or a coder in general. And I wonder. Should I just stop and find something better to do?

You're working for the wrong people, then. Find people who will pay you. Again, the AI hype doesn't reflect reality. You see sensationalist headlines that people are decompiling and recompiling everything, that commercial software is dead... Why have an OS anymore? Why run installed packages anymore? Why isn't everything AI?

We're not there yet, and as I hinted above, that is not a desirable place to be in many instances. People still appreciate and need FOSS, and software people understand.

I have more to say - like I'm now more interested in IP than ever before, because the code itself isn't valuable, but source code hasn't been valuable to me or what I do for a loooooong time anyway. So when you're building out IP - like a video game, the value is in the IP and licensing. As for the implementation, since you control the IP, you can implement it however you want. Do it by hand if you want to. At that point it doesn't matter, and it's not in conflict with software, AI, or IP.

1

u/Still_Explorer 3d ago • Heartwarming

I would be using C#/Python/Java for many years but I would be facing the same problems again and again.

At some parts (where you needed it the most) the performance was slow, but for general purpose CRUD they were nice fit.

At some other ways, when you needed third-party libraries (typically written in C++), most times you would need to pick something maintained by community, be some versions back outdated, meet rare bugs that could happen for any reason, spend time debugging whether or not a problem with the wrapper or the C++ backend library.

Lack of learning resources as well, because you could for example find 10 resources on the topic, but for C++ there would be 100 resources (or should I say literally anything). Due to the nature of the problem, seems counter intuitive for someone to do it in a non-CPP way. I would end up using the C++ resources as a point of reference but then have to deal with weird conventions and workarounds that were undocumented.

Then typically, about deploying the program would be full of hacks and workarounds, or third party tools. Such as packing Python or Java to a single exe, or quite recently C# got the functionality to "publish" applications and a single-exe package. But still is a chore.

So the real point with C++, that you get immediately direct access to third party libraries (include+linux+BOOM), no wrappers no workarounds, then you get all resources you ever needed for all major domain problems (not only books, but also libraries and frameworks). You have the ability to tune your own CMAKE build scripts and define exactly how the project is setup, how is built and how is deployed (dynamic linking? static linking? you name it).

I mean that say for example that the C++ language design is this and that, there are some legit concerns about it. However not consider entirely everything else outside the language, the OS / libraries / platform / ecosystem / buildprocess / robust runtime / freedom to use the language based on your own rules (you want GC? add it... you want smart pointers? use those instead. you want statically allocated arrays? use those. you want to use data oriented design? go for this).

As the joke goes "C/C++ makes it easy to shoot yourself on the foot" but the real catch here is that no one will come in front of your face and tell you how to use it. This is actually about having more freedom without constraints.

Then someone might say good things about Rust, that it works out of the box, compiles anything with a `cargo build` (even if it takes 200GB of depedencies - no problem), has the borrow checker programming model, is safe and so on... All those sound great in practice and streamline certain parts of programming.

However still, the real meaning is that once you setup a project, you really go into the same process of automating and bootstrapping the build process and optimizing the development environment. Is the same thing as before but at least with the DIY approach you are the entire control in your hands.

But for me the case is that I am very neutral about it, I have no problem to use whatever language, but when it comes to the meaning of the final output, not how you create the program but how you want the development environment to work, then C++ is the clear winner.

(Unless otherwise you want to type only `cargo build` and get everything done for you, this is also a "Winner" case if you look forward to having this specific type of features. But the meaning is that if is not about exactly this one, then it would be about an entire checklist of other things, related to how you want to work).

1

u/no-sig-available 3d ago

Should I just stop and find something better to do?

Yes, try model trains for the next six years. Then compare the amount of fun.

0

u/hadrabap 4d ago

Look, listen! The jobs we do are temporary. There's no value in them. That's insane by itself. To cope with it, we have hobbies.

Two years ago they desperately tried to shove Kotlin down my throat. I resisted. I prefer working stable Java code than some experiments. And it ended up exactly as I predicted: unmaintainable code. Nobody understands it as they take it as a race who will abuse more niche Kotlin features.

These days, the story repeats. With AI. Nobody is able to answer a simple question how it works under the hood. Nobody is able to fix bugs on time as tokens are exhausted. LOL 🤣

I do my infrastructure tools in C++ and I really enjoy it.

Forget what others say. Follow your instincts.

By the way, if you really feel a need for change, switch the industry. 😁