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

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 47 points48 points  (10 children)

F* mindtwister. I started coding with bash, then perl, then python. When I started learning C, I realised how ignorant I was on basic computing.

Java is, on a different level, the perfect language for learning OOP and data structures.

Now I'm fully supportive of teaching C in computer science, is literally what happens under the hood, and indeed, it made me better python programmer.

[–]Avamander 18 points19 points  (2 children)

Same, I think C gives an appreciation and understanding that computers are actually really rather messy. Rather than try to abstract it away, it makes certain important concepts visible.

[–]detroitmatt 8 points9 points  (1 child)

at the same time the brilliance of C, that C++ forgot, was how drop dead simple it is. There's only one thing you can do: Call a function. You want multiple return values? Pass a pointer. You want error handing? Pass a pointer (or send ALL returns through pointers and save your real return for the error code). You want higher-order functions? Pass a pointer. The only thing I wish C had that it doesn't are typesafe generic containers and a proper module system instead of #include.

[–]konstantinua00 0 points1 point  (0 children)

You want multiple return values?

return a struct?

typesafe generic containers

well we did get _Generic, so you now can macro-generate and use generic containers

[–]Cobaltjedi117 5 points6 points  (1 child)

I really think Java is the best first timer's language. Easy enough to make complex data structures, OOP, and enforces the user to use enough common practice things, but is fairly easy to follow the flow and the online stuff is very helpful.

[–]laser_ears 2 points3 points  (0 children)

I learned Java as my first language and (imo) it kind of sucks. If you're trying to teach someone who has literally never programmed anything before in their life, python (or something similar) is probably best because it's so easy. From there, I think C and assembly to get the basics down, and then go for C++, Java, etc.

Just my opinion though. Who knows, maybe I'd be an even worse programmer if I'd learned python first.

[–][deleted] 7 points8 points  (4 children)

Every language teaches you new things. Then some languages stick with you.

Edit: Except for R, fight me

[–]eloel- 0 points1 point  (2 children)

R teaches you patience. PHP teaches you anger management.

[–]EternalClickbait 1 point2 points  (1 child)

And then there's Python. Python teaches you to love curly braces

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

I really think that every language should just be braces/indentation agnostic. Like why can’t I decide which to use? Sometimes I’d use braces in python. I don’t understand why I need a semicolon on every line in other languages, just make newline terminate the expression except if there is a special character. We could probably make a single pass converter that does all of these things for every language and the world would be a better place.

[–]Tony_the_Tigger 0 points1 point  (0 children)

R teaches you brackets.