Languages
Bash
- ๐๐Bash Guide for Beginners
- ๐๐Advanced Bash-Scripting Guide
- ๐๐Bash Reference Manual
- ๐๐Gregโs BashGuide Wiki โ Teaches good practices with simple scripts. Targets beginners with no advance knowledge.
C
- ๐ฒ๐ 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โs Learn C Programming โ Reference for C and its features.
- ๐๐ Introduction to C Programming
- ๐๐ Stanford Computer Science Education Library โ Resources on C, UNIX, and other things implemented in C.
- ๐๐ Beejโs Guide To C Programming โ Wonderful and typically entertaining C guide from Beej.
- ๐๐ Debugging tutorial with
gdb
โ Knowing how to use a debugger likegdb
is essential. - ๐๐ C Debugging cheat sheet โ Good for those times when you want to pull your hair out.
Networking
- ๐๐ Beejโs Guide To Network Programming โ A classic reference for POSIX network programming in C/C++.
C#
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)
- ๐๐ Video Series: Windows 10 development for absolute beginners
C++
Search words: cpp
- ๐๐ Language Reference โ A reference for the C/C++ programming languages.
- ๐๐ C++ Core Guidelines โ Best practices and recommendations for how to write C++, from the creators of the language.
- ๐๐ The Definitive C++ Book Guide and List โ A list of recommended books for learning C++, ordered by skill level.
- ๐๐ C++ FAQ โ The FAQ about C++ on /r/learnprogramming.
- ๐๐ #include <C++> Discord โ
#include <C++>
is a global, inclusive, and diverse community for developers interested in C++.
Learning
- ๐LearnCpp.com โ Free tutorials covering all of C++, for learners of all experience levels.
- ๐ฒ๐ฅ PluralSight C++ Path โ High-quality beginner and intermediate videos from Kate Gregory and others. 10-day free trial, with some ways to get an extended trial. Some companies offer free PluralSight accounts to employees as a benefit.
- ๐๐ C++ For Programmers โ A Udacity course designed for students who are familiar with a programming language and wish to learn C++.
Videos
- ๐๐ฅ The Chernoโs C++ videos โ Highly popular YouTube videos teaching C++.
- ๐๐ฅ OneLoneCoder โ Videos teaching C++ using a simple game engine thatโs easy for beginners to use.
- ๐๐ฅ C++ Weekly with Jason Turner โ Weekly video series teaching varied modern C++ topics.
- ๐๐ฅ CppCon conference talks โ The best video presentations the C++ community has to offer. Most content is not beginner material, but may still be of interest to beginners.
Podcasts
- ๐๐ CppCast โ Weekly podcast with C++ expert guests, covering C++ community news and varied topics.
- ๐๐๐ฅ cpp.chat โ Live semi-regular podcast with C++ expert guests, less structured than CppCast.
- ๐๐ No Diagnostic Required โ Monthly C++ news podcast by Phil Nash and Anastasia Kazakova from JetBrains.
- ๐๐ Twoโs Complement โ Programming podcast by Matt Godbolt and Ben Rady.
- ๐๐ Algorithms + Data Structures = Programs โ An informal podcast by Bryce Lelbach and Conor Hoekstra about algorithms, programming, and whatever the hosts feel like.
Java
- ๐๐ 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
Learning
- ๐๐ Java Programming โ MOOC taught with Java, part I & II (University of Helsinki).
Javascript
Search words: JS, ES5, ES6, ES2017
- ๐๐ Eloquent JavaScript โ Free to Read Online: A Modern Introduction to Programming.
- ๐๐ MDN Reference โ A community wiki with a JavaScript reference section, including compatibility charts.
- ๐๐ JS The Right Way โ An overview of JS with a list of additional resources.
- ๐๐ theodinproject full-stack js โ A course on full-stack javascript and web development.
- ๐๐ javascript.info โ A tutorial on the new features in Javascript.
- ๐๐ You Donโt Know JS โ Free JS book series written by Kyle Simpson.
Videos
- ๐๐ฅ What the heck is the event loop anyway? โ Talk: Overview on the Javascript event loop. (26:52).
React
- ๐๐ 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
CSS
Search words: Cascading Style Sheets
Learning
- ๐๐ Documentation from Mozilla Developer Network
- ๐๐ A Free Visual Guide to CSS
- ๐๐ Free Course: Learn the basics of HTML and CSS
- ๐๐ Simple introduction to CSS
- ๐๐ Learn CSS from web.dev โ From Google Developers.
- ๐๐ฎ CSS Grid Garden โ A game for learning CSS grid layout.
- ๐๐ฎ CSS Flex Froggy โ A game for learning CSS flexbox.
Reference
- ๐๐ CSS Reference โ A visual representation of all native CSS3 rules.
PHP
Learning
- ๐๐ 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/.
Culture
- ๐๐ PSR โ A collection of community-made standards and best practices for PHP.
Python
Learning
- ๐๐ 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.
- ๐๐ A Byte of Python โ Detailed overview of Python syntax and OOP basics with solid examples and explanations.
Culture
- ๐๐ Talk Python to Me by Michael Kennedy โ A weekly discussion about a Python project you should know about, usually with their developers.
Frameworks
- ๐๐ Official Django Tutorial - Official tutorial for Django, well regarded.
- ๐๐ DjangoGirls Blog Tutorial - Simple and short tutorial about how to make a blog with Django.
Haskell
Learning
- ๐๐ What I Wish I Knew When Learning Haskell - A useful collection of knowledge to help new haskell users orient themselves in the ecosystem.
- ๐๐ The Haskell Wiki - The official haskell wiki.
- ๐๐ Hoogle - A search engine for Haskell.
- ๐ฒ๐ TypeClasses - A subscription service with courses to help you learn haskell.
- ๐ฒ๐ Haskell Programming from First Principles - A book to learn haskell programming starting with the foundational mathematical principles of functional programming.
- ๐ฒ๐ Programming in Haskell - A short text book to teach haskell programming suitable for undergraduates or developers familiar with procedural or OO languages.
Culture
- ๐๐ The Haskell Community The haskell community page maintained by haskell.org.
- ๐๐ Haskell Discourse Discussion board for the haskell community.
- ๐๐ The Haskell Subreddit A popular subreddit about haskell with many learning and discussion resources.
- ๐๐ซ Haskell Weekly News A weekly mailing list and podcast with information about haskell and the haskell community.
Go
Learning
- ๐๐ Documentation
- ๐๐ Official Tour
- ๐๐ฅ Introductory Video
- ๐๐ Effective Go
- ๐๐ Godoc
Ruby
Search words: Ruby on Rails
Learning
- ๐๐ 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
- ๐๐ theodinproject full-stack ruby โ A course on full-stack ruby and web development.
- ๐๐ Ruby on Rails 5: Ruby on Rails Tutorial
- ๐ฒ๐ Ruby on Rails: Learn Ruby on Rails from Scratch
Rust
Learning
- ๐๐ 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.
SQL
Learning
- ๐๐ SQLBolt โ An interactive SQL tutorial.
- ๐๐ SQL Cheat Sheet โ A SQL cheatsheet (MySQL oriented)
Language Agnostic
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
Design
Search words: UI, UX, design
- ๐๐ CalArts UI/UX Design Specialization โ 4-course series on UI/UX design and wireframing with a web-app approach.
- ๐๐ Springboard UX Design Curriculum โ Aggregator of links to UI/UX tutorials and resources.
Git
- ๐๐ฎ 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.
Interviews
Search words: Whiteboard interviews
Always remember that whiteboard interviews are not representative of programming jobs. They are a hazing ritual. Your worth is not determined by their outcome.
- ๐ฒ๐ Cracking the Coding Interview โ Quickly teaches the most common patterns used in whiteboard interviews and provides copious exercises.
- ๐ฒ๐ Programming Interviews Exposed โ Also frequently recommended.
- ๐ฒ๐ Elements of Programming Interviews โ Another choice, and this one is available in several languages.
Machine Learning
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.
- ๐๐ Foundations of Machine Learning by Bloomberg
- ๐๐ 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 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.
Networking
- ๐๐ CCNA/CCENT 200-120 Course
- ๐ฒ๐ Chris Bryant on Udemy โ Networking classes from a veteran teacher. Frequently on sale for ~$10 USD each. Some are free.
- ๐ฒ๐ Cisco Certification Track and Syllabus
Mathematics
- ๐ฒ๐ 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.
Mobile Development
- ๐๐ฅ 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.
Open Source
- ๐๐ 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?
Podcasts
- ๐๐ #causeascene โ A show focused on the strategic anti-racist disruption of the status quo in technical orgs, communities & events.
- ๐๐ Ladybug Podcast โ An all lady-hosted tech podcast for all developers.
- ๐๐ 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. (retired)
- ๐๐ Talk Python to Me by Michael Kennedy โ Interview podcast that brings on guests working on niche Python projects you should be aware of.
- ๐๐ whiletruefm โ Technology discussion podcast formed by ProgDisc users. (retired)
Software Architecture
- ๐๐ The Architecture of Open Source Applications โ Authors of dozen open source applications explain how their software is structured, and why.
Testing
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 โ Essays that break down testing as a philosophy, as a process, and as aided by good tools.
License
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.