engineer at Facebook, I didn't know anything about coding 2 years ago. I'm 24.
In total, it will cost you about... $100 to learn everything, maybe a little less now.
In total, it will cost you about... $100 to learn everything, maybe a little less now.
If you do the steps below, you will know everything to make basic web applications. Doing all of this will take you between 2 weeks and 2 months depending on how much you do each day. So 2 weeks from now you can be building web-applications.
Here is how I learnt:
You are going to learn the web-stack (HTML / CSS / Javascript / PHP).
stivă (engleză stack) este o structură de date ale cărei elemente sunt considerate a fi puse unul peste altul, astfel încât orice element adăugat se pune în vârful stivei, iar extragerea unui element se poate face numai din vârful acesteia, în ordinea inversă celei în care elementele au fost introduse.
This will let you build web applications, at the end you will also be able to pick-up any programming language. The web-stack is fun because you can 'feel' your code really easily all the time because you'll actually see a web page in the browser. So here we go:
stivă (engleză stack) este o structură de date ale cărei elemente sunt considerate a fi puse unul peste altul, astfel încât orice element adăugat se pune în vârful stivei, iar extragerea unui element se poate face numai din vârful acesteia, în ordinea inversă celei în care elementele au fost introduse.
This will let you build web applications, at the end you will also be able to pick-up any programming language. The web-stack is fun because you can 'feel' your code really easily all the time because you'll actually see a web page in the browser. So here we go:
- (2 minutes) Open up a text editor, like TextEdit (Mac) or Notepad (PC). Don't use Word, it adds hidden characters that will break your code. Ok, now type "
Dope Ass Website
I just wrote my first code and it's awesome
I love reddit.". If you're in TextEdit (Mac) go to Format > Make Plain Text. Save it as awesome.html. Ok now right click on that file and open it in a browser. You are now looking at your first website. - (2 hours) go to http://www.w3schools.com/html/default.asp. You are about to learn HTML. HTML is the easiest thing to learn, you write 'code' and you save a text file on your desktop, and you open it in a browser and you can SEE it. In 10 seconds you will have created something. Learning HTML will take you a few hours.
- (a few afternoons) go to http://www.w3schools.com/css/default.asp. You will learn CSS, this is what changes the design of a website. Learning CSS will take a long time, but again after 5 minutes you can make a web page start to be designed how you like. Make a webpage using HTML and CSS, and style it how you want it.
- (~15 hours) Time to get into real programming. Go to Lynda.com. Subscribe ($25 / month). Watch and work through their 6 hour intro to PHP course. It will teach you how to make a website that is hooked up with a database. Now you can make a real application.
- (days, maybe weeks) Think of an idea, try to build it. When you don't know how to do something, Google it. And congratulations you know how to code now.
- (~15 hours) Time to learn jQuery. jQuery will help you manipulate things on a webpage. You don't understand this now, but learning jQuery is fucking awesome and makes coding super fun.
- (days) Add some jQuery to the site you built in 4. It will make it more interactive and pretty.
- (a few days) Go back to Lynda.com. Take their advanced PHP course. It will teach you about Object Oriented Programming. This will make your code not suck.
And it will make you really understand how to think about your projects.
How to get a job at a top tech company - build your own stuff. You have ideas, you're going to have more ideas. Build your stuff. Most of your ideas will fail, but you'll learn something, and you will have produced something regardless. That is more than a lot of people can say after years of working.
Xxx
altu: I refactor a convoluted method or class down into a simple, elegant product. Especially when I take the time to plan ahead, express it in the form of a flowchart, and all the pieces drop right into place and it works perfectly.
In fact, I have such a flowchart pinned up in my office. I spent three days trying to figure out how to elegantly process a bulk amount of raw data, organize it, cache updated pieces, and present it to the client. Sounds easy, but this specific problem was far from it. Once I figured it out I drew up a flowchart and spent 16 hours straight implementing it. One of my proudest moments.
In fact, I have such a flowchart pinned up in my office. I spent three days trying to figure out how to elegantly process a bulk amount of raw data, organize it, cache updated pieces, and present it to the client. Sounds easy, but this specific problem was far from it. Once I figured it out I drew up a flowchart and spent 16 hours straight implementing it. One of my proudest moments.
I still go back and read the code from time to time and think to myself "Damn that's a fucking sexy solution."
you can program with HTML and CSS. CSS is turing complete http://stackoverflow.com/questions/2497146/is-css-turing-complete/5239256#5239256
learn how to code Android apps:
http://developer.android.com/training/basics/firstapp/creating-project.html
Most unskilled programmers become frustrated, start doubting yourself then you just become flushed and become scouring google for more examples until you just try to copy and paste code into your program. This is your code getting away from you, you now have no clue what is what, where is this method? This is where most programmers give up, they can't figure it out.
A skilled and experienced programmer knows how to let there mind run free, they don't let problems and code run-away from them. They understand the complete picture and knows the what and how of a FIFO Queue, Stack, Binary Tree, Linked List. How arrays work, what datatypes are best, what looping structures are better.
This is something that comes with experience, not one day of googling and understanding that.
Everyone can become a "programmer". Syntax and algorithms will come with time, but patience and your thirst for success must be something you stride for.
xxxx
Programming is not about the language it is about the way you think about things and approach problems. The actual code is a very small part of what programmers should know about. The real challenge is not writing code it is writing code right (often after a lot of refactors).
The programming language is just a tool. You have to think laterally.
http://en.wikipedia.org/wiki/Lateral_thinking
JavaScript is one of the most fucked up languages ever. But it's everywhere.
And if you really want to learn jQuery without solid JS understanding then you're screwed
xxxx
Programming is not about the language it is about the way you think about things and approach problems. The actual code is a very small part of what programmers should know about. The real challenge is not writing code it is writing code right (often after a lot of refactors).
The programming language is just a tool. You have to think laterally.
http://en.wikipedia.org/wiki/Lateral_thinking
JavaScript is one of the most fucked up languages ever. But it's everywhere.
And if you really want to learn jQuery without solid JS understanding then you're screwed
you can program with HTML and CSS. CSS is turing complete http://stackoverflow.com/questions/2497146/is-css-turing-complete/5239256#5239256
learn how to code Android apps:
http://developer.android.com/training/basics/firstapp/creating-project.html