📚 Freely available programming books
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

401 lines
19 KiB

### Index
* [Algorithms & Data Structures](#algorithms--data-structures)
* [Android](#android)
* [Assembly](#assembly)
* [Bash / Shell](#bash--shell)
* [C](#c)
* [C#](#c-sharp)
* [C++](#c-1)
* [Clojure](#clojure)
* [Compilers](#compilers)
* [CUDA](#cuda)
* [Data Science](#datascience)
* [Databases](#databases)
* [Deep Learning](#deep-learning)
* [Git](#git)
* [Go](#go)
* [Haskell](#haskell)
* [HTML / CSS](#html--css)
* [iOS](#ios)
* [Java](#java)
* [JavaScript](#javascript)
* [Angular.js](#angularjs)
* [jQuery](#jquery)
* [React](#react)
* [Redux](#redux)
* [Sails.js](#sailsjs)
* [Lua](#lua)
* [Machine Learning](#machine-learning)
* [Matlab](#matlab)
* [Mercurial](#mercurial)
* [Misc](#misc)
* [.NET](#net)
* [OCaml](#ocaml)
* [Perl](#perl)
* [PHP](#php)
* [Python](#python)
* [QB64](#QB64)
* [R](#r)
* [RethinkDB](#rethinkdb)
* [Ruby](#ruby)
* [Sails.js](#sailsjs)
* [Scala](#scala)
* [Software Engineering](#software-engineering)
* [SQL](#sql)
* [Swift](#swift)
* [Theory](#theory)
* [Verilog / VHDL / SystemVerilog](#verilog--vhdl--systemverilog)
* [Web Development](#web-development)
### Algorithms & Data Structures
* [Berkeley University CS 61B: Data Structures](http://datastructur.es/sp16/)
* [IIT Bombay Foundation of Data Structures (CS213.1x)](https://courses.edx.org/courses/course-v1:IITBombayX+CS213.1x+1T2017/course/)
* [MIT's Design and Analysis of Algorithms (Spring 2012)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012) - Dana Moshkovitz, Bruce Tidor
* [MIT's Design and Analysis of Algorithms (Spring 2015)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015) - Erik Demaine, Srini Devadas, Nancy Lynch
* [MIT's Introduction to Algorithms (SMA 5503) (Fall 2005)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005) - Charles Leiserson, Erik Demaine
* [Princeton University Algorithms, Part 1](https://www.coursera.org/learn/algorithms-part1)
* [Princeton University Algorithms, Part 2](https://www.coursera.org/learn/algorithms-part2)
* [Stanford University Algorithms: Design and Analysis, Part 1](http://online.stanford.edu/course/algorithms-design-and-analysis-part-1)
* [Stanford University Algorithms: Design and Analysis, Part 2](http://online.stanford.edu/course/algorithms-design-and-analysis-part-2)
### Assembly
* [Introduction To Reverse Engineering Software](http://opensecuritytraining.info/IntroductionToReverseEngineering.html)
* [Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration](http://opensecuritytraining.info/IntroX86.html)
### Android
* [Creative, Serious and Playful Science of Android Apps](https://www.coursera.org/course/androidapps101/)
* [Learn how to program: Android](https://www.learnhowtoprogram.com/android) - Epicodus Inc.
* [Material design](https://material.io/guidelines/)
* [Programming Cloud Services for Android Handheld Systems](https://www.coursera.org/course/mobilecloudprogram)
* [Programming Mobile Applications for Android Handheld Systems pt. 1](https://www.coursera.org/course/android)
* [Programming Mobile Applications for Android Handheld Systems pt. 2](https://www.coursera.org/course/androidpart2)
* [Programming Mobile Services for Android Handheld Systems: Communication](https://www.coursera.org/course/posacommunication)
* [Programming Mobile Services for Android Handheld Systems: Concurrency](https://www.coursera.org/course/posaconcurrency)
* [Udacity Android Course Catalog](https://www.udacity.com/courses#!/android#!/android)
### Bash / Shell
* [Bento Shell Track](https://bento.io/topic/shell) (Bento)
* [Shell Scripting Tutorial](https://www.youtube.com/playlist?list=PL7B7FA4E693D8E790)
### C
* [C Programming Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWoGzOXqtKeM71OLpvZbuU0P)
* [Introduction to Computer Science](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#.VNsjDvmUcmQ)
### C Sharp
* [Learn how to program: C#](https://www.learnhowtoprogram.com/c) - Epicodus Inc.
### C++
* [C++ Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWoVZWSN-ze3VVtIfZfXwAGM)
* [Google's C++ Course](https://developers.google.com/edu/c++/)
* [Introduction to C++](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/) (MIT's opencourseware)
* [LearnCpp.com C++ Tutorial](http://www.learncpp.com)
### Clojure
* [Functional Programming with Clojure](http://mooc.fi/courses/2014/clojure/index.html)
### Compilers
* [Stanford's Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)
### Cuda
* [Intro to Parallel Programming Using CUDA to Harness the Power of GPUs](https://www.udacity.com/course/intro-to-parallel-programming--cs344)
### Data Science
* [Advanced Data Mining with Weka MOOC](https://www.cs.waikato.ac.nz/ml/weka/mooc/advanceddataminingwithweka/)
* [Data Mining with Weka MOOC](https://www.cs.waikato.ac.nz/ml/weka/mooc/dataminingwithweka/)
* [Introduction to Python for Data Science](https://www.edx.org/course/introduction-python-data-science-microsoft-dat208x-3)
* [More Data Mining with Weka MOOC](https://www.cs.waikato.ac.nz/ml/weka/mooc/moredataminingwithweka/)
* [The Analytics Edge](https://www.edx.org/course/analytics-edge-mitx-15-071x-3)
### Databases
* [Database Systems](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-830-database-systems-fall-2010/) (MIT's opencourseware)
* [Introduction to Databases](https://lagunita.stanford.edu/courses/Engineering/db/2014_1/about) (Stanford University)
### Deep Learning
* [Convolutional Neural Networks for Visual Recognition](http://cs231n.github.io)
* [Deep Learning for Natural Language Processing](http://cs224d.stanford.edu)
* [MIT 6.S094: Deep Learning for Self-Driving Cars](https://selfdrivingcars.mit.edu)
* [Practical Deep Learning For Coders taught](http://www.fast.ai) - Jeremy Howard
* [Self-Paced Courses for Deep Learning ](https://developer.nvidia.com/deep-learning-courses)
* [Unsupervised Feature Learning and Deep Learning](http://deeplearning.stanford.edu/tutorial)
* [What is Deep Learning](https://www.udacity.com/course/deep-learning--ud730)
### Git
* [Bento Git Learning Track](https://bento.io/topic/git) (Bento)
* [Bento GitHub Learning Track](https://bento.io/topic/github) (Bento)
* [How to Use Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775) (Udacity)
### Go
* [Go Tutorial](http://www.tutorialspoint.com/go/index.htm)
### Haskell
* [C9 : Functional Programming Fundamentals](http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals) - Erik Meijer
* [CIS 194: Introduction to Haskell](http://www.seas.upenn.edu/~cis194/) - Brent Yorgey
* [CS240h: Functional Systems in Haskell](http://www.scs.stanford.edu/11au-cs240h/notes/) - Bryan O'Sullivan
* [edX: Introduction to Functional Programming](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0) - Erik Meijer
* [RWTH Aachen University: Functional Programming](https://videoag.fsmpi.rwth-aachen.de/?course=12ss-funkprog) - Jürgen Giesl
### HTML / CSS
* [Bento CSS Learning Track](https://bento.io/topic/css) (Bento)
* [Bento HTML Learning Track](https://bento.io/topic/html) (Bento)
* [Build a Personal Website with Dash](https://dash.generalassemb.ly)
* [Build a responsive website with Webflow](https://www.bloc.io/tutorials/webflow-tutorial-design-responsive-sites-with-webflow)
* [Build a SaaS landing page using Skeleton](https://www.bloc.io/tutorials/jottly-a-beginner-s-guide-to-html-css-skeleton-and-animate-css)
* [Build Dynamic Websites](http://cs75.tv/2010/fall/)
* [CSS Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWqMH9a9DY8LFKrJ5NJCFHHe)
* [HTML Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWr_FB-hVEgEGUESZL1TOiJ6)
* [Learn how to program: CSS](https://www.learnhowtoprogram.com/css) - Epicodus Inc.
* [Learn HTML5 Programming From Scratch](https://www.udemy.com/learn-html5-programming-from-scratch/)
### iOS
* [AppCoda Complete iOS Tutorial](http://www.appcoda.com/ios-programming-course/)
* [Developing iOS 11 Apps with Swift](https://itunes.apple.com/us/course/developing-ios-11-apps-with-swift/id1309275316)
* [Ray Wenderlich iOS Tutorial](https://www.raywenderlich.com/category/ios)
### Java
* [Central Connecticut State University, Introduction to CS Using Java](http://chortle.ccsu.edu/CS151/cs151java.html)
* [Introduction to Java](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/)
* [Java for Complete Beginners](http://courses.caveofprogramming.com/courses/java-for-complete-beginners)
* [Java for Mobile Devices - Introducing Codename One](https://codenameone.teachable.com/p/java-for-mobile-devices-introducing-codename-one)
* [Learn how to program: Java](https://www.learnhowtoprogram.com/java-june-2017) - Epicodus Inc.
* [Princeton Algorithms, Part 1](https://www.coursera.org/course/algs4partI)
* [Princeton Algorithms, Part 2](https://www.coursera.org/course/algs4partII)
* [Problem Solving With Java](https://www.udacity.com/course/intro-to-java-programming--cs046)
### JavaScript
* [Bento JavaScript Learning Track](https://bento.io/topic/javascript) (Bento)
* [Egghead.io](https://egghead.io)
* [Learn how to program: JavaScript](https://www.learnhowtoprogram.com/javascript) - Epicodus Inc.
* [learn:query](https://learnquery.infinum.co)
#### Angular.js
* [Angular.js Youtube Channel](https://www.youtube.com/angularjs)
* [CodeCademy Angular](https://www.codecademy.com/learn/learn-angularjs)
* [egghead.io youtube channel: Learn AngularJS with Tutorial Videos & Training](https://www.youtube.com/user/johnlindquist)
* [Shaping up with Angular.js](https://www.codeschool.com/courses/shaping-up-with-angular-js)
#### jQuery
* [Bento jQuery Track](https://bento.io/topic/jquery) (Bento)
#### React
* [Start Using React to Build Web Applications](https://egghead.io/courses/react-fundamentals)
#### Redux
* [Getting Started with Redux](https://egghead.io/series/getting-started-with-redux)
### Sails.Js
* [Develop web apps in Node.js and Sails.js](https://courses.platzi.com/courses/develop-apps-sails-js/)
### Lua
* [Lua Interactive Crash Course](http://luatut.com/crash_course.html)
* [Lua Tutorial](http://www.tutorialspoint.com/lua/)
### Machine Learning
* [Google's Machine Learning Crash Course](https://developers.google.com/machine-learning/crash-course/)
* [Machine Learning Mini Bootcamp](https://lambdaschool.com/free-course-machine-learning/)
* [Stanford University Machine Learning](https://www.coursera.org/learn/machine-learning)
### MATLAB
* [MIT 18.S997 Introduction to MATLAB Programming](http://ocw.mit.edu/courses/mathematics/18-s997-introduction-to-matlab-programming-fall-2011/)
### Mercurial
* [Hg Init: a Mercurial Tutorial](http://hginit.com) - Joel Spolsky
### Misc
* [Advanced Data Structures](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/)
* [Algorithm Design and Implementation](https://www.youtube.com/playlist?list=PL6EF0274BD849A7D5)
* [Aml-2018 Ambient Intelligence](https://www.youtube.com/playlist?list=PLqRTLlwsxDL8fUcY2Y54sITILyJcTySpC) (F. Corno - L. De Russis - A. Monge Roffarello)
* [Berkeley's CS 61B: Data Structures](https://archive.org/details/ucberkeley_webcast_QMV45tHCYNI)
* [Berkeley's CS 162: Operating Systems and Systems Programming](https://www.youtube.com/watch?v=feAOZuID1HM)
* [Berkeley's CS 169: Software Engineering](https://www.youtube.com/watch?v=fXokQpWsszU)
* [Berkeley's CS 194: What is an Operating System?](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs194-spring2013-berkeley.html)
* [Bits: The Computer Science of Digital Information](http://www.extension.harvard.edu/open-learning-initiative/bits)
* [Caltech's Learning From data](https://work.caltech.edu/telecourse.html)
* [Computer Graphics](http://nptel.ac.in/courses/106106090/)
* [Embedded Software Safety](https://www.youtube.com/playlist?list=PLAQopGWlIcyaqDBW1zSKx7lHfVcOmWSWt) (P. Koopman)
* [FindLectures.com](https://www.findlectures.com/?class1=Technology) - Index of conference talks by language / topic
* [LouvainX Paradigms of Computer Programming – Abstraction and Concurrency](https://www.edx.org/course/paradigms-computer-programming-louvainx-louv1-2x-1#!)
* [LouvainX Paradigms of Computer Programming – Fundamentals ](https://www.edx.org/course/paradigms-computer-programming-louvainx-louv1-1x-1)
* [MIT 6.S099: Artificial General Intelligence](https://agi.mit.edu)
* [MIT Numerical Methods (2014)](http://www.iitg.ernet.in/kartha/CE601-14/CourseSchedule.htm)
* [MIT's Artificial Intelligence](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/)
* [MIT's Computer Language Engineering](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-035-computer-language-engineering-sma-5502-fall-2005/lecture-notes/)
* [MIT's Introduction to Algorithms](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/)
* [MIT's Mathematics for Computer Science](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/)
* [Principles of Reactive Programming](https://www.coursera.org/course/reactive)
* [Robotics I](https://www.youtube.com/playlist?list=PLAQopGWlIcyaqDBW1zSKx7lHfVcOmWSWt) - (A. De Luca)
* [Stanford Cryptography I](https://www.coursera.org/course/crypto)
* [Stanford Cryptography II](https://www.coursera.org/course/crypto2)
* [Stanford SEE 229 - Machine Learning](https://see.stanford.edu/Course/CS229)
### .NET
* [Learn how to program: .NET](https://www.learnhowtoprogram.com/net) - Epicodus Inc.
### OCaml
* [Cornell's Data Structures and Functional Programming](http://www.cs.cornell.edu/courses/cs3110/2015fa/)
* [Introduction to Functional Programming in OCaml](https://www.fun-mooc.fr/courses/parisdiderot/56002S02/session02/about)
### Perl
* [Perl Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWpqRBcStwV0NwMA3nXMh5GC)
### PHP
* [Learn how to program: PHP](https://www.learnhowtoprogram.com/php) - Epicodus Inc.
* [PHP & MySQL Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWrjkpK2zD4TWKWMWVfeYK-b)
### Python
* [An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1) (Coursera)
* [An Introduction to Interactive Programming in Python (Part 2)](https://www.coursera.org/learn/interactive-python-2) (Coursera)
* [Bento Python Learning Track](https://bento.io/topic/python) (Bento)
* [Berkeley's Structure and Interpretation of Computer Programs](http://cs61a.org)
* [Codesdope](https://www.codesdope.com/python-introduction)
* [Google's Python Course](https://developers.google.com/edu/python/)
* [Introduction to Computer Science and Programming](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/) (MIT's opencourseware)
* [Introduction to Python Programming](https://www.udacity.com/course/introduction-to-python--ud1110) (Udacity)
* [Learn Python](https://pythonspot.com)
* [Learn Python - Free Interactive Python Tutorial](http://www.learnpython.org)
* [Learn to program in Python](https://www.codecademy.com/learn/python)
* [Learn to Program: The Fundamentals](https://www.coursera.org/learn/learn-to-program) (Coursera)
* [Learn to Program Using Python](https://www.edx.org/course/learn-program-using-python-utarlingtonx-cse1309x) (edX)
* [Microsoft Virtual Academy](https://mva.microsoft.com/en-US/training-courses/introduction-to-programming-with-python-8360)
* [Programming for Everybody](https://www.coursera.org/learn/python)
* [Programming Foundations with Python](https://www.udacity.com/course/programming-foundations-with-python--ud036) (Udacity)
* [Python Course](http://www.python-course.eu)
* [Python Programming Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWpX_byHyTEj9hecPngl2DqR)
### QB64
* [Game Programming with QB64](http://qb64sourcecode.com) - Terry Ritchie
### R
* [R Programming](https://www.coursera.org/course/rprog)
### RethinkDB
* [RethinkDB: Distributed Databases](https://courses.platzi.com/courses/rethinkdb-databases/)
### Ruby
* [Learn how to program: Ruby](https://www.learnhowtoprogram.com/ruby) - Epicodus Inc.
* [RubyMonk - Interactive Ruby tutorials](https://rubymonk.com)
### Scala
* [Functional Programming Principles in Scala](https://www.coursera.org/course/progfun)
* [Principles of Reactive Programming](https://www.coursera.org/course/reactive)
### Software Engineering
* [Advanced Software Construction in Java](https://www.edx.org/course/advanced-software-construction-java-mitx-6-005-2x#!)
* [Agile Development Using Ruby on Rails - Advanced](https://www.edx.org/course/agile-development-using-ruby-rails-uc-berkeleyx-cs169-2x#!)
* [Agile Development Using Ruby on Rails - Basics](https://www.edx.org/course/agile-development-using-ruby-rails-uc-berkeleyx-cs169-1x#!)
* [Software Construction in Java](https://www.edx.org/course/software-construction-java-mitx-6-005-1x)
### SQL
* [SQL Tutorial](https://www.youtube.com/playlist?list=PL_RGaFnxSHWr_6xTfF2FrIw-NAOo3iWMy)
### Swift
* [Swiftris - Build an iOS Tetris app from scratch](https://www.bloc.io/swiftris-build-your-first-ios-game-with-swift)
### Theory
* [Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about)
* [Udacity: Intro to Theoretical Computer Science](https://www.udacity.com/course/intro-to-theoretical-computer-science--cs313)
### Verilog / VHDL / SystemVerilog
* [SOC Verification Using SystemVerilog](http://verificationexcellence.in/online-courses/soc-verification-using-systemverilog)
* [SystemVerilog - Learn basics of SystemVerilog for Hardware Verification](https://verificationexcellence.teachable.com/p/learn-systemverilog)
* [SystemVerilog based UVM Methodology - Learn to build UVM based Testbenches in SystemVerilog](https://verificationexcellence.teachable.com/p/learn-ovm-uvm)
* [Verilog Hardware Description Language - An Introductory Course](http://vol.verilog.com/VOL/main.htm)
### Web Development
* [Discover Flask - Full Stack Web Development with Flask](https://github.com/realpython/discover-flask)
* [Flask(A Python Microframework) Tutorial](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)
* [Free Code Camp](https://www.freecodecamp.org)
* [The Odin Project - Learn Web Development for Free](http://www.theodinproject.com)
* [Udacity Web Development Course Catalog](https://www.udacity.com/courses#!/web-development#!/web-development)