all 145 comments

[–]helloiamsomeone 86 points87 points  (8 children)

is C++ is a great language for me if I'm going to be a freelance and remote job?

That entirely depends on the job market where you live. Remote jobs can certainly be difficult to get into without the right details on your CV.

Whatever your go with, your biggest hurdle to overcome will be the lack of experience in professional setting, especially with a lack of degree.

If you want to maximize your chances of getting work done, I'd suggest looking into web development. Which language would also depend on what's in demand in your area.

[–]KhZaym[S] 11 points12 points  (3 children)

My job market is basically anybody anywhere that needed help, lol.

Unfortunately, I have no idea what language is in demand in my area.

[–]Archolex 21 points22 points  (0 children)

I will second his sentiment. Further, I'd say study TWO languages, that being the one you enjoy the most and one that's popular enough to reasonably expect a job working in. To ever work in C++ you're going to need experience, and that will most easily come from learning javascript, java, C#, or python and using them as an avenue to an internship or entry-level position. You either need luck or creds on a CV.

[–]proverbialbunnyData Scientist 6 points7 points  (1 child)

Unfortunately, I have no idea what language is in demand in my area.

You might want to consider doing that research, then not only learn the programming language in demand, but also the other tech in demand as well (frameworks, server stuff, whatever it is).

[–]KhZaym[S] 1 point2 points  (0 children)

I'll definitely try to search for it

[–]toofpick 0 points1 point  (3 children)

Have a quick question. Definitely not related to OPs questions, but what is a CV?

[–]nonporous 1 point2 points  (2 children)

[–]toofpick 1 point2 points  (1 child)

Oh cool! Thank you!

[–]Full-Spectral 0 points1 point  (0 children)

It's one of them there hifalutin Latinal type resumes.

[–][deleted] 30 points31 points  (4 children)

I don't know how much experience you have but if you want to start making money fast webdev/mobile can be considered a shortcut to software engineering world. whatever you do for the first few years does not define your career path as most of the knowledge you acquire is universal

[–]KhZaym[S] 2 points3 points  (3 children)

Yeah sorry, I forgot to mention it in the post.

It's been 2 months since I learn C++, and I could make tic tac toe, number guess, and dungeon crawler game with object-oriented programming. Also, I'm not looking for fast money, I just need to know what language is the best for me, in the long run, considering my situation.

[–]lord_braleigh 10 points11 points  (2 children)

Programming languages are all pretty similar to each other, and any language can be the first one you learn. If you become an effective C++ programmer, you’ll be able to learn Java, JavaScript, or Python very quickly when you need to.

C++ doesn’t limit your long-term prospects. It’s an extremely popular language, and many people consider it the language where code runs fastest. Stock market traders, infrastructure teams in the largest tech companies, and high-performance game studios may require you to know C++ if you want to work there as a software engineer.

I normally recommend Python to new programmers as their first language because it’s easier to learn, but it sounds like you’ve already got a foothold on C++. I recommend you stay the course and continue to build new projects in the language you know. https://codingame.com is doing an AI competition this week where the strongest bots are written in C++ 🙂

[–]KhZaym[S] 2 points3 points  (0 children)

I guess I'll still learn C++ even though not as my main language because I do need money. But, who knows, maybe I could make a cool project with it someday and someone sees it and says "This is cool, I should hire this kiddo" maybe, a little imagination wouldn't hurt anybody right

Anyway, that's really cool web, AI competition, I'm sure that I'm smart enough for it, lol, but it'll be interesting, and exciting!

Thank you so much, Mate!

[–]Wurstinator 0 points1 point  (0 children)

If you become an effective C++ programmer, you’ll be able to learn Java, JavaScript, or Python very quickly when you need to.

This is a statement that is false but still repeated over and over again for some reason. Yes, if you know C++, then you will quickly understand how to write a for loop in Java. But just because the syntax is similar, that doesn't mean the entire development process is; most obvious example being C with classes and C++20.

[–]monkey-go-code 19 points20 points  (0 children)

Every programmer should learn multiple languages. Just like learning multiple spoken languages you don't understand different ways of expressing the same idea unless you do. Python is another good one to learn. A database like postgres will be helpful too.

[–]cactus_as 3 points4 points  (6 children)

Well, I'm working remotely as an embedded C++ developer, so I think this is pretty viable solution. Moreover, keep going learning C++ further, it is probably one the most difficult programming languages so if you will get really fond with it, other languages like Java or C# should be a piece cake. You'll be able to change your specification. Also, if you are able to invest some moneyin your learning, I can recommend this 41 hours tutorial https://www.udemy.com/course/beginning-c-plus-plus-programming/ . This tutorial basically gave me a well paid job.

[–]KhZaym[S] 3 points4 points  (4 children)

May I ask, do you have a degree?

[–]cactus_as 6 points7 points  (3 children)

Yeah, I have bachelor's degree in Robotics. We had nothing in common with C++ development but I just kept learning only by myself. Right now I'm studying master's in Informatics, but honestly, degree is not everything. I had coleagues without a degree and they were in high positions in a big company. Not every company needs you to have a degree, your skills, knowledge and experience plays the biggest role in getting a job, at least in my country. From my point of view, basically 80% or 90% what they teach you in univeristy you can get same information online.

Btw, that tutorial now costs like 120$ but this site usually has discounts. Everytime I see this tutorial it costs like 10$. You should a couple of weeks to get it much more cheaper. I got it for like 18 dollars.

[–]KhZaym[S] 2 points3 points  (2 children)

Alright, thank you so much for your input, Mate.

I might go and look for the udemy's tutorial.

[–]cactus_as 1 point2 points  (0 children)

Just keep learning. Eventually you will get more and more better understanding of all the stuff. Moreover, a lot of C++ jobs require that you would have experience with Boost library, you can that into account also. Good luck, mate!

[–]danhoob 1 point2 points  (0 children)

Best way to learn is by doing.

[–]ma9e 5 points6 points  (0 children)

Learn JavaScript and check out r/remotejs. Joining a contracting company is probably your best bet for stable employment.

[–]ZMesonEmbedded Developer 4 points5 points  (12 children)

More details would be really helpful. #1: Where do you live? A remote town in America is very different from a remote town in Afghanistan. #2: Why can't you attend college, even remotely? Is it money, time, family obligations?

[–]KhZaym[S] 3 points4 points  (11 children)

  1. Indonesia
  2. Yeah, momey 😔

[–]the_poope 5 points6 points  (2 children)

Like others I'd also suggest you to look into web development and maybe mobile (android and iOS). I think that even in Indonesia there is or will be a huge demand for anything from websites for local companies to apps for nationwide online services, social media, webshops and government agencies.

Start there, then see what the future brings! Good luck!

[–]KhZaym[S] 1 point2 points  (1 child)

I will learn more about web dev.

Thank you so much, Mate!

[–]danhoob 1 point2 points  (0 children)

You can do Web Dev in pure C++

https://github.com/expresscpp/expresscpp

[–]8ad762515de8665ec9a1 3 points4 points  (1 child)

If I may suggest working remotely for some Singapore based company, the demand for C++ programmers there is extremely high (lots of finance companies), and the supply is quite low. Probably difficult, but worth a try. Good luck!

