Non-Web FreeCodeCamp Alternative?

First off, I really love FreeCodeCamp. It is awesome in being able to teach us to program while using our efforts to benefit non-profits. That is just a fantastic idea.

However, I am not all that interested in web development. Don’t get me wrong, I still want to learn this stuff and be able to develop websites and web-based products. It’s just that I’m far more interested in programs.

Does anyone know of anything similar for developing full-scale Windows programs? I would love something like this that taught C++, Java, Python, GUI development, etc.

Wow. Thank you for that very thorough response. I will look into all of those things.

I would love to learn to program applications for Linux too. I have been using Fedora for a long time now. I have been a firm believer in the Windows/Linux dual-boot (or multi-boot, if you like to dabble in other distros) for years now. So, if you have resources for Linux-specific programming, I would definitely appreciate your posting any.

Thank you again.

1 Like

So since I was summoned by @P1xt, I will leave my two cents.

  1. @P1xt is really smart and helpful, you should listen to all of this advice.

  2. 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.

They say the average Bachelor’s degree is 1,500 hours of instruction. I’ve spent a little over 1,500 in 4 months educating myself on code and software engineering, With ALL of that, I am now just starting to get a real handle on back-end web dev in C#, and desktop dev… On Windows… I recently won my first Hackathon. In no way shape or form will you be able to easily or quickly simultaneously learn Linux native development, Windows native Development, Front-End web dev, AND JavaScript Frameworks.

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.

That said, C# is an extremely respected, extremely useful, and very powerful language. I am a C# developer and what’s great about it is with tools like Xamarin, you can make iOS phone apps, Android Apps, Windows desktop apps, Web apps, Websites, and everything… They even have something called Bridge.NET which converts your C# code to JavaScript so I can even write an entire JavaScript app in C# and with the click of a button, it is now a JavaScript app.

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.

The thing about the .NET stack (this includes C# and all the frameworks around it basically at this point…) is that for the longest time, Microsoft kept it proprietary and basically turned their backs on the Open Source community… This is why you still don’t see widespread support as much for C# as you do for JavaScript MEAN stack and PHP LAMP stack (Google it) in the Open-Source Community… However, things have changed. Microsoft has a new CEO and he has made cross-platform development with C# on Macs and Linux even not just possible (and open-source), but pretty darn easy. Don’t believe me? Go on GitHub and search for .NET Core or ASP.NET . Fully open source.

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:

  1. Pick a technology to want to develop with.
  2. Do what P1xt said and focus on it, and learn it.
  3. 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.
  4. Both C++ and C# are cross-platform at this point, but C++ has been cross-platform for much longer.
  5. You could also choose Java but I chose to talk about C++ and C# because that is what I work with.
  6. 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.
1 Like

This must be close to what you’re looking for: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!

I am also not very good at web design or front end development. CS50 is a great source to introduce you to the field, watch the first class and decide if you want to follow up on it. It’s free.

There is also a complete curriculum here: https://github.com/open-source-society/computer-science

I made a post a few days ago about this subject, you can check it out here: http://forum.freecodecamp.com/t/other-learning-resources/38667/1

Good luck.

2 Likes