|
|
| | Ask HN: Best way to learn the CS background I missed by not going to school? | | 18 points by brandoncordell on May 28, 2011 | hide | past | favorite | 12 comments | | I'm not sure if this is the right place to ask if it's not I apologize. This is my first post to HN.<p>Background: Basically I've been a developer for almost four years now. I started as a front-end developer writing HTML/CSS/JS, but quickly moved to the back-end writing PHP. Before now I've considered myself a decent developer, but lately I've been feeling burnt out and have been looking to move to a position that would make me happier. I've been looking at Ruby/Rails positions on the various job boards and I really feel like I don't have enough CS knowledge to land any of these positions. I'm feeling more and more like a copy and paste PHP developer. I mean, how can I get a job that is asking for engineers to apply? I really got a punch in the face when I read through a post on Stack Overflow about lesser known data structures like Ropes, and Bloom Filters, and Skip Lists. I have ZERO understanding of this kind of stuff and I think it's going to hold me back in my career.<p>What's the best way to learn all the stuff I missed by not going to school? Are there CS books or technical papers that are pretty much required reading for CS students? Should I take some open courses on the web from places like MIT or Stanford?<p>I can't live my life as a jr. PHP programmer... I'm feeling burnt out as it is, working on the same enterprise app for an employer that won't embrace open source or even new technology!<p>Help me hacker news, you're my only hope. |
|

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
|
It is one of the classic CS textbooks still used by Berkeley (CS61A) and MIT (not sure) intro CS courses. Its not trivial stuff. While it wont teach you obscure data structures like ropes, it will expose you to a wide variety of topics including but not limited to: functional programming, lambda calculus, OOP, logic programming, client/server programming, non deterministic programming, streams as data, the meta-circular evaluator, lazy evaluation, and concurrency. I had a fairly strong CS background before taking CS61A at Berkeley, but this book (thanks to Scheme) taught me how beautiful computer science can be. Now working in Java is a complete turn off ;)