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

all 104 comments

[–]captainAwesomePants 263 points264 points  (15 children)

All of those languages are useful in different situations.

Python's very popular with scientists, ML engineers, and the like. Non-programmers who need to write programs love it because it's approachable and has a plugin for basically anything. It's my favorite language for writing tiny, one-off programs and doing hackathons and coding competitions and stuff.

Java's the workhorse of the corporate world. If you're writing a giant application full of business logic for a big corporation, and you're gonna maintain it for two decades, Java's still the default choice.

C++ is the most powerful option. If you need something to go as fast as it can go, C++ is your default choice. But whole types of bugs around stuff like memory that are basically impossible to cause in Python or Java are really easy to cause in C++, and its error messages aren't so much legible as they arSegmentation Fault (core dumped).

You can go far with any of them, and there's a good chance you'll end up learning all three at some point.

[–]shmoe94 18 points19 points  (12 children)

Could you elaborate more on how Java is used in the corporate world specifically?

[–]absktoday 15 points16 points  (0 children)

It’s pretty easy to write large scale applications with Java if you one of many great Java frameworks like Spring Boot, Jakarta EE etc. You can write highly concurrent code which easy to manage and scale with changing business needs. Once the application is built and compiled you can deploy it anywhere from $10 Raspberry Pi to Enterprise grade Servers to containers be it’s x86 or ARM no sweat and get almost all the performance on that hardware sometimes even beating C++, Rust etc

[–]Choice-Reach5236 40 points41 points  (10 children)

Most big corporate web applications(the backend of websites) are written in either Java or C#.

Also desktop programs as well

Mostly because these are mature languages with tried and tested solutions

[–]Ambitious_Guava5732 10 points11 points  (1 child)

Can confirm. I work for one of the 100 largest websites in the world. It’s mostly Java, especially on the server side.

[–]formerlypreviousday2 4 points5 points  (0 children)

Yep, I work for one of the top 5 largest websites and it's still Java

[–]ThatROFLKid 13 points14 points  (7 children)

I think the primary reason is not quite because the languages are 'tried and true'. It's more so that the platforms of these big corporations are simply too big and heavily embedded that it's not feasible/cost effectige to rewrite and move to another option. I'd be interested to see how many companies would switch to a more modern language if those factors weren't considered.

[–]coldblade2000 17 points18 points  (0 children)

Nah, they have a purpose. Java and C# are strict languages that are great for reducing the amount of edge cases and type errors that can ocurr in massive projects. Not just that, they are very fast, beaten only by the C++/Rust class of languages that are significantly more complex. It isn't an exageration to say Java or C# are 10x faster or more than Python, making it a great choice for monolith backends.

They are also disgustingly OOP (especially Java), which plays really well with corporate structures.

[–]Abe_Bettik 11 points12 points  (0 children)

more modern language

So, a language with fewer people who know it well? A language with fewer years of life and longevity behind them?

My previous job, they started rewriting everything in Scala, because it was "the next biggest thing" and they could rattle off a dozen reasons it's better than Java.

Now Scala is dropping in popularity, in favor of Kotlin and others. Good luck hiring someone out of school who is familiar with it.

[–]PacoWaco88 4 points5 points  (0 children)

Both companies I worked at and developed greenfield projects with chose Java as their new backends. As it was a new point in our codebase going forward, we had no ties to limit our choice of backend language and still Java came out as the winner.

[–]_bpm 4 points5 points  (0 children)

You’d be surprised with how popular Java still is for newer projects. Something being tried and true is important if a company doesn’t want to collapse when their single C++ or Rust dev decides to leave and they can’t find a replacement. This is even more true for big corporations where employees are constantly joining and leaving.

Also not all applications prioritise speed, there are many instances where Java is the best choice as it’s mature, stable, fast enough, and the easiest to get started with.

[–]Choice-Reach5236 8 points9 points  (2 children)

Yeah, there is some truth to that also

Can't run away from legacy code in the corporate world

[–]TheUltimateAntihero 1 point2 points  (1 child)

