3 ms·
Is this book workable for someone who knows how to program but don't have much of a formal education in CS?
by kiba 5y ago
Is this book workable for someone who knows how to program but don't have much of a formal education in CS?
- gnodar 5y agoYes. I'm halfway through it now, and while I do have a degree in CS, all that's really needed is knowledge of Java and C. If anything, it's less formal than a compiler / PL course one would normally take during undergrad.
- kiba 5y agoI have very limited programming experience in C and Java. Is that going to be a problem?
- nomy99 5y agoyes.
- gnodar 5y agoIt depends what you mean by "very limited". All the code is provided to you, so you can get through the book by simply copying and pasting the provided code snippets. As long as you understand what the code is actually doing just by reading it, you'll be okay. The book has some "challenges" where you can implement additional features if you want to, but you don't need to. However if your knowledge of Java or C is so limited that you'll have a hard time even understanding what the code is doing, then it's probably not worth the effort going through the book. It will be too confusing, and you won't learn much.
- deleted 5y ago[deleted]
- nomy99 5y agoLook at the free sample pdf on his site. Topic is garbage collection. If you can comprehend that then buy the book.
- munificent 5y agoYes, that's exactly who it is aimed at. If you can write code in an imperative language—in other words you're a typical software engineer—then you should be able to follow along fine. The first half uses Java, but sticks with a pretty vanilla subset. If you're comfortable in another OOP language, you should be able to squint and figure out what's going on. The second half uses C. That does assume you have some basic familiarity with pointers, malloc(), etc. but doesn't assume you're a C expert. If you're totally new to C, it might be worth spending a little time learning the basics if you really want to grok the last half of the book. If you mostly want to understand the concepts around bytecode, stack-based VMs, and Pratt parsing, you can mostly ignore the C details and get by. Also, the code in the book has been ported to many other languages: https://github.com/munificent/craftinginterpreters/wiki/Lox-Implementations https://github.com/munificent/craftinginterpreters/wiki/Lox-... So you can always use those as a reference too.
- b3morales 5y agoVery much so. Source: I am 2/3 of the way through the book, and don't have any formal CS education whatsoever :)