So since I was summoned by @P1xt, I will leave my two cents.
@P1xt is really smart and helpful, you should listen to all of this advice.
I’m seeing a small lack-of-focus on what your goals are… And you are talking about huge goals… In other words, right now you’re obviously on FCC learning front-end web dev, which is fine… But then you originally said you wanted to learn to build Windows apps, then you said you wanted to be a Linux developer as well.
While this is all great and it is doable, trying to do all of it at once is going to be a real monster. Take it from me dude: I had 2 years of programming experience in C++/PHP/Python around ages 11-12 and then gave it up. I then returned 4 months ago at age 27 now, and I have spent nearly every single waking hour, eating breathing, and sleeping code… And I don’t mean like 5-8 hours a day. I mean, I get up at 12pm usually and study/code for about 6 hours, eat, go to the gym, return at about 9 and then study/code all the way until 5am, go to sleep, and do that 6 days per week, and then when my girlfriend visits, I wait for her to go to sleep, then code for about 5 hours while shes sleeping.
In fact, each of these areas, people have spent 30-40 year careers on. I’m far from the only one who suggests that specialization is the way to go when it comes to getting into a niche market/high paying job.
That said, I also understand that when you are brand new, it’s important to “taste” every one of these before you dive in to see what you like… And clearly, you are not satisfied with just web dev. That’s fantastic because quite frankly, mark my words, we’re going to have a shit ton of web devs in 10 years and not enough native devs, LOL!
People have a tendency to focus too much on the technical stuff… The first decision you have to make is not anything to do with coding: Do you want to do Linux Dev, Windows Dev, or Web Dev???
True, you could do all 3, but as I said, it’ll help your mind and initial career to focus on one… Once you’ve made this decision:
If you are a die-hard Windows guy… Or just like the C# language, then C# is your best bet.
If you decide that you absolutely, positively, want to be a Linux dev, choose C++
If You Decide you are all about Apple and Macs, then choose Swift
Now, the good news is, whichever one you choose, you won’t necessarily lock yourself out of the others… So, what I mean is that if you chose C++, good news is, you can do Windows and Mac development with C++… You can pretty much use C++ on everything.
Even with C#, with the tools available, you can program anything with C# as well, but it does require certain runtime files to run… Which basically means that C++ would be your best bet if you want to use a language that doesn’t require Microsoft-made technology. But even with this, their technology is now open source, so even if they went out of business (very unlikely lol), the community would still continue to develop the tech needed to run C# programs anyway.
But for example, if you’re making a Lunar Lander or an extremely specialized piece of equipment where the software that is running it needs to be tested and tested and tested, and should not have the extra bloat and overhead that comes with having to download Microsoft’s technology onto your machine in order to run stuff, then C/C++ would be a better option.
The power of C# is immense and the man who lead the creation of it (Anders Hejlsberg) it is widely regarded to be one of the best and smartest programmers alive.
You could download Visual Studio Code on Linux or Mac, install the .NET Core files, and then start programming right away…
So, with all of that said, here is my recommendation to you:
- Pick a technology to want to develop with.
- Do what P1xt said and focus on it, and learn it.
- If you choose C++, be ready for it to be difficult… There are things that C# does that are “nicer” and more user-friendly/easier to learn than C++… But C++ is very powerful and still performs quicker than C# does.
- Both C++ and C# are cross-platform at this point, but C++ has been cross-platform for much longer.
- You could also choose Java but I chose to talk about C++ and C# because that is what I work with.
- Let me know what you choose and I’ll do everthing I can to send you great resources that you can learn these technologies either completely free or very low cost.