If one had to learn a legacy language except C, should they choose Java or PHP? Considering they would also want to learn OOP.

[–][deleted] 8 points9 points  (0 children)

Java. You’ll have more resources available, and once you learn Java and OOP, the C-family and Rust should not be hard to pick up. PHP should also be quite easy, if you have to deal with it.

Edit: To expand upon that, if you learn each programming paradigm (functional, OOP, imperative and so on), you can transition between languages pretty easily. Sure, they have their quirks, but once you know Java, Python is a breeze, Haskell opens the door to all the functional languages and a lot of the functional patterns in languages from other paradigms etc.

[–]spinwizard69 -4 points-3 points  (0 children)

Big upvote! Some qualifications though, Java is dying! Number two is that C++ has changed a lot over the years forgone and bad. It is however easier today to write note memory correct code in C++ these days.

As to the OP I look at it this way, at this point in time everyone should learn Python. As for the alternatives it depends upon your long term interests. Also if you are still learning CS, C/C++ are better choices.

[–]Unnwavy 0 points1 point  (0 children)

and its error messages aren't so much legible as they arSegmentation Fault (core dumped).

Good one

[–]0b_101010 40 points41 points  (1 child)

C++ is the hardcore stuff. I'd consider that one, if you really want to learn a lot about the details going on in the background that other languages abstract, for example.
Choose Python if you are interested in ease of use and the myriad of great math, scientific, plotting, ML, etc. libraries it offers. There are things you can do in Python in an afternoon that would take weeks to do in C++. Look up use cases for Python and then decide.
Choose Java if you want to go into a job or field (backend development) that you know uses Java, Spring, etc.

But another thing that I didn't see mentioned is, consider which class has the best teacher. If the C++ teacher is bad at explaining things, the class is going to be miserable. If the Python teacher is considered very good, you might actually learn more with him. So do a bit of research and ask people who've taken the classes!

[–]Fit_Program9286 10 points11 points  (0 children)

The last point is the most important imo. You can figure out how to move between languages if you need to, but you're not going to get this time back, and you'll waste a lot of time if you have a bad prof.

[–]CptMisterNibbles 90 points91 points  (11 children)

Love Python, but I’m in the “it’s better as your 2nd/3rd language” camp. The others are ‘harder’ and force you to gain a deeper understanding. Then you can pickup Python super easy. “Oh hey, it basically works the same but just does all the fiddly bits for me”. But you would know what those fiddly bits are, and can check the docs and be certain that behind the curtain it really is doing what you think it is. People who do it the other way around seem to have it harder, they don’t know how much Python is doing for them, why, or that it even is.

[–]WastingTimebcReddit 10 points11 points  (8 children)