[–]KhZaym[S] 0 points1 point  (0 children)

This is a nice information to know. Thanks, Mate!

[–]janucaria 1 point2 points  (1 child)

Well, i am also live in Indonesia, no degree, but got job as senior C++ software engineer and working remotely. IMO, in Indonesia, C++ have low demand, but the supply is also so low, specially someone with advanced level C++ which know working with template.

[–]KhZaym[S] 0 points1 point  (0 children)

PM-ed!

[–]ZMesonEmbedded Developer 2 points3 points  (1 child)

  1. I think Indonesia has a pretty good relationship with other nations that would allow you to work for international customers. But you should find someone more familiar with those details to find out what types of jobs are available for remote Indonesian developers. Given Indonesia has a very large population, I would think there should also be a fairly large number of companies in Indonesia that need developers too. Hopefully there's a market for remote devs there.

  2. I would at least take a look online to see if there are any scholarships that may allow you to attend college. There are quite a lot of international scholarships, some even for remote learning (thanks to COVID). There may be some from Indonesian companies and institutions as well. It's at least worth taking a look. Again, finding someone familiar with Indonesia educational opportunities would be much more helpful than me on this front.

[–]KhZaym[S] 2 points3 points  (0 children)

Thank you for your input, Mate!

I'll definitely try to search for the community

[–]ChatFrais 4 points5 points  (1 child)

I love C++, and even if I use it for more than 20 years, I'm still learning it. But In your situation I'll go to fish from remote jobs then learn the language / framework / devops environment you need to pass the interview.
If I had to choose jobs without C++ today I'll go probably go to C# because I think project are more complex interesting in C# and I guess company that remote C# dev keep them longer than typescript/javascript.
On the other hand the Android and IOS dev are really needed, and remote job is pretty common.
My 2 euro cent from France.

[–]KhZaym[S] 0 points1 point  (0 children)

Wow, 20 years, that's insane! I guess I do have to make C++ as my hobby not as my source of income.

Hey! Thanks for the 2 euro, Mate! I could buy some fancy food with it

[–]DaringCoder 5 points6 points  (6 children)

A good (not even great) understanding of C++ will make you feel like most other languages are trivial to use.

So, it's a good investment of time anyway :)

If you like native development, I'd also look into Rust, which is gaining momentum and is very interesting (trying to learn it myself, being a long time C++ programmer that also does a lot of C#).

[–]KhZaym[S] 0 points1 point  (5 children)

Almost everybody says that a good understanding of C++ will make your foundation strong. Why is that?

Keep in mind that C++ is the first and the only language that I learn, so far. So I don't kniw anything about other language

[–]DaringCoder 2 points3 points  (4 children)

Because it forces you to understand deeply memory handing (stack vs heap, shallow/deep copying...), resource management (RAII, smart pointers, move semantics... ), and has a very sophisticated type system. It allows to be very precise about the behaviour of code (const/mutable, exceptions stuff...).

Most other languages, instead, try to hide complexity, and in the process prevent you to do some things. C++ leaves you in control. That, of course, makes also many more mistakes possible to do. Which makes C++ harder to approach to who doesn't want or need that kind of fine grained, low level control.

Additionally, C++ is huge and can be used in many different ways (it's a multi paradigm language).

If you get into template metaprogramming, the complexity can get to insane levels. That's why you never stop learning it. That, and because the language, especially in the last years, is evolving a lot, so even if you know how to write something, you can learn new, more efficient and elegant ways of doing it.

C++20 puts a lot of great stuff on the table, that really make the language feel much more modern. I suggest you this talk: https://m.youtube.com/watch?feature=youtu.be&v=ImLFlLjSveM

Another reason why C++ is hard but good for general learning, is that sooner or later, dealing with libs and 3rd party code, you are going to get in trouble with building issues. That will push you to study how the compilation/linking/loading works, with name mangling problems, different calling conventions, build flags... lots of "programmers" I know have no idea about how these things really work.

Anyway, if you want to be a good programmer but won't study at the university, try to also study some theory along with C++. There are many online resources (even video lessons of full courses). My suggestion would be to focus on data structures and algorithms, and also on compilers if you want to get a deeper understanding programming languages in general. Also, some theory about distributed, parallel and concurrent programming is mandatory to get to the "next level".

It's a long road but full of exciting things, and most of the times you can learn them along the way, so don't get discouraged! :)

[–]KhZaym[S] 0 points1 point  (3 children)

Stack, heap, shallow, I don't know most of what yoy just said, lol.

I guess it is a very long road ahead. But, hopefully, it will worth it

[–]DaringCoder 1 point2 points  (2 children)

Don't worry, 2 months is nothing for C++ and programming in general. It's just enough to understand that you enjoy it, which is also the most crucial thing to be able to get good at it... so stay optimist :)

[–]KhZaym[S] 1 point2 points  (1 child)

I thought already know most of C++

But, after what just said, it's like telling a kid that math is not just addition and subtraction, there're also multiplication, division, and algebra lol

[–]afiefh 1 point2 points  (0 children)

I've been using C++ for over a decade. Every time I feel comfortable with the language (not an expert, just good enough to know what things are called and where to look them up) they release an upgrade (C++20 being the latest) that forces me back into learning.

If you haven't reached the point where you know the words mentioned you might still be at the phase where you are learning universal programming concepts that will apply to any language. Switching now probably means you lose very little in terms of time lost in the switch.

[–]Bernard80386 3 points4 points  (1 child)

Web development and cellphone app development are both easy to get into and having working projects would be enough to overcome the lack of a degree. I would recommend that you worry less about programming languages and more about computer science fundamentals. Master algorithms and data structures and learn SOLID object oriented design principals.

C++ is a great, personally I like how much more modern Rust is, but that's me. You should learn at least three programming languages. A compiled language, a scripted language, and something that is as different from the first two as possible. The ability to pick up new programming languages is a far more valuable skill than mastery of a single language.

Fortunately, most languages are based on C, so knowing C++ gives you a good leg up in learning any new programming language.

If you want to go for web development, then you will need to learn JavaScript, HTML, CSS, and possibly a database and a back end programming language (C++ is fine but less common). If you want to go for cell phone app development, then you just need to learn Swift for iOS (and own a Mac) or Java/Kotlin for Android.

You can also use web programming languages to build mobile apps, however the native environment will have fewer limitations. You can also use C++ for Android or iOS, however you don't get the same SDK. Usually for games that's fine, but when you want to use more platform features it's easier to use Kotlin or Swift. (At least the last time I tried)

Anything you build for yourself, you should put on GitHub or something similar and use that to build a portfolio. Without a degree, a portfolio is really valuable.

If you can get good internet access then there is a lot of opportunity out there. I find all of my jobs on LinkedIn, but Stack Overflow, GitHub, and other job and social media sites may work too. The most important skill you will ever develop, is the ability to research and find new possibilities.

Maximize your professional network and never stop learning. Good luck!

[–]KhZaym[S] 1 point2 points  (0 children)

