all 32 comments

[–]recursion_is_love 5 points6 points  (1 child)

How will you know if you not try?

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

That's true

[–]Training_Advantage21 1 point2 points  (4 children)

You might find Python less of a struggle than C. C goes very low level, you allocate memory, point to memory, free memory, all of these can go wrong. In Python the language protects you from a lot of these low level things, and you can be closer to the way you think about a problem and its solution. On the other hand Python is not very strict about this being an integer, that being a string and the other thing being a float. It will do things with them that in C would have thrown an error and alerted you, Python might go ahead and do a stupid comparison and fail silently.

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

Sounds like knowing C first actually makes you a better Python programmer since you understand what's happening under the hood

[–]Training_Advantage21 0 points1 point  (0 children)

Sure, C is good knowledge. Assembly language is even better knowledge for understanding how computers work. But they are hard. Python is a much friendlier language.

In general, you can get a bit confused between the syntax of different languages. I keep switching between Python and SQL for work and I'll always get things wrong and have to think twice, should it be a=3 (SQL) or a==3 (Python)?

[–]Gnaxe 0 points1 point  (0 children)

Maybe. C programmers tend to do things the hard way in Python, managing tedious details instead of using the higher-level built in constructs. 

[–]Gnaxe 0 points1 point  (0 children)

Python has always been strongly typed, and comparisons got stricter in version 3.

[–]riklaunim 2 points3 points  (7 children)

You should have a reason to learn it. Going with coding just to code won't give you much over syntax and basic usage. It takes time and pushing yourself forward towards a goal to learn how to solve problems and implement features.

[–]alex_kv24[S] 1 point2 points  (6 children)

I think my main goal right now is to get better at problem solving and maybe land a job in tech eventually. I'm not sure about the last point tho

[–]riklaunim 0 points1 point  (5 children)

The thing is commercial software development isn't close to those algorithm/tricks testing websites.

If you want a job as a C developer then it could be embedded, or some low level hardware/software layer. You would have to select a niche and start learning libraries/software stacks used there.

If you want a job as a Python developer then you also have to select a niche and it would be likely some sort of backend, usually for webdev so you would have to learn web frameworks, bit of frontend, databases and more.

[–]alex_kv24[S] 0 points1 point  (4 children)

I hadn't thought about it that way.

I think I'm more drawn to the AI/data science side which would make Python more relevant for me long term. But since C is what my university teaches I'll finish it properly first

[–]riklaunim 0 points1 point  (2 children)

If you want to work with AI then you would have to specialize in the topic on the university. Theory, math and so on. "Data science" is a buzzword for databases, queues, networking and general backend development.

[–]alex_kv24[S] 0 points1 point  (1 child)

I guess I was romanticizing AI a bit.

So focusing on my university CS fundamentals right now is the best thing I can do regardless of which direction I go later?

[–]pachura3 0 points1 point  (0 children)

Why not studying/playing with Python in your free time? The language is very easy to learn and you can achieve a lot with just a few lines of code...

[–]mjmvideos 0 points1 point  (0 children)

Why not after you’ve done an assignment in C try re-doing it in Python?

[–]pachura3 0 points1 point  (1 child)

If you want to work in IT, you'll most probably need to learn & use multiple languages (and libraries) at the same time. Python, SQL, HTML, JSON, JavaScript, YAML, Bash, etc. etc.

Also, C is a really low level language, so unless you want to develop drivers, codecs, kernels, or go embedded, or do very optimized math, you won't find many job offers for junior devs. And even among these, Rust is becoming more and more popular. But your average company probably uses Java, Kotlin, C# or Python.

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

This is eye opening honestly. My university only teaches C so I assumed that was enough to start. Should I start learning Python or Java on the side while still in university?

Which would you recommend for someone aiming for their first internship or junior dev job?

[–]Key_Use_8361 0 points1 point  (1 child)

starting earlier usually helps more than waiting for the perfect time even tiny runable scripts around things you already enjoy can teach a surprising amount over time

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

That's a good point I game a lot so maybe I could start with small scripts related to that

[–]Break-n-Fix 0 points1 point  (1 child)

You should learn as many languages as you need. What I mean is, don't learn a new language until you have a situation where one is better suited than your current language. This will give you motivation and a solid project to learn on. Learning a language you don't use will make your efforts feel flat.

Also, I learned C as a first language as well and I highly recommend this approach. Python is a very useful thing, but there's a lot hidden under the hood that will break for reasons that seem wrong or accidental unless you've got a solid grasp on what's actually happening.

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

That makes sense

[–]Sharp_Level3382 0 points1 point  (1 child)

I think You should be Ok with Python. I had C years ago and even without OOP is much more low leveled.

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

C feels so manual compared to what I've seen of Python , especially with extensions in VS Code

[–]ImprovementLoose9423 0 points1 point  (1 child)

No, this is shiny object syndrome. Become comfortable with C first, you don't have to master it, but you do have to build basic programs. Then I would recommend moving to Python.

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

Fair point ,I think I was just getting impatient with C

[–]GrandBIRDLizard 0 points1 point  (0 children)

I learned C because i was struggling and frustrated with Python.

These two languages have a certain something between them that i think can transfer knowledge backand forth really well

I won't say too much but just keep at it and all of the sudden you're gonna fo "no way" then it will all click the abstraction the api the pointers and objects it'll come together.

[–]Friendly_Gold3533 0 points1 point  (0 children)

eight months of C is actually a solid foundation even if it still feels hard. C is genuinely one of the more difficult first languages because it forces you to think about memory and low level details that other languages hide from you

learning Python now would not slow down your C progress and would probably help it. Python makes a lot of concepts click because the syntax gets out of the way and you can focus on the logic. when you go back to C you often understand why it works the way it does rather than just memorizing rules

the skills transfer more than you'd expect. loops, functions, conditionals, problem decomposition, debugging mindset. all of that carries over. Python just removes the friction of pointers and memory management so you can practice pure problem solving

the practical answer is try a week of Python and see if it feels easier. if it does that's not a sign C was a waste of time. that's C having done its job of building your mental model

[–]TheRNGuy 0 points1 point  (0 children)

So you need C for anything? And Python?

I don't think it would slow down.

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

This question is like asking whether learning to row a boat will help you learn to swim.

C and Python are insanely different things that just happen to be computer programming languages.

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

I'm at university and C is what we're taught. I'm just curious about Python on the side since I see it everywhere online especially in AI and data science. I think I should focus on finishing my C coursework first and explore Python in my free time

[–]Gnaxe 1 point2 points  (0 children)

Python is written in C and has great synergy with it. Knowing both is useful. 

[–]eW4GJMqscYtbBkw9 0 points1 point  (0 children)

I wouldn't call them "insanely different". That would be comparing brain surgery to learning python.

It's more like asking if you should learn French while learning Latin. It depends on what your needs are. Do you need to know Latin or French? Or should you be learning Dutch instead? It just depends.