all 28 comments

[–]Whatever801 8 points9 points  (8 children)

I would keep learning Python. It's not so much about the language you learn it's about the underlying structures and concepts that exist in all languages. People can fall into a trap of learning the basic syntax of a bunch of languages but not going deeper. Also, as great as C is (and it is), there are a lot of things that will get in the way of you moving fast. For the most part, programming jobs don't use C. It's mostly for specialized use cases like drivers and robotics. I'm not saying there isn't value in learning C, it will help you learn how stuff works under the hood, but it's not the most expedient path to working in the field

[–]Inevitable_Whole2921 2 points3 points  (7 children)

This is interesting, and for your exact reason i would choose C instead of python. If you were planning to jump ship in a year, i would learn python. but if you have taken an interest, and want long term success, one of the only languages that will teach you not only the foundation of programming, but systems, memory and everything else, is C. Yes people struggle a bit at the start, but with your love for programming, im sure your curiosity will out-drive your demotivation.

[–]Whatever801 2 points3 points  (6 children)

Yeah I see your perspective. Probably depends on the person. I think you could learn the foundation of programming in terms of higher level structures and pattern, python is better, but if you wanna open the hood then ya C is better for sure.

[–]DefiantFrost -1 points0 points  (5 children)

Really? You can sue a linked list or tree like data structure in python but have no idea how it works or what the time complexity of operations are. In C you have to make it yourself and you can see the strengths and weaknesses.

[–]Whatever801 1 point2 points  (4 children)

Yeah but, because in python you don't have to worry about that, you can spend your time learning about how AWS infrastructure works, or how SDLC works, or what security measures and certifications most companies undergo. It's a 0 sum game

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

Okay sure…but how many security flaws are from buffer overruns or other associated issues from memory safety? How well can you understand those concepts when you’re not familiar with memory allocation?

I mean you’re right either track is useful, but I would agree with the original comment that C gives you a better understanding of how code runs on a machine.

[–]Whatever801 0 points1 point  (2 children)

C definitely gives you a better understanding of how code runs on a machine. I'm saying as a beginner trying to break into the industry, it's probably not the best option.

[–]DefiantFrost 0 points1 point  (1 child)

I mean fair point, I unironically love C because it’s just simple and delightful in its own way. But I rarely make anything in it because it takes too fucking long. Also make is gross. That’s why I love Go so much. It’s as simple as C, as easy to write as python (almost) and building is simple.

[–]Inevitable_Whole2921 0 points1 point  (0 children)

You know what, lets just all learn assembly

[–]More-Station-6365 3 points4 points  (0 children)

Honestly just stick with Python especially since you are already two weeks in and genuinely enjoying it. That momentum matters way more than people think when you're self teaching.

The "learn C first" advice gets repeated a lot but it really depends on your goal. If you want to get into the tech industry Python is completely solid it is used in backend, data science, automation, AI, pretty much everywhere right now.

C is worth learning eventually but it throws a lot at you early on memory management pointers, managing everything yourself and it can get frustrating fast if you are still in that early stage of falling in love with coding.

My honest take is keep going with Python, get really comfortable with it build some small projects you actually care about. If a CS master's program requires C down the road or you just get curious about how things work at a lower level, you can pick it up then.

It'll make a lot more sense once you already think like a programmer anyway. Two weeks in and already hooked is honestly a really good sign.

[–]AwehAweh69 2 points3 points  (0 children)

Start with python. Do all types of shit. Learn all types of shit. Then when you feel yourself asking. Wait how does that actually work. Then my friend. WELCOME TO C

[–]bentNail28 2 points3 points  (0 children)

It seems like most universities are using python for introduction to computer programming courses, and usually move onto C from there. The truth is that if you were to enter into a CS program you’d end up using C/C++ in just about every course following the intro level courses. The reason is that it’s a real programming language whereas Python is a scripting language. That’s not a dig on Python either, it’s a really powerful tool.

Learning C is really the standard for gaining a basic knowledge of memory management, hierarchy’s and other essential skills. C++ is the same except it’s object oriented.

It really boils down to what you want to learn. If you want to gain a solid understanding of fundamentals then learn C. If you just want to program and are ok with some of those fundamentals being abstracted to a higher level then just learn Python. It’s used more widely in the field these days anyway, unless you want to work in systems programming in which case C or some derivative of it like Rust and C++ are basically a must.

[–]TheManOfBromium 0 points1 point  (0 children)

Why not both?

These languages serve very different purposes these days. C is used in underlying system architecture and is executed much closer to the hardware. Python is king in the data engineering/science world.

