T O P

  • By -

Zom-Tam

Here’s my learning path, can’t say it’s super time efficient, but it did work (for me): 1. Started with Java - struggled immensely, got frustrated and quit. 2. Started Java again, got less frustrated but still enough to quit again. 3. Got into C - Enjoyed it a bunch, then got into embedded programming, got frustrated and quit. 4. Got into Python for school - had the time of my life then quit after not needing it anymore 5. Got into Java yet again - realized how much I already understand from before and from learning to program in general 6. Got into C++ - realized how much I understand without ever touching the language thanks to previous coding experiences. I know for a fact that if I had put as much time into it as I wish I had, I would already have a full time SE position, but now I at least now it’s possible and plan to put the time necessary into it. To sum up, the language you choose doesn’t really matter that much as long as you put the time and effort into it. Also, if you have fun along the way it will be 10x easier.


wannabeAIdev

I had a pretty similar path! 1. Tried to learn Javascript, quit 2. Tried again, quit 3. Tried learning HTML/CSS, got bored, quit 4. Got into very basic python/pesudocode explanations, stuck with it cause I understood enough to not get dejected and quit 5. Learned Java decently easily for college cause I had a bunch of knowledge held over from python 6. Started learning sklearn/pytorch 7. Started learning C# I think the touch and go method is what a lot of people tend to fall into. Who knows, if you kept trying full time you may have burned yourself out from programming permanently


Yhcti

Golang, Python for general purpose are great languages and easy to pick up. If you want to learn web dev then the only option is javascript.


ThatCringingDude

It depends on what you wants to do. Embedded systems demand C/C++, assembly or even Ada, machine learning or data science demands Python or MATLAB, web dev requires HTML, css and JavaScript Along with frameworks. You must choose what interests you. I personally chose embedded systems since I live the challenge of optimizing code for small systems. It let led me to become an embedded software engineer for and aerospace defense startup. Find your niche and expand in it.


_MiGi_0

Hey dude! I wanna try embedded Systems, any good books or sources to learn from? I am just trying to dip my toes tho, to see if i like it or not.


ThatCringingDude

I’d recommend using an online Arduino emulator and play around with it before buying anything.


_MiGi_0

Arduino Emulator? Thats the first time i am hearing about it. Will give it a try dude. Any good courses to learn from? I know only the basics of C/C++.


ThatCringingDude

BroCode C or C++ tutorial. Or embedded C tutorials.


ZokaZulto

Started with Java , didn’t struggle but absolutely hated it. Then learned JavaScript and loved it. Moved on to TypeScript and liked it too , it’s basically better JavaScript. Now learning Go(lang). I would recommend Go for beginner, it’s absolutely simple to pick up , has less than 30 keywords to remember and doesn’t enforce any particular style on you like Java / C#.


hailstorm75

Start with C#, didn't struggle with it and loved it


amenherebb

If you want gamedev - c++, rust If you want frontend - JS, TS If you want backend - python What do you want, and search information about those programming languages. Rely on directions in programming, which interesting for you and option languages for those directions.


vymorix

lol I read this as ‘Rust if you want frontend’ Was about to respond like what a troll 😂😂😂 But yeah there’s no best language. Pick any one for the niche u wanna do it’s really that simple


1amitarora

Go for Golang.


RealNamek

Scratch, pixelpad python, java in that order


Alexandria4ever93

HTML-CSS, Java script, Java, C, C++, Python, Scratch in that order


Feeling-Finding2783

As others have already pointed out, the choice of language depends on what you want to do, because languages are tools. It is up to you to choose the right tool to do the job. If you have not yet decided what you want to do, and would like to learn some basics and fool around, I would suggest you to choose a statically typed language. It may be harder to grasp, but it will make your code better, even if you switch to dynamically typed language later. The compiler can also catch a lot of errors during compilation. That being said, I started with Python, then switched to Go, and I wish I did that sooner.


doc415

To learn programming concepts start with P5 Js or Processing There are plenty of tutorials and videos for beginners After you understand the fundemantals of programming you can switch to C# , python or other language drpending on your future plans I suggest coding train channel in youtube and follow its videos for beginners.


Marbletm

