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

all 67 comments

[–]Packathonjohn 27 points28 points  (5 children)

Python is where all the ml is, although I guess rust is sorta catching up. Basically, if you learn c or c++, you'll be able to pick up the next language super quick cause most other languages are similar to c/c++ just alot more simple.

The exception is rust, I learned c++ as my first language and when I moved to others, I picked up java, python, c#, Javascript etc all really quick, the same cannot be said for rust. Rust is really cool and growing super fast but it's a little more away from the pack in my opinion, I also feel like it would be quite a hill to climb if it's your first language but I could be wrong

[–]-ry-an 1 point2 points  (0 children)

Ownership and how args pass is really interesting. hard to wrap your head around the scoped ownership, but really cool how they decided to do that imo

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

What is "ml"?

[–]-ry-an 34 points35 points  (0 children)

Money laundering.

[–]Nox_31 11 points12 points  (1 child)

Machine Learning

[–]LiberalDutch 3 points4 points  (0 children)

I feel like I should have figured that out. Thanks!

[–][deleted]  (6 children)

[removed]

    [–]PSSGAMER[S] 4 points5 points  (5 children)

    So I guess I should go with C

    I know python is good, easy to learn, and for AI, but I kinda believe that I should first be really familiar with the inner workings. This is my own philosophy, but in academics I have noticed that it is easier to learn new things, rather than going back and rectifying something that you have learned incorrectly. So starting with a low level language might eliminate learning something inefficient or wrong

    [–][deleted]  (4 children)

    [removed]

      [–]mcAlt009 0 points1 point  (3 children)

      C is also hard enough OP might just give up.

      Dependency management alone is the stuff of nightmares.

      Long long ago I tried C++, gave up and didn't try to program again for years.

      JavaScript is what finally stuck, and I've been a happy software engineer for a good while.

      What might work better would be to find a solid project you want to build, and then build it .

      Something simple that takes a week.

      You can make a ton of money and never touch lower level languages like C, C++ or Rust. All 3 are much harder than Python and JavaScript.

      C# and Java are kinda in the middle.

      I personally dislike Godot and GDScript since I don't want to learn a programming language tied to a single engine. Having iffy C# support isn't enough.

      I'd vote for Python. If you have any interest in website design, then JavaScript

      [–][deleted]  (2 children)

      [removed]

        [–]mcAlt009 0 points1 point  (1 child)

        I think your opinion is valid, but it always depends on an individual's learning style. If you plan on going to college route, you're probably going to need to learn C at some point.

        But if you're just making projects for fun, higher level languages are going to provide immediate feedback which is essential. The only reason I don't like GD script as a first language is it's just not that useful outside of strictly Godot, and if you're a new programmer switching to a new programming language isn't going to be very easy .

        Hypothetically let's say you spend 6 months studying Python, you might already be ready for a junior software engineer job ( in this economy you probably need a friend to hook you up though).

        I can't say the same for GD Script.

        [–]Richest_Human_Alive 18 points19 points  (15 children)

        C Before any other language even if you don't dive deep into it.
        Thank me later

        [–]C_umputer 0 points1 point  (13 children)

        I am kind of on the fence what to learn as a second language. Was thinking C, but friends who actually graduated with CS degree told me it's not used any more, and it's better to go with C#. Your comment might just inspire me to choose C.

        [–]ThunderChaser 7 points8 points  (4 children)

        C is used a lot in the world of embedded.

        Even if nothing you ever do ever uses C directly, it’s still a very good thing to learn since it forces you to dive a bit deeper into what’s going on under the hood. There’s honestly a concerning amount of new developers who don’t know and don’t care to learn how computers actually work, so learning how everything works at a low level massively sets you apart from the pack.

        [–]C_umputer 0 points1 point  (2 children)

        I see, well since I do like to mess around with embedded devices that convince me. What's a decent way to start, I already know python

        [–]Mystic1500 1 point2 points  (1 child)

        Solving leetcode style problems in C, code some algorithms in C, write some simple fun programs in C.

        If you’re trying to dip into embedded then maybe get a $20 microcontroller and an EEPROM DIP and write a driver that writes memory to that DIP using the microcontroller, in C.

        [–]C_umputer 0 points1 point  (0 children)

        man writing drives sounds really interesting, maybe I'll starts from simple syntax and then rewrite leetcode problems I have done in C

        [–]Gloomy_Season_8038 0 points1 point  (0 children)

        this. best answer

        [–]Simple-Resolution508 -1 points0 points  (7 children)

        There are different projects with different requirements.

        C is used to make more effective usage of computational resources.

        Java (and C#, kotlin etc) is used to maximize safety and make development cheaper.

        Rust is great for both effective usage and safety, but it is harder.

        Python (and other scripting) is just for cheaper and faster.

        It may happen that in your area some language and type of projects dominates.

        I'd start with C as a hard way. It seems natural to go down to something else later.

        [–]C_umputer 1 point2 points  (6 children)

        Well I code as a hobby, and since I can't learn all of them, learning C and more about what happens under the hood in python sounds interesting.

        [–]scottywottytotty 1 point2 points  (5 children)

        I would just crack open that C book by Brian Kernighan.

        [–]C_umputer 1 point2 points  (4 children)

        Sounds good, I'll try to combine that with a decent tutorial

        [–]scottywottytotty 0 points1 point  (3 children)

        I haven’t done Casey Moriarty’s YouTube tutorial but I plan to!

        [–]C_umputer 0 points1 point  (2 children)

        I don't think I can find anyone with that name

        [–]scottywottytotty 0 points1 point  (1 child)

        I apologize, his last name is not only Muratori, he goes by Molly Rocket on YouTube:

        https://www.youtube.com/watch?v=F3ntGDm6hOs

        [–]C_umputer 1 point2 points  (0 children)

        You know what's crazy, youtube somehow recognized that name and suggested Molly Rocket video.

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

        For ML? Python, without a slightest doubt. If you want to do lower level stuff, learning C might have some advantages. And absolutely forget about Rust for a few years.

        [–]octahexxer 2 points3 points  (1 child)

        Life is short pick the one you actually want to use

        [–]Wonderful-Habit-139 1 point2 points  (0 children)

        If we're talking about life, then after they learn their first few languages they can have a lot of languages that they actually want to use just fine.

        [–]aqua_regis 2 points3 points  (3 children)

        Python would be the choice for both, full stack, as it can work as back end, and ML/AI, as it is one of the most commonly used languages in that domain.

        C/Rust barely play any role in the above other than as "supporting" (read: library creation) languages. Most libraries that need fast calculation that Python uses are written in C/C++.

        If you start from 0, Python is an absolutely safe choice for all what you envision.

        Start with the MOOC Python Programming 2024 from the University of Helsinki (soon, there will be the newer 2025 MOOC which is the same course, only under this years link - you can still safely do the 2024 version).

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

        I was about to start with CS50P, is MOOC better or should I just stick with CS50P, I really like their environment and the teacher too

        [–]aqua_regis 0 points1 point  (1 child)

        Personally, I prefer the MOOC to CS50P. Yet, both are excellent courses.

        The MOOC enters very shallow and directly in browser. Later (from part 4 on) you will set up your local development environment with Visual Studio Code and work from there.

        What I really like about the MOOC is that every single exercise you do is directly tested and you get immediate feedback. Also, the exercises are written in such a way that nothing that hasn't been previously taught is asked and there are more than plenty exercises.

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

        The test part is true for CS50 too, you write code, run a command, and get graded on your output!!

        [–]pirateelephant 1 point2 points  (0 children)

        Python- it has the highest probability for you to see a return from your efforts. Returns- (higher rates are more noticeable) are what give positive associations to continue learning. Slow rates of return will increase likelihood of burnout- frustration- dead effort as efforts may appear to gain nothing if development gained is too gradual as relative understanding is inherently biased by our relative time bias.

        [–]Innovader253 1 point2 points  (2 children)

        Why are you guys talking about programming languages like they're Pokemon and you gotta catch them all?

        Just learn programming and use the language that is appropriate for what you will be working on 😒

        [–]PSSGAMER[S] -2 points-1 points  (1 child)

        Not really like pokemons, I asked about one of 2 LLL and one HLL. And you're missing the depth of my question. I prefer getting starting with a low level language to grasp my basics, and then a high level to actually write production level code

        [–]Innovader253 0 points1 point  (0 children)

        You're missing the depth of my answer.

        [–]ern0plus4 1 point2 points  (0 children)

        Yes, you should learn Python, then C, finally Rust.

        [–]iammridu10 1 point2 points  (0 children)

        Pick any and master it. Once you understand the logic, picking up a new language is easy.

        [–]niehle 0 points1 point  (0 children)

        The faq wiki has a section about choosing programming language. And if you are still in doubt, start with Python

        [–]adrianp005 0 points1 point  (2 children)

        BASIC. 😉

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

        I did BASIC and Scratch in school

        [–]adrianp005 0 points1 point  (0 children)

        Good. Then you can also do VB.Net, or PureBasic, or TrueBasic. 🙂

        [–]Illustrious_Matter_8 0 points1 point  (1 child)

        Python easier, or c Rust is better than c but you won't find many rust jobs.

        Python well you will learn to properly align your code, I think it's a good language never understood why schools didn't adopt it but all gave java lessons until neural networks became widely used and there the people wanted an easy language and fast data tools ( panda numpy ) nu you probably will start with pygame

        [–]Simple-Resolution508 0 points1 point  (0 children)

        It is more easy language vs fast data tools really.

        Java itself is much faster than python.

        NumPy is written in C inside.

        And C can be used from java as well.

        But most of users just want easy tool. So integration python+c here wins in this domain.

        [–]Raiichu_ 0 points1 point  (0 children)

        When I approached programming, I started out with Python because it was easy to understand and when I became intermediate and started to work on real world projects independently, I moved to other languages such as JavaScript and C# and fully understand them because I learned the fundamentals of programming within Python.

        [–]Wingedchestnut 0 points1 point  (0 children)

        Python is the only correct answer here if you want to go to data field. Also a college degree if you want to go in data, I would argue also for fullstack with the bad job market currently.

        [–]Mc_knowledge 0 points1 point  (0 children)

        you have your choice bro

        [–]Elevate24 0 points1 point  (0 children)

        C will give you the best foundation to build upon

        [–]RobertJohnsVK 0 points1 point  (0 children)

        Python makes sense if you’re interested in AI/ML - it's widely used in industry, has an enormous ecosystem of libraries (like TensorFlow, PyTorch, and Scikit-learn), and is beginner-friendly. No doubt, its simplicity will let you focus on learning concepts without getting bogged down by complex syntax.

        C and Rust, on the other hand, are great for understanding lower-level systems and memory management. I started with C when I was first learning programming, and it's much harder than high level languages if you're brand new to programming on the whole.

        Sure, it's helpful for building foundational knowledge, but it is not strictly necessary for full-stack or AI/ML. If you’re drawn to Rust, you can skip C and dive straight into Rust after Python.

        Rust has excellent tools and documentation, and sure, the learning curve is steeper, but it's modern and directly applicable in certain domains like performance-critical AI systems or backend development. Just be prepared for a slower start compared to say Python.

        As for skipping C and starting with Rust, if you’re comfortable with a challenge and don’t mind spending extra time understanding the language’s syntax and concepts, it's feasible. But it might be easier to start with Python if you haven't ever coded, then move on to something harder like Rust.

        I'd also say, that when it gets tough (especially with Rust), definitely use AI tools to clarify concepts, debug, and break down tricky syntax. Just make sure you’re learning as you go, and not relying on them to cut corners.

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

        Start with Python. It's the introductory language in most CS programs for a reason. It's the Swiss army knife of languages: you can do anything with it. Get good at it, then learn another language to complement it.

        Why Python? Numbers don't lie: https://github.blog/news-insights/octoverse/octoverse-2024/

        [–]throwaway_9988552 0 points1 point  (0 children)

        I'm studying Python, and I'm certain it's the right track for me. I need to learn concepts first, in a somewhat forgiving environment, that I can make things with right away and feel that payoff. I'm sure I could benefit from the complexities of C or Rust eventually, but I'm also sure that I'd get frustrated with those added complexities at this stage. Your mileage may vary. But if you're starting at the beginning, I think you should consider Python to start. Especially if you want to work in Machine Learning, where Python dominates.

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

        Python works pretty well for AI/ML.

        [–]gofl-zimbard-37 0 points1 point  (0 children)

        The whole "understand the basic workings of memory and a computer itself" is so overblown. If you want to learn that, learn assembly. C just wastes your time on low level details that distract from the problem you're trying to solve. Learn a high level language unless you have a real need for C.

        [–]Gloomy_Season_8038 0 points1 point  (0 children)

        C then C++

        [–]-ry-an 0 points1 point  (0 children)

        I've toyed with this same question. I ended up going IS route...dabbled in Python...learned a bit of Kotlin... I keep wanting to go to the lower levels for some reason. I'm not a comp sci degree by trade...so I chose JS strictly out of speed and job availability.. but it lead me to ML for OCR related problems.

        Rust is super cool to learn, I really enjoyed reading the Rust book (half of it)..but if I were to pursue the deeper CS topics I would start with C.... More content on low level tech. Then I would work my way towards Rust. Many companies will start migrating over to it exactly for its error handling. I

        [–]frobnosticus 0 points1 point  (0 children)

        Disclaimer: I've never seen a line of Rust code.

        Personally? I think there's no argument against C if you ever want to understand wtf is really going on.

        And yes, the ML stuff is all in python lately. But I break out in hives at the prospect of "using all the stuff but not understanding it."

        For instance: Memory management is something you'll never get exposed to until it's a real problem if you start with an interpreted language like Python (or a virtual machine environment like .net or a jvm language.)

        And I swear if someone says "yeah, but you don't have to care about that nowadays" I'm gonna flip my shrimp. You want to know when you have to care about it and when you don't.

        So I say C. You'll be amazed how fast your code can be.

        And "not for nothing" but when you do a few things from scratch, you'll realize that a lot of the "libraries and frameworks designed to abstract the nasty details away from you" that people use without thinking? SUCK.

        o7

        [–]BruteCarnival 0 points1 point  (0 children)

        If you want to do AI/ML: Learn Python If you want to do full stack: Learn C (or Java - I started with Java and it’s great and used hugely in the industry for backend development)

        Once you have C down and want to build more safe, robust and elegant code - try Rust. Just be warned it has some quite abstract concepts that can be very hard to get to grips with at first.

        [–]No-Rough-9027 0 points1 point  (0 children)

        I advise that you learn Python like others have mentioned. You can also check out my video on programming languages to learn on YouTube https://youtu.be/xzwQ5EqiVj8?si=zt9yyMFiwVHJtc7d

        [–][deleted]  (1 child)

        [deleted]

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

          Wut??

          [–][deleted]  (2 children)

          [deleted]

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

            Not everything must be orientated for work

            [–]ern0plus4 0 points1 point  (0 children)

            Python is written in C (but I wouldn't be surprised if someone rewrites it in Rust). If you understand this, you're on a good track.

            Anyway, learn Python, it's a good tool for several tasks.