PROGRAMMING LEARNING RESOURCES

Last updated: 2023-07-25; Changelog: at the end of the page.


Languages

Javascript

Documentation:
MDN - https://developer.mozilla.org/en-US/docs/Web/JavaScript
jQuery - https://api.jquery.com/
NodeJS - https://nodejs.org/en/docs/
Typescript - https://www.typescriptlang.org/docs/home.html
Discord.js - https://discord.js.org/#/docs/main/stable/general/welcome

Tutorials:
Eloquent - http://eloquentjavascript.net/
You Don't Know JS - https://github.com/getify/You-Dont-Know-JSngMe7LLa
MDN First Steps - https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps
Modern JS - http://javascript.info/
Evie's Accelerated JS Tutorial - https://evie.gitbook.io/js/
JavaScript Promises for Dummies - https://scotch.io/tutorials/javascript-promises-for-dummies

Discord.js:
https://anidiots.guide/
https://discordjs.guide/

Other:
You might not need jQuery - http://youmightnotneedjquery.com/
You might not need jQuery 2 - https://github.com/you-dont-need-x/you-dont-need-jquery
CodingTrain | tutorials with examples using p5.js - https://www.youtube.com/user/shiffman

Python

Beginner:
Python Official Tutorial - https://docs.python.org/3/tutorial/
Automate the Boring Stuff with Python book - https://automatetheboringstuff.com/
Python for non programmers - https://wiki.python.org/moin/BeginnersGuide/NonProgrammers

Videos:
Socratica - https://www.youtube.com/playlist?list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-
Corey Schafer - https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU
Python for beginners - https://www.youtube.com/watch?v=jFCNu1-Xdsw&list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
More python for beginners - https://www.youtube.com/watch?v=xYDnHi0u6_c&list=PLlrxD0HtieHiXd-nEby-TMCoUNwhbLUnj
Even more python for beginners - https://www.youtube.com/watch?v=D8OaGUYkHTE&list=PLlrxD0HtieHhHnCUVtR8UHS7eLl33zfJ-

Free Books:
https://github.com/EbookFoundation/free-programming-books/blob/main/courses/free-courses-en.md#python

Not Free, but free:
Python Crash Course book - https://libgen.rs/search.php?req=9781593279288&open=0&res=25&view=simple&phrase=1&column=identifier

Other:
TalkPython | Podcast - https://talkpython.fm/episodes/all
Exercises - http://www.practicepython.org/
List Comprehensions - https://www.programiz.com/python-programming/list-comprehension
More Resources - https://www.fullstackpython.com/best-python-resources.html

Java

Getting started with Java:
Download - https://jdk.java.net/
Head First Java by Bert Bates and Kathy Sierra [2 ed.] - https://libgen.rs/search.php?req=+978-0596009205&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def
University of Helsinki MOOC - https://java-programming.mooc.fi/
Oracle’s Java tutorial - https://docs.oracle.com/javase/tutorial/index.html
Documentation - https://docs.oracle.com/en/java/javase/16/docs/api/index.html
API Version differences - https://javaalmanac.io/

Spring:
Create spring projects easily
Spring Projects
Guides/Tutorials

Alternative JDK Builds:
https://adoptium.net/
https://www.oracle.com/java/technologies/javase-downloads.html
https://www.azul.com/downloads/zulu-community/
https://aws.amazon.com/corretto/
https://developers.redhat.com/products/openjdk/download
https://www.microsoft.com/openjdk
https://bell-sw.com/pages/libericajdk/

Videos:
AmigosCode, Dan Vega, Java Guides
Using the Javadoc by Craig Piercy
Tutorial Playlist by Derek Banas
Streams API by AmigosCode
OOP by Simplilearn
Design Patterns by Derek Banas

CPP

Beginner:
https://isocpp.org/get-started
http://www.learncpp.com/
https://github.com/rigtorp/awesome-modern-cpp
https://www.stroustrup.com/programming.html
^Book: https://libgen.rs/search.php?req=978-0321-992789&open=0&res=25&view=simple&phrase=1&column=identifier

Documentation:
http://en.cppreference.com/w/
https://isocpp.org/std/the-standard
http://eel.is/c++draft/

Videos:
https://www.youtube.com/user/CppCon
(Beginner to Advanced) https://www.pluralsight.com/authors/kate-gregory
(C++ Weekly) https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1

Web Dev Full Stack Course

The Odin Project:
https://www.theodinproject.com/

SQL and Database

