Ask HN: What should I learn first, Algorithms or ..?
Algorithms or Programming Languages Theory (Grammars, lexers, etc)?
Background: I just know the basics about programming (conditions, loops, classes, etc) And I almost got 30 years old, hopefully is not to late.
My goal is to help the advance the Computer Science field (No kidding).
P.S: Could you elaborate on your answer please, besides "Learn Algorithms first". Thank you.
4 comments
[ 2.5 ms ] story [ 20.3 ms ] threadInstead, pick some practical projects, and work on those. Maybe a music player, or a game. Games are good because they bring you through the whole spectrum of high-level abstraction (how should I build this system?) to the low-level drudgery (oh god why is this buffer getting corrupted how do I fix this aaaagh).
Language theory probably won't be that useful unless you're planning to write a parser for a programming language or something similar. I occasionally need to deal with grammars (for the Bison parser generator) in the work that I do, but most people probably do that kind of thing very rarely, if at all.
Also, it's never too late to learn stuff.
Also, just to clarify- PL itself has not much to do Grammars and lexers. PL theory mostly deals with programming paradigms, and type-safety. Lexers and grammars knowledge can help you write a compiler for a PL, but PL theory doesn't care about it- its the job of compiler writer.
I suspect you mean 'theory/models of computation' when you refer to Languages theory (http://en.wikipedia.org/wiki/Introduction_to_Automata_Theory...) That's what covers "language"/grammars. While it's good information to have- a ground up understanding of "computation" science- you would need that pretty late into your foray if you really want to learn about "Computer Science"
CS is a big field- you'll have to choose what you want to learn.
So start with Algorithms first, when you come to the Big(O) notation, you'll get a brief and usually enough introduction to the Theory of Computation.