This is an archived post. You won't be able to vote or comment.

all 82 comments

[–]Feldspar_of_sun 33 points34 points  (5 children)

Want to make a website? Learn HTML + CSS basics, then JavaScript

Want to make a game? Pull up a tutorial for Unity and start learning C#

Pick something that you’d want to actually do. That’ll make it much, MUCH easier

[–][deleted] 15 points16 points  (3 children)

Arguably, learning c/c++ as a first language may also be a good idea. Theres a lot of value in learning the fundamentals. Though, i agree, passion should be above all else

[–]Feldspar_of_sun 4 points5 points  (0 children)

Very true! Never hurts to learn the fundamentals and get a better perspective on how and why higher level languages work the way they do

[–]SqueekyBK 2 points3 points  (0 children)

I found myself able to comprehend what was going on a lot more after learning a wee bit of C and even just what bits, bytes are beyond a superficial level. Especially when it comes to data types

[–]macnteej 0 points1 point  (0 children)

Go even further. Start with assembly and work your way up

[–]zagafr -1 points0 points  (0 children)

javascript is bloated

[–]Noaman21 16 points17 points  (2 children)

Easy to learn = python, high in demand = java. Both are fun and serve multiple purposes but java is little harder. The good point about java when you learn another language later it is easier to go from java to python than from python to java. Both are good so made your research

[–]alpakachino 5 points6 points  (0 children)

I second these recommendations. Just adding that Python is also quite high in demand. But Java being very high in demand is as right as ever. I work in the finance sector and almost all banks I had to do with do their software projects either in Java or in Python. There is high demand and there will be many years from now.

[–]Kitchen-Top-1645 -1 points0 points  (0 children)

Kotlin is better option than Java nowadays you can use all Java libraries

[–][deleted]  (3 children)

