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
- Added https://github.com/bitemyapp/learnhaskell and few other resources
- Updated other resources to latest
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.