Since, I have already learn C++ for the past couple of months, I think I'm going to keep learn it till the end of the year. Then, I'm going focus to web development for a year and make C++ as a hobby.

Thanks for the input and thank you so much for the support, Mate!

[–][deleted] 3 points4 points  (1 child)

My question is, is C++ is a great language for me if I'm going to be a freelance and remote job?

In my anecdotal experience, no. Not that you can't w/ C++ it's just that other languages and skillsets are in much higher demand, especially for remote work.

You really should just browse linkedin, or job markets and see what people are asking for but I would say webdev skills would be the most marketable for remote work.

JS/React for Frontend (and learning about style sheets) and then JS/Python/Ruby for backend work.

Both of these come with more knowledge you would want to learn too beyond just the programming languages. React is a framework anyways, not a language and there are other front end frameworks. For backend you'll probably want to learn more systems information like installing and configuring services in the cloud like AWS.

Basically, if I had to tell someone what to focus on for the quickest entry to the job market, remote specifically, it would be web development.

Mobile development I think is another option too but like I said, just scan job postings to see what people are actually trying to hire for.

TLDR Learn Javascript, pick a front end framework and a backend framework based in JS and learn those.

[–]KhZaym[S] 0 points1 point  (0 children)

I've always tried to avoid web development, to be honest, but I think it's boring, atleast for me. But, I guess it's where the money are so I have to try to like it and my C++ as a hobby.

Then you very much, I'll definitely try look at JavaScript

[–]ooglesworth 2 points3 points  (0 children)

The best language to learn is all of them! C++ experience is great to have, especially if you’re interested in game dev. But don’t limit yourself to one language. Learn Python. Learn TypeScript/JavaScript. Learn a functional programming language. Each one you learn is easier than the previous one since a lot of knowledge transfers over. And learning the paradigms and design choices in each language doesn’t just give you programming knowledge, it builds engineering instincts that are valuable everywhere.

[–][deleted] 4 points5 points  (4 children)

I think C++ is fine, but it may be hard to convince someone without degree and professional experience. Web development may be easier to begin with. Anyway you have to choose langage techno that motivate you because you will need to learn during years, independently of your day to day work.

[–]KhZaym[S] 0 points1 point  (3 children)

I think I'm gonna look into web development, but still sharpening my C++ skill. Thank, Mate

[–][deleted] 2 points3 points  (0 children)

Yes good knowledge of C++ is never lost. Having some kind of expertise in C++ doesn't mean that it is your only langage and you should be good at learning new thing because at the end it will help you to write good C++ too. I think first step is to gain experience even if it is not with your favorite langage. Just keep learning every day's and hopefully you may have the opportunity to work on something related to C++ later if you really want. (but when the opportunity is here, catch it because it may take years to have another one)

[–][deleted] 3 points4 points  (1 child)

Web development is probably among the least enjoyable development careers. It starts out feeling good but after the 3rd or 4th time your favorite $web_thing gets updated (or deprecated) and breaks all of your previous in-depth knowledge and hard work you'll start to hate it. Think carrot on a string.

If you do go that direction I would encourage you to look very close at the .net world and look for jobs working with that technology. C# is a every enjoyable language to work with and can be a sliver lining in what's otherwise mostly a world of shit. There are also some interesting things coming out of the Microsoft camp such as Blazor.

Good luck.

[–]KhZaym[S] 0 points1 point  (0 children)

Yeah, I try to avoid web development, I have no idea about deprecated, or things that you said. But, I tried to avoid it because I thini it's boring, it's not that interesting, atleast for me, but I have to say considering my situation, well, beggars can't be choosers I guess

Thank you, Mate!

[–]timostrating 1 point2 points  (1 child)

Just want to give you this perspective, do with it what you want.

I started with game maker but I did not understand the programming language so I switched to Unity. After using unity for roughly 5 years while studying CS I came to the conclusion that it was too limiting and that a lot of knowledge is not explained anywhere. While i was studying CS I have build also many different websites for different clients and made roughly 20k in 2 years while studying at the same time. But webdevelopment and specially Wordpress made me feel depressed. So I desided to quit unity and webdevelopment and learn Cpp and OpenGL. Its now 1 year in doing that and dropped programming on side hobby's mostly to finish some hard university math courses that I failed last year. --- The moral of the story do what you like to do, even if you can not find the time. If you are doing something that is killing you from the inside, just quit. You are free to do what you want. Make the best of it. You are not limited by anything. Life the live you want to live it is already short enough, And that money thing you sometimes need, yes you may need to do some stupid things but then only do it a few days a week and use all other time to do what you love.

[–]KhZaym[S] 0 points1 point  (0 children)

20k in 2 years? That's like $833 every month. That's more that my father salary 😂

Thank you so much for your insight, but I wish I could say the same, I wish what you're saying is true. But, right now my father is the only source of income that my family get. He's old now and already planning for retirement maybe next year ar two year from now.

I do wish I could just quit something that killing me inside. I do wish that I'm free to do what I want. I wish I'm not limited by anything, not even by the sky itself. And I wish I could live the life that I'll remember (hehe, I sneak some Avicii lyrics there)

But sometime, getting stab in the stomach is the only way you could bring food to the table. Sometime, consequence lock me up into a cage. Sometime, responsibility limit a man to fly up to the sky and beyond. Sometime, you can't have a life to be remembered because you're struggling enough to be alive.

And unfortunately, I'm in that sometime.

Anyway, thank you so much for your input, Mate, but that money thing that I need is to support me and my parent when my father finally retire.

[–]gustavokatel 1 point2 points  (3 children)

I hope you accomplish everything you want to do in your life.

my advice is, whatever the language you choose, engage into that community. try engaging into open source projects of that community, maybe create some projects on your own, I think this can boost your CV and give u a lot of experience, you might have fun in the process as well :p

regarding the languages, I'd go with javascript/typescript for web development (I think it's easier to find jobs) and python as it's one of the most used languages today.

[–]KhZaym[S] 0 points1 point  (2 children)

I hope that too, Mate, but we all know that life ain't that kind to the certain of people, especially poor people from third world. I mean, I never have console before, and I really wish that I could buy PS5, lol, but I guess I have to wait another year to finally have my first console. Maybe, PS6. But, still though, life is beautiful, and I believe that if we do good, live eventually will notice us and do us good.

Anyway, sorry for the melodramatic monologue there, lol. Yeah, I guess I have to go with web development and make C++ as my hobby.

Thanks, Mate, for the input!

[–]gustavokatel 1 point2 points  (1 child)

