Live data from Hacker News

Learn C, Then Learn Computer Science

qrohlf.com

1–10 of 134 posts

Re: Learn C, Then Learn Computer Science

#2
Don't confuse the strategies :-) Small liberal arts school has a strategy of broad based understanding of theory and the 'art', with graduate school providing the nuts and bolts specialization, large engineering school (USC) has the strategy of maximally skilled in execution of the art with enough theory to be effective. USC will assume that you will go to work right after you get your 4 year degree, Lewis and Clark may be assuming you're going to have at least another 2 years of work on your master's degree to get those bits in order.

In my experience, learning how the computer worked made it easier for me to learn to program it. My wife, was much more an algorithmic thinker and could care less if this variable was in a register or not, and focused on how things flowed through the program. I think they are both valid approaches.

Re: Learn C, Then Learn Computer Science

#4
Lean C when you need to grok how memory works in computing. Learn Scheme to grok the science of computing. Learn BSD when you want to understand operating systems and the network stack. Grok engineering when you write a scheme->c translator running on BSD.

Re: Learn C, Then Learn Computer Science

#6
Personally I take a different view: learn a high-level language, use it to study computer science, and if you feel like writing some low-level code go ahead and learn C (though even then, you could probably do better by bootstrapping a compiler for your favorite high-level language and adding some extensions for low-level operations). C is not the best or even a particularly good language to try to learn abstract CS concepts with, professors who choose it are needlessly stressing out their students, and at the end of the day you can learn a lot more about algorithms and data structures when you are not busy worrying about pointers or trying to avoid the things that "everyone knows to avoid" (except people keep failing to do so).

I say this as someone who watched the catastrophic results of trying to use C++ as a language to teach data structures. It is far more important to be able to think abstractly than to know how to deal with pointers.

Re: Learn C, Then Learn Computer Science

#7
It really depends on what you're aiming for.

- pure mathematical stuff, graphs and such, you can skip programming

- making algorithms/protocols/etc by simple models require to understand what a computer can do, etc so learn at least Python

- making new architectures, efficient functions (like for crypto), go to C.

I am suggesting Python, because it is probably the simplest programming language to learn.

I'm not saying that learning Python when you do purely theoretical stuff is useless, just that you can skip it and still work. Event if you do no CS-related things, programming is useful.

tl;dr: go for Python, unless you need to now the specific workings of a computer

Re: Learn C, Then Learn Computer Science

#8
post #7

It really depends on what you're aiming for. - pure mathematical stuff, graphs and such, you can skip programming - making algorithms/protocols/etc by simple models require to understand what a computer can do, etc so learn at least Python - making new architectures, efficient functions (like for crypto), go to C. I am suggesting Python, because it is probably the simplest programming language to learn. I'm not sayin…

"I am suggesting Python, because it is probably the simplest programming language to learn."

https://en.wikipedia.org/wiki/Scheme_%28programming_language...

(Otherwise I agree, start with something like this to learn CS)

Re: Learn C, Then Learn Computer Science

#9
Please don't!

Learn Delphi/Object Pascal, Ada, Modula-2, Rust and discover control over memory managerment doesn't require throwing safety out of the window. Performance can be fine-tuned to the 1% hotspots that really require playing dirty tricks.

That there are modular systems programming languages with compile times times that leave C to shame.

Then cry as you are forced to adopt C to be understood by the rest of the world.

Post reply on HN