SQL vs NoSQL: https://www.ibm.com/cloud/blog/sql-vs-nosql
Comparison between some popular SQL databases: https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems
Comparison between NoSQL database models: https://www.digitalocean.com/community/tutorials/a-comparison-of-nosql-database-management-systems-and-models
Introduction to SQL: https://www.khanacademy.org/computing/computer-programming/sql
SQL Practice: https://www.sql-practice.com/
Introduction to MongoDB: https://docs.mongodb.com/manual/introduction
Introduction to Redis: https://redis.io/topics/introduction

C

Books:
C Programming Language, 2nd Edition - https://libgen.rs/search.php?req=978-0131103627&open=0&res=25&view=simple&phrase=1&column=identifier
C Programming: A Modern Approach, 2nd Edition - https://libgen.rs/search.php?req=978-0393979503&open=0&res=25&view=simple&phrase=1&column=identifier
C Programming Absolute Beginner's Guide, 3rd Edition - https://libgen.rs/search.php?req=978-0789751980&open=0&res=25&view=simple&phrase=1&column=identifier
Programming in C (4th Edition) - https://libgen.rs/search.php?req=978-0321776419&open=0&res=25&view=simple&phrase=1&column=identifier
Expert C Programming - Deep secrets - https://libgen.rs/search.php?req=+978-0131774292&open=0&res=25&view=simple&phrase=1&column=identifier
Modern C by Jens Gustedt - https://libgen.rs/search.php?req=9781617295812&open=0&res=25&view=simple&phrase=1&column=identifier

Online resources:
http://www.learn-c.org/
http://crasseux.com/books/ctutorial/
https://www.gribblelab.org/CBootCamp/
https://web.archive.org/web/20170829225943/https://classes.soe.ucsc.edu/cmpe013/Spring10/notes/C%20Programming%20Guide.pdf
https://www.youtube.com/c/JacobSorber/videos

FAQ:
http://c-faq.com/

Documentation:
http://en.cppreference.com/w/c

C# (sharp)

Documentation:
Microsoft C# Programming Guide: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
Microsoft C# Reference: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/

Tutorials:
Introduction to C#: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/intro-to-csharp/
C# Fundamentals Development for Absolute Beginners: https://channel9.msdn.com/Series/CSharp-Fundamentals-for-Absolute-Beginners
AngelSix's C# Beginner's course: https://www.youtube.com/watch?v=STw363BHviY&list=PLrW43fNmjaQXhWOKalftye87ObZA-xNIJ

WPF Tutorials:
The Complete WPF Tutorial: http://www.wpf-tutorial.com/
WPF Tutorial: https://www.wpftutorial.net/
AngelSix's C# WPF course: https://www.youtube.com/watch?v=Vjldip84CXQ&list=PLrW43fNmjaQVYF4zgsD0oL9Iv6u23PI6M

PHP

PHP related discussions:
https://www.php.net/

Useful links and documentation:
Official documentation: https://www.php.net/manual/en/
Laracasts PHP tutorials: http://laracasts.com/
PHP: The Right Way: https://phptherightway.com/
PHP Standard Recommendations: https://www.php-fig.org/psr/
OWASP Cheatsheet: https://cheatsheetseries.owasp.org/
Getting started with PHP in 2022: https://youtu.be/YrWXClIMph4

Useful Libraries:
Composer package manager: https://getcomposer.org/
phpDocumentor: https://www.phpdoc.org/

Typescript

documentation:
Official Documentation - https://www.typescriptlang.org/docs/home.html
Migrating from Javascript - https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html https://2ality.com/2020/04/migrating-to-typescript.html

Tutorials:
Basics by Fireship - https://youtu.be/ahCwqrYpIuM
Generics by Ben Awad - https://youtu.be/nViEqpgwxHE
Decorators by Fireship - https://youtu.be/O6A-u_FoEX8
Pluralsight Course - https://www.pluralsight.com/paths/typescript-core-language

Others:
TypeScript with React: https://fettblog.eu/typescript-react/
Useful Types - https://github.com/typescript-community/resources
Typescript Runtime - https://deno.land/
TS-Node - https://github.com/TypeStrong/ts-node
Types for JS Packages - https://microsoft.github.io/TypeSearch/

Assembly

x86/x64:
https://www.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html
https://www.felixcloutier.com/x86/
Assembly with Ubuntu: http://www.egr.unlv.edu/~ed/assembly64.pdf

6502:
https://skilldrick.github.io/easy6502/

Arm:
https://developer.arm.com/documentation/102404/latest
https://developer.arm.com/architectures/learn-the-architecture/aarch64-instruction-set-architecture/instruction-sets-in-the-arm-architecture

Rust

