Start Programming

Here are the sites and resources that attendees at the Learn to Code with Us events had found to be the most helpful:

What do you want to do? What languages does this use? Helpful Beginner Online Resources
I don’t know Khan academy has beginner programming classes.  For the driven, consider watching a lecture or two from CS50, HarvardX class on EdX.

Start of by get to know one point of view on the lifestyle from Ed Weissman.

Program with my kid(s) who are too young for text based languages. Scratch MIT’s Scratch Site, Angry Birds Themed Example
Make pretty things / general Computer Science. Heavy emphasis graphics, but not classical User Interfaces to begin. Processing (Java w/ training wheels)  or P5.js Hello Processing, Kahn Academy, The included examples and the books they’re based on like The Nature of Code. Wonderful list of more creative coding resources.
Participate in Open Source Find a project you like, learn that language OpenHatch
Hack my WordPress blog / WebDev Classic In this order:
HTML 5 / CSS
JavaScript
PHP
MySQL
CodecademyIf you aren’t going to hack WordPress or Drupal, consider the laravel framework.

Also, read a bit of one person’s experience of the lifestyle.

Be a trendy WebDev In this order:
HTML 5 / CSS
JavaScript
Ruby on Rails or Python/Django or Node.js
NoSQL
RoR track: Code School, some free.Python track: Codecademy, specifically their Solar Systemtutorial.  Test Driven Development with Python is not for new programmers, but is  good introduction to test driven development of websites Django. To just sit back and relax, there is the nicely produced youtube channel called DevTips for general webness and one called CodingEntrepreneurs focused on Django.

One option to make an interactive website fast is the open source Javascript framework from FaceBook called React. One of our members recommends the tutorials on http://www.pluralsight.com/

Develop for anything, anywhere, especially if you are a scientist. Low emphasis on graphics starting out but you can get there. Python Python The Hard Way or CodecademyFor Scientists check out the SciPy ecosystem and watch this video on Data Visualization Tools.Coursera, University of Toronto Learn to Program: The FundamentalsMIT EdX Courseware: Introduction to Computer Science and Programming
Hack the Gibson *NIX / Shell Scripting Basic Command Line 101 from LifeHackerLinux Shell Scripting Tutorial
Build devices Basic Electronics and Arduino (Wrapper for C++ ) AdaFruit Tutorial. It is a bit older but it is still clear. Supplement with ITP PhysComp page. You will need to buy a kit.
Make cool projects like home automation or fabulous lighting displays. Basic Electronics, Python, Shell Scripting and a RapberryPi. It’s a book but Programming the Raspberry Pi: Getting Started with Python is the 1-2 punch of starting Python programming and working with a RaspberryPI.An intermediate / advanced goal: Build a spectrum analyzer with Python and a RaspberryPi
Write Games For where? Game Design Theory is more important than language. Extra Credits is a YouTube channel that can help. On what device? Choose the language that is best for the platform. If you don’t know you can start anywhere. Try making a game for iOS in your browser.Python Based Game Tutorials:

Write “Mobile Apps” Consider Web Development first since many Apps are just web pages in a wrapper. Wrapper Path:

Native Paths:

Write “Desktop Applications” If you are new, consider LiveCode, it is an Open Source language and integrated IDE focused on GUIs. Not a ton of LiveCode jobs out there, but it is a good place to start. With anything else you’ll spend more time learning how to compile than how to program at the start. LiveCode first, or jump into some items that are harder to set up.

  • If you started with Processing, time to learn about Java’s Swing and AWT libraries. Maybe move to the Eclipse IDE.
  • ObjectiveC with Xcode for Mac only applications.
  • Make GUI’s for Python using QT and PyQT
  • Maybe it’s time to learn C++ and either QT or wxWidgets.
I just need some short drills to get my head in the game to focus or prep for an interview. Various Python & Java: http://codingbat.com/

Version Control

Before you go too far in this process, you’ll save yourself a world of hurt if you learn about git, too.

Lets Go Meta:  Resource List of  Resource Lists 

Free Online Schools

Generic Practice Websites / Tutorials

Processing

Ruby / Rails

Python

Java