
Ask HN: I have 18 weeks to learn whatever I want, do you have any suggestions? - Forrest7778
Hello HN, to give you a bit more information, I'm 17 years old and present taking a second year computer course in which I can decide what I would like to learn. I presently have dabbled in Pascal, C++, and Ruby. I have some basic knowledge of data structures, and well, just written some programs(probably very basic to you).<p>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.<p>Thanks in advance for your replies.<p>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.
======
Forrest7778
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://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-00-introduction-to-computer-science-and-programming-fall-2008/)

[http://manwithcode.com/299/making-games-with-ruby-
ep-1-intro...](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://citizen428.net/blog/2010/08/12/30-free-programming-ebooks/)

[http://www.trybloc.com/courses/ruby-
warrior/chapters/beginne...](http://www.trybloc.com/courses/ruby-
warrior/chapters/beginner#/1)

and I've completed: <http://tryruby.org/levels/1/challenges/1>

\- just for those interested in the progress I've made so far

------
pasbesoin
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".

------
geuis
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.

------
inetsee
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...](http://ocw.mit.edu/courses/electrical-engineering-
and-computer-science/6-00-introduction-to-computer-science-and-programming-
fall-2008/).

~~~
geuis
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.

------
pohungc
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.

------
tar
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>

~~~
Forrest7778
This is fantastic, thanks a TON!

------
joelmaat
1\. Bayesian filtering, etc

2\. Neural Networks

3\. How to make money