Learn Rust: https://doc.rust-lang.org/book/
Play with Rust: https://play.rust-lang.org/
Crates: https://crates.io/
Learn Rust with Lists: http://cglab.ca/~abeinges/blah/too-many-lists/book/

Kotlin

Official Website: https://www.kotlinlang.org/
Official Docs: https://kotlinlang.org/docs/reference/
Tutorials: https://kotlinlang.org/docs/tutorials/
Mooc: https://www.udemy.com/kotlin-course/ (not free)
Books:
Kotlin in Action by Dmitry Jemerov and Svetlana Isakova (books assumes some experience with developing in Java) - https://libgen.rs/search.php?req=9781617293290&open=0&res=25&view=simple&phrase=1&column=identifier
Head First Kotlin: A Brain-Friendly Guide [2 ed.] - https://libgen.rs/search.php?req=+978-0596009205&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def

Haskell

- Recommended Learning material:
Book: http://haskellbook.com/, Download
Path: https://github.com/bitemyapp/learnhaskell
Book: http://learnyouahaskell.com/chapters
Course: http://www.seas.upenn.edu/~cis194/fall16/index.html

- Other sources/Docs:
GHC user-guide: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/index.html
Hoogle: https://hoogle.haskell.org/
Cabal docs: https://cabal.readthedocs.io/en/stable/
Stack docs: https://docs.haskellstack.org/en/stable/README/
Most importantly, read this: https://gilmi.me/blog/post/2015/02/25/after-lyah
Other docs: https://www.haskell.org/documentation

Videos:
Haskell for Imperative Programmers Playlist by Philipp Hagenlocher
Haskell Tutorial by Derek Banas
Haskell in 100 seconds by FireShip

What's next?
http://dev.stephendiehl.com/hask - useful for additional information on a given topic, with code examples

Go