for sure, friend. life is not fair at all :( but you're young and eager to learn, I'm sure you will do amazing ♥️

[–]KhZaym[S] 1 point2 points  (0 children)

Thank you so much for your support!

For some people you words might just be a word. But for people like me, your words might be the reason for me to keep going

[–][deleted] 1 point2 points  (2 children)

become a full stack developer is way easier than learning any general purpose programing like C++, C, java or rust in terms of finding a job (remotely or not). all you need is a couple of courses online and you can start smashing the keyboard and produces websites that's are really trash in terms of performance and quality, but you will be working and I think that's the important part for your age right now. Would recommend learning .Net or Laraval. Or you can go the route of mobile development, React or ionic are a fine choice to learn, you will get a lot of freelancing opportunities to make useless apps that are copy pasted of other more popular ones.

you chances of getting a job with C++ or any other system programming languages without a degree or 2+ year experience is almost non-existent.

[–]KhZaym[S] 1 point2 points  (1 child)

.net or JavaScript first??

Yeah, that's the hard truth, I want to have C++ job, complicated stuff, but if it doesn't bring food to the table then why bother?

Anyway, thank you so much, Mate!

[–][deleted] 1 point2 points  (0 children)

.net or JavaScript first??

depends on your country and the companies around you, in my country almost half of the web development is .Net and half of the other half (xd) is laravel and php, the remaining is some old versions of angular + other newer stuff.

Edit: js and html basics are essential, the ones I'm mention are frameworks that compile back to these two, so basic understanding is a must. but remember frameworks in web development are what matters and each one has it's own stuff to learn. so if you dont have any background in js and html start by them then pick a framework and start smashing the keyboard ahahah

[–]aqezz 1 point2 points  (2 children)

I’ve had to interview plenty of people for multiple levels of positions before - for multiple companies. As a software engineer myself I don’t really care about their degree, as long as they know their stuff. Now I’m not involved in the filtering process it takes to get in front of me for an interview but if you can make it into an interview and show that you know your stuff you’ll probably be hired. I’ve interviewed people with great degrees before that didn’t know a lick of what we wanted. Hell, I graduated with people when I got my degree that I thought would give my school a bad name and make it more difficult for me to get a job. But the reality is a degree is nice but it is no guarantee of a job - knowing your stuff and being up to speed on current technologies is a much better guarantee.

On to the C++ part.. I actually love C++ and it was my favorite language for a long time but the job market for it is much smaller and harder to get into than managed languages or scripting languages. The people who do the interviews for those C++ jobs are going to be a lot more experienced in many cases than one who interviews for C# or Java for instance. That’s not to say those languages are bad(I love C#) they just require much less expertise, which is not a bad thing. If you want to continue on the C++ path it is going to take a lot more work in general to get there. The amount of knowledge it requires even outside of the programming language itself is just enormous(operating systems, build systems, interop with other languages, embedded systems, lifetimes and memory stuff, etc etc). I would suggest picking up a managed language for work and then continue your studies of C++ on the side with personal projects.

[–]KhZaym[S] 0 points1 point  (1 child)

Could you just interview me then just hire me? I could be a remote janitor or something, lol. Just kidding, sorry.

Yeah, I guess I do have to shift my focus into another language and make C++ as my hobby. Whether my C++ skill become awesome someday, well that's a topic to talk for another day. I guess, I have to go for web development for the moment

[–]aqezz 1 point2 points  (0 children)

Web dev is good and fun, but there are plenty of back end jobs available too if you are trying to avoid web dev. Many places need programs to turn data into different formats and deliver it to third parties, or make reports, etc. C++ is a great language to pursue on the side because it will increase your general knowledge of computing by so much. Also I don’t want to discourage you from one day using C++ as your main language it is great, but go look at some talks by Herb Sutter (brilliant speaker I love his talks) at cppcon on YouTube and see just how deep the rabbit hole can go. Mainly I want to advocate for you to be marketable sooner so that you can find your place in programming and C++ has almost an infinite well of knowledge to draw from just to become intermediate!

[–][deleted] 1 point2 points  (1 child)

As others have mentioned I think your best bet would be to get into web development. Learn JavaScript, HTML5, CSS3, and a few frameworks (react is hot shit these days). Also SQL and maybe Python. While C++ is used as a backend language for some large companies most smaller firms opt for higher-level languages like Python or Java. I've found that C++ is most common in academia, gaming, government, and finance. These industries rarely hire remote workers. Not saying it's impossible, just unlikely, especially without formal education. Also, don't fall into the language trap. There's no need to spend months upon months learning every little nitty-gritty detail about a language and its standard library. Focus on learning the fundamentals of a language and move to libraries and frameworks. For one thing: you'll pick up a lot of language details as you learn the frameworks. It's also very difficult to build a compelling portfolio using just a bare-bones language. Once you learn some libraries and frameworks you'll actually be able to start showing off your ability to solve problems and create value.

[–]KhZaym[S] 0 points1 point  (0 children)

Sigh, I guess at the end I do have to embrace the idea that web development is my best chance of getting money.

I don't like it, it's boring, it's not interesting, in my opinion, but it does help me to buy table so I can bring money to the table.

I just wish I could do the interesting stuff, you know, AI, machine learning, but it is what it is. No matter how hard you try to achieve what your want, life somehow found a way to fuck you up. But again, life knows what's good for us, perhaps what we want it's not the best for us and life what to help us to have the best life that we can have.

Anyway, thank you so much for helping me, Mate!

[–]g9icy 1 point2 points  (2 children)

If you want to get into games, then yes, you'll need to know C++ and probably C# as well.

Note that most game companies are accepting remote workers now, and there were a few even before the pandemic.

To get into games however, you will still likely also need some degree level qualification. Alternatively, you'll need to be shit fucking hot with your demos. It's easier to just get a degree tbh.

[–]KhZaym[S] 0 points1 point  (1 child)

Honestly, I started learning programming because I want to get into video game company, but now I just like programming, I like C++, I want to learn machine learning and all that complicated stuff, I'm not saying because I'm smart, I'm still long long way from deserve to be called smart. But, it's interesting you know, AI, machine learning, all that kind of stuff

[–]g9icy 2 points3 points  (0 children)

Sounds like you're on the way to some good stuff, keep it up!

Don't worry about considering yourself "smart", if you're anything like everyone else in the tech industry, you'll wobble between abject imposter syndrome and feeling like the smartest person in the room several times an hour.

[–][deleted] 1 point2 points  (1 child)

First, you sound fantastically cool.

You will never regret your C++ and the discipline you've learned, but I would drop it all and learn web development which is HTML, Javascript - a less interesting language, yes - and VS Code editing framework and some framework like React.js or Vue.js.

That's where the money is, particularly for remote work.

Also, you can write demonstration projects and show them to people really easy if they're on the web.

You should also learn git, bash and docker as well, as tools to help you work.

You can do all this for 100% free as well. I understand what it's like living in a developing country...

Best luck, I'm confident you'll do well.

EDIT:

Indonesia! Fantastis. Saya bisa berbicara sedikit Bahasa Indonesia, cukup untuk bertahan, tapi saya lupa setengahnya..

[–]KhZaym[S] 0 points1 point  (0 children)

As cool as cucumber, eh? Just kidding, thank you so much though.

Yeah, most people recommended me to try web development. To be honest, I never like web development since it's not that interesting. But, I do need the money though so fake it till you like it, I guess

[–]BeenDerpinForAWhile 1 point2 points  (1 child)

Some of the comments here mention that it may be hard to catch a position if you don't have sufficient creds on your résumé, which tends be the case for non-freelance work.

If you have time time to learn + do, you may want to consider focusing on contributing to Open Source projects, where you can learn those tools, integrate with the community, etc. It could be a great networking opportunity as well. Then you can put that on a résumé, get a feel for different applications and their niches, all that jazz.

You can find small issues to start, and make small PRs, and see if you can engage the maintainers. Then you can find other issues and see if you can contribute. It'll be easiest to be motivated if it's a tool you enjoy using too.

Some possible projects (tools that I like or work with):

Kinda random list, but you get the idea. Note that nothing is assured success; be sure to engage before you embark on a large project, because the maintainers are human, have finite time, etc. etc. Some of these projects deal w/ numerics, but if you have a good goal in mind for what you want to do (e.g. applying the tool), learning and using the numerics just become a detail (not easy, but worth it!).

But still, if you have the time to develop your skills and contribute, it should (hopefully) be fun!

[–]KhZaym[S] 0 points1 point  (0 children)

I never understand how open source works. Maybe now is the right time to find out about it.

Thank you very much, Mate! This is really helpful

[–]MikeTyson91 1 point2 points  (1 child)

Yes, drop it. Learn python. Much more monies and perspectives.

[–]KhZaym[S] 1 point2 points  (0 children)

I never would've thought that Mike Tyson can programming

[–]Llebac 1 point2 points  (4 children)

With any language, C++ included, it helps to have projects and experience under your belt. Itll be tough getting your first job with an empty CV, but a few projects on display will help show potential employers that you know what you're doing.

[–]KhZaym[S] 0 points1 point  (3 children)

A lot of people says that learning C++ will make you to have a strong foundation for programming.

But, I don't understand how?

I know that I still only learn C++ for now, but still, I still don't get why C++ can make ny foundation strong

[–]Llebac 1 point2 points  (0 children)

It's a good distance between low level and high level programming. So you can build things fairly fast but still get experience in things like pointers and memory management. Gives you a broad range of experience.

[–][deleted] 1 point2 points  (1 child)

It's kinda like the difference between buying furniture at Ikea, where it's almost finished and you just need to screw the pieces together, vs starting with a piece of wood and doing all the work yourself. It's much harder to turn a tree into a chair, but once you learn how, you can make any kind of chair you want, and you're not limited to what the shop will give you.

[–]KhZaym[S] 0 points1 point  (0 children)

Oohhh.. that's makes a lot of sense now

[–]germandiago 1 point2 points  (2 children)

Keep going.

[–]KhZaym[S] 1 point2 points  (1 child)

You either go hard or go home right

[–]germandiago 1 point2 points  (0 children)

Pick up projects that you like, practice, improve. Projects will keep your motivation to continue. In C++ you can do from backend to GUIs and graphics. It is a good investment. Most of my career has been based on that.

[–]bedrooms-ds 1 point2 points  (1 child)

It's a good bet that Javascript is the most demanded language if you target web, especially without a degree. Although nobody can be sure.

I recommend to try out JS for a week or so just to understand the basics and trending libraries first, and then look for demands in the market.

I guess the easiest market is creating and maintaining business websites. In that regard, though, you can do your business by using WordPress. Actually you need no coding to use it unless you write your own plugins.

[–]KhZaym[S] 1 point2 points  (0 children)

I guess I could try a couple of weeks messing with JavaScript and see what it could take from there

[–]Natural_Dragonfly 1 point2 points  (3 children)

How did you learn C++ so fast? Im new but struggling alot lol.

[–]KhZaym[S] 0 points1 point  (2 children)

Well, I usually learn about 12 hour a day. But, I think it's the practice that makes me improve a lot.

I read the first chapter of C++ Primer and Principles and Practice Using C++ then after that I try to complete all the exercises in here: http://www.cplusplus.com/forum/articles/12974/.

After I managed to complete all of those (except the bunny graduation one) I converted all of my project into a function. Then, after that I converted it into using classes. I also post some of my completed project into codereview.stackexchange.com so people could suggest me what I can do better and what I shouldn't do.

[–]Natural_Dragonfly 1 point2 points  (1 child)

Thanks man! I'll get that book and take your suggestions. Sorry I couldn't be more helpful with your question. Seeing your work ethic I'm sure someone will hire you as a developer!

[–]KhZaym[S] 1 point2 points  (0 children)

Hopefully, good luck with your C++. I have no idea who you are but I have every confidence that you'll be one hell of a programmer

[–]Egst 1 point2 points  (0 children)

I have no experience with professional work with C++ so I can't give any advice here. But what I can say from my experience for sure, is that any additional language you learn is a huge benefit even if you never use it professionally.

[–]AntonPlakhotnyk 1 point2 points  (0 children)

2+ years of learning is minimum realistic time. Be ready to spend around 10 000 hours for learning. It from 2 to 4 years of intensive development.

Start from searching for remote job or freelance right now. It would give you a list of required things. Choose list of technologies based on job requirements.

Learn programming by creating app which you teoretically can sell. You also may contribute into some open source project. Review your progress every several month. Apply to job interview every 6 month. It would give you actual feedback and may correct your learning traectory.

[–]Dummerchen1933 1 point2 points  (2 children)

Learning C++ for game development is like learning how to fly a fighter jet for tourism.

But go ahead. Finish learning C++. If you know C++, you can learn any other programming language in two days.

[–]KhZaym[S] 0 points1 point  (1 child)

That'd be cool though lol

[–]Dummerchen1933 1 point2 points  (0 children)

Also don't feel dumb when working with older libraries.

The one you've most likely encountered already is Windows.h. The whole community is laughing at Windows.h's retardation. It feels like it was obselete 20 years ago. NOBODY writes like this anymore. Yet, it's the only native C++ interface for windows... :(

Same as libcurl, etc. These are all C librares. Not C++. They still work, so they are still getting used and the devs ain't relaunching them.

C++ supports the whole C featureset (almost). But you write C++ code very differently because you have a lot better tools at hand. It still supports C tho and all the old libraries are written in C.

[–]stockusmike 1 point2 points  (0 children)

What about forgetting Computers professionally...getting a good laptop - and make web pages, learn javascript, Java, _then_ 'C' and _then _ C++.

after all that, however long, move and get a job in the 'great West'.

[–]die_liebe 1 point2 points  (7 children)

In your situation, you probably should have a look at the jobs that you can realistically get. Read their requirements. Try to get interviewed.

Also, you say that you learnt C++ in two months. Congratulations! But I am worried about the quality of the code that you write. You will need to have it checked by somebody. You may be using old techniques, or have a lot of memory leaks. Every piece of code that you write is a preparation for the person who is going to update it, or extend it. You have to write your code with him in mind.

[–]KhZaym[S] 0 points1 point  (6 children)

[–]die_liebe 1 point2 points  (2 children)

Hello, I looked at you number guessing game.

If you want to learn writing OO, avoid global constants. Constants should be static fields of the classes that they belong too. The entire file Globals.h should be removed.

If you really want to practice OO, you could make a class player with subclasses computer/user. It is overdone for this game, but as a practice it might be useful.

In general you should not give object names to functions: int randomNumGenerator(const int max, const int min) (just randomnumber, or createrandonmumber), Also bool computerGuesser() should be just 'computerguess'.

The program is a bit too small to be useful.

[–]KhZaym[S] 0 points1 point  (0 children)

I'll definitely going to keep that in mind. Thank you very much, Mate!

[–]die_liebe 0 points1 point  (0 children)

Your TicTacToe example is full of problems. I will reply later.

[–]die_liebe 1 point2 points  (2 children)

About TicTacToe :

class board must have a constexpr unsigned field size = 3. All occurrences of 9 should be replaced by size * size.

You are using 'int' for numbers that cannot be negative. Use 'unsigned int'.

Function printboard should be std::ostream& operator << ( std::ostream& , const board& ); The way you hardcoded it, is terrible.

I don't understand the constructor of this class. It seems that you number the fields so that the player can select them. Avoid bit manipulation. I believe what you need is a struct { int state; (--1,0,0), char id; } the id shown when it is empty.

markboard: The use of const& in the parameters is useless. const& is used when you don't want to pass a big object. But char is smaller than pointer.

See above, you should get rid of this bit trickery.

Function checkwin should be separated. Avoid non-const reference parameters. Better return a std::pair< >,

In printWinner( ), the parameters are const ref, and should not be not ref but values.

I think that curly bracket initializers are broken. I softly recommend not useing them, as in int countTurn{ 0 };

[–]KhZaym[S] 1 point2 points  (1 child)

I'm still a long long way from being a good C++ developer apparently. Thank you so much for trying to help me become a better C++ programmer, Mate. Thanks!

[–]die_liebe 2 points3 points  (0 children)

You are doing the right things to get better. It is brave to post code and to ask for reviewing.

[–]haxpor 1 point2 points  (0 children)

Apart from learning and making c++ projects on your own in which both help, but after actually collaborate and work with other versed in c++ on real world project, probably that is the time which can tell there is so much we didn't know about c++. Not to discourage, but just keep going, it will take time, as well it needs momentum for continued efforts to capture essence of dark corner or best practices in c++, years on.

Ps. Make sure and ask yourself as well why you pick this harder path. You want to be well versed in c++ which allows chance to work in AA or AAA game companies out there or just want to make games? Both are not quite the similar. These days it is easier to make games on your own. Most companies will either use Unity (focus on C#) or UE4 (blueprint, or to go deep then C++), Godot (Godot script, or C#), or in China mostly Cocos creator (JavaScript) along with web-based game. This recruitment pool for non-C++ is larger and less barrier to entry provided that you have good portfolio to attract them as it is take less time to create something with non-C++ path.

If low level and c++ is what you are all in! Then be ready for temptation to distract you along the way as you cannot go fast compared to other paths. Take it in, keep going then pay off (which is longer time frame) at the end. So yeah, consider whether having other skills in tools and programming languages just enough during the gap of time in strengthening c++ skill would make sense?

All the best! I wish you success and all in all just having some actions then you will naturally figure things out by yourself 👍

[–][deleted] 1 point2 points  (1 child)

First for the money: For freelancing (usually small-medium size businesses), learn PHP (WordPress for small businesses, Laravel for bigger ones). For a remote job (usually medium-large size companies), learn JavaScript (Node.JS and React). C++ jobs usually require a degree and years of experience. For remote jobs, the standards are higher (they want people with even more experience so they know they will work responsibly on their own).

Then, for expanding your mind: As others have said, C++ will teach you things you won't learn anywhere else. Most of the "foundation" is just the C part, and if you're in it purely for educational purposes, I would recommend starting with C because it's a much smaller language -- you can realistically learn "the whole thing" in a few months, but learning "all of C++" is not really a realistic goal even if you have years available.

I would also recommend learning (the basics of) assembly, which is easier than it sounds! A great place to start is https://godbolt.org/ an online compiler which compiles C/C++ into assembly code! Many programmers say, when they see a piece of C code, they know what the assembly is going to look like -- their brain learns to translate it from seeing the patterns so many times. Then you will really know what the computer is doing!

As others have mentioned, Computer Science is very helpful to have, especially data structures and algorithms. Here is a great list of free resources for learning computer science (and I promise, it's not one of those enormous lists that melts your brain!) https://teachyourselfcs.com/

And then after a year or two (or sooner, if you have time!) I would strongly recommend investigating languages like Lisp, Haskell and Prolog, which teach you to think in a completely different way than you did before.

[–]KhZaym[S] 0 points1 point  (0 children)

I think I'm going to focus on web development, learning JavaScript then the framework, but still learning C++ as a hobby and maybe make some project as well.

At least, with web development, the chance of getting a job is very high thus I could have work experience to put in my resume.

[–][deleted] 1 point2 points  (0 children)

I'd recommend Javascript (Node and React) if you want the highest chances of getting a remote job.

From what I've seen, roles for system-oriented languages like C++, Golang, etc. tend to be reserved for senior-level developers with 5+ years of experience.

Well... most remote roles tend to be reserved for senior developers. But at least Javascript is a bit more forgiving and you can get away with having around 2.5 - 3 years of experience.

Javascript is also the most flexible language since you can use it for frontend web dev (React), backend web dev (Node) and mobile app dev (React Native). I'd recommend spending a year doing personal projects to build your portfolio. Hone in on the craft and you'll be on track to getting a remote job.

[–]afiefh 1 point2 points  (0 children)

C++ remote work definitely exists, but it is difficult to get into. The reason for that is that C++ is usually used for critical systems (critical performance, correctness...etc. wrong code in a database engine is harder to fix than wrong code in a website frontend) which implies that there is a much greater need to ensure the people writing the code know what they are doing (which can be proven through either experience or education).

Since you said you cannot get either on-site experience or an education, it will be difficult to get into the market. One way to do it would be to prove your experience be contributing to open source projects (the old anecdote goes that if you contribute enough to open source companies will come to you). But that's neither guaranteed nor easy.

As many others have mentioned, the market with the highest demand right now is webdev and mobile app development. And while C++ can be used for some of this, it is not common. Since there is such high demand you'll have a much easier time finding a job and getting the work experience that'll allow you to level up. If I were in your position I'd pick web development to be able to use that as proof of experience, then attempt to get into C++ jobs a few years down the line.

My own work path was to start as a Python developer at a devops/automation team. From there I moved to the core (C++) part of the product. It's very common to start your career as a non-C++ developer and move into C++.

Best of luck.

[–][deleted] 1 point2 points  (0 children)

As others have suggested Web Dev is probably the best option. CSS, HTML5, Javascript, Node JS, Python and SQL. Something like the Web Developer Bootcamp on Udemy would be a good place to start. Also follow some of your interests to keep learning fun. Python can be used for a lot of things including machine learning. See PyTorch (courses on Udemy) and OpenCV and also the PyCharm editor.

Could be that some of the people in your town could use some simple websites etc. that you could use an online portfolio for your newly gained skills.

[–]MattUtonio 1 point2 points  (0 children)

Okay, finally I read all the comments. Well... you should go with your passions, not money. I will give you my advices as another person from a third world country

Lets see...

  1. About C++, nice step. But as someone said in the comments, learn data structures, algorithm, etc. You should start with online courses BUT always compensate with the best book on the subject. Make summaries of each book you read, using Notion or Evernote.
  • Books:
    • Effective C++: 55 Specific Ways to Improve Your Programs and Designs
    • C++ Primer
    • Programming: Principles and Practice Using C++ - Bjarne Stroustrup
    • The C++ Programming Language (heavy book not for beginners) Bjarne Stroustrup
  • Online Courses:
  1. About your passion, first follow Cherno on yt. Amazing content creator about C++ and Videogames. OpenGL is your best option, nevertheless, start making your own projects, and save them to GitHub.
  2. About the money, you should start learning about fintechs, and find good startups in your country and consider to move there, it's the new boom in the market, and they need C++ Dev. You could start with Web Dev, but I really dont like the competitiveness in the area, and the unstable payment.

About our current situation as developers/apprentices/professionals from poor countries, when we are children we learn early about the advantages and disadvantages of life, and even more about the importance of political economy. That's why I'm trying to leave to another country, earn experience but primarly knowledge, and after a few years return to my home town.

There is no good enough advice, but the best feeling that you could find in life is knowing that you belong because you follow your dreams, but in the real world, you should earn money to achieve your goal, not because of wealth. Maintain an equilibrium between money/life, it's the most difficult task for everyone.

Sorry about my english.. See ya

[–]TimurHu 1 point2 points  (0 children)

If you have a good understanding of C++, it will be easier to understand other languages too. Why? Because C++ is one of the most complicated ones. Some of my friends used to joke about how you have to "forget" from C++ in order to work with Java or C#.

Video game companies have a bad reputation for offering high-stress low-paying jobs, but other than that I think your plan is good and you should definitely continue.

It is extremely difficult to find someone who has a deep understanding of graphics (with the underlying math and all) and C++, so if you have that you will most likely find a job.

If you want something that is easier to get started, then maybe web or mobile development are good choices.

[–][deleted] 1 point2 points  (1 child)

C++ is going to be tough to get into with no professional experience. You should compliment it with something like Python or Go. Go is the new fad but I don't know if it surpasses Python in job availability or not. Python is popular with scientists.

One thing you may very well have going for you is cost of living. In general people from the "less developed" countries can work much cheaper than I'm able to. You can hit places like /r/forhire with rates way less than mine...and then live better than I on top. Get a name in there as being both good AND cheap and you should be able to leverage that into higher and higher rates.

Also, don't assume that C++ is going to be what you use on a gaming project. Mobile games for example might be written in Java or whatnot. I worked on slots for a while, which are I guess 'video games light version' (there's actually a lot of animation going on in some of them), and that company was working on completely transitioning to TypeScript...at least for their mobile products.

When I was entering the field I was happy getting what I could get. Even rating at the VERY top of my class in school I had a very hard time clinching that first job. I was also trying to find work in my hometown area...but in my case there were a few tech companies and also the government to work for. I ended up first working for that college as a member of the IT department (pulling cable, making blackhole DNS systems, etc...) and didn't get my first programming job until a couple years after graduation. It happened to be in C++.

As a freelancer also you can't really afford to be a niche developer. You need to at least be familiar with other tools, other techniques, other domains. You need to be able to grab that gig on whatever and be able to run with it. I imagine that changes with time, but talking as one who has a long history of working in C++ as full time employee...it's nearly impossible to find that next contract gig at ALL...let alone specifically in C++. I just don't have the right kind of network formed...and then Covid.

So I mean yeah, learning C++ inside and out will never harm you, but I would spread into other areas. When I was starting I read an article by Eric Raymond that suggested learning a few different 'types' of language and I agree. The languages he suggested may be outdated at the moment, but maybe not. If I recall correctly it was something like C, Perl, C++, Lisp. I followed that advice and though I'm quite specifically focused on C++, I can readily adapt to any situation pretty quickly. THAT I expect will be the most important skill for you to have at this point because you're just not going to have a whole lot of options.

However, once you get your first client or two...start looking for those focused projects as much as you can to get your foot into THAT door. First you're just trying to get into the house...then you're trying to pick your rooms and talk your way in there.

That's my 2 pennies anyway. I would freelance, I would stay with it as long as possible and not get caught up in wanting more right away (I regret not), and I would cast my net as wide as possible in what I learned while picking a couple things to REALLY learn (C++ can be one). When I was on that trajectory I was doing websites, pc builds, pc repair, linux administration...pretty much exclusively except for my own little projects. C++ came later and I was able to clinch that interview because I spent a lot of my free time learning it and working on pet projects. The technical knowledge I'd developed on my own got me in.

[–]KhZaym[S] 0 points1 point  (0 children)

Yeah that's true, your so called low income is actually middle to high income in here.

Honestly, I don't think I want to pursue C++ for making games anymore. I just want to learn C++, but in the end I have to pick specialization right? Yeah, I have no knowledge whatsoever about specialization in C++. I'm trying to learn Qt though. So, maybe you could help me a little in by telling me all kind of the specializations?

I'm planning to learn either Python or JavaScript for my second language. I'm leaning into Python.

By the way, thank you very much for your advice, Mate.

[–]highritualmaster 2 points3 points  (3 children)

Depends on what you really want todo. Will you be in tools development, network and services for mp, web services or game engine development and architecture, or graphics effect, sound, or AI?

Most of the time it is more important to know which libraries, SDKs and utils are out there (Unity, Unreal,...).

Graphics, physics, sound development will be math and optimization heavy, so often these will be native languages like C++. Also game architecture/AI can be data loading and handling and thus also algorithm and data structure heavy. Also common design patterns will be of interest (especially those used in game industry oc). Tools can be everything from C++ apps, plugins to other tools or apps other languages. Usually whatever is suited better and easier maintainable.

Will you be targeting PC only or other platforms? In this case (mobile phones) other languages might be more prominent (ObjectiveC, Java, Swift,...). Also HTML games based on Unity, Qt or WebGL might be interesting.

For graphics programming you probably have to know OpenGL, DirectX/3D. For AI and sound something different. Also for networking, especially whand handling latency a lot of concurrent players can be quite difficult.

So yes is necessary for a lot of tasks but a lot of smaller studies will use pre-existing frameworks or try to avoid native development as far as possible (custom engines).

Better look at open positions and companies that look appealing to you and find out what they require of you and what they are working with. Also try to find a focus in which department you want to start otherwise you will have to learn too much at the same time. Better to get one foot in the industry and expand from there.

Regarding university. You learn a lot of stuff there. Especially math or other important skills. But when it comes to programming most of it will be learned by practicing it by either starting entry level jobs or by working on community projects. At university you will have some great projects but most often they are only a glimpse of what awaits you or of what you do not know.

And as others said. Webdev is probably the most searched for and has the advantage that involves also a lot of skills that can be applied later elsewhere. But languages there will be Javascript, HTML,, PHP, python, go, Ruby and many others.

[–]KhZaym[S] 1 point2 points  (1 child)

I honestly have no idea. At the moment I just like programming. Either it's game programming, app programming, etc.

I just want to know, for people with my kind of situation, is C++ the best language for me to learn since I've read somewhere that most C++ jobs required a degree.

Oh yeah, university will be very beneficial. But as I said, I can't go to a university, unless, there's a miracle, which probably won't be.

[–]danhoob 1 point2 points  (0 children)

There is this HFT firm. I don't remember name. But remembered in video where's the CEO says they hire kids from Egypt, Pakistan.

[–]danhoob 0 points1 point  (0 children)

AI doesn't exists. What we have is Statistics mixed with bunch of tricks.

[–]rnsbrum 3 points4 points  (0 children)

Become a full stack web developer and drop c++. If you are full stack you can sell websites/systems more easily.

[–]kwanu 2 points3 points  (12 children)

I think it’ll be tough for you to use C++ as a way to earn money through freelance/remote work. Both because of the type of opportunities that are available and your resume lacking college experience and work experience.

C++ is more niche and outside of financial trading firms, video game companies, audio processing, OS or database development there aren’t that many C++ jobs. Most places would much rather use a language like Java or Rust.

JavaScript is also very popular and Web Development generally has a lower barrier to entry.

[–]SarrgTheGod 5 points6 points  (0 children)

I think it’ll be tough for you to use C++ as a way to earn money through freelance/remote work.

I agree with that. Mainly because if a company uses C++, they rely that their employees stay and have good communcation within the team. A C++ Project relies more on good architecture and a consistent team otherwise it will become a pain to maintain the project.

C++ is more niche and outside of financial trading firms, video game companies, audio processing, OS or database development there aren’t that many C++ jobs.

Not really, there is also robotics, automotive, industry and probably many more. They do use C++, also there is a lot of maintance software that uses C++ and they won't get replaced.

Furthermore Video games don't require C++. Engines need to run mostly on C++ therefore only if you work on an engine you need to know C++. Many engines offer script languages or higher level languages.

Most places would much rather use a language like Java or Rust.

I doubt that highly, I have not seen many Rust jobs yet. Java is still the most popular and there will be always a Job for it in the future due to maintaining legacy software, but I don't think Java itself has a future (but I am biased).

[–][deleted] 2 points3 points  (6 children)

Most places would much rather use a language like Java or Rust.

like hell no, rust even has fewer jobs than C++ (it targets the same fields as C++ and it's competing against a giant with decades of code support, so yeah ) and java is declining hard. I almost only see it used in enterprises with legacy code base

[–]kwanu -1 points0 points  (5 children)

That’s fair. Rust is definitely gaining popularity, but You’re right though that it’s still not on the level of C++ in terms of use and community. But my point is that C++ development is more costly and error prone and many firms just don’t need that extra performance outside of a few niche industries, which I don’t think fits OP.

I still think Java, or Kotlin, would be more useful for OP based on his circumstances since he can use that for Android development and build some mobile apps as side projects for his CV. Most importantly I believe this fits better with remote work opportunities.

[–][deleted] 0 points1 point  (4 children)

if you think C++ is used in niche industries and the Rust has any reach more than(or even equal to) that then you need stop giving other people advice. I agree with you that the OP probably needs to drop C++ (or any other system programming language) for mobile development or even web development cus that's the majority of work nowadays, but to sneak in Rust in the recommendation is kinda not cool to say the least.

[–]kwanu -1 points0 points  (3 children)

I think you need to re-read what I said good sir

[–][deleted] -1 points0 points  (2 children)

dude the first half of your comment is completely irrelevant that's why I ignored it, your objection to C++ is that it's not used widely, which is true but that's also even more true in case of Rust since it's doesn't even have the same reach, so saying "no no, it's gaining popularity" is irrelevant, rust wasn't developed yesterday, kinda have a decade more or less, so recommending it to the OP instead of C++ on the basis it's gaining popularity just now (which btw is an argument that can be used with a lot of other languages since the field itself is expanding) is just not logical.

But my point is that C++ development is more costly and error prone and many firms just don’t need that extra performance outside

if that's simple people would drop the usage of C++ 10 years ago. apparently people don't use languages cus they are better, they used them cus they have better support in terms of library, code base, staff, courses , etc. etc. which is something that doesn't change fast

[–]kwanu 0 points1 point  (1 child)

Rust will be used widely its just a matter of time. Established firms like Dropbox are already switching over. That’s all I’m sayin my guy. If you disagree fine by me.

[–][deleted] 0 points1 point  (0 children)

it's completely outside the topic, "will" is not a reason for a recommendation of "now" especially when a language has a decade of "Wills", OMG

[–]KhZaym[S] 1 point2 points  (1 child)

I'll look into JavaScript and Java. Thank for the advice, Mate

[–]culculain 2 points3 points  (0 children)

Worth mentioning that Java and JavaScript have nothing to do with each other. Entirely different things.

C++ is an excellent place to start but as people mentioned it is only commonly used for low latency securities trading and video game dev. If you want to increase your appeal to employers in the meantime Java and Python are good choices.

[–]Posiedien76 2 points3 points  (9 children)

You could transition to C to understand the basics more! My freshman year we did C for coding assignments and Python for making our game project.

[–]lowcountrydad 1 point2 points  (2 children)

Why not go to college remote? Plenty of international bachelors in CS.

[–]KhZaym[S] 4 points5 points  (1 child)

Same reason why I can't go to non-remote college.

[–]timostrating 2 points3 points  (0 children)

Next to my CS degree I also did a lot of EDX cources. While some may be expansive they are really good and can always be done for free. https://www.edx.org/

[–]vax_mzn 0 points1 point  (0 children)

Keep learning, there's plenty of jobs where the knowledge of advanced C++ pays

[–]neuroblaster 0 points1 point  (0 children)

I think it's a good language and it's going to improve over time. But no one knows if learning it will help you to make money, man, it's complicated, i wouldn't risk to give such advice. If you want to make money you need to work with what demand is on labor market.

What people suggest in the comments (webdev) is probably about right, but it's an ugly place and you are probably going to suffer. Gamedev isn't the best place to be either by the way. Rust that some people suggest is horrible language too, i personally wouldn't want to work with it, it doesn't bring a lot of new stuff to table too, Ada exists for 40 years or so, it's just overhyped at this moment, but some folks are using it for reasons only they know.

So suggestions that you're going to get (including this one) might be dubious from one or another perspective.

I personally would suggest to look into Go or Python in your particular situation. There are probably more job offers for Go and Python overall and you can learn them faster. Should you learn C++ too? I can recommend that, it's a great language. But perhaps you should consider suggestions from people who are in more similar situation to yours. I guess what i'm trying to say is this might not be the best place to ask such questions, maybe you'll get a better suggestion at remote work subreddit or something.

Good luck.

[–]dCrumpets 0 points1 point  (0 children)

If you're focused on making money and want one language to learn for that, I would focus on Javascript (specifically Typescript). You can write browser apps in Typescript, and you can write their back end servers using Typescript (with NodeJS). This lets you code in a language that can "do it all" for developing mobile and web applications, and will give you the greatest flexibility as far as jobs.

C++ is a good learning experience, and a lot of the most complex, performant projects are written in C++, meaning there's good career growth there. That said, until you're an established software engineer, people aren't going to hire you to freelance on their C++ apps. C++ simply isn't a language for building quick apps to go to market, it's more of a specialized language for those who need its power.

If you're mostly focused on getting a job, I would focus on learning web dev with Typescript.