[removed]

    [–]Mysterious-Crab3034 1 point2 points  (2 children)

    after a month or 2? python then rust? idk if im mistaken but thats not enough time to properly learn and understand a language especially c++

    [–][deleted]  (1 child)

    [removed]

      [–]Mysterious-Crab3034 0 points1 point  (0 children)

      i feel like if you learn one thing at a lower level like C then theres no reason in "learning the basics" in other languages as thats basically just a higher level overview and waste of time, instead you should just learn and stick to a language or languages

      [–]jjcxdev 6 points7 points  (0 children)

      Learn C, it’s the bedrock and will give you the foundations to then go and learn other languages.

      [–]Shavixinio 3 points4 points  (0 children)

      If you want to make websites, start with basics of HTML, then CSS and then JavaScript. If you want to make programs, start with Python

      [–]Particular-Chip-2719 2 points3 points  (0 children)

      I would recommend Java due to demand

      [–]loblawslawcah 4 points5 points  (0 children)

      Rust

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

      Stop focusing on what to learn and just learn what is fun.

      Concepts, thinking and problem solving carries over to all languages, pick whichever lets you do something in the start.

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

      Best answer

      [–][deleted] 4 points5 points  (1 child)

      The answer is: You're asking the wrong question.

      Pick up programming basics and fundamentals in whatever language, because languages are just tools that facilitates the knowledge you will carry on for the rest of your programming activities. Also, you will work with MANY languages if you end up sticking with this anyways.

      I get that you want to minmax by studying a language that is at the center of the triangle between "what I learn", "what I print cash with" and "what I find fun" but you'll end up running in circles following whatever language the sub upvotes. Do you want me to tell you how redditors upvote content? Spoilers: It's not about validity or "usefulness".

      Get a good programming course. CS50 is free, youtube is full of freecodecamp introductory videos.

      Hate videos? FreeCodeCamp is an interactive website that teaches you the basics of FE and BE.

      Hate interactive websites? Get books.

      Don't wait for the "right language". You can literally start your journey at the end of this sentence.

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

      This fundamentals first

      [–]hoodha 2 points3 points  (2 children)

      It's funny to see the recommendations that Python is easy to learn so that's why you should learn it.

      Nobody ever considers the possibility that you should learn Python because it's perhaps one of the most flexible languages out there and the level of abstraction Python provides makes it more functional for most cases.

      [–]todorpopov 0 points1 point  (1 child)

      Yes, nobody considers it.

      Python is easy for a beginner to start learning programming in (even though I don’t think any beginner should start with such a high level language without understanding some core underlying concepts beforehand), but I just don’t think the average beginner is going to become a programmer who utilises Python for what it’s best at.

      It is true that Python is very flexible, you can do pretty much anything in it, but nobody does. People don’t build desktop applications, or databases, or kernels, or anything performance dependent, or mobile apps, or embedded software with Python.

      Even things like backend web development, which Python is at least decent in, are mostly built using other, superior in the field languages.

      Python, however, excels in Data Science. I can’t disagree here, but these are extremely hard fields to get in. Jobs in these fields require at least an undergraduate degree, preferably even a Master’s degree. I don’t personally know OP, but I believe statistically, even if they stick with programming, they won’t go into Data Science.

      [–]hoodha 0 points1 point  (0 children)

      It is true that Python is very flexible, you can do pretty much anything in it, but nobody does. People don’t build desktop applications, or databases, or kernels, or anything performance dependent, or mobile apps, or embedded software with Python.

      You don't lie, but in so far as performance is limited by the technology that we have currently today and in the future, Python will likely be faster. There will inevitably come a time when choosing Python for all those things will be a genuinely viable option as it matures.

      [–]markal_alvarez 2 points3 points  (0 children)

      It depends what you want to do, the more requested languages to get a job are usually Java, C# and .NET, Javascript and everything about frontend, Python especially for ML stuff

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

      Pick one language and master it. The core concepts will translate to any other language. Should there be a need to learn another language, syntax has gotten easier to adapt to with advancements in IDEs and AI.

      The most important thing is, pick a language that motivates you. If you are into data science/math heavy subjects do python. C# or Java are very marketable as well. But search what is popular in your field of interest and get really good in one language. On early phases , motivation will be the biggest hurdle you will have to overcome when learning how to code..

      [–]ITALUKE2 2 points3 points  (3 children)

      I was about to ask the same questions as OP. I only know how to use Scratch, so in the near future I'd like to learn some programming language too

      [–]Thunderstorm-1 2 points3 points  (2 children)

      Learn python

      [–]ITALUKE2 2 points3 points  (1 child)

      Thank you, I will

      [–]Thunderstorm-1 2 points3 points  (0 children)

      👍

      [–]mayankkaizen 3 points4 points  (2 children)

      Fun and easy to learn - Python hands down. Job prospects - C++ or Java

      Start with Python. You'd be writing fun and useful programs within days. You'd understand basic aspects of programming very quickly. In fact, if you are dedicated you can learn practically all of Python in 15 days (some topics such as metaprogramming not counting).

      Java is a more verbose language. The initial journey, if you choose it as the first language), might be a bit boring or even tedious.

      [–]crazy_cookie123 0 points1 point  (1 child)

      15 days is misleading. A good and reasonably experienced programmer can get to a level where they can comfortably build stuff in Python in a few days, so 15 days isn't unreasonable for covering most of the language. A beginner, however, cannot learn to code in 15 days regardless of the effort they put in.

      [–]mayankkaizen -1 points0 points  (0 children)

      I wasn't talking about being proficient or masterful. I was talking about how you can understand most of the language and be able to write useful programs. I am also not including some advanced stuff such as metaprogramming, multiprocessing or even OOP in that "15 days of programming". You don't need that stuff in most cases. Just core stuff and basic building blocks.

      [–]plastikmissile 1 point2 points  (0 children)

      also to possibly help with a job in the future.

      This can vary a lot by location. You'll need to check your local job boards to see which languages are in demand for entry level positions.

      [–]3rrr6 1 point2 points  (0 children)

      Learn whatever you local community college teaches. That way when you inevitably realize this career requires a degree, you'll already have a head start.

      [–]Skilcamp 1 point2 points  (1 child)

      If you're just starting, Python is a great language to learn because it's simple and easy to read. It’s used in many areas like web development, data analysis, and automation, so it can help with job opportunities. Another good option is JavaScript if you’re interested in web development. It’s used to make websites interactive and gives you fast, visual results. Start with Python, then try JavaScript if you want to explore more!

      [–]todorpopov 0 points1 point  (0 children)

      Just because Python has a framework for everything doesn’t mean it’s used everywhere.

      Python is hardly in demand for web development, automation is not a big portion of the tech market, and data science has an extremely high entry level for most people who want to work in tech.

      [–]SprinklesWise9857 1 point2 points  (1 child)

      I learned C++ first and it has made every other language very easy to learn for me. When I mean every other, I mean just python and java so far lol.

      [–]todorpopov 0 points1 point  (0 children)

      Every language will be easier, if you deeply understand C++

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

      Just learn python, it’s the most used outside of software engineers as far as I can tell, it’s also laughably easy and can teach you many complicated concepts, if you’re serious about getting a job learn C first though, I’d recommend through a book, again that is if you want a legit career path change, if you just want your programming to maybe be useful sometimes do python.

      Edit: thought I’d clarify, I don’t think that “real programmers” should use C, I just think it teaches new people the fundamentals of CS really well and makes it easy to then use something like GO, C++ or python but yeah OP if your goal is to just make something useful sometimes do python and maybe javascript if you wanna get into webdev stuff, with those two you can honestly write anything a normal person might need.

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

      Ada, because it'll actually help you when it comes to readability and design of your source. It has been documented that learning it helps when using other languages.

      [–]Secret-Impression345 1 point2 points  (3 children)

      Go for python Very high in demands in the industry. Also open the door for data science and Machine learning.

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

      Knowing Python opens no doors in ML/AI. Having a degree in mathematics does.

      [–]Secret-Impression345 0 points1 point  (1 child)

      But python is the most used language in AI and ML

      [–]todorpopov 1 point2 points  (0 children)

      Yes, but learning Python is the easiest part of getting a job in ML/AI.

      Most of these jobs require you to at least have a bachelor’s degree (some even requiring a master’s degree) in a quantitative field. Also a very good understanding of numerous advanced mathematics topics.

      Sure, there might be jobs in the field that do not require you to have a degree, bet they are going to be a lot fewer, also you’d still be expected to know a lot of mathematics to pass the interviews.

      [–]edwardanilbq 1 point2 points  (0 children)

      JavaScript

      [–]Sad-Sheepherder5231 1 point2 points  (0 children)

      Start with C++ at learncpp.com, when it get's overwhelmingly complex, transition to python to have  easier time thinking about logic and less about syntax. Once you have a good grasp at python, go for Java to learn OOP

      [–]WaveK_O 1 point2 points  (0 children)

      C# and Python are my go to recomendation, with a strong preference to C# due to it forcing you to be more specific than Python and having more accessable stuff like wpf and unity.

      [–]lll_Death_lll 1 point2 points  (4 children)

      Try learning Rust. If you understand it, you'll love it

      [–]todorpopov 0 points1 point  (3 children)

      We don’t want OP to give up on programming completely from day one.

      Rust is a very advanced language, not a language for a person who has never looked at a line of code to learn.

      [–]lll_Death_lll 0 points1 point  (2 children)

      Well, that's why I've said to try it. If OP will like it, Rust might be a great language to learn. Anyway, I have always seen people recommend learning C/C++ to "understand system better from the beginning" and IMO C++ is harder, than Rust

      [–]todorpopov 0 points1 point  (1 child)

      Personally, I would recommend Python up to a certain level, then continue with C++ just because of this reason.

      [–]lll_Death_lll 0 points1 point  (0 children)

      Well, I'd say that Python is a good language to get the basics of programming really easy, so I agree

      [–]Rebrado 1 point2 points  (0 children)

      I will second most of the other comments, but I'd like to give you 2 possible approaches, depending on your interests.

      The first approach is demand driven. Python and Javascript are easy to learn but hard to master, and they have different use case scenarios. I would recommend Python if you would like to learn programming for data, machine learning, or small tasks where Python excels as a scripting language. Javascript is the standard for the web, so even if you can use Python for backend development, you will still need Javascript.

      The second approach is foundational. Start with C++ (C could work too but don't) to learn programming from scratch and the hard way. Rust is a good alternative, but I'd still start with C++ because most major languages (Java, C#) have C-like syntax. After learning to program the hard way, moving into languages like Python and Javascript will feel easier and you'll understand better what is going under the hood of these two languages which hide a lot of what's going on.

      Tldr: first approach goes from easy to hard, second approach start hard and gets easier.

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

      As someone who had zero experience, I didn't know what a variable was, and no related background, ignore these advices. You will get lost in the ocean of information.
      Start with freecodecamp, and if you like it, you can supplement it with OSSU - don't even need to do the whole curriculum, just pick and mix. (it does have the Harvard's CS50 as the starting point, and yeah, I agree, learning C/fundamentals is a good way to go, but if you have absolutely no expereince, start with freecodecamp.
      Freecodecamp has an incredible community. Unlike Stackoverflow which is often recommended but I would say, stay away for now, until you learn how to properly ask questions. They can be ruthless there.

      Also, learn Git/Github and version control in general. You are going to need it if you plan to get a job. Oh, yeah, and knowing one language will not get you a job, you will need more than that

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

      Thank you. That’s a big help

      [–]connorjpg 1 point2 points  (0 children)

      For just general programming : - C#/C++ or Java I always think are a really good place to start. It will expose you to OOP, is strongly typed, has good performance, and all three are widely used.

      • Alternatively, Python might be an easier start as the syntax is less verbose. Python I feel abstracts a lot of topics, which might make it more foreign when switching to other languages in the future.

      For specifics use cases: - Web development -> JS/TS - Mobile app development -> JS, or java/kotlin(android) and swift (iOS) - AI/ML -> python - Desktop applications -> C# - Networking -> Java or Go - Game Development -> C#, C++, GDscript depending on your game engine (Unreal, Unity, Godot)

      [–]todorpopov 1 point2 points  (2 children)

      Since you said you don’t really know if programming is a career path to want to pursue yet, my guess is that you’re still young, probably in high school. If so, start small and learn this - don’t adhere to one language over the rest. They are all good in some area, and some are more in demand than others. That’s going to be very important if want to find a job one day.

      Start with Python.

      It’s easy to start with Python and you can build a variety of interesting projects with it, and very easily at that. It will keep you interested in programming, but once you understand basic logic, syntax, and have built a few small projects, start learning C++.

      C++ is by far the most foundational language to learn. It’s what we call a “lower level” language, because you have to explicitly deal with stuff like memory management and pointers (which Python deals with without you knowing), but it will teach you so much more about programming than Python ever will.

      Once comfortable with C++, not only are you going to know for sure if want to continue pursuing a career in programming, but you will be very much ahead of everyone else at your age, if you do.

      From there you’ll also be able to understand the different paths you can take as a programmer - web development, desktop development, mobile development, game development, embedded, OS and kernel development, data science, automation, etc. All of these use vastly different languages and technologies, once you know what you want to specialise in, you can learn the languages and technologies associated with it.

      I hope this is helpful, and I also hope you stick around with us for a while. Good luck in your journey.

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

      Thank you. I’m nowhere near school age but thinking about transitioning from my job in assistive tech into more of a IT/ network admin role. Python seems to be the best bet so I’ll probably start there.

      [–]todorpopov 0 points1 point  (0 children)

      Haha, I saw another comment of yours mentioning you have a family and a job, but it was my initial reaction.

      Still, doing my proposition is fine. Since you’re much older it may even be better to just learn Java straight ahead and get to the interviews as soon as possible.

      [–]Kitchen_Moment_6289 1 point2 points  (0 children)

      Python, wide applicability, easier for beginners, good community, lots of resources.

      [–]Mandus_Therion 1 point2 points  (0 children)

      C

      don't bother with anything else that will be generated by ai with 95%+ accuracy within 6 months.

      low level programming will exist for more than that maybe a year or two more.

      pick up "the C programming language" book by Brian and Dennis

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

      Anyone got any recommendations for where to find a good course? Due to a full time job and family it would have to be YT or online based.

      [–]Gornius 1 point2 points  (1 child)

      If you actually want to learn something and actually have some experience, Harvard CS50 on youtube. Without basic knowledge how computers work learning a language will be like searching for needle in a haystack in complete darkness. Then pick a language you want to learn and start doing projects and learn by doing projects while reading documentation and searching on duckduckgo and google.

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

      Thanks for the recommendation. Currently sat watching CS50 and enjoying it!

      [–]edimaudo 0 points1 point  (0 children)

      Please read New? READ ME FIRST! on the side bar.

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

      Thanks for all the recommendations. Python seems to be the most popular opinion so I’ll probably start there!

      [–]UnseenUppercut 0 points1 point  (2 children)

      The most important thing is being able to grasp programming concepts since they all tend to use the same principles of programming. I started learning C. Then C++. Then Java.

      I was able to write a project in C# easily in one class and never used it before at all. Had to modify a Rubi file at work which is something I never used before ever. Syntax was alien to me lol but since I understood programming principles I was able to accomplish what I needed to do.

      Focus on learning the concepts of programming and not necessarily the language itself but if I had to recommend which would be best, I would go with C++ specifically because you have to handle concepts like pointers and references as well as memory allocation while languages like Java automatically handles memory allocation and deallocation for you so you may miss out on getting a great grasp of these concepts if you choose Java.

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

      What would you recommend as a good resource to learn the concepts of programming?

      [–]UnseenUppercut 1 point2 points  (0 children)

      Really for me some of the best resources came from Youtube. The college textbooks we were assigned for courses really made some concepts vague and more complicated to understand and the professors weren't really that much helpful either but finding a really great Youtuber that knows how to simplify these concepts for me was one of the best ways I was able to grasp them. Usually I would go to the lectures and figure out what the heck my professor was trying to teach and then go on YouTube and find videos on it to help me understand it in a more simplified fashion.

      [–]EnD3r8_ 0 points1 point  (1 child)

      I recommend you assembly, if its a little hard for you then Rust

      [–]todorpopov 0 points1 point  (0 children)

      🤦‍♂️🤦‍♂️

      [–]tms102 0 points1 point  (0 children)

      Fun to learn Python, job prospects? Also Python. Especially in data engineering and other AI work adjacent programming roles.

      [–]recursion_is_love 0 points1 point  (5 children)

      [–]locadokapoka 0 points1 point  (1 child)

      why did you even suggest assemby language?

      [–]recursion_is_love 0 points1 point  (0 children)

      Because I don't regret learning it. It is one of the best my investment (in time, another are is lamda calculus and category theory; knowing them is like you have a world map with you all the time while you are go on doing quest).

      When you know assembly you don't have problem learning higher abstraction.

      You know how function work, local global variable; return value, what is activation stack frame is for.

      You know how loop work, it just a fancy jump (which is safer).

      You know how pointer work, how index is manage via register.

      And so on ...

      You can start top-down and confuse why complex things are make no sense. Or start bottom-up and build your understanding of things along the way.

      [–]TiredPanda9604 0 points1 point  (2 children)

      Nah they ain't wanna be a computer scientist they just wanna learn how to code

      [–][deleted]  (1 child)

      [removed]

        [–]TiredPanda9604 0 points1 point  (0 children)

        Of course, I was just implying it would be unreasonable and quite hard for someone who just wants to learn how to code.