For all intents and purposes, you will need to learn (at least) 2 technologies, one for the client and one for the server. On the client, you have 2 primary choices: HTML,CSS, & Javascript or Flash/Actionscript. I would definitely opt for HTML,CSS, & Javascript because it's open source and it's everywhere. On the server, you have many more choices for languages and databases. One of those languages is Javascript, alt…
"For all intents and purposes" Not quite - there are other applications of programming than web and web services...
Ask YC: Learning to hack...
11–20 of 54 posts
Re: Ask YC: Learning to hack...
#12For me, I was a kid and I started hacking basic on an Atari 400 with a whopping 2k of ram. I was trying to make a dungeon crawl game. I learned about variables, conditionals and looping. Then I learned about I/O.
Your environment is, of course, vastly different than mine was, but the process is the same.
Re: Ask YC: Learning to hack...
#13Re: Ask YC: Learning to hack...
#14Reasons why H-ety-H is a good choice: 1. Ruby - Ruby is a beautiful, easy to learn, modern language that's both powerful and easy for beginners. 2. Hand-Holding - It walks you through all of the interactive examples 3. Community - Hackey Hack encourages users to share their programs with others
Besides, if eigth graders can do it, so can you!
Re: Ask YC: Learning to hack...
#15Re: Ask YC: Learning to hack...
#16The nice thing about the Javascript recommendation is that by using the "View Source" option in your browser, you can get lots of real-world examples to read. Reading code is a great way to learn how to hack (and the way we used to do it, back in the day, when access to computers was very limited). I'd suggest the following: find a web page that interests you, view the source, and try to understand what the source co…
To the author, I would suggest finding a website that you feel accomplishes something you would like to create (I would start small, like a personal blog just because the amount of code might be overwhelming with larger sites). Borrow their code using the add-on, and change certain features to see effect the change makes to the product. I would continue the process for a while until you get a feel of how all of the code works together. Only after this point I would suggest going into books. Maybe you will learn differently that I do, but reading a book without actually being able to have hands on experience with what I am attempting to grasp has a hard time sinking in.
Re: Ask YC: Learning to hack...
#17Re: Ask YC: Learning to hack...
#18http://www.catb.org/~esr/faqs/hacker-howto.html#skills1
BTW, it's notable that Eric used to recommend Java as a second programming language, and that he no longer does.
The only thing I'd add to his recommendations is a pitch for Ruby. I think it's a really good first language.
Re: Ask YC: Learning to hack...
#19The nice thing about the Javascript recommendation is that by using the "View Source" option in your browser, you can get lots of real-world examples to read. Reading code is a great way to learn how to hack (and the way we used to do it, back in the day, when access to computers was very limited). I'd suggest the following: find a web page that interests you, view the source, and try to understand what the source co…
You might want to add that the "View Source" option is only in Firefox once the Web Developer add-on is installed. Now that you mention it, I would suggest installing this add-on for many reasons, but I found personally that the way a majority of code is presented in books and the way it is actually implemented in the real world are two different things. This hurdle has been the greatest for me with regards to CSS. B…
No, it's a standard part of Firefox. "View Selection Source" is too, which can be useful.
I agree that Web Developer (or similar plugins) can be a great way to learn.
Re: Ask YC: Learning to hack...
#20If you want to learn how to code, the first question is what do you want to code? Do you want to make websites? Create PC games? Create mathematical algorithms? Use math to create images... the possibilities are endless. Learning Javascript would be useful if you want to create websites, obviously, but outside of that it's not a general enough language with enough (any, really) general applications to be a good place to start. It's essentially an odd combination of Object Orientation and Functional programming which is cool in that it introduces you partially to two separate kinds of languages simultaneously. It can also be confusing for the same reason.
If you want...
A multi-purpose language that will let you rapidly prototype programs and is both extremely readable, easy to understand, and has modules for just about everything: Python
A language that forces you to learn about more fundamentals of programming and doesn't keep you from royally screwing up: C
A language with extremely high-level features, infinite flexibility and power: Lisp
A language that lets you create extremely stable applications built for concurrency: Erlang
A strictly web-only language with a huge supported base in the online hosting business and about 1,000 frameworks: PHP
The latest craze in web development: Ruby with obligatory framework Rails
---------
I could go on and on and on... hopefully one of these descriptions scratches your itch. Keep in mind these are merely suggestions and there are many other languages that would fill any of the descriptions I gave.
EDIT: I am a firm believer that regardless of your end goals to really learn programming one must start at the beginning. Learn about computer architecture, how CPUs and memory work; learn the pain of programming Assembly and managing memory bit by bit even though you'll never do it again. Then move onto C; learn how even the most fundamental of abstractions made programming possible for lesser mortals. Keep moving forward and come to comprehend that features such as garbage collection, while taken for granted, are in reality really freaking awesome and will help you keep your hair longer.
Move up the ladder, rung by rung, until you have the confidence and knowledge to use a language that is highly abstracted and has all the "batteries included," like Python. At this point the language/interpreter/compiler will do most of the work for you but you'll have the experience necessary to understand, more or less, what's going on behind the scenes. From there, if you want to specialize, choose a language created for the domain that interests you; PHP, Erlang, Matlab, etc.
A brief 5/10/20 years later, you're a hacker. Nobody will give you a diploma, though.