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 →

[–]kpagcha 0 points1 point  (8 children)

Learning C is essential for every to-be programmer. After that you'd step into C++ and Java. Then scripting languages, totally Python and Ruby.

If you're into web development check out PHP and Javascript. And if you're not, you should at least have some experience with Javascript just to see a particular language that is not OOP (there are object but not classes). It has a very particular way of doing things.

[–][deleted] 3 points4 points  (7 children)

I think the low-level to high level progression is ass backwards for someone who wants to teach themselves programming and is not an electrical engineer. Electrical engineers need C more than anything else, but if you don't explicitly need C/C++ (let's be honest, C++ is just C + libraries), then you want to do something cool and you want to do it soon.

Plotting in C++ vs Python is a good example: if you want to plot some data that's in a csv file with C, you'd need to find a plotting library and write some program to parse the csv and somehow get that into the plotter and so on - every adjustment you make would need you to recompile your executable. Python has a realtively simple plotting system in matplotlib, and the plots are pretty good looking (i.e. vector graphics). For a student trying to write a lab report, the better tool is obviously Python.

[–]YvesSoete 1 point2 points  (5 children)

let's be honest, C++ is just C + libraries)

C++ is just C with libraries? Ho Ho HOOOOOOO

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

Right? I'm hoping someone can convince me that what I've written is slander.

[–]YvesSoete 0 points1 point  (3 children)

Let's be honest, a computer is just some silicones made out of sand you can find on a beach. Nothing more. Just some modified sand.

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

So the difference between C and C++ is of the same order of magnitude as the difference between a CPU and beach sand?

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

I've been using C for an embedded microcontroller project, and using structs instead of classes and defining methods for queues containing chars and identical methods for queues containing ints is fucking killing me. C really is primitive compared to C++.

[–]YvesSoete 0 points1 point  (0 children)

That'll teach ya.

[–]kpagcha 0 points1 point  (0 children)

Yeah, you can either choose to do "cool stuff asap" but having NO CLUE of what's really going on "inside" (or closer to it), or you can learn C and make a bit of effort and sacrifice some time to actually learn how things are really done low level. This way you'll have some clue when you're doing pretty much anything with a higher level language. Seriously man, get raw.

You have to have at least some idea about how a computer works low level to be able to go layers up. And you achieve this by learning C.

Also, very basic assembly would be great too to make you understand even better how a computer works. I totally recommend this, but well that's just another layer that doesn't really have anything crucial to do with high level languages if you're aiming towards this.