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
|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
Ruby on Rails or Python/Django or Node.js
|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.
|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:
|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.
|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/|
Before you go too far in this process, you’ll save yourself a world of hurt if you learn about git, too.
- GitHub’s very own Hello World for GitHub
- A beginners gitHub tutorial which talks about collaborating on non-code files too.
- One persons perspective on a GitHub workflow
Lets Go Meta: Resource List of Resource Lists
- Programming Mother****r (Pretty Exhaustive list from the “Learn The Hard Way” crew. Organized by language.
Free Online Schools
Generic Practice Websites / Tutorials
- No Excuses List
- Code Eval (This one allows you to send your results + resume to interested companies!)
- CodingBat (Mostly Java + Python)
- Hello, Processing! (video)
Ruby / Rails
- Learn Python the Hard Way (Awesome!)
- Python Koans
- MIT Open Courseware (Videos)
- Oracle’s Java Tutorials (IMHO Better for reference / refreshing. Not best for beginners.)
- Java Code Geeks (Articles, Tutorials, Community, etc.)
- Sample Java Interview Questions