/resources

Resources recommended by members of our community. We welcome contributions, so feel free to send us pull requests adding things to the list! The resources in this list automatically get pushed to the http://progdisc.club/resources page.

Languages

Bash

C

C#

Search words: c-sharp, csharp

C++

Search words: cpp

Java

Learning

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.
  • 🆓🎓 javascript.info — A tutorial on the new features in Javascript.
  • 🆓📘 You Don't Know JS — Free JS book series written by Kyle Simpson.

Videos

React

CSS

Search words: Cascading Style Sheets

Learning

PHP

Learning

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 V2 — 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
  • 🆓🎓 Google Course — Course by Google. Do keep in mind, Google tends to use a different style guide to standard Python.
  • 🆓🎓 MIT 6.00X MOOC — Introduction to CS and programming with Python, MOOC by MIT
  • 🆓🎥 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."
  • 🆓🎓 Computer Science 101 — A Udacity course designed for total beginners to be familiar with the basics of computer science. You also get to be familiar with Python along the way.
  • 🆓📘 Official Python Tutorial — The tutorial from the official Python docs.

Culture

  • 🆓🎙 Talk Python to Me by Michael Kennedy — A weekly discussion about a Python project you should know about, usually with their developers.

Frameworks

Go

Learning

Ruby

Search words: Ruby on Rails

Learning

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.

Language Agnostic

Data Structures & Algorithms

Search words: DSA

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

Machine Learning

Search words: ML

Networking

Open Source

Podcasts

  • 🆓🎙 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.

Testing

A good test (by samwho):

  1. Tests functionality in your code, not the framework or language you're using.
  2. Tests for a single thing and a single thing only.
  3. Will not break when the implementation of what's being tested is changed.
  4. 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.

License

CC0

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.