Coding for the rest of us: Why you should learn, and how to get started

Coding-for-the-rest-of-us-Why-you-should-learn,-and-how-to-get-started

Those who code have the power to transform their dreams into reality. If you can imagine it, you can create it.

Whether it’s crafting a personal website, gaining an edge in the office, or building the next Facebook, a little programming knowledge goes a long way. You can learn enough to build a personal website in weeks and simple Web applications after only a few months.

And you don’t need to a computer science degree or decades of experience to build something original and useful. Instagram founder Kevin Systrom was a marketer to who learned to code in his spare time. In case you somehow missed it, his company just sold to Facebook for $1 billion.

While you could sign up for courses or buy textbooks, a host of free online tutorials, videos and classes can make it easier than ever to painlessly learn code in a hurry. I know because that’s how I recently taught myself. Here are some of the best resources and tips I discovered along the way.

shutterstock_programmingDive right in

Learning to code can be daunting. A beginner is faced with understanding computer science concepts, picking up the idiosyncrasies of a programming language, and mastering new software tools to develop and run the code. It’s so intimidating that many people quickly give up or fail to start… but it doesn’t have to be that way.

I’d wanted to learn for years and even tried a few online tutorials; I never stuck with them. Last winter vacation, I powered through one of Stanford’s free, online courses, and loved it. The reason it clicked: fun, bite-sized projects.

Project-based learning is incredibly powerful. It provides context for the new concepts, increases motivation, and enhances retention of knowledge. It’s also much more fun.

As you begin your coding journey, start with a project in mind. As you’re ready to learn a new concept or element of the stack, settle on a small project that will use those skills.

Getting oriented

Web applications have many different components – one hurdle beginners face is to figure out how the parts all fit together. I’ll provide a brief overview of the big picture. Don’t be intimidated – you can dive right into coding without knowing most of this.

web_stack

Front-end code

This code is sent from the server to the user, whose browser renders it onscreen. The main components (all different types of code) are:

  • HTML – the elements on the page (paragraphs, headings, images)
  • CSS – the style of the page (colors, sizes, fonts)
  • Javascript – dynamic components of the page (e.g. fancy user interactions)

Back-end code

This is the logic powering the site. Popular back-end languages include Python, Ruby, PHP, and Java. Most Web apps use a framework (e.g. Ruby on Rails) to help organize the code into buckets. Most frameworks have these components:

  • Model – storing and retrieving site data
  • View – dynamically generating front-end code
  • Controller – Combining the view and the model to serve to the user

Database

Most web applications need to store information.You’ll need to learn at least one type of database. Popular databases include MySQL and MongoDB.

Webserver & operating system 

The webserver handles the incoming requests to the server and passes them off to the back end code. The most popular webservers are Apache and Nginx.You won’t need to become an expert in webservers but do need a basic understanding of how to connect them to your app.

shutterstock_webdesign

Linux is the most popular operating system for running webservers. As you continue to learn coding, you’ll want to learn basic Linux commands as you build your app.

First steps

As I mentioned above, the best way to start is through projects. Here is a natural progression:

Personal Website

Build a personal website using just HTML and CSS. There’s no need to learn any back-end code or databases. You don’t even need a server to start playing around – just save a text file to your desktop with a .html extension and open it with your browser. Good resources are Mozilla Web Development and w3schools, and Codecademy has a few HTML lessons available so far; once the course there is complete, it will likely be the best resource.

Programming Course

To build anything more complicated, you’ll need to learn some fundamental programming concepts like variables and control flow. I highly recommend Stanford’s intro course 106a Programming Methodology. This is the class that finally hooked me. Each week has fun projects related to the lessons and the professor is outstanding. The videos, handouts, and assignments are all free on the site. Definitely go through this if you have the time.

shutterstock_light-up-keyboard

Another option is Code Year by Codecademy. It provides a great introduction to the key concepts and even has a few projects (e.g. build a blackjack game). Every lesson is accompanied by an interactive tutorial. Codeacademy is just expanding into the HTML and CSS now, and might be the go-to place for all coding education in the near future.

Dynamic Web Page

Apply what you’ve learned by building a one-page Web app without a database. You still don’t need back-end code, but you’ll be using Javascript alongside the CSS and HTML. An example project could be a calculator, or adding animation to your personal website.

Simple Web app

Take the plunge and build a full Web app. The best way to start is by picking a framework and going through a tutorial. I started with Python and its framework Django. The tutorial I used is Django Book. If you want to use Ruby on Rails, try Rails for Zombies.

