#####General Programming
- Learn to Program, by Chris Pine - http://it-ebooks.info/book/36/
- 5 Ways To Learn Code From The Comfort Of Your Own Browser | TechCrunch
- Also, Why I'm learning to code
- Programr | Online IT Lab
- learn to code the hard way
- 5 more ways to start learning how to code right now for free
- Stypi - good for remote pairing
- $ cheat browse http://cheat.errtheblog.com
- Computer Science: Free Courses
- GirlDevelopItSF's Web Development Teaching Materials
#####C/C++
- K&R, The C Programming Language
- C/C++ Reference
- Learn C The Hard Way
- Google's C++ Class
- Learn C++
- Women Who Code study group C curriculum: https://github.com/LearnToCodeC/CProgrammingCurriculum#learn-to-code-c
- MIT Open Courseware C/C++ classes:
- 6.087 Practical Programming in C (taught January IAP 2010)
- 6.088 Intro to C Memory Mgmt and C++ Object-Oriented Prog. (taught January IAP 2010)
- 6.096 Introduction to C++ (taught January IAP 2011)
- 6.S096 Introduction to C and C++ (taught January IAP 2013)
- 6.S096 Effective Programming in C and C++ (taught January IAP 2014)
- Books:
- C++ Today (2015) - free O'Reilly eBook
- C++ Primer, 5th Edition (2012)
- Bay Area C++ Meetup
- Infographic: C++ Facts (2015)
- Bjarne Stroustrup's Homepage (creator of C++)
- C++ FAQ
- applications written in C++
- some C++ compilers
#####Go
- Go Language Tour
- Effective Go
- An Introduction to programming in Go
- Learning to Program in Go Video Series
- Pluralsight Classes for Go
- CodeMentor.io Go Tutorial
- Learn Go in Y minutes
- GoBridge
- Go Forum
#####HTML/CSS
- 35 Useful CSS3 Tutorials To Boost Your Skills
- Project Euler
- W3Schools Online Web Tutorials
- BuildingWebApps.com
- Build Cross Browser Extensions in Minutes - Crossrider.com
- Mozilla Developer Network (MDN) Learning the web
- Udemy: Learn the Foundations of HTML
#####iOS
- CodePath:
- CodePath iOS Guides
- CodePath iOS Guides for Designers
- CodePath YouTube playlists
- Code School's Try Objective-C
- Ray Wenderlich tutorials
- Paul Hegarty's Stanford class CS193p on iTunes U:
- Developing iOS 9 Apps with Swift
- Developing iOS 7 Apps with Objective-C
- IBM Swift Sandbox
#####Java
- Head First Java
- CodingBat Java practice problems
- Java Style Guidelines
- original Coding Style Conventions for Java from Sun
- alternate Java Programming Style Guide from JavaRanch
- Google Java Style
- Secure Coding Guidelines for Java SE
#####Javascript
- Eloquent Javascript (open-source-licensed online book)
- w3schools.com/js
- TutorialsPoint's Javascript
- Egghead.io - training videos (AngularJS, React, JavaScript, Node.js, and more)
- Codecademy's JavaScript track
- Khan Academy's Javascript classes:
- Intro to JS: Drawing & Animation
- Advanced JS: Games & Visualizations
- Advanced JS: Natural Simulations
- HTML/JS: Making webpages interactive
- Nodeschool.io
- Mozilla's Javascript tutorials
- freeCodeCamp
- Jeff Cunningham's AngularJS-Learning repo
- Square's Intro to D3.JS
- 2015 survey of conventions, tools & libraries used by Javascript devs: https://ponyfoo.com/articles/javascript-developer-survey-results
#####Python
- Python Introduction - Google's Python Class
- Learn Python with Games
- Coursera Python
- Codecademy is now teaching Python!
- CodingBat Python practice problems
- NewCoder.io - tutorials (data viz, APIs, web scraping, etc)
- Automate the Boring Stuff with Python
- Full Stack Python - explains Python web development concepts and links to tutorials
#####Ruby
- Codecademy - Ruby
- Dev bootcamp - by bullets
- Ruby in 100 minutes - Jumpstart Lab Curriculum
- Install Rails
- Ruby.on-page.net — the simplest Ruby manual
- Rails Girls Guides - Rails Girls
- Ruby Best Practices - Book
- Hackety Hack!
- Code School: Rails for Zombies
- Devise Authentication in Rails 3 –
- The Well-Grounded Rubyist (9781933988658): David A. Black: Books
- Ruby on Rails Screencasts
- Ruby on Rails Guides
- Tryruby.org
- Ruby on Rails Tutorial: Learn Rails by Example | Ruby on Rails 3 Tutorial book and screencasts
- Ruby Quiz
- RubyMonk
- Learn Ruby with the EdgeCase Ruby Koans
- Pragmatic studio Rails course $$
- One month Rails $$
- The Rails 4 Way
- To connect with the SF Ruby/Rails community:
- attend & then volunteer at RailsBridge events: https://www.bridgetroll.org/
- contribute to the open source event-management site BridgeTroll: https://github.com/railsbridge/bridge_troll
- this is a great RoR app that is actively developed by SF developers - experience + mentorship + networking
#####Selenium
- Selenium Official Documentation
- Selenium Tutorial by ToolsQA
- Selenium Automation Practice Form
- The Web Testing Handbook
#####Smalltalk
- GNU Smalltalk User's Guide
- smalltalk dot org
- Computer Programming using GNU Smalltalk
- Smalltalk Cheatsheet
- Smalltalk-72 Manual
- BYTE: A Special issue on Smalltalk
#####SQL
- Codecademy's Learn SQL - uses sqlite, so good intro, but will be slightly different if you move to MySQL, Oracle SQL, SQL Server, etc
- Khan Academy's Intro to SQL
- Try SQL - Code School
- Common MySQL Queries
#####Git
- Code School - Try Git (in-browser)
- Learn Git Branching (interactive tutorial)
- Pro Git
- Atlassian Git Tutorials
- GitHub Training
- Git for Non-Developers
- Git-it - intro Git/Github tutorial (includes Traditional Chinese version, requires local install)
- Understanding Git Conceptually
- Good Commit Messages
- Lightning Talk: Do Your Commit Messages Suck
- Git Basics: Cleaning up Excess Branches
#####Algorithms
- Project Euler
- Visualgo - animated visualizations for algorithms
- MIT Open Courseware Algorithm Classes
#####Data
- Code School - Try R
- Coursera -
- The Data Scientist's Toolbox (John Hopkin's University)
- edX:
- Explore statistics with R
- Big Data in Education (Teachers College | Columbia University)
#####Game Development
- Brian Cronin talk about Game Programming
- Extra Credits game design YouTube vodcast
- Gamasutra ("The Art & Business of Making Games") postmortems
- OneGameAMonth.com -- free online game dev bootcamp & game jam enthusiast’s club
- SF Game Development Group meetup
- Game Jams:
- Tools for making your own games:
- love2d.org -- definitely start with this one -- Lua
- unity3d.com -- most commonly used at game jams, etc
- ogre3d.org -- a library / graphics engine -- C++
- bulletphysics -- a library -- C++
- Artwork available online under a Creative Commons License (more fun to make game with cool graphics):
- Daniel Cook, Lost Garden
#####InfoSec
- Reddit /r/netsec/ resources:
- Hacking Challenges / Demo Apps
- OverTheWire WarGames
- Matasano Crypto Challenges
- OWASP Security Shepard -- web and mobile application security training platform
- Sam Bowne has a working installation you can play against here: https://shepherd.samsclass.info
- We Chall's collection of Challenges -- mostly Cryptographic, Crackit, Steganography, Programming, Logic and Math/Science
- Aman Hardikar's Mind Maps -- check them all out, but especially:
- Capture The Flag (CTF) links:
- CTF Field Guide
- https://ctftime.org/ - archive of old Capture The Flag (CTF) competitions and calendar of upcoming ones
- links from Carnegie Mellon's Plaid Parliament of Pwning (CTF team)
- picoCTF -- Carnegie Mellon University's CTF training app
- https://github.com/pwning
- http://pwning.net/
- Building a Competitive Hacking Team - USENIX Enigma 2016 talk about start of PPP + advice for developing CTF/security skills
- Collaborating to Win -- presentation on Collaborative CTF Infrastructure (video)
- write up of talk with links: http://lockboxx.blogspot.com/2015/11/cooperative-infrastructure-for-security.html
- https://github.com/ctfs -- mix of CTF write ups & learning guide
- Bug Bounty links:
- Bug Bounties 101 - Getting Started
- Bugcrowd blog - keep up w/ security news & in touch with bug bounty community
- /dev/ttys0 Blog - awesome blog on hacking embedded devices
#####Internet of Things (IoT)
- AWS Loft Talk An Engineer's Tour of the Internet of Things (Sep 2015 video)
- BuildItSecure.ly - security researchers curating a learn-how-to-build-IoT-securely site (DEF CON talk introducing initiative - initiative mentioned at 37:36)
- http://iot.eclipse.org/getting-started - includes Connected Greenhouse tutorial (uses Java language)
System Administration
#####Docker
- Intro to Docker workshop (skip slides 26-29 and instead follow the docs.docker.com setup guide): http://slides.dckr.info:88/DockerSlides.pdf
- Docker Orchestration workshop: https://github.com/jpetazzo/orchestration-workshop
- fork this repo down to your computer, and then open this file in a browser: https://github.com/jpetazzo/orchestration-workshop/blob/master/www/htdocs/index.html
- Docker, Linux Containers (LXC), and Security slides from 2014 talk
#####Getting Internships/Jobs
- (place Algorithm guides in that section: https://github.com/CCSF-Coders/learning-resources#algorithms)
- Cracking the Coding Interview
- Gayle McDowell talk at CUSEC (university student conference)
- Hacker Rank (solve challenges, get recruited)
- Programming Interview preparation guides:
- Language-specific:
- C/C++ Hundreds of C/C++ interview questions and answers.
- Java "Ultimate" list of Java interview questions and answers (2014).
- Javascript Long list of interview questions with answers.
- Python 50 Python interview questions and answers (2014).
#####Misc
- Exercism -- practice problems in 22+ languages with crowdsourced code reviews (also open source project)
- Code School - Discover Chrome DevTools
- Linux Fundamentals, Part 1
- VIM Adventures
- Neural Networks for Machine Learning
- Meetup.com (link goes to find-Tech-meetups-around-SF-by-date page, instead of main page)
- Stack Overflow
- CodeEval - Evaluations Made Easy
- Learn Salesforce with Trailhead
#####Schools
- Coursera
- MIT OpenCourseWare
- all Electrical Engineering and Computer Science courses
- video lectures for 6.00 Introduction to Computer Science and Programming
- Khan Academy
- Learn Web Design, Web Development, and iOS Development
- Codecademy.com
- Stanford School of Engineering
- Aquent Gymnasium -- mostly web dev courses, created by staffing firm (FastCompany article)
- Cyber Wizard Institute
#####Advice (let's keep this section small / tightly curated)
- Write Code Every Day
- Teach Yourself Programming in Ten Years
- How to Prepare for Your First Hackathon
- Five Tips for the New Graduate on Landing a Job in Tech
- An Unconventional Guide for Getting a Software Engineering Job
- Don't Call Yourself a Programmer
- Getting into Game Programming
- The (CS) Ph.D. Grind
- Venture Capital panel
- Advice on Giving Tech Talks (mid-career development tool)
- 180 Websites in 180 Days