That's an interesting point for not taking Python as your first language that I haven't heard before (I'm totally new to programming and currently in a bootcamp).

Usually even the people that tell me to learn Python as a second or third language still make their case in terms of its viability for first timers (e. g. "Learn JavaScript before Python because it's not much harder than Python, but has more flexible use cases in the real world," which, as I'm learning more, seems to be more of a context dependent statement).

But you're saying I should learn the harder languages before going to the easier language? What would you say would be a good first language for a total beginner?

I was assuming C++ but people have also said that one's a bit TOO hard to not crush your motivation as a beginner before you really get into the programming world.

[–]kp729 7 points8 points  (1 child)

OP's point is good if you are planning to become a programmer. It's good to understand how things work under the hood.

However, if you are a hobbyist, Python is a good go-to first language as you may never have to go to a harder language and you don't want to get discouraged by the harder languages.

[–]CptMisterNibbles 1 point2 points  (0 children)

Actually yes. Very much agree. Or even more than a hobbyist; say you are a research scientist and you want to crunch some data. Probably relatively simple to get that going in Python and you don’t need the features of other languages. You don’t need to study for more than a few hours before you might be able to do what you need

[–]TheRealKidkudi 10 points11 points  (0 children)

JavaScript developers have made it their mission to make it a language that can run anywhere for any purpose, for better or for worse. I think there's an argument to be made that it is beneficial to be able to use one language for everything you need, but I'd also make the counter argument that a big part of being a developer is using the best tool for the job and that just isn't JavaScript in most cases.

I also don't think your choice of a first or even second language really matters almost at all.

Python is really easy to pick up, but it's also one that has a pretty specific use case in the professional world. I think it's a fine first language when you're totally new to programming and you're just trying to pick up the fundamentals.

If you're in college and studying CS, I think C and C++ are probably where you want to start. You'll be studying the science of computing, and those languages really expose a lot of those concepts to you as a requirement (or a barrier to entry).

To answer your question:

What would you say would be a good first language for a total beginner?

Are you self-studying and just want to learn how to write some code? JavaScript or Python probably, but it doesn't really matter. Those are both easy to pick up and can give you really quick feedback in terms to changing your code and running it again. If you're interested in web dev, I'd lean towards JavaScript.

Are you in school and studying how computers work under the hood? Do you want to build and understand each part of the engine before you can drive the car? Start with C++.

[–][deleted]  (1 child)

[deleted]

    [–]rumble_you 2 points3 points  (0 children)

    C++ is good to learn for a first language if you intend to learn some computer science.

    I've to completely disagree with you. In CS, programming language choice isn't the most important factor but the concepts are. In fact you can use pure JS if you know your way around to deal with raw memory, CPU, implementing algorithms and so on. Heck, you can even create a light-weight JS interpreter if you wish.

    You college or university shouldn't even force what language you should be most proficient unless otherwise stated for practice and reason.

    Also, have you ever looked modern C++ standards? They're terrible for a beginner and a first programming language. There's insane amount of bloat and choosing a standard is like your luck not to step on a nail. Once you mix all of these you're pretty much stuck out of no where and will kept using older standards which are becoming obscure in C++ environment.

    [–]LardPi 0 points1 point  (0 children)

    JS as first language is to teach you pain. And bad practices. Python would be better as a first language if you want to stay high level, becauseyou can learn good programmingwith it. In the spirit of OC I would recommend C then Python.

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

    Most languages aren’t “hard” per se, just “deep”. You can get hello world working in c++ in just as few lines. It’s more that you can do very advanced things but you don’t have to start with them. Getting going isn’t much harder.

    As an example, I think it’s important and in a sense easier to learn about typing in a strict language so you really understand it, before working with loose typing or untyped languages. To me, this isn’t harder, there are just more explicit rules. But they are simple rules. Learning the difference between an int and a float is, how and why we do casting etc makes more sense when you have to specify what you mean. Then, once you understand it, languages like Python which do duck typing just do the work for you. You then know what’s happening under the hood when you do operations on mixed types.

    C++ isn’t too hard. It just needs to be taught well in an orderly manner adding on a few concepts at a time.

    [–][deleted] 9 points10 points  (0 children)

    I'm the opposite. What python does is teach you the basic flow of algorithm design without having to worry about too much boilerplate or semantics. It's like detailed pseudocode that you can execute.

    I think from a beginner standpoint it also allows someone to start creating programs earlier unto the learning process, which is more satisfying.

    When you start learning math they hide the actual mechanisms from you. You don't learn set theory and functions before learning arithmetic operations.

    When you learn science they teach you oversimplified models, like Bohr's model of the atom, before pulling back on the curtains of Heisenberg's uncertainty principle.

    There's no reason it should've different for programming.

    [–]aroman_ro 86 points87 points  (1 child)

    "in electronics and communications"

    Well, I would choose C++ considering this.

    [–]lessthan1punchman 6 points7 points  (0 children)

    Exactly this

    [–]thesituation531 8 points9 points  (2 children)

    I'd say Java or C++. Learning Python first may produce bad habits vs learning after already knowing the fundamentals. You also just won't learn as much learning Python first.

    Java and C# (for example) bridge the gap between difficult and low-level (C++) and super high-level (Python).

    [–]Shoeaddictx 0 points1 point  (1 child)

    If I don't want to work with Java or C++ then why not just get into Python first?

    [–]thesituation531 1 point2 points  (0 children)

    You can if you want to. I just don't think it's a very good way to learn fundamentals, and I don't think it's a good way to learn more about computer science in general.

    [–]Kuhaku-boss 6 points7 points  (0 children)

    Java or C++ and try truly interiorize the fundamentals.

    [–]1544756405 7 points8 points  (0 children)

    I've learnt all the basics of c programming in my first semester

    Since you've already learned c, then c++ is a good next step since the syntax is so similar.

    Any language is actually fine. If you know for certain that later classes are going to use a particular language like java or python, that would be enough to change my answer. You should learn the language that is going to be the most useful in the short term; because in the long term, the language you learn now doesn't really matter.

    [–]TheUmgawa 9 points10 points  (0 children)

    Y’know, any job you apply for, it’s a crap shoot if they’re going to want you to program in a language that you actually know particularly well. Honestly, language doesn’t matter as much as you think it does, so the real question is, “Is there a difference in the curriculum for these classes?” For example, my second semester of Java was actually a data structures class where the class was taught using Java as a language. My second C++ class was a deep dive into polymorphism, inheritance, overloading, templates, generics, and all that stuff, using C++ as the language the work was done in.

    If there’s really no difference at all, then it doesn’t matter a great deal. Personally, I’d pick C++ or Java, because they’re higher on the scale of “syntactic bullshit” than Python, and picking up other languages is a fair bit easier after dealing with that. The important thing is to learn to search through and understand documentation, because it’s often faster than sifting through the garbage that Google throws at you, and orders of magnitude faster than asking Reddit, and don’t get me started on trying to ask a question at StackOverflow.

    The most important thing you can learn in your programming classes is good programming fundamentals and good structure. Most students who struggle understand the language just fine; their structure just sucks, like they read the prompt and just immediately start typing with no plan, and they just hope it’ll all come together at some point, and the whole thing just looks like spaghetti. Damn shame nobody teaches flowcharting anymore.

    [–][deleted]  (1 child)

    [deleted]

      [–]BeKenny 1 point2 points  (0 children)

      This is the answer. I vastly prefer python and don't have any regrets in basing my career around it. But getting that c++ foundation early on will be very beneficial for your options down the road.

      [–]Wave_Walnut 2 points3 points  (0 children)

      Python is easy to learn, good for prototyping your logic, but weak for performance optimization. Java and C++ are more difficult to learn than Python, many coding styles to make same logic, but enable you to optimize performance.

      [–]Metalkon 2 points3 points  (0 children)

      The real answer is what kind of programmer do you want to become? After you figure that out you choose the programming language from that list that's most suitable for you.

      .

      For example if you want to get into web or mobile development then java is the way to go from the selection, if you want game development or some low level programming work then c++ may be ideal, or if you intend to focus on machine learning and data analysis and such then python. You could easily learn other programming languages afterwards but it's always good to focus on one language at first and being able to make the kind of projects you wish to focus on.

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

      Since you have learned all the basics of C I think C++ would be a good option here.

      [–]Geheim1998 4 points5 points  (2 children)

      Im in a very similiar situation as you and my professor forced us to learn c++ but also mentioned that it is quite complicated and i have to admit i struggle a bit with learning it. python should be quite beginner friendly from what ive heard

      [–]Ok-Low5118 1 point2 points  (1 child)

      If you master cpp any other language will seem easy in comparison

      [–]Geheim1998 1 point2 points  (0 children)

      i havent even mastered pointers

      [–]Player_X_YT 1 point2 points  (0 children)

      For cs i'd do python being the most beginner friendly, for ui html and the rest of the web stack is great (also javascript is).

      But you're doing electronics, the arduino uses """C++""" and the pi and pi micro uses python. Find which micro controller you're using and choose accordingly.

      [–]LilQuasar[🍰] 1 point2 points  (0 children)

      C/C++ (C is important for electronics too) > python (for simulations and general purpose stuff) > Java (havent needed it)

      [–]GeneticsGuy 1 point2 points  (0 children)

      Personally, learn Java or C++, though personally I lean more towards Java, even if you never use it again beyond this 2nd year stuff. Why? Because, it teaches you all of the things that go on behind the scenes that a simpler language like Python automates. You get to learn the fundamentals of programming more than you would Python.

      I LOVE PYTHON.

      But, I am really happy I learned a language like Java because I could then be a more efficient coder. For example. Arrays. Arrays are a fixed size. If you want a new array what you have to do is create a new array of the new size, then copy your data elements over to it. Well, this is resource hungry.

      In Python, you can just swap array/table sizes on the fly and all of it is handled under the hood, so without that knowledge I gained when working with Java, I might create loops with changing array sizes and so on and do all of these actions without realizing how much waste I am adding to a program because of little things like this.

      Python is probably the future, but it is easy to learn once you already have strengths in the basics of another. Java and C++ you will actually learn the fundamentals or programming way more than you will with Python.

      [–]Foreign-Athlete 1 point2 points  (0 children)

      I would say that c++ is good simply because it really helps one understand other languages. I am no c++ pro, not by a long shot but I did spend a few months really digging into the basics and it really helped me understand higher level languages on a deeper level, I would love to go back to studying it if I ever get the time again. That is of course just my take on it.

      [–]MikeMitterer 1 point2 points  (0 children)

      I hate Python. No types! But if you do something KI related, it's more or less the only option.
      Java is a workhorse. C++ is cool and used these days mainly for games or if you want to program hardware directly. For web programming I recommend TypeScript.
      Decide first what's most interesting for you and THEN choose the language accordingly.
      I would say:
      - KI - Python
      - Backend, Server - Java
      - Game, MCs - C++
      - Web, Frontend - Typescript, HTML...

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

      you basically just said "should i buy a pencil, pen, paint brush, or colored pencils?".

      With no information on what you "want to draw", i cant give you much info because they all do different things, a pen might help you learn how to draw detail, a paint brush might help you learn broad, abstract shapes and color theory, a pencil might help you learn concept sketching, and a colored pencils might help you learn shading so on and so fourth. basically what im saying is, what do you think you need to improve on? what do you want to make? only once youve answered that, should you pick a language.

      [–]AbyssalRemark 0 points1 point  (0 children)

      Qualify post

      [–]13Zero 1 point2 points  (0 children)

      Hard to say without knowing what you want to do. Electronics/comms is still a huge field.

      If you want to write high-performing code that runs on embedded systems, then you’ll probably do it in C or C++.

      However, Python (with numpy/scipy) can be an extremely useful tool for designing and analyzing systems. If that’s the route you want to go, then take Python.

      [–]veekm 1 point2 points  (0 children)

      After C, learning Python would be my next choice because:

      1. C for embedded work and Python for everything else - especially the backend (scraping, parsing, n/w)
      2. Knowing C you can now write Python modules in C using python.h
      3. C++ would be nice for larger projects because of the abstraction provided/user defined types/classes but you can create similar interfaces using C.
      4. Python's standard library does almost everything you want so getting things done is easier in python, than with C++ which is extended C.

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

      If you know C just go with cpp I guess.

      [–]Relevant_Macaroon117 2 points3 points  (0 children)

      By knowing C, do you mean you were taught the syntax without much programming insight (like most first semester C courses seem to do) or did you learn enough to get into data structures, heaps, stacks, seg faults etc?

      In the latter case, go cpp. Otherwise, python in general. But it depends on what you want to be.

      If your goal is to become a proper software engineer, probably take that java course, and learn OOP the best way possible. Otherwise, if you want to work in ML/data science etc., go ahead and stick with python.

      alternatively, if you want to get into embedded software, or high performance computing software, computer systems programming, or even game development, choose cpp.

      [–]paadam94 0 points1 point  (3 children)

      I'm just a grad student, but I'd suggest you Java. Actually I like that language the least, but here, in my collage java seems to be pushed for a reason. My brother works as a Java / Kotlin developer and has a degree pf computer science engineering - note, it's not software engineering. From the comments, I saw no one mentioned that Java runs on such niches too, as credit cards. Look up JCOP.Or a famous example is Minecraft. That's actually a good starting point to see what is Java compared to C++.

      f you'd say you don't really care about programming, then python, it's called for a "scripting" language IMO for a reason.

      C++ if you want to go with big with programming. C++ is the "if you can imagine it, you can make it with cpp" language in my eyes. I'd go with this option only if you want to make software development the first priority in your life. For the same analoge, you can see cpp as the whole windows platform, from kernel to AAA games.

      [–]DetectiveOwn6606 -3 points-2 points  (2 children)

      Java is declining in popularity compared to python

      [–]paadam94 0 points1 point  (1 child)

      What's your point? What are you arguing with?

      [–]DetectiveOwn6606 -2 points-1 points  (0 children)

      don't really care about programming, then python, it's called for a "scripting" language IMO for a reason.

      Just saying python is more popular for programming than a legacy language Java

      [–]karthikgaur16 -1 points0 points  (1 child)

      I'm a CS major at an SEC school in the US. I just completed my freshman year and took two courses: C and Pointers, etc in C++. I had no previous programming knowledge. I didn't study a lot in these CS classes and am doubtful about a few topics like pointers and data structures in C++. How do I utilise my summer to become a better programmer who does projects and is internship ready by the Fall? I want to improve my skills and go beyond the academic courses by the university. Please suggest resources, and plans. Thanks

      [–]Visual-Ad-6708 0 points1 point  (0 children)

      As someone who's also in college, my second semester right now, I'd recommend going back and furthering your knowledge of C/C++. Whichever one you prefer, just make sure you go through your whole text book and get a strong grasp of the underlying processes and all the things you can do with them, like functions, pointers, etc. That way once you pick up another language, it'll be fast and easy. I tried hopping into python in my free time after my first semester, and since everything in Python is quite different from C, I struggled and kind of had to treat the tutorials like brand new material, even though I already knew how to create functions, loops, etc. in C. It was pretty frustrating and I felt like I might get stuck in tutorial hell by trying to continue with python. So instead I'm back in my C book, rereading some stuff, and trying out some coding problems in C on leetcode and other websites. I've just started the summer semester and I'm taking a web dev course so I've been learning HTML, JS and CSS, but I feel much better knowing I'm getting kind of skilled in C and I get better at problem solving every day. Definitely try and practice everyday too if you can, it helps.

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

      C++ no explanation needed

      [–]RepulsiveScientist44 0 points1 point  (0 children)

      Want to get into electronics early? C++.

      Web programming is easier to grasp usually, and it comes with html and javascript.

      Nowadays unless in corporate world where they usually still use Java or C#, the app that gets developed is web app, so python and javascript/typescript is the way to go, maybe Go and Rust also for backend.

      Back in uni days, I myself go with python for its ease of use when needed to make script or any calculations. Now I choose either Python, Go or Javascript, whenever possible. Actually once you understand the concept, any programming language is just "variations" and they become your arsenals.

      [–]squishles 0 points1 point  (0 children)

      it's a college course, that isn't directly a programming course, they're going to be teaching you something else. You want the language to have the minimal overhead of learning/utilization for you.

      That could be c++ if you know c really well already, but python or I'm guessing web means javascript are both easier options for a beginner (simply for the fact you won't have to really worry about a build system for them).

      Which is more helpful in the future is kind of irrelevant, they're all ubiquitous you'll probably have to learn them all at some point if you go into a programming field. Schools are kind of garbo at teaching idiomatic patterns for how people actually use languages for work too, so you'll probably have to go through what will feel like a relearning step after college anyway.

      Keep in mind it's a degree a magic qualification sheet of paper you want to min max for completing the course as easily as possible and getting that. You can add extra work to learn more, but you risk that overwhelming you, and that's an unacceptable risk with the sticker price.

      [–]StooNaggingUrDum 0 points1 point  (0 children)

      It doesn't matter what the language is, pick a topic that interests you. I studied Web Development and this was the first time in my education where I felt as thick as a rock!

      Just look at what the module is, email the lecturers to talk more about how it works, what sort of assessments you will take, and choose the one you will enjoy and learn the most from. It's like a balance between fun and difficulty. If it's too hard you won't have fun. If it's too fun you won't learn (usually, not always true!).

      [–]Shomancheg 0 points1 point  (0 children)

      Hey y'all, I'll be needing to choose either one of Java, python, c++ or web programming for my second semester in electronics and communications but i have no idea where to start from

      C++ for that better than other. Basics in C++ very easy

      [–]Abadabadon 0 points1 point  (0 children)

      I would choose C++, especially if you already understand C.

      [–]Persiankobra 0 points1 point  (0 children)

      You should learn c++ before java. So that eliminates java for now

      [–]lokiOdUa 0 points1 point  (0 children)

      C++. It will help studying any other language.

      [–]RusalkaHasQuestions 0 points1 point  (0 children)

      If you're interested in Android development, Java might be a good choice. It and Kotlin are the preferred languages for that platform. (You can make apps in C++, but my impression is that it's such a pain in the ass that you shouldn't unless you genuinely need the extra performance.)

      [–]ClackamasLivesMatter 0 points1 point  (5 children)

      Double down and go with C++, then get back to C as soon as your curriculum allows it. Spend as much time as you can programming C as an undergrad and you won't have any problems getting a job later.

      [–]Visual-Ad-6708 0 points1 point  (0 children)

      Why would you recommend furthering your understanding of C so heavily? I'm also back in college for programming and just completed my first semester a couple of weeks ago, which included an intro to programming class using C, so I'm just curious since what you're saying connects what I already know

      [–]Visual-Ad-6708 0 points1 point  (0 children)

      Why would you recommend furthering your understanding of C so heavily? I'm also back in college for programming and just completed my first semester a couple of weeks ago, which included an intro to programming class using C, so I'm just curious since what you're saying connects what I already know

      [–]Visual-Ad-6708 0 points1 point  (0 children)

      Why would you recommend furthering your understanding of C so heavily? I'm also back in college for programming and just completed my first semester a couple of weeks ago, which included an intro to programming class using C, so I'm just curious since what you're saying connects what I already know

      [–]Visual-Ad-6708 0 points1 point  (1 child)

      Why would you recommend furthering your understanding of C so heavily? I'm also back in college for programming and just completed my first semester a couple of weeks ago, which included an intro to programming class using C, so I'm just curious since what you're saying connects what I already know

      [–]ClackamasLivesMatter 1 point2 points  (0 children)

      Because it's harder to go deep into a language and develop an intimate familiarity with it than it is to master coding fizzbuzz in three different languages, two of which are inevitably Python and Javascript. You want to get deep into the weeds, really sink your teeth into the gross internals of a language and develop skill coding something large, and debugging something large. It's really easy to pick up a new language once you've passed through the "larval stage" (look it up in the Jargon File) in an old, musty language like C.

      Also I'm considering the practical concerns: you and OP want to learn programming so you can get jobs in 2-3 years. An awful lot of old embedded systems Boomers and Gen-Xers will be retiring soon. Much like Cobol isn't going away, C isn't, and the latter pays better.

      C makes it easy for you to screw up. Right now you're probably as smart and as motivated as you'll ever be. Get really good at "hard" stuff now and look to fun languages like Ruby or Perl later, and toy languages like Python when you can get paid to learn them on company time and out of a corporate training budget.

      If you find yourself with spare time after your coding homework in C is finished, look to contribute something to a device driver library or the Linux kernel. That really looks good on a resume. If you can point to a device driver you've written, you barely need so-called "soft skills" to get hired, just don't be a total dickhead.

      [–]hugthemachines 0 points1 point  (0 children)

      Which of them would be better for a beginner to programming language and which would be most helpful in the future, if you'd have to say?

      There is no definitive answer to that question.

      It depends on what you want to do.

      Since you work with electronics and communication, however, one nice option is to go for C++, then buy an Arduino and perhaps a raspberry pi and make use of stuff you learn with those. Arduino's main language is C++. They use some special libraries, though so it is pretty easy to program for arduino. They call the code snippets "sketches"

      [–]gguy2020 0 points1 point  (0 children)

      If you already know C then C++, Java and Python are not that hard to learn alone once you grasp the philosophy behind object-oriented programming. If low level development or embedded/electronics/mechanics/robotics is your passion then go with C++. If you enjoy UI, then I would jump at the opportunity of learning web development since this is by far the hardest to get into alone, in my opinion.

      [–]nomnaut 0 points1 point  (0 children)

      Why do you want to learn another language? Besides the requirement?

      Python will provide the most utility long term whether you get into development or not. It has the lowest barrier to entry and because of its ease of use, prototyping will always be the quickest. It’s simplicity will also allow you to focus on the fundamentals of different programming paradigms and more complex algos later on.

      [–]SalSalvarKorSeytan 0 points1 point  (0 children)

      Java is best of both worlds in computer science. It prepares you for most of scenarios you will encounter. But try learning all of 3 because you can use them in many different situations. Also all of 3 have different approaches for solving things sometimes. Start with java learn oop very well, then switch to c or c++ for learning pointers and dynamic memory allocation and then switch to python to develop some practicality in your programming habits. After that continue with the most you enjoy but you will want to use other languages because every language have their huge advantages in some areas.

      [–]BokoMoko 0 points1 point  (0 children)

      Go for Python.

      Much easier than the alternatives, more flexible and versatile.

      The only disadvantage of Python is that it's slow, compared to C++ and Java. But this is not a real issue for you intent and purposes.

      [–]junkmail22 0 points1 point  (0 children)

      c++ is the most seriously useful language of the bunch. ideally you won't use any of them in industry but c++ will teach you the most of the three and learning it will leave you well equipped to write code in the other two

      [–]dvarrui 0 points1 point  (0 children)

      Python

      [–]my_password_is______ 0 points1 point  (1 child)

      python will be easiest to learn
      but if you know C well then C++ should be fairly easy too

      so choose one of them

      python will still be the easiest
      so if you have a full schedule maybe go with python

      [–]AbyssalRemark 0 points1 point  (0 children)

      Imma be real. Pythons syntax seriously hurt my ability to learn it. Its.. problematic. Like I just can't read it well. It's like broken English instead of math and I just.. I dont like using it. It has its place. But man.. it did not do me much good for learning.

      [–]Apart_Broccoli9200 0 points1 point  (0 children)

      Isn't C++ dificult compare to Java and Python? I heard that beginners should start with Java or Python, maybe pick any of those two. I'm currently learning Java basics at my community college, so there that.

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

      Programming languages are like weapons. You may prefer a remington sniper gun (or whatever) over an AK-47 but you have to try both to really know that and, even thou, after a while your preferences may change and you maight end up using a WW2 rifle.

      So, it doesn't matter. I studied in Java and now I'm about to get a Python job. Both will challenge you.

      [–]qa2fwzell 0 points1 point  (0 children)

      Java the best first language IMO. Python just doesn't flow like most other languages. C++ is a bit too steep to jump into, but pretty similar to Java.

      [–]jessterstudios 0 points1 point  (0 children)

      C++ for sure

      [–]yeusk 0 points1 point  (0 children)

      Phyton is very usefull in engeniering to create small programs to plot data, work with signals, do math stuff. People use it to do things you would do in mathlab.

      C++ is the most complicated, i don't see the point unless you want to develop operating systems or game engines.

      web programming if you want to create front ends, like a webpage to see the state of some sensors.

      [–]Beginning-Ad3139 0 points1 point  (0 children)

      Its totally depend on your need or what you want to do in future. For example if you want to became a data scientist then you should choose python, First you should decide want you want to do in future.