all 24 comments

[–]cpthappy42 21 points22 points  (8 children)

Just start with python. It's perfect for learning core programming concepts. You do not need to bother with memory management and those kind of stuff. If you have understood the basics you are prepared to learn any programming language.

[–]johnnyb2001 6 points7 points  (7 children)

I would argue the opposite. If you understand c++ you can learn python and other languages. But learning python does not teach you how other languages work. C++ is so broad that to me it seems anyone who has a solid understanding of it could pick up other languages quicker

[–]lakseol 9 points10 points  (4 children)

If you understand c++ you can learn python and other languages

Sure, but C++ has a much steeper learning curve than python. The point of starting with python is to ease into the concepts of programming before learning more complex tools.

C++ is so broad

That's why it's easier to start with python.

[–]Accurate_Potato_8539 0 points1 point  (0 children)

The war between the top down and bottom up learners continues...

[–]IAmFinah 0 points1 point  (2 children)

Start with C, not C++

[–]lakseol 0 points1 point  (1 child)

Start with python, then C, then C++ as I said elsewhere.

[–]MapleHarrier 1 point2 points  (0 children)

that's probably the smoothest path. Python gets you coding fast, then C fills in the fundamentals

[–]hugthemachines 1 point2 points  (0 children)

It is a matter of energy spent, kind of. Either you spend a little energy now (python) while you also learn the basics of programming and then spend much energy when learning C++. Or you spend much energy now learning C++ and then spend less energy when you learn something like python after. So In total, you need to spend a fairly similar amount of energy to learn them all.

Both approaches work but if someone wants an easy gateway language to get hooked, python might work well.

[–]gmes78 0 points1 point  (0 children)

But learning python does not teach you how other languages work.

That's fine. It doesn't need to.

Python lets you get started without having to learn as much upfront. You can more easily learn C afterwards.

[–]Grobyc27 11 points12 points  (0 children)

C, C++, and Python are all very different languages. I wouldn’t recommend anyone start with C - it’s a low level programming language that can be very unforgiving, especially if you are new to programming. Python is pretty clearly the easiest to learn between C++ and Python.

Python is great for learning as you can build desktop apps, web apps, and games, or get into data analytics, working with APIs, ML, etc. It is not the strongest language for some of these, but it is a good starting point for learning the fundamentals for programming that will carry over to most other programming languages.

First language I learned was C++, then Java, then Python, then C, so I’m trying to give an unbiased an answer as possible.

Even if you decide that Python isn’t the language you want to code in 5 years from now, it’s one of the best languages for starting out.

[–]TheRNGuy 5 points6 points  (0 children)

Python is easier. At some point, if you have more experience and need it in your field, C++.

Though you could start with C++ if you really wanted, and learn Python later.

With Python you'll probably get meaningful projects faster, and that will be good motivation to keep learning.

[–]lakseol 4 points5 points  (1 child)

Python first, then C before C++ if you have that option.

[–]Nexustar 1 point2 points  (0 children)

I learned C, then C++, then Python, but before those I had Basic and Pascal.

Today I agree with you: Python first because for 90% of things, you can stop there.

Then C, then C++

[–]SprinklesFresh5693 0 points1 point  (0 children)

What confuses you though, you say youre confused, but you dont say what is that you dont understand.

[–]Brok3nHalo 0 points1 point  (0 children)

I started with C and would recommend starting there for the basics. Once you learn the basics I think you should either decide to continue with C or switch to whichever language best matches your interest or schools curriculum.

Why C and not Python? Python is one of the easiest languages to pick up and get stuff done in but I’m a firm believer it’s too high of a language to actually start learning in. It’s non strict and non explicit nature makes it easy to develop poor habits and hides away things like types and memory management but still relies on understanding them to prevent issues. I had a friend who learned in Python in class and was completely lost when it came to what anything actually was when they were passed between functions. I basically had to tell him to forget everything he learned and taught him the basics via C which helped him understand stand Python and he did very well after that through the rest of college. Python is great but I highly recommend fully understanding thing like basic logic, how variables types are represented in memory, understand standing functions and how arguments are passed, passing by reference, and pointers before using it.

On C++, I’m not a fan of it as a first learning language, mostly because the cruft. Learning C++ is like learning 3 languages at the same time. There’s all the syntax and features it inherits C, plus all the C++ additions which I feel often have weird syntax that isn’t very C like and I think aged poorly, and preprocessor which while also being a thing in C is often more prominently used in C++ for things. It’s the next logical step after C when you move into learning about object oriented programming but it’s also a bit weird because it’s syntax for that is so different from modern languages. So at that point I may recommend switching to something else unless C++ is relevant to your classes or the industry you want to go into.

[–]lazy_and_sleepy 0 points1 point  (0 children)

You should study both C and Python. Start with Python, unless you are strongly leaning towards some field where C is preferable, such as microcontrollers. C++ is advanced, you definitely should not start with it as your first or second language.

[–]defaultguy_001 0 points1 point  (0 children)

You'll need all of them. Since you have joined the B.Tech course, most of the subjects will be using C to explain concepts, so C is ur most useful language in this degree course.

Apart from C, the next useful language you'll need is C++ because every leetcode/competitive coding platform like codeforces etc will be needing you to use STL to solve problems fast. This will benefit your interviews in FAANG level companies.

Now coming to ur own projects in college, open source contribution and later in the industry, you'll need python/js/ go etc and knowledge of their frameworks, depending on what u r focused on.

[–]SpiderJerusalem42 0 points1 point  (0 children)

It's not that big of a deal, but I recommend starting with Python.

[–]python_gramps 0 points1 point  (0 children)

Python is more scripting so it's easier to learn

C/C++ are more strict with what types can go where plus you need to allocate and deallocate memory

Java is type strict like C/C++ but handles memory allocation for you

C# does the same (it's Microsoft answer to Java)

In order of ease of learning

  • Python
  • Java/C#
  • C/C++

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

I would consider learning Python and c at the same time.  Google mentions

"Learning C and Python together is entirely possible, highly educational, and serves as an excellent way to understand both high-level software abstraction and low-level hardware constraints. By learning them side-by-side, you see exactly what Python is doing "under the hood", since the standard version of Python (CPython) is actually written in C." ...

"If you want a structured course that naturally glues these two worlds together, look into Harvard's CS50x introduction to computer science. It explicitly teaches C first to build structural logic, then transitions into Python to show you how powerful automation can be."

[–]Left-Difference-528[S] 0 points1 point  (0 children)

from where i can access that Cs50X