Discuss the Go programming language (https://golang.org/).

Links for learning Go (roughly in order):
An Interactive Tour of Go:
https://tour.golang.org/welcome/1

Go by Example:
https://gobyexample.com/

How to Write Go Code:
https://golang.org/doc/code.html

Go Language Reference:
https://golang.org/ref/spec

Effective Go:
https://golang.org/doc/effective_go.html

Lua

Resources:
http://www.lua.org/manual/
https://www.lua.org/pil/contents.html
https://luarocks.org/
https://en.wikibooks.org/wiki/Lua_Programming

Dart

Resources:
Dart: https://dart.dev/
The language tour: https://dart.dev/guides/language/language-tour
GitHub: https://github.com/dart-lang

Tutorials:
https://dart.dev/tutorials

Flutter

Resources:
Flutter: https://flutter.dev/
Get started: https://docs.flutter.dev/get-started/install
GitHub: https://github.com/flutter/flutter

Tutorials:
https://docs.flutter.dev/reference/tutorials

Ruby

Ruby's official website: https://www.ruby-lang.org/en/

Documentation:
RubyDoc: https://ruby-doc.org/
Ruby on Rails: https://api.rubyonrails.org/

Tutorials:
TryRuby: https://try.ruby-lang.org/
Codecademy: https://www.codecademy.com/learn/learn-ruby
Learn Ruby the Hard Way: https://learnrubythehardway.org/book/
RubyMonk: https://rubymonk.com/
RubyKoans: http://rubykoans.com/
The Odin Project: https://www.theodinproject.com/

Videos:
Plain Ruby: https://www.youtube.com/watch?v=t_ispmWmdjY
Ruby on Rails: https://www.youtube.com/watch?v=eeoUVHnVuGA

Books:
The Well-Grounded Rubyist: https://libgen.rs/search.php?req=9781617295218&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def
Practical Object-Oriented Design in Ruby: https://libgen.rs/search.php?req=978-0321721334&open=0&res=25&view=simple&phrase=1&column=def

Other resources:
Idiosyncratic Ruby: https://idiosyncratic-ruby.com/
Awesome Ruby: https://github.com/markets/awesome-ruby
The Ruby Toolbox: https://www.ruby-toolbox.com/

Crystal

Crystal official website - https://crystal-lang.org/
Github - https://github.com/crystal-lang/crystal/
Crystal docs (aka manual) - https://crystal-lang.org/docs/
API Documentation - https://crystal-lang.org/api/1.3.2/
Getting started - https://crystal-lang.org/reference/1.3/getting_started/index.html
Basic tutorials - https://crystal-lang.org/reference/1.3/tutorials/basics/index.html
Libraries:
(Awesome Crystal) https://github.com/veelenga/awesome-crystal#awesome-crystal
(CrystalShards) https://crystalshards.org/

Lisp

Documentation:
Common Lisp Hyperspec: http://clhs.lisp.se/
Racket Reference: https://docs.racket-lang.org/reference/
ClojureDocs: https://clojuredocs.org/
LFE Docs: http://docs.lfe.io/current/index.html
Chez Scheme Users Manual: https://cisco.github.io/ChezScheme/csug9.5/csug.html
Chicken Scheme Manual: http://wiki.call-cc.org/man/4/The%20User%27s%20Manual
Guile Scheme Manual: https://www.gnu.org/software/guile/manual/html_node/index.html

Videos:
MIT SICP Playlist: https://www.youtube.com/playlist?list=PLE18841CABEA24090

Free Books:
SICP: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html
Practical Common Lisp: http://www.gigamonkeys.com/book/
The Scheme Programming Language: https://www.scheme.com/tspl4/
Casting SPELs in Lisp: http://www.lisperati.com/casting-spels-emacs/html/casting-spels-emacs-1.html

Beginner Books:
Land of Lisp: https://libgen.rs/search.php?req=978-1-59327-281-4&open=0&res=25&view=simple&phrase=1&column=def
Realm of Racket: https://libgen.rs/search.php?req=9781593274917&open=0&res=25&view=simple&phrase=1&column=def

Advanced Guides:
Fear of Macros: http://www.greghendershott.com/fear-of-macros/

Elixir

Homepage: https://elixir-lang.org/
Get started: https://elixir-lang.org/getting-started/introduction.html
Resources: https://elixir-lang.org/learning.html

Other

Interview Preparation

LeetCode: Website, Solutions 1, Solutions 2, Video Solutions
NeetCode: Website, Youtube Channel, Download
Codewars: Website

Docker Networks

Learn Kubernetes for free:
https://kube.academy/
How a reverse proxy works
https://i.ibb.co/YbfX1bc/reverse-proxy.png
Libvirt & KVM: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_getting_started_guide/index
IAAS-PAAS-SAAS-Comparison: https://i.ibb.co/TwmhRCG/iaas-paas-saas-comparison.jpg

Hardware

(How Computers Add Numbers) https://www.youtube.com/watch?v=VBDoT8o4q00

Gamedev

Godot:
Docs for godot engine: https://docs.godotengine.org/en/stable/
Tutorials for godot engine: https://gdquest.com/tutorial/godot/

(Procedural Map Generation Techniques) https://www.youtube.com/watch?v=TlLIOgWYVpI
Graphical projections: https://i.ibb.co/R2cTWKp/Comparison-of-graphical-projections.png
Collision Detection: https://www.jeffreythompson.org/collision-detection/table_of_contents.php
Timesteps: https://gafferongames.com/post/fix_your_timestep/
Unity: https://docs.unity3d.com/Manual/UnityManual.html
Unreal Engine: https://docs.unrealengine.com/en-us/

Editors

Below are links to repositories that contain continually updated links to hundreds of extensions, themes, and much more for multiple Editors/IDE's.
VScode: https://github.com/viatsko/awesome-vscode
Neovim: https://github.com/rockerBOO/awesome-neovim
Vim: https://github.com/akrawchyk/awesome-vim
Sublime: https://github.com/JaredCubilla/sublime

If you're looking for a good Visual Studio Code theme, check out the link below. It's one of the biggest collections on the internet.
https://vscodethemes.com/

UX and UI

These are some sites that are helpful for color schemes:
https://coolors.co/
https://colors.muz.li/
http://colormind.io/
https://paletton.com/
https://www.colorsandfonts.com/

And you can check contrast here to make sure the colors you use are accessible:
https://coolors.co/contrast-checker/112a46-acc8e5
https://colourcontrast.cc/

Here's a pretty nice resource on designing for accessibility:
https://ukhomeoffice.github.io/accessibility-posters/posters/accessibility-posters.pdf

This article has a big list of websites that provide free illustrations that you can use in your next project:
https://dev.to/kiranrajvjd/40-awesome-illustrations-resources-for-your-web-projects-2fea

Mobile Dev

This video will help you choose the best mobile framework for you / your purposes
https://www.youtube.com/watch?v=4m7msadL5iA

GIT and Version Control

Learn Git in 20 Minutes:
https://www.youtube.com/watch?v=IHaTbJPdB-s
How to keep your Git history clean with interactive rebase:
https://about.gitlab.com/blog/2020/11/23/keep-git-history-clean-with-interactive-rebase/
Git from the Bottom Up:
https://jwiegley.github.io/git-from-the-bottom-up/

Shells

Emulators
Cmder - http://cmder.net/
iTerm2 - https://www.iterm2.com/
Termux - https://termux.com/

Bash
Bash Manual - https://www.gnu.org/software/bash/manual/
Greg's Guide - https://mywiki.wooledge.org/BashGuide
Bash Wiki - https://wiki.bash-hackers.org/
Shellcheck - https://www.shellcheck.net/

Zsh
Zsh Manual - http://zsh.sourceforge.net/Doc/zsh_a4.pdf
Oh My Zsh - https://github.com/robbyrussell/oh-my-zsh
Tips and tricks - http://grml.org/zsh/zsh-lovers.html
Reference card - http://www.bash2zsh.com/zsh_refcard/refcard.pdf

Shell frameworks and addons
general - https://github.com/alebcay/awesome-shell
z - https://github.com/rupa/z
thefuck - https://github.com/nvbn/thefuck
dotfiles - https://dotfiles.github.io/
tldr pages - https://tldr.sh/

Starship Prompt
The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Website: https://starship.rs/
GitHub (source): https://github.com/starship/starship
This is a cross shell prompt which means it works on Bash, ZSH, Fish, Powershell, Ion, Elvish, TCSH, Zonsh, Nutshell.
It's written in rust so it's blazing fast and is incredibly simple to configure via the .TOML config files.
Quick Look: https://raw.githubusercontent.com/starship/starship/master/media/demo.gif

Brackets cheat sheet:
https://i.ibb.co/bvGv1LW/Ejcy-2-EWo-AA1v-VD.jpg

zsh-syntax-highlighting:
https://github.com/zsh-users/zsh-syntax-highlighting

Regex

Testing and Debugging
https://regex101.com/
https://regexr.com/
https://cheatography.com/davechild/cheat-sheets/regular-expressions/
Tutorials
https://www.regular-expressions.info/
https://regexone.com/
https://regexcrossword.com/

Security

OWASP Cheat Sheet:
https://cheatsheetseries.owasp.org/index.html

If you just want to focus on how to use cryptography as an engineer take a look at this:
Real World Cryptography:
https://libgen.rs/search.php?req=9781617296710&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def

If you'd like to dive a bit into theory (think math):
http://www.cs.tufts.edu/comp/165/papers/Goldwasser-Bellare-notes-cryptography.pdf

Cryptographic Best Practices:
https://gist.github.com/atoponce/07d8d4c833873be2f68c34f9afc5a78a

Linux

Linux & CLI Crash Course: https://linuxjourney.com/
LinuxCommand : http://linuxcommand.org/
Linux Survival: https://linuxsurvival.com/
Babbies First Linux: https://wiki.installgentoo.com/index.php/Babbies_First_Linux
Arch linux Wiki: https://wiki.archlinux.org/
Resource monitor: https://github.com/aristocratos/bpytop
A pretty system information tool written in POSIX sh: https://github.com/dylanaraps/pfetch
Terminals:
https://github.com/alacritty/alacritty
https://sw.kovidgoyal.net/kitty/overview/

Computer science

CS course from OSS University: https://github.com/ossu/computer-science
Computer Science Resources: https://github.com/the-akira/Computer-Science-Resources

Operating System Resources

OSTEP: https://pages.cs.wisc.edu/~remzi/OSTEP/
^Book: https://libgen.rs/search.php?req=978-1985086593&column=identifier&view=simple&phrase=0&open=0&res=25
OS Development wiki: https://wiki.osdev.org/Main_Page
NeuroAcademy Youtube Channel: https://youtube.com/playlist?list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O


Changelog

Please note: Only changelog for the last 14 changes is shown
2023-07-25

  • Added spring resources to java and few more youtube channels

2023-05-31

  • Added videos section to java

2023-05-30

2023-05-16

  • Added "Interview Preparation" category, neuroacademy os playlist and neetcode
  • Removed atom editor

OLD Changelog:

February 12, 2022 - Editing some formats
February 10, 2022 - Just updated the date.
February 09, 2022 - Added Crystal programming language resources. Thanks Real Taxi with cute pfp.
February 08, 2022 - Added Linux resources, Computer Science resources and Operating System resources. Improved format.
Operating system resource.
January 29, 2022 - Added new resource. Plan to add Scientific computing and
January 28, 2022 - Added "Tech" category with new resources, Improved format.
January 25, 2022 - Improved format, added Flutter resources.
January 16, 2022 - Added Libgen link for paid books.
January 01, 2022 - Index created.


Originally collected by CD and updated by PG.

Edit
Pub: 15 May 2023 17:55 UTC
Edit: 01 Nov 2023 14:41 UTC
Views: 9853