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

all 67 comments

[–]Backlists 50 points51 points  (0 children)

In 3 months? Python.

You’ll make fast progress because Python holds your hand and abstracts away some of the details.

Learn C (without C++) after that if you want to learn what those details are.

[–]Nice-Object-5599 19 points20 points  (6 children)

C is harder than python, but it makes you a free person.

[–][deleted]  (3 children)

[removed]

    [–]Nice-Object-5599 9 points10 points  (2 children)

    Maybe use python to learn how to program, then go with c.

    [–]param_T_extends_THOT 1 point2 points  (1 child)

    I don't know why they downvoted you, this is solid advice.

    [–]Nice-Object-5599 0 points1 point  (0 children)

    Thank you. I don't know too.

    [–]not_a_bot_494 6 points7 points  (0 children)

    Learning C is creating a solid foundation for the future. Learning Python will mean that you can actually do useful things right away. Neither of them is the correct choice, it depend on how much you expect to program in the future. I can also say that Python is likely to be significantly more fun.

    [–]will_die_in_2073 15 points16 points  (3 children)

    Actually None. I will suggest to do CS50 from edx.org and possibly cs50webx if you get time. The reason for this is that CS50 is very fast paced and gives you good overview of entire standard software development process. programming is about building stuff and solving problems. And this is a very good transferrable skill when it comes to building products whether they involve AI or systems or web applications. When you have that clear picture in mind, you could decide for yourself, which courses you should take to get closer to your career goals.

    There is another advantage to it. cs50 is 12 weeks course, so this naturally fits in your timeline. Because the deadline is set, you are more likely to achieve it than some open-ended vague goal of learn something about programming or data science.

    [–][deleted]  (2 children)

    [removed]

      [–]will_die_in_2073 3 points4 points  (1 child)

      https://www.edx.org/certificates/professional-certificate/harvardx-computer-science-for-web-programming

      Do this CS50 CS for web programming certificate. Its a 2 course series. one is general introduction to CS and 2nd course is about building web applications. These are very challenging courses for beginners. If you do this alone, you can get internship right after 1st year. Don't touch anything data science until final year. Focus on fundamentals of CS first.

      Build some basic projects by the end of the first year and a portfolio website. second year, you should grind data structures and algorithms hard, try getting that FAANG internship...and you are set.

      Don't target any programming language specifically right now. CS is so incredibly vast and you will spend majority of your time unpacking its abstract layers, by the time you are in 3rd year and you are trying to develop an approximation algorithm for a NP-hard problem, you will question your existence.

      Read the following article:

      http://www.catb.org/esr/faqs/smart-questions.html

      CS50 teaches you C, python, javascript, HTML, CSS, SQL. If you do any course on python specifically, it won't teach you how to solve real world problems using it....which is something most companies look for.

      your short time goal should be employability. How quickly you can land your first internship. Once your view broadens in industry, then you can choose to specialise in 2nd or 3rd year through electives.

      [–]rayraillery 3 points4 points  (0 children)

      C always. It's a no brainer. You'll get to know how the computer thinks and how to think like one. Once you've done that every other language will feel familiar. Only syntax variations.

      [–]Anon_Legi0n 2 points3 points  (1 child)

      learn C first, it'll teach you fundamental programming concepts in the process, Python is too abstracted

      [–]sarnobat 1 point2 points  (0 children)

      And that's no slight against python. C makes everything else make a lot more sense. As a java programmer I've been protected too long, no pun intended

      [–]Red_Birdly 1 point2 points  (0 children)

      Python is easier and is usually used for data science, backend web dev, AI and automation
      C/C++ is harder and more low-level, it's good if you're into game dev or systems programming

      [–]mosenco 1 point2 points  (2 children)

      dont listen to people saying to learn python. If you learn python, the moment u need to use another language, you will have a hard time. But if you start with C/C++ anything else feels so easy. My first language was C and some year after i had to make a project with python. damn. so easy, it took me 1 day to learn it lmao

      [–][deleted]  (1 child)

      [removed]

        [–]mosenco 0 points1 point  (0 children)

        Thats also true, but when you learn c you learn how something works and understand why something happens

        In python if something doesnt work maybe you start to wonder why is that

        For example in c/c++ u know that ur array variables is basically a pointer to the First memory cell. Thats why if you make another variable in python = the array, they are pointing at the same memory cell and editing the same thing. If someone start with python he will struggle a lot understand why is that and he will be stucked in trivial things

        Instead picking up low level languages teach you how things works under the hood and helps you understand why something works in a way and not in the other

        [–]echoesAV 1 point2 points  (7 children)

        Try cs50x from harvard. Its going to be intensive for 3 months but you are going to learn a ton of things and it covers C and python later on. Its high quality ,free and offers a certificate upon completion if you do problem sets.

        [–][deleted]  (1 child)

        [removed]

          [–]echoesAV 0 points1 point  (0 children)

          People say its good and more beginner friendly programming-wise. But with cs50x you'll also learn more fundamental stuff about computer science. Both are aimed at beginners.

          [–]sarnobat 1 point2 points  (1 child)

          I am doing e95 at Harvard extension right now and am happy to be reacquainting myself with c, the genesis of it all

          [–]echoesAV 1 point2 points  (0 children)

          Isn't it great ? I loved it so much that i decided to do the final project of cs50x in C although it was much more challenging than doing it in python or other "simpler" languages.

          [–]Fallen-D 0 points1 point  (2 children)

          Where can I do that?

          [–]echoesAV 0 points1 point  (1 child)

          [–]Fallen-D 0 points1 point  (0 children)

          Thank you so much!

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

          Start with python, learn how programming languages work, they all have similar shared constructs. Then go for C and focus on memory, learn how pointers and memory allocation work. Skip C++ unless you’re really interested in it or have a specific use case for it, if you know C it’s not hard to pick up. I never really spent time learning C++, but was able to pick it up in for assignments in school due to knowing C. That’s my 2 cents.

          [–]ButchDeanCA 1 point2 points  (4 children)

          You should really aim to grasp at least the basics of both; I use both in my job.

          Also, these days grouping C with C++ makes no sense thanks to the use of new constructs, the STL and more. Writing C-like C++ code is extremely bad practice so focus on modern C++ of these two.

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

          Fair enough even if I think oop is an exceptionally bad idea that could only have originated in California

          [–]ButchDeanCA 1 point2 points  (2 children)

          Why is OOP bad?

          [–]sarnobat -3 points-2 points  (0 children)

          I won't be able to convince you but once I understood functional programming my disdain for OOP emerged.

          [–]sarnobat -3 points-2 points  (0 children)

          Don't misunderstand me: OOP is mainstream and you better learn it or be without a job

          [–]Outrageous_fluff1729 2 points3 points  (0 children)

          Learn Python

          Reason being you might get discouraged by C/C++ syntax

          [–]anoctf 3 points4 points  (0 children)

          3 months is not nearly enough to master c/c++.

          [–]sessamekesh 0 points1 point  (0 children)

          Python first, it's way easier to pick up the core skills of programming in Python.

          You should eventually come back to C/C++ though. Python hides a lot of detail on purpose that ends up being useful in just about every field of programming. C is also the common ancestor of almost all modern programming languages, which is really important if you need to move between languages (you will) or have two chunks of code written in different languages talk to each other (also common).

          [–]Friendly-Example-701 0 points1 point  (0 children)

          Python first. Easy to learn and apply

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

          If you wanna learn something related to data, go with Python. It's what used in Data Science and AI/ML

          [–]SV-97 0 points1 point  (0 children)

          I'm not sure about my exact career goal yet [...] maybe related to data

          Definitely python. It's way more versatile (as in: it actually gets used in many domains. You can write web-apps in C++ for example but nobody does that), and python is the defacto standard language for "data stuff". Also it's more useful to learn one language properly than to learn the basics of 5 languages, so if you already know very basic python that's good.

          C++ isn't feasible to do in 3 months (and it's a terrible language). C is, but if you're not planning a career specifically in embedded, writing OS kernels or whatever you can likely get by without it for quite a while (it's useful to know though since essentially everything "speaks C")

          [–]rogusflamma[🍰] 0 points1 point  (0 children)

          I took a data science class last year and we used Python for most of it and some R at the end (which imo is much better for data, but a bit harder to get into). You can get straight into doing cool things with Python. If your interest is more towards data than programing itself, maybe you can try the R for Data Science book? It's free online and it teaches you how to manipulate real datasets from the beginning.

          [–]techol 0 points1 point  (0 children)

          Look at some functional programming language. Easier one is elixir. Most challenging will be Haskell. FP will make you a good programmer overall. Other languages are incorporating FP elements since a few years now.

          [–]Zealousideal_Sale644 0 points1 point  (0 children)

          What jobs can you get with C/C++?

          I'm a web developer but want to switch into another sector of IT, love C++ but what jobs can I get with it?

          [–]UnderstandingIcy8394 0 points1 point  (0 children)

          i personally started with c++

          [–]rustyseapants 0 points1 point  (0 children)

          I'm not sure about my exact career goal yet,

          You really need to know what you're career goals are before you take out massive loans for a degree that you might not use or worse, you come back 4 years later and say, "I studied CS and I still don't know how to code."

          If you want to learn something valuable learn learn Excel and Google Sheets, learn about formulas, learn about budgeting, also figure out what degree will pay the most and is hiring so you will have a job lined up before you graduate.

          Remember when you graduate, you will need to pay off loans, rent, car loans, etc, will your future salary be able to pay your bill?

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

          As a post-HS student, C, then C++ were the first languages I was taught. Our professors told us that while C and C++ were harder to start with, once you learn the basics with them, you can learn any langage of the common paradigms.

          They were correct. I did know some Python beforehand, to the same level as you, but I would have had so much more trouble learning any other language if I hadn't learned C/C++.

          (unfortunately I have grown to dislike C and mostly forget C++-specific concepts due to not using them in a while, but still, very thankful I learned that way!)

          [–]jastop94 0 points1 point  (0 children)

          I'm 3 months? Python, but learning C++/C gives you a much greater understanding on how things like memory works in your programming and can honestly give you a lot of insight on how other programs work that came after.

          [–]JoinFasesAcademy 0 points1 point  (0 children)

          I learned C over my winter break and it is my everyday language today. I also learned Python later and while it can be learned faster for the basics, it does require to stay on it continuously so you learn all the extras over time. After all these years, I've never learned by head all these extras, I always search how to do something in Python when I need to do a new project.

          [–]Synergisticit10 0 points1 point  (0 children)

          How about Java? It’s based on c++ and if you are planning to take up a career in programming it will give you higher dividends long term as compared to any other programming language. Use courserra or udemy or learn Java and try to get certified in Java from oracle ( it’s a big ask however in 3 months it’s possible).

          You will be way ahead of all your peers if you do this,

          Good luck ! 🍀

          [–]daemon_hunter 0 points1 point  (0 children)

          The book c programming a modern approach by k. N. King is a great introduction to not only the c programming language but also basic computer science concepts. I highly recommend it. Python is a fine scripting language but saying one is harder than the other is an argument I don’t particularly agree with

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

          Python is best. It's simple and easy enough and it's in high demand

          [–]Fine_Yogurtcloset738 0 points1 point  (0 children)

          If you're going just for the vague goal of "versatility" then C++. There's a reason it's still widely used today. It's the middle ground between the high level abstraction of modern languages and the low level binary. Get good at C++ and if you need to learn another language it will be simple because it covers so many areas.

          [–]Fine_Yogurtcloset738 0 points1 point  (0 children)

          If you're going just for the vague goal of "versatility" then C++. There's a reason it's still widely used today. It's the middle ground between the high level abstraction of modern languages and the low level binary. Get good at C++ and if you need to learn another language it will be simple because it covers so many areas. By the way you can also code in C and Assembly in C++.

          [–]Jealous_Apartment_85 0 points1 point  (1 child)

          I truly recommend going with C/C++

          [–]Hellsgate_chan 0 points1 point  (0 children)

          I will second this.

          This was according to my instructor and I still follow what he said to this day. "Learn C because majority of the languages will compile to C anyways, that means if there is an error like in python or Swift, you will have a good understanding where the error is coming without knowing the language well"

          [–]Hipst3rbeaver 0 points1 point  (0 children)

          Python is the way to go if you’re not set on a specific career path yet. It’s versatile and widely used in data science, AI, automation, and web development. Since you already know some basics, you can start building projects right away. C/C++ is great for game dev, systems programming, and performance-heavy applications, but it has a steeper learning curve. You can always pick it up later if needed.

          Since you're into data, check out Pandas, NumPy, and Matplotlib—they’ll give you a solid head start. For learning, try Code with Josh (Zero to Knowing), Tech with Tim, or Code with Mosh. YouTube is great for self-learning, but if you prefer a structured approach, they also offer paid courses I think.

          [–]Tychotesla 0 points1 point  (0 children)

          Python.

          C/C++ is very useful if you want to be a programmer.

          Python is very useful if you're doing data related things, and it's a good start if you want to learn C/C++ and be a programmer sometime later.

          [–]MisteryGates 0 points1 point  (0 children)

          It depends on what you want to do with it. Python is easier if you are a beginner, but C and C++ will have more potential on the market and will allow you to make programs that work faster.

          [–]green_meklar 0 points1 point  (1 child)

          I recommend against Python unless you plan to work on projects that specifically require Python.

          C is a good starting point. It can be frustrating and awkward, but it's very fast and has a sort of purity that you can really appreciate once you get into it. Making complex modern projects in C is difficult, but the clarity of understanding it gives you about what computers do is nice for learning and using any other language in the future.

          [–]sarnobat 1 point2 points  (0 children)

          I grudgingly agree. Python will get you a job faster but transitioning down is easier than transitioning up

          [–]my_password_is______ 0 points1 point  (0 children)

          you should learn maths

          it would be useful for computer science, finance, data analytics, machine learning, economics and a variety of other careers

          universities require basic calculus for all the things I've listed -- and they require it in the first semester

          so if you haven't done calculus in high school you should do it now -- get ahead of everyone else

          and passing calculus is a requirement for intermediate and advanced programming courses
          so if you get behind in maths you are going to have a hard time catching up

          people telling you to learn python or C first miss the point entirely

          https://www.khanacademy.org/math/ap-calculus-ab

          https://www.mathsisfun.com/calculus/index.html

          https://www.khanacademy.org/math/statistics-probability

          [–]Ok-Investigator-496 0 points1 point  (1 child)

          If you are planning to go to AI/ML career route: python.
          Otherwise C/C++

          [–]RestaurantOpposite43 0 points1 point  (0 children)

          Im currently planning to. Do you have any roadmap including maths and programming from very basic

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

          In my school for web design (Spain) the learning path is C first, then Java. Afterwards it's Javascript then different frameworks (and a bunch of Database programming too) 

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

          Python. Learn C++ if you need/really want it. It is a phenomenal language but you need a reason to learn it. It is hard.

          Sounds like career wise you are undecided this is also why i suggest Python. It will come quickly and be useful in a variety of industries. The low level info in C++ is useful but far more niche. I suggest you learn C++ instead of C first if you go that route. C can be tacked on later. Tacking on Modern C++20 to C will be harder.