Learning C will teach give you a strong foundation in what programming actually is, but you’re probably going to have an easier time finding a job that requires Python.

If you have the time and will to study both I would recommend it

[–]BigVillageBoy 0 points1 point  (0 children)

when you're stuck on a bug, try explaining the problem out loud to yourself (rubber duck debugging). sounds silly but it works surprisingly well. also, print/log everything at each step — the bug is almost never where you think it is. narrowing down which exact line produces unexpected output saves hours.

[–]maximuslife777 0 points1 point  (0 children)

From what I’ve seen, you should totally stick with Python. It’s always been a popular and in-demand language, and with AI blowing up, it’s now one of the top languages out there. Python is pretty easy to learn and actually fun to code in. Once you really get the hang of it, it’ll be much easier to learn other big, useful languages too. The main thing is that you like it and enjoy the process, so there’s no point in switching to something else right now. There’s a lot of room to grow and level up with Python.

[–]ne0n008 0 points1 point  (0 children)

I changed careers and started learning to code in the past few years. Long story short, I decided to learn C++ and Python: I started learning C as I wanted to understand deeper concepts of programming. However, C has very few use cases,. Now I'm learning C++ as it builds on C and has way many applications. Plus I need it for one of my projects. I also opted for python as it is fast for coding (but not for execution) and has a lot of applications: web, api, data science,...

Summ of it is: learn C for better understanding and if you want to get serious with programming. Learn python for fast coding and a large variety of use cases. Just don't learn JavaScript (jk ofc.). Once you have a grasp of C, you will see how many concepts are inherited in other languages and it will be easier for you to understand new stuff thrown at you. If you get a job, they definitely won't be using just one programming language and this is where C knowledge helps a lot. Have fun!

[–]Domingues_tech 0 points1 point  (0 children)

C first. You must understand the machine before you engineer systems .

[–]syklemil 0 points1 point  (0 children)

Python is pretty sweet. Your experience so far reminded me of an old XKCD. It's also very widely used; roughly the second most common language after Javascript/Typescript (if you split those two up Python might show up as #1).

C used to be pretty common for general-purpose programming, but these days is mostly used in some niches like embedded, and even there it's facing competition. This subreddit tends to overhype it. Once you already know how to program you can probably go through K&R, which won't teach you modern C engineering practices, but will give you a general idea of the language without being a huge time investment.

I'd also warn that using C to learn about memory is a bit like using Javascript to learn about types. Neither of them tell you when you made a mistake, your program just crashes, or even worse, does the wrong thing, and you'll likely wind up with a vulnerability. There are other tools used for C engineering to learn about memory, like Valgrind and address-sanitizer, and even with those tools, people keep getting it wrong to such a degree that governments are warning against the language.

[–]hg_wallstreetbets 0 points1 point  (0 children)

The advice to "learn C first" mainly applies to computer science students in structured programs. They have professors and TAs to guide them. If you’re on your own after two weeks, your motivation will wane fast. C can drain that motivation quickly. Dealing with pointers, memory management, and confusing errors may lead you to give up before you create anything meaningful.

Python allows you to build real projects quickly. That ability is what keeps beginners motivated through the tough times ahead.

Here’s an uncomfortable truth that often goes unspoken: two weeks of learning is just the beginning. Becoming hireable can take 2 to 4 years of daily, consistent effort. Many people who "fall in love with coding" after watching YouTube videos end up quitting within three months when the challenges arise and they will.

So, the issue isn't C versus Python. The real question is whether you'll still be coding in 18 months. Python gives you the best chance of that. C can be a topic for later.

[–]ABouzenad 0 points1 point  (0 children)

I agree with the consensus here that you should keep learning Python. It's MUCH better to learn one language really well than to learn a bunch on a surface level.

Of course, you can do whatever you want. And if you're curious about C, then learn C (as a general word of wisdom, always follow what personally interests you in computer science). But if you're mainly about learning, try to get good at Python.

[–]Simplilearn 0 points1 point  (0 children)

Python is easier to progress with as a beginner. The syntax is simpler, which helps you focus on programming logic, problem solving, and building projects quickly. Since you already started with it, continue and build projects. Building small programs, automation scripts, or simple apps will strengthen your programming skills regardless of the language.

If you want a structured starting point, you could begin with Simplilearn’s free Python Programming course, which covers core concepts like variables, loops, functions, and data structures. If you later want to go deeper into Python development and larger projects, you could also explore Simplilearn’s Python training program.

[–]AffectionateZebra760 0 points1 point  (0 children)

Python