I'd say it depends on a few factors. For one, it's good to start with a language that can be used to make something you're interested in making. Getting into programming without any knowledge of it is hard, so the small achievements you get when working on something you like, and finishing parts of it, will hopefully help in retaining your interest in programming and keep you motivated. In my opinion it's also best to take into account your age and goals. If you're a teen, with plenty of time to get comfortable with programming, I would recommend simpler languages and frameworks that might be a bit limited, but give quick results without having to put in as much work as languages/frameworks that are industry standards. So here's my list of recommendations: **Game Development** |Difficulty|Language/framework|Description| |:-|:-|:-| |★☆☆|[Gamemaker](https://gamemaker.io/en)|A great way to get into programming as a teen. You might miss out on learning about some programming patterns. But you'll get results quickly and it keeps you motivated.| |★★☆|[C#/Unity](https://unity.com/)|A bit more advanced than gamemaker, but there's a ton of tutorials for Unity on the web. C# allows you to practice with some important programming patterns.| |★★★|C++|Commonly used for programming games (is also used by Unreal Engine). You'll be able to learn more complex programming patterns. You'll also be able to learn more about what the computer is actually doing when it's executing your program. If you're also interested in shader programming, it might help a bit in understanding HLSL/GLSL as it's a C-like language which C++ also kind of is.| **Web Development** |Difficulty|Language/framework|Description| |:-|:-|:-| |★☆☆|HTML/CSS/JS|With these 3 you'll be able to make simpel websites. There's an abundance of information about how to make a website using these 3 on the web.| |★★☆|HTML/CSS/JS/Node.js|By adding Node.js you get to practice with building the backend as well. Alternatively you can also use Node.js to build frontends by making use of frameworks like Angular, React, Vue, etc.| |★★★|HTML/CSS/JS/ any backend language\*|Pretty much the same as above, but you'd have to learn yet another language.| \*Some languages that are commonly used would be: Python, Java, C#. It shouldn't be much more difficult than using Node.js, but the advantage of Node.js is that you don't have to learn yet another language since it's the same language as the one you're using for your frontend. Side-note: If you're doing web development it's also good to get comfortable with databases once you feel comfortable enough with your backend programming. You could look into: Postgresql, Mysql, mongodb. **Embedded Programming** |Difficulty|Language/framework|Description| |:-|:-|:-| |★☆☆|Arduino|Arduino has beginner friendly documentation on their website and allows you to quickly get things up and running. The build process for Arduino is super simple!| |★☆☆|Raspberry Pi/Python|When you're using a raspberry pi you can just use regular old Python to manipulate the GPIO pins. There should be a bunch of beginner friendly resources out there for learning Python.| |★★★|C/C++/Rust|These languages require you to learn some complicated programming concepts, but they do give you a greater understanding of programming. The build process for embedded devices is more complicated though.| Side-note: This is based on my somewhat surface level knowledge of embedded programming. **App Development** I don't feel knowledgeable enough about app development to be giving it difficulty ratings, so I'll just list some technologies that I know of: Java/Android studio, Flutter, React Native (This one ties in well with web development).


Traditional-Top-1504

Thank you for your comprehensive answer!


DonKapot

Learn language to code, not for language itself. Language is just a little part: Language -> frameworks -> ecosystem


BranigansLaw

I'd stay start with C#. You can build websites, console applications, build games, build mobile apps, and it's syntactically similar to Java, C++, and JavaScript which are all popular languages


frnkdcy

i would recommend python, c++ or javascript


Middlewarian

I suggest using a compiled language such as C++. C# and Rust are also compiled. I'd avoid Java even though it is compiled.


_mischiefmanaged07_

C then C++ gives you a good foundation . Learning other languages becomes a piece of cake once you do this afaik


ysinc88

Ruby


TheBear8878

Python.


lol_bo

Start with Harvard CS50, learn the absolute basics and then switch to only one (one, only one) programming language (I picked up Javascript): learn the syntax, algorithms, logic, and be thirsty for knowledge, become curious about that language and treat it as a good friend with whom you talk at least once a day. Take notes, think about it continuously and don't give up if you don't understand it, just trust the process and you'll improve really fast


Traditional-Top-1504

Hello! Thanks for your feedback. I also enrolled in the Harvard CS50 :)


Naive_Programmer_232

C++


maybegone18

Id recommend Fortran


Neither-Bluebird4528

Try C


rszdev

Start with python


douaib

Python's dependency hell and spaghetti ecosystem is NOT good for beginners.


rszdev

Lol ok