Node.JS has been growing in popularity; it uses Javascript for the back end. I really like Node, but it may be intimidating for a first-time learner. Try this tutorial: Node Beginner.

This is probably a good time to get your own server. Amazon provides free micro-instances and it’s easy to get started at Amazon Web Services.

Next Steps

Once you build your first web app, there are many directions in which you can grow. You’ll have a much better sense of what knowledge you lack. As always, let your curiosity drive you and pick a small project for each concept you want to learn.

Some Useful Tools

Stack Overflow – A Q&A site for programming questions

Sublime Text – A great text editor

Aptana – A good text editor which also lets you run the code

Bootstrap – An excellent tool to quickly make sites beautiful

Learn Code the Hard Way – A series of language specific programming guides

[Image credit: photoart985/FuzzBones/Alexander A. Kataytsev/chaoss/Shutterstock]

Emerging Tech

Awesome Tech You Can’t Buy Yet: Robo sidekicks, AC for your bed, and more

Check out our roundup of the best new crowdfunding projects and product announcements that hit the Web this week. You can't buy this stuff yet, but it sure is fun to gawk!
Home Theater

Looking to cut cable? Here’s everything you need to know about Pluto TV

Pluto TV offers plenty of entertainment in a fashion similar to live internet TV services, only at no cost — you don’t even need to register. Too good to be true? Here’s everything you need to know.
Movies & TV

The best shows on Netflix in August, from ‘Arrested Development’ to ‘Dark Tourist’

Looking for a new show to binge? Lucky for you, we've curated a list of the best shows on Netflix, whether you're a fan of outlandish anime, dramatic period pieces, or shows that leave you questioning what lies beyond.
Mobile

Express yourself with our handy guide on how to make emoji

Emoji rule the world these days, but no matter how many are out there, there's always room for one more. Here's how to make an emoji of your own, so you can express yourself without relying on Unicode.
Computing

At Def Con, children show how easy it can be to hack an election

How hard is it to hack a voting machine or government website? Well, it turns out that it is literally child's play. Def Con tasked a group of children with hacking replica government websites, and many proved successful.
Smart Home

Samsung SmartThings adds A.I.-based Wi-Fi for faster, smarter home networking

Samsung introduced the SmartThings Wifi, an A.I.-based multifunction mesh networking router with an integrated smart home hub. The device intelligently allocates network speed and bandwidth based on device and application needs.
Product Review

5 generations later, Microsoft's Surface Pro is still the best 2-in-1 out there

At first glance, the 2017 Surface Pro looks like an incremental update to the Surface Pro 4, which was already our favorite detachable tablet. But does the newest version earn its own place at the top of the 2-in-1 heap?
Computing

Intel’s ninth-generation CPUs could launch on October 1

New rumors point to an October 1 release date for Intels' next-generation CPUs. The 9900K, 9700K, and 9600K could all debut in just a few weeks time, offering higher clocks and increased core counts.
Computing

AMD’s new 32-core Ryzen Threadripper chip is out, and you can get one for free

AMD’s 32-core Ryzen Threadripper 2990WX CPU is now available for $1,800. It’s compatible with motherboards packing the TR4 socket and the X399 chipset. The only other new Threadripper chip arriving this month will be the 2950X.
Computing

Google may launch two Pixelbook 2 laptops in October

Google may have a new Pixelbook design to show off in just a few weeks, with a new rumor suggesting two variations on the new laptop will be showcased at the start of October with new Intel hardware under the hood.
Gaming

Wage war on a budget with these fun and free first-person shooters

We all know about Halo and Call of Duty by now, but what about quality titles that won't cost you upward of $60? Check out our picks for the best free first-person shooter games from Paladins to Quake Champions.
Computing

Apple preps production of updated MacBook Air for a 2018 launch

To reach its rumored launch timeline of later this year for its low-cost notebook, Apple is expected to begin production of its updated MacBook Air soon. The sub-$1,000 laptop could launch as early as September or October.
Smart Home

White-hat Chinese hackers turn Alexa into a spy, briefly

A team of Chinese researchers revealed this week that they were able to use a cracked Amazon Echo to exploit a series of Alexa interface flaws to take control over an unteuched Echo running on the same network.
Music

Spotify vs. Pandora: Which music streaming service is better for you?

Which music streaming platform is best for you? We pit Spotify versus Pandora, two mighty streaming services with on-demand music and massive catalogs, comparing every facet of the two services to help you decide which is best.