Skip to content

Instantly share code, notes, and snippets.

@kwcto
Created November 24, 2015 05:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kwcto/e264ff7423bc079c3349 to your computer and use it in GitHub Desktop.
Save kwcto/e264ff7423bc079c3349 to your computer and use it in GitHub Desktop.
One path to learn programming as a beginner - Web development using HTML/CSS with Javascript and Node.js

Why Javascript?

What about C++, PHP, Ruby, C#, Java, etc?

There are tons of languages, frameworks and tools to choose from but Javascript has some amazing benefits.

In my humble opinion, this path is a way to get programming basics down quickly while learning a commercially viable skillset that will be in demand in the foreseeable future.


Where do I start?

Classes/Tutorials

Level 1
  • Learn Javascript - Code Academy (Free to start) - Do this first. They have an interactive environment set up which will let you get started quickly.

  • Learn HTML & CSS - Code Academy (Free to start) - When programming for the web, you need to know the basics of HTML. This will get you started. Some developers are "not designers" but making the effort to learn design basics will help you a lot when looking for work.

Level 2
  • Learn (Google Chrome) Devtools - Code School (Free) - Knowing how to inspect a webpage, view any changes to HTML/CSS and debug running Javascript code saves a lot of time when learning. Save yourself frustration and headaches and learn the basics here.

  • HTML5 Simple Game Programming - Udemy (Free) - Some overlap with the previous lessons but the exercises look more fun. There are valuable concepts to learn from game development too.

Level 3

There is a lot of overlap between Node.js and Meteor. Meteor actually runs on top of Node.js and provides a smoother experience for beginners. I think Meteor is the faster way to go but Node.js is more flexible in advanced scenarios. You can always switch from one to the other and the skills are transferrable.

  • Intro to Meteor + React - Meteor (Free) is a Framework that uses Javascript for the browser and server - This one is more advanced, so make sure you do the previous lessons first.

  • Intro to Node.js - Node.js (Free) is a Server Framework that utilizes the Javascript engine originally developed for the Google Chrome Browser

Tools

  • Atom by Github - (Free) - Open source text/code editor with thousands of packages to extend functionality
  • Chrome Developer Tools - (Free) - Devtools is already built into Google Chrome. Learn how to use it to help write/debug code, learn about HTTP (basic web networking) and inspect other websites.
  • Git (version control system) - (Free) - Git allows you to keep a "time machine" history of all the changes you make to code, in case you screw something up and want to go back a step or two.

Community (Free help + Free stuff)

  • Stack Overflow - (Free) - Ask programming questions

  • Github - (Free) - Largest database of open source projects

  • Codepen - (Free) - Get inspired by all the cool shit people are doing in the browser lately


How long will this take?

Longer than "Dev Bootcamps" would have you believe

You are not going to be master programmer in 6 months, no matter what. It should only take a few weeks to learn the basics though.

###The key is to remember that you are going to go through several cycles of this:

That was easy! I'm such a f'ing awesome programmer now!

npm ERR! code ELIFECYCLE

npm ERR! my-amazing-app@1.0.0 start: 'PORT=8000 node dist/server.js'

npm ERR! Exit status 1

I've been Googling this error for 2 hours and it still isn't fixed! Ahh I suck, maybe I should quit.

That is all part of the process. Don't give up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment