- Language Agnostic
🆓 📘Bash Guide for Beginners 🆓 📘Advanced Bash-Scripting Guide 🆓 📘Bash Reference Manual 🆓 🌐Greg's BashGuide Wiki 🆓 🌐Bash Hackers Wiki
💲 📘C Programming: A Modern Approach — K.N. King's explanation of C89 and C99 in context. 💲 📘Programming in C — An introductory book for programming in C 🆓 🎓Harvard's CS50 MOOC — Introductory course by Harvard on programming using C with no assumed background. 💲 📘The C Programming Language, 2nd Edition — The complete guide to ANSI standard C language programming. 🆓 📘Tutorials point — Reference for C and its features. May not be a bit overwhelming for a complete beginner to programming but good for its use. 🆓 📘Introduction to C Programming — Also available here as a PDF. 🆓 📘Stanford Computer Science Education Library — Resources on C, UNIX, and other things implemented in C 🆓 📘Debugging tutorial with
gdb— Knowing how to use a debugger like
🆓 📘C Debugging cheat sheet — Good for those times when you want to pull your hair out
Search words: c-sharp, csharp
💲 📘Rob Miles' C# Programming Yellow Book is the go-to guide for learning or refreshing C# skills. 🆓 🎓Fundamentals for Absolute Beginners 🆓 🎓Video Series: Getting Started with Visual Studio & C# .NET with Nerdgasm 💲 📘C# in Depth, Fourth Edition by Jon Skeet (http://meta.stackexchange.com/q/9134) 💲 🎓TeamTreehouse: Fundamentals, ASP.NET MVC, LINQ, Entity Framework, etc.
Search words: cpp
🆓 📘Language Reference — A reference for the C/C++ programming languages. 🆓 🌐The Definitive C++ Book Guide and List — A list of recommended books for learning C++, ordered by skill level. 🆓 🎓C++ For Programmers — A Udacity course designed for students who are familiar with a programming language and wish to learn C++. 🆓 📘C++ FAQ — The FAQ about C++ on /r/learnprogramming.
🆓 📘Java Platform Documentation — Official Java SE 8 Documentation. 🆓 📘Oracle Tutorial — Official Java Tutorial by Oracle. 🆓Software Construction — MIT 6.005: Software Construction. Some programming experience needed. 💲 📘Effective Java — For those looking for a deeper understanding of Java, to create clearer, more correct, more robust, and more reusable code. 🆓 🎥Derek Banas on YouTube
🆓 🎓Object Oriented Programming — MOOC taught with Java, part I & II (University of Helsinki).
Search words: JS, ES5, ES6, ES2017
🆓 📘Hello World in React 🆓 🎥Get Quickly in Pace with React.js Development 🆓 🎓Essential Concepts 🆓 🎓Continuation: Lifecycle Methods, Stateless Components and more 🆓 🌐Awesome react 🆓 📘Redux doc's 🆓 🎓Dan Abramov's free course for Redux 🆓 🌐React-redux-links
Search words: Cascading Style Sheets
🆓 📘Documentation from Mozilla Developer Network 🆓 📘A Free Visual Guide to CSS 🆓 🎓Free Course: Learn the basics of HTML and CSS 🆓 🎓Simple introduction to CSS 🆓 🎮CSS Grid Garden — A game for learning CSS grid layout. 🆓 🎮CSS Flex Froggy — A game for learning CSS flexbox.
🆓 🎓A simple tutorial — A good introduction. 🆓 📘Official PHP Documentation — Select a language on the page. 🆓 📘Learn PHP the right way — Free online free book/reference manual. 🆓 🎓PHP 7 — Interactive tutorial http://www.tutorialspoint.com/
🆓 📘PSR — A collection of community-made standards and best practices for PHP
🆓 📘Automate the Boring Stuff by Al Sweigart — An introduction to the language focused on showing how Python can help you with tasks around the office today. 🆓 📘Think Python 2E — Covers the Python language and thinking like a programmer in detail. Good supplement to what Automate the Boring Stuff does not cover. 🆓 📘Hitchhiker's Guide to Python — A great guide to learning Python practices, setting up dev environments, packaging, and a lot of other information you're unlikely to learn from a guide or even unlikely to learn without hard experience 🆓 🎓MIT 6.00X MOOC (OCW version)— Introduction to CS and programming using Python. 🆓 🎓Georgia Tech CS 1301X MOOC — Introduction to computing in Python. Easier and longer than MIT's and focuses more on Python. 💲 📘Python Crash Course by Eric Matthes — A project-based introduction to Python. Covers the basics of Python, PyGame, data analysis with graphing, and Django. 🆓 🎥Corey Schafer on Youtube — Useful Youtube channel with plenty of good quality tutorials 🆓 📘Python Names and Values Article & talk on Youtube about names, values, assignment, and mutability. 🆓 🎥Sentdex on Youtube — YouTube introduction to Python with a focus on "basics are boring; learn them quickly and build something." 🆓 📘Official Python Tutorial — The tutorial from the official Python docs.
🆓 🎙Talk Python to Me by Michael Kennedy — A weekly discussion about a Python project you should know about, usually with their developers.
🆓 🎓Official Django Tutorial - Official tutorial for Django, well regarded. 🆓 🎓DjangoGirls Blog Tutorial - Simple and short tutorial about how to make a blog with Django.
Search words: Ruby on Rails
🆓 📘Official Ruby Core 2.4.1 Documentation 🆓 🎓Quickstart Guide: Ruby In Twenty Minutes 🆓 📘Cheatsheet/Reference: 🆓 📘Learn to Program with Ruby 🆓 📘Language Transition: Ruby From Other Languages 🆓 🎓Exercise Focused: Codecademy Ruby 🆓 📘Ruby on Rails 5: Ruby on Rails Tutorial 🆓 🎓Ruby on Rails: Learn Ruby on Rails from Scratch 💲 🎓TeamTreehouse: Learn Ruby
🆓 📘The Rust Book — It contains pretty much everything you need to know about Rust. 🆓 📘Rust By Example — A nice tutorial for people who already know how to program. 🆓 📘The Little Book of Rust Macros — Everything you need to know about macros. 🆓 📘Rust Documentation — List of useful Rust documentations, such as: The Rust Language Reference & The standard library API. 🆓 📘The Rustonomicon — The Dark Arts of Advanced and Unsafe Rust Programming. 🆓 📘Rustdoc Guide — A short guide on rustdoc and how to use it. 🆓 🌐Awesome Rust — A huge list of the best crates and tools you could possibly think of! 🆓 🌐Rust Books — A collection of books related to Rust. 🆓 🎓Discovery — An "introductory course" on microcontroller-based "embedded systems" using Rust.
🆓 🌐SQLBolt — An interactive SQL tutorial.
Data Structures & Algorithms
Search words: DSA
🆓 📘Problem Solving with Algorithms and Data Structures using Python By Brad Miller and David Ranum 🆓 🎓Sedgewick's Coursera Part 1 🆓 🎓Sedgewick's Coursera Part 2 💲 📘Sedgewick's Algorithms in Java 💲 📘CLRS/Introduction to Algorithms
🆓 🎮Learn Git Branching — Interactive introduction to Git branching and workflow 🆓 📘Pro Git — A start-to-finish book on how to use and understand Git. 🆓 📘Flight rules for git — What to do when things go wrong.
💲 📘Cracking the Coding Interview, 6th Edition 💲 📘Programming Interviews Exposed 💲 📘Elements of Programming Interviews !WARNING COMES IN SEVERAL LANGUAGES!
Search words: ML, Data Science
Warning: Some of these resources are heavy in Mathematics
🆓 🎓Columbia University's Machine Learning course on edX — Excellent resource for those wanting a career in ML/Data Science. Extremely important and practical concepts covered 🆓 🎓Andrew Ng's Machine Learning course on Coursera — Very popular resource for those less confident with mathematics. Good for hackers, hobbyists and students. 🆓 📘Elements of Statistical Learning — Mathematically rigorous introduction to Machine Learning theory. Recommended for those with strong mathematics backgrounds. 🆓 📘Introduction to Statistical Learning — Introduction to Machine Learning for people from non-technical backgrounds and backgrounds in non-quantitative subjects. 🆓 📘Deep Learning Book — Ian Goodfellow's iconic Deep Learning book 🆓 📘3blue1brown's Neural Networks — Excellent series that visually and intuitively explains the concept behind Neural Networks through excellent visuals and animations 🆓 🎥Stanford's CS231n - Convolutional Neural Networks for Visual Recognition — Stanford's Deep Computer Vision course that goes over the advent of CNNs in computer vision, their history and their use in state of the art methods in deep vision. Gets you almost up-to-date on Computer Vision reserach literature 🆓 🎥Stanford's CS224n - Natural Language Processing with Deep Learning — Stanford's NLP course going over modern deep learning based methods and architectures
🆓 🎓CCNA/CCENT 200-120 Course 💲 🎓Chris Bryant on Udemy
- Frequently on sale for ~$10 USD each
💲 🎓Cisco Certification Track and Syllabus
💲 📘Strang's Introduction to Linear Algebra — Gilbert Strang's excellent book on introductory linear algebra, excellent place to start on Machine learning 🆓 🎓MIT's 18.06 - Linear Algebra — Strang's introductory linear algebra course taught in MIT, with all the lectures and resources available online through OpenCourseWare 🆓 🎥Essence of Linear Algebra — Revolutionary series by Grant Sanderson that focuses on building geometric intuition and understanding of concepts in linear algebra. Extremely useful skill to have. Best paired with a resource that goes over rigorous computation involved in linear algebra, like one of Strang's resources 💲 📘Stewart's Calculus series — Excellent series of books that go through the Calculus sequence that many CS/Engineering/Science students have to go through 🆓 🎥Essence of Calculus — Another fantastic series on building geometric intuition, this time on Calculus. Again, best paired with a rigorous academic resource
🆓 🎥Android Basics — A video series on how to develop Android applications by Google (check out the course description for full list of courses) 🆓 📘Android Developer Guides — The official documentation on how Android platform works
🆓 🌐Opensource.com — What exactly is 'Open Source'? Get a gentle overview. 🆓 🌐Opensource.guide — Answers common questions about open source software topics, like its legality and how to get paid. 🆓 🌐"Finding open source projects to contribute to" from GitHub — Ready to find an open source project to contribute to?
🆓 🎙Programming Throwdown — Every show covers a new programming language and assorted tech topics. 🆓 🎙Coding Blocks — Pragmatic talk about software design best practices: design patterns, software architecture, performance, object oriented programming, and more. 🆓 🎙Coder Radio by Jupiter Broadcasting — Weekly discussion about software development and related technologies. 🆓 🎙Talk Python to Me by Michael Kennedy — Interview podcast that brings on guests working on niche Python projects you should be aware of. 🆓 🎙Simple Programmer by John Sonmez — Straight talk about productivity and career development for software developers. 🆓 🎙whiletruefm — Fortnightly technology discussion podcast formed by ProgDisc users.
🆓 📘The Architecture of Open Source Applications — Authors of dozen open source applications explain how their software is structured, and why.
A good test (by samwho):
- Tests functionality in your code, not the framework or language you're using.
- Tests for a single thing and a single thing only.
- Will not break when the implementation of what's being tested is changed.
- Does not depend on anything from the outside world, and leaves nothing behind when it's done.
💲 📘Beautiful Testing — A series of essays that break down testing as a philosophy, as a process, and as aided by good tools.
To the extent possible under law, the Programming Discussions community has waived all copyright and related or neighboring rights to this work by invoking CC0. Regrettably, the CC0 badge reads "Public Domain," but please don't hold that misnomer against our descendants before this document's copyright expires in the United States.