Ask HN: I have 18 weeks to learn whatever I want, do you have any suggestions?
7 comments
Upon doing some more research and compiling a list of things to go through I've found the following:
http://guides.rubyonrails.org/
http://ocw.mit.edu/courses/electrical-engineering-and-comput...
http://manwithcode.com/299/making-games-with-ruby-ep-1-intro...
http://learn.knockoutjs.com/#/?tutorial=intro
http://peepcode.com/
http://railsforzombies.org/
http://ruby.railstutorial.org/
http://citizen428.net/blog/2010/08/12/30-free-programming-eb...
http://www.trybloc.com/courses/ruby-warrior/chapters/beginne...
and I've completed: http://tryruby.org/levels/1/challenges/1
- just for those interested in the progress I've made so far
http://guides.rubyonrails.org/
http://ocw.mit.edu/courses/electrical-engineering-and-comput...
http://manwithcode.com/299/making-games-with-ruby-ep-1-intro...
http://learn.knockoutjs.com/#/?tutorial=intro
http://peepcode.com/
http://railsforzombies.org/
http://ruby.railstutorial.org/
http://citizen428.net/blog/2010/08/12/30-free-programming-eb...
http://www.trybloc.com/courses/ruby-warrior/chapters/beginne...
and I've completed: http://tryruby.org/levels/1/challenges/1
- just for those interested in the progress I've made so far
If you want some "down and dirty" simply practical knowledge, read up on regular expressions. (Be sure to read up on the better cautions associated with using them, as well.) I would recommend Jeffrey Friedl's book, "Mastering Regular Expressions".
http://shop.oreilly.com/product/9780596528126.do
One other caveat about this, though. They make more sense and the topic is more motivating when you have a significant amount of text munging to accomplish (as I did, at one point).
Nonetheless, I remember some years ago being astonished at some of the Java code I saw being written, at not insignificant amounts of programmer time and with a bevy of mistakes, to accomplish simple pattern matching in use cases where a regular expression would have been more appropriate and more efficient -- both to write and probably in execution.
The developers, despite being fairly seasoned, just weren't familiar with the paradigm. A few years later, they were using them "all over the place".
http://shop.oreilly.com/product/9780596528126.do
One other caveat about this, though. They make more sense and the topic is more motivating when you have a significant amount of text munging to accomplish (as I did, at one point).
Nonetheless, I remember some years ago being astonished at some of the Java code I saw being written, at not insignificant amounts of programmer time and with a bevy of mistakes, to accomplish simple pattern matching in use cases where a regular expression would have been more appropriate and more efficient -- both to write and probably in execution.
The developers, despite being fairly seasoned, just weren't familiar with the paradigm. A few years later, they were using them "all over the place".
I would also like to recommend that you do some work in javascript. It has arguably become one of the most important programming languages around, and only becoming more so.
Also, since js is prototypal instead of class-based, its a different way of thinking about writing code. I have known many good programmers that had a hell of a time working with javascript as its meant, and they constantly try to write js with classes. If you learn both ways early on, you'll be a much better programmer later. Neither will seem alien to you.
I would recommend that the first javascript book you read is Javascript the Good Parts by Douglas Crockford. Its only about 150 pages and only talks about the language. Nothing to do with web browsers. Read it a couple times and start doing some simple js apps and you'll be in good shape.
Also, since js is prototypal instead of class-based, its a different way of thinking about writing code. I have known many good programmers that had a hell of a time working with javascript as its meant, and they constantly try to write js with classes. If you learn both ways early on, you'll be a much better programmer later. Neither will seem alien to you.
I would recommend that the first javascript book you read is Javascript the Good Parts by Douglas Crockford. Its only about 150 pages and only talks about the language. Nothing to do with web browsers. Read it a couple times and start doing some simple js apps and you'll be in good shape.
This would seem like an ideal opportunity to get a solid grounding in the fundamentals of programming. I would suggest that you work through the MIT OpenCourseWare (OCW) version of their "Introduction to Computer Science and Programming" (the newer version that uses Python as its teaching language). You would be learning Python while you are learning the fundamentals. The course uses a freely available textbook, and video lectures are available. The course website is located at "http://ocw.mit.edu/courses/electrical-engineering-and-comput....
I want to second this. I'm 31 and have been doing web development for the better part of 10 years now. It wasn't until later in my career that I realized what I missed out on by not learning CS fundamentals much earlier. I played catch up for a while. If you have the opportunity now, especially with a more agile brain, take it. You will benefit from it for years to come.
Awesome - I am definitely going to try and complete this, thanks!
One way you can go about learning is to find something you really feel passionate about building. Then try to find the best way possible to build it.
You may choose to learn Ruby properly first and then start learning Ruby on Rails. This list of free programming resources might be helpful to you: http://stackoverflow.com/a/392926
This is fantastic, thanks a TON!
1. Bayesian filtering, etc
2. Neural Networks
3. How to make money
2. Neural Networks
3. How to make money
I am very interested in trying to learn more about Ruby/Ruby On Rail/and C++. If you know of any small tutorials or site that teaches anything, I would appreciate any information that you can share! (Whatever you share doesn't have to be a full 18 weeks worth, obviously I am going to be doing a lot of things.
Thanks in advance for your replies.
edit: Any tutorial sites, books that are great for learning, source that is great to read, or project guides that I could create to get some hands on learning. All is appreciated.