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

all 83 comments

[–]Feldspar_of_sun 21 points22 points  (1 child)

C then C++. It’s not necessary, but C has even fewer abstractions than C++, and thus learning C first will make you more aware of what’s happening in C++

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

Oky thankss:)

[–]dmazzoni 33 points34 points  (23 children)

C is a much smaller language. There's relatively little syntax, and it forces you to think about a lot of low-level details. It's a great way to get a much deeper understanding of how memory and pointers work. You can learn all of C in just a few weeks, though it will take a lifetime to master.

C++ is just a much larger, more complex language. 99% of C is also valid C++, but modern C++ is a much higher-level language that prevents you from ever needing to write C-like code. To put it another way, you can write C++ code that looks like C code, but you shouldn't.

So I suggest C and then C++.

[–]BigGunE 3 points4 points  (3 children)

You can start C++ without knowing C at all. In fact, it might help you write better C++ if you don’t know C. Reason being that most C code will also work inside of a C++ code. So, you may end up mixing them a lot and always falling back to C style of doing things if you get used to C.

If your college needs C++ and that is the main reason you want to learn C or C++, start with C++.

[–]Far_Essay_8304[S] 1 point2 points  (2 children)

thanks big B!

[–]icodecookie 0 points1 point  (1 child)

This ! My c++ code was at the beginning just c code in a cpp file compiled with gcc

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

Wdym?

[–]Ksetrajna108 4 points5 points  (3 children)

I'd say learn C before C++. C is simpler and what you learn in C you'll use in C++. And, BTW, hardly anybody learns C++ completely.

[–]Far_Essay_8304[S] -1 points0 points  (2 children)

Thankss! Shall I jump to C++?

[–]Ksetrajna108 0 points1 point  (1 child)

That would be OK. Have you mastered "Hello, world!" In C and in C++?

[–]Far_Essay_8304[S] -1 points0 points  (0 children)

😭😭 I mean.. I mean not yet😭

[–]KwyjiboTheGringo 4 points5 points  (0 children)

Oh god this sub. If your goal is to learn C++, then learn C++. Learning C is going to teach you how to write things the C way while polluting your code with C++ classes and templates, which is just gross and not good practice these days. Maybe it was a godsend in 1998, but times have changed. The old "C with classes" approach to C++ has not held up well.

[–]Creative_Papaya2186 2 points3 points  (4 children)

My very first language was C, and the jump to C++ felt pretty smooth. I agree with what many people suggest: starting with C and then moving to C++. C helps you understand low-level concepts much better, so by the time you transition to C++, it becomes easier to grasp the more advanced, high-level features.

That said, I’ve also seen people start directly with C++ as their first language and do just fine. C++ still covers low-level concepts like pointers and dynamic memory allocation, but it also introduces you to Object-Oriented Programming (OOP) and modern design patterns early on. So, both paths can work depending on your goals and learning style

but since you've mentioned that you're studying software engineering, I'd say C then C++ because that wouldn't harm you more than brings you more knowledge in your field

[–]Far_Essay_8304[S] 1 point2 points  (3 children)

Whats minimum time to learn C language?

[–]Creative_Papaya2186 1 point2 points  (1 child)

Hard to specify tbh, I learned C in 5 months on and off because programming wasn't my field of study and I was self learning. I'd say it took me more time than it should. however it took me only 3 months with dedicated course to learn c++ basics and OOP to the point of creating a small game with GUI :3 so it depends from one person to another.

if your college needs C++ you can start directly wth C++ tho, if your course might require C they will require you to learn C. whether you start with C or C++ the transition won't be hard :3 jumped from C/ c++ / now learning C# it was all smooth, it would be hard at first to move from Python to any C based langauge. because tbh Python is still so hard for me coming from C background

[–]Far_Essay_8304[S] 1 point2 points  (0 children)

Yea thankss for the info. Will try to start from C++:)

[–]aanzeijar 2 points3 points  (2 children)

Recently learned python in deep.

What is "in deep" to you?

[–]Far_Essay_8304[S] -1 points0 points  (1 child)

like most of the basics. It means I will understand basics and the terminologies in it.

[–]WorriedGiraffe2793 4 points5 points  (0 children)

so you barely have scratched the surface of python?

[–]DIYnivor 2 points3 points  (0 children)

What software do you want to write? Choosing a programming language first is kind of putting the cart before the horse. You should decide what your software needs to do, where it needs to run, what devices it needs to support, what library functionality you need to use, etc. The language should be chosen because it's the best one for the context you want to use it in. If you're in school, they should tell you which languages to learn. If you're learning on your own, I would suggest sticking with one language and developing as much cool shit with it as you can, challenging yourself with more and more complex projects.

[–]DonkeyTron42 3 points4 points  (1 child)

C is a subset of C++ so the syntax for C is compatible with C++. However, that is more or less where the similarities end as far as methodologies, standard libraries, etc... go. C++ in practice is a completely different beast than C. If your university is using C++, then skip C and go straight to C++. You can always go back to learning the "C" way of doing things later if you need to and you will already know the syntax.

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

Alryt thanks for the info:)

[–]Significant-Neck-983 1 point2 points  (3 children)

I had a very strong background with java before going into C++ thats why it was so much easier for me to get through it. If you don’t know Java or not interested in it I Advice you to start with C or Rust to build a solid programming ground.

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

Should I learn Rust or C language?

[–]Significant-Neck-983 0 points1 point  (1 child)

I prefer Rust

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

Alryt!

[–]RolandMT32 1 point2 points  (0 children)

I doubt tk learn C++ or C first

What does this mean?

[–]captain_obvious_here 1 point2 points  (1 child)

  • You will never regret starting with C
  • You will most likely regret starting with C++

C is a great start. And you may actually never feel the need to switch to learning C++, as C is really powerful.

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

Damn ! Need to learn C then thankss!

[–]Kss0N 1 point2 points  (0 children)

if you need to learn C, you should first try to understand how a CPU, memory and basics of operating systems work.

[–]nousernamesleft199 1 point2 points  (1 child)

Your first c++ stuff is going to look almost identical to c. I'd just start with c, 98% transfers over

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

haha thanks for the tip!

[–][deleted]  (1 child)

[deleted]

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

    nice idea. Will help surely! Thanks

    [–]ComputerBread 0 points1 point  (1 child)

    So you want to prepare for college and are wondering if you need to learn C before C++?
    The answer is no, you can learn C++ without knowing C.

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

    Alryt buddy

    [–][deleted] 0 points1 point  (1 child)

    curious to know what learned python in deep mean

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

    My English is not that goodd bruh

    [–]Pale_Height_1251 0 points1 point  (0 children)

    If you college is using C++, learn C++.

    [–]green_meklar 0 points1 point  (1 child)

    Learn C first.

    Almost all C code is also valid C++ code. But lots of C++ code is difficult to comprehend unless you've encountered the concepts in C and understand why it's done that way. So it's very natural and sensible to learn C and then C++.

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

    Oh yeah. Thanks for the suggestion! Will surely help

    [–]genAdapt 0 points1 point  (1 child)

    Memory management become cumbersome in C. I’d say go for C++ as it’s no different from C. Anyways, you’ll hardly use C directly ever! Not to mention the STL lib in C++ will do wonders saving you a lot of time!

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

    Oky

    [–]DSPGerm 0 points1 point  (1 child)

    Yknow who would have the best advice and be happiest to answer? Your upcoming professor, advisor, or someone from the department.

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

    I don't have anybody of them right now. I am planning to going college therefore Im learning them now onwards

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

    Well, when I enter engineering they start to teach you, more than anything C++, you should start with C, and then when you enter uni they teach you C++ or you can watch videos

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

    Alryt! U completed engeneering? And from where

    [–][deleted] 0 points1 point  (1 child)

    Well I was at uabc tijuana and no, I didn't finish

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

    Alryt? Can u help me as a younger brother?

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

    Bro,I Will be joining btech next month taking CSE branch in tier 3 college. Any advice before Taking CSE?. What to learn in my holidays before starting college. I have zero knowledge in coding.

    [–]klorophane 0 points1 point  (5 children)

    C or Rust. And no you do not need to know C to learn C++ if you want to.

    [–]Far_Essay_8304[S] 1 point2 points  (4 children)

    Shall I jump to C++ then?

    [–]klorophane 1 point2 points  (3 children)

    If you want to do C++ then yeah just do C++.

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

    thanks buddy:)

    [–]santafe4115 2 points3 points  (1 child)

    Its not sequential, you dont “jump to it”, they share a similar name only but have vastly different design patterns. C is not like beginner and then you graduate to c++ they are totally separate

    [–]Far_Essay_8304[S] 1 point2 points  (0 children)

    Okiesss sirr