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
| 3 points
| on HN
)
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.
Instead, 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).
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.