Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/curlpipe/awesome-learning

Teach yourself a new technology from this list B)
https://github.com/curlpipe/awesome-learning

List: awesome-learning

Last synced: about 1 month ago
JSON representation

Teach yourself a new technology from this list B)

Awesome Lists containing this project

README

        

# Awesome learning
It's time to branch out your skills!
Check out these *exclusviely free* courses :)

This took a while for me to make and I would really appreciate it if you starred this repository :D

You can learn how computers work, learn any modern popular language to control a computer, learn any framework for their corresponding languages and subsequently build something awesome!

I have tried to include tutorials that both teach the languages and frameworks but also included project walk throughs so that you can build something awesome straight from the get go, without getting lost and helping to apply the knowledge that you've just learnt.

Not sure what to learn?
Click [here](https://www.bestprogramminglanguagefor.me) to find out what is best for you!

# Index
Here is the index! Choose a field that you are interested in!

- [Languages](https://github.com/curlpipe/awesome-learning#languages) 💬
- [General computer science](https://github.com/curlpipe/awesome-learning#general-computer-science) 💻
- [Web development](https://github.com/curlpipe/awesome-learning#web-development) 🌐
- [Machine learning](https://github.com/curlpipe/awesome-learning#machine-learning) 🧠
- [Game programming](https://github.com/curlpipe/awesome-learning#game-programming) 🎮
- [Mobile development](https://github.com/curlpipe/awesome-learning#mobile-development) 📱
- [Desktop applications](https://github.com/curlpipe/awesome-learning#desktop-applications) 🖥
- [Code management](https://github.com/curlpipe/awesome-learning#code-management) 🛠
- [Ethical hacking](https://github.com/curlpipe/awesome-learning#ethical-hacking) ⌨
- [Databases and Query languages](https://github.com/curlpipe/awesome-learning#databases-and-query-languages) 💾
- [Esoteric languages](https://github.com/curlpipe/awesome-learning#esoteric-languages) 😈

# Languages
Here is a list of every programming language you would probably ever want to learn, there may be more programming languages added in the future but there are already many of the most widely used and some more obscure ones too! Have fun learning in a variety of ways with videos, websites and books.

## C
C is an incredibly old language and has been around since the 1970s! It is known for being reliable and extremely fast when compared with other languages. C can be quite difficult for beginners and I do not advise that you start out with C as your first language.

[Video: C programming for beginners](https://www.youtube.com/watch?v=KJgsSFOSQv0)

[Video: C programming all-in-one 10 hour course](https://www.youtube.com/watch?v=Bz4MxDeEM6k)

[Website: Refine skills and improve problem solving in C](https://www.codewars.com/?language=c)

[Website: Interactive C tutorial for everyone](https://www.learn-c.org/)

[Website: Online C compiler and IDE](https://repl.it/languages/C)

[Book: C notes for professionals](https://goalkicker.com/CBook/CNotesForProfessionals.pdf)

## Java
Java is one of the most popular languages in the modern day. It powers a wide variety of things from ATMs to desktop applications to the majority of Android apps. Java may not be the best place to start if you are a beginner but great if you need a program that can run anywhere!

[Video: Intro to Java programming for absolute beginners](https://www.youtube.com/watch?v=GoXwIVyNvX0)

[Video: Full java tutorial for beginners](https://www.youtube.com/watch?v=grEKMHGYyns)

[Video: Build a sudoku desktop application in Java](https://www.youtube.com/watch?v=qH9mWpYMtYU)

[Website: Refine skills and improve problem solving in Java](https://www.codewars.com/?language=java)

[Website: Codecademy's free introduction to java course](https://www.codecademy.com/learn/learn-java)

[Website: Online Java compiler and IDE](https://repl.it/languages/java)

[Book: Java notes for professionals](https://goalkicker.com/JavaBook/JavaNotesForProfessionals.pdf)

## Python
Python is incredibly popular and has many uses including machine learning, creating web applications and desktop applications. Python is a brilliant place to start if you are a beginner to programming and need a simple language to refine your programming skills so that you can move onto other languages.

[Video: Full python course for beginners](https://www.youtube.com/watch?v=rfscVS0vtbw)

[Video: Learn python by building 5 games](https://www.youtube.com/watch?v=XGf2GcyHPhc)

[Website: Refine skills and improve problem solving in Python](https://www.codewars.com/?language=python)

[Website: Learnpython interactive python tutorial](https://www.learnpython.org/)

[Website: Online Python interpreter and IDE](https://repl.it/languages/python3)

[Book: Python notes for professionals](https://goalkicker.com/PythonBook/PythonNotesForProfessionals.pdf)

## C++
C++ is a language in the C family and is therefore known to be fast and well established within the language sphere. Originally released in 1985, it now has uses such as game creation and running on embedded systems. It is not a great place to start out as a beginner due to its huge amount of special syntax rules but good to move onto at a later date.

[Video: C++ tutorial for beginners](https://www.youtube.com/watch?v=vLnPwxZdW4Y)

[Video: C++ programming all-in-one 10 hour course](https://www.youtube.com/watch?v=_bYFu9mBnr4)

[Website: Refine skills and improve problem solving in C](https://www.codewars.com/?language=cpp)

[Website: Codecademy's free C++ course](https://www.codecademy.com/learn/learn-c-plus-plus)

[Website: Free interactive C++ tutorial](https://www.learn-cpp.org/)

[Website: Online C++ compiler and IDE](https://repl.it/languages/Cpp)

[Book: C++ notes for professionals](https://goalkicker.com/CPlusPlusBook/CPlusPlusNotesForProfessionals.pdf)

## C\#
Released by microsoft in 2000, C# is another C family language and is great for creating graphics in both games and for desktop applications. It is one of the easier C family languages to learn and perhaps a good stepping stone to some more advanced languages.

[Video: C# basics in 1 hour](https://www.youtube.com/watch?v=gfkTfcpWqAY)

[Video: C# Tutorial full course for beginners](https://www.youtube.com/watch?v=GhQdlIFylQ8)

[Video: C# application from start to finish 24 hour course](https://www.youtube.com/watch?v=wfWxdh-_k_4)

[Video: C# Complete tutorial from beginner to professional](https://www.youtube.com/watch?v=2KTyAj0JCpI)

[Website: Codecademy's free C# course](https://www.codecademy.com/learn/learn-c-sharp)

[Website: Refine skills and improve problem solving in C#](https://www.codewars.com/?language=csharp)

[Website: Interactive C# tutorial](https://www.learncs.org/)

[Website: Interactive C# compiler and IDE](https://repl.it/languages/Csharp)

[Book: C# notes for professionals](https://goalkicker.com/CSharpBook/CSharpNotesForProfessionals.pdf)

## HTML
HTML is not a programming language like many other languages on this list, instead it is what is known as a "Markup language". It's purpose is to allow a programmer to construct the skeleton of a webpage, e.g. putting images and text on the screen. This is essential if you wish to enter the world of web development.

[Video: HTML full course build a website](https://www.youtube.com/watch?v=pQN-pnXPaVg)

[Video: Simple HTML website](https://www.youtube.com/watch?v=PlxWf493en4)

[Website: Codecademy's free HTML course](https://www.codecademy.com/learn/learn-html)

[Website: Online HTML renderer](https://repl.it/languages/html)

[Website: Mozilla's Introduction to HTML course](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started)

[Website: Interactive HTML tutorial](https://www.learn-html.org/)

[Book: HTML5 notes for professionals](https://goalkicker.com/HTML5Book/HTML5NotesForProfessionals.pdf)

## CSS
CSS is not a programming language but is a way of telling the web browser how a website should look. It is essential if you wish to learn web development.

[Video: CSS tutorial zero to hero](https://www.youtube.com/watch?v=1Rs2ND1ryYc)

[Video: CSS full course (shorter)](https://www.youtube.com/watch?v=ieTHC78giGQ)

[Video: CSS crash course (in 20 minutes)](https://www.youtube.com/watch?v=r1xBCi5SOjw)

[Video: Learn responsive design](https://www.youtube.com/watch?v=srvUrASNj0s)

[Video series: CSS3 in 30 days](https://www.youtube.com/watch?v=pmKyG3NBY_k&list=PLWKjhJtqVAbl1AfjiGyYxwpdAPi5v-1OU)

[Website: Codecademy's free CSS course](https://www.codecademy.com/learn/learn-css)

[Website: Mozilla's CSS course](https://www.codecademy.com/learn/learn-css)

[Website: Free CSS viewer online](https://repl.it/languages/html)

[Website: Interactive HTML+CSS tutorial](https://www.learn-html.org/)

[Book: CSS notes for professionals](https://goalkicker.com/CSSBook/CSSNotesForProfessionals.pdf)

## Javascript
Javascript is a language that drives the modern web. It is a core technology of the world wide web. It enables interactivity on webpages and can be run by any modern web browser. It is also a great place to start as a beginner.

[Video: Learn Javascript full course for beginners](https://www.youtube.com/watch?v=PkZNo7MFNFg)

[Video: Build 15 vanilla javascript projects](https://www.youtube.com/watch?v=3PHXvlpOkf4)

[Video: Learn javascript by learning 7 games](https://www.youtube.com/watch?v=lhNdUVh3qCc)

[Video: Learn javascript by building tetris](https://www.youtube.com/watch?v=rAUn1Lom6dw)

[Video: Build rock paper scissors game in html, css and javascript](https://www.youtube.com/watch?v=jaVNP3nIAv0)

[Website: Codecademy's free Javascript course](https://www.codecademy.com/learn/introduction-to-javascript)

[Website: Refine skills and improve problem solving in Javascript](https://www.codewars.com/?language=javascript)

[Website: Online javascript interpreter](https://repl.it/languages/javascript)

[Website: Interactive JS tutorial](https://www.learn-js.org/)

[Website: Learn javascript from Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide)

[Book: Javascript notes for professionals](https://goalkicker.com/JavaScriptBook/JavaScriptNotesForProfessionals.pdf)

## R
R is a language that is primarily for statistical computing and graphics that is used amongst statisticians and data miners and can be used for data analysis. It serves a specific purpose and serves a very specific area of programming. If you are looking to start off programming, try learning a general-purpose language first to get a good feel for what a language can do.

[Video: R programming tutorial learn the basics of statistical computing](https://www.youtube.com/watch?v=_V8eKsto3Ug&t=101s)

[Video series: Learn R Programming](https://www.youtube.com/watch?v=SWxoJqTqo08&list=PLjgj6kdf_snYBkIsWQYcYtUZiDpam7ygg)

[Website: Codecademy's free R course](https://www.codecademy.com/learn/learn-r)

[Website: Refine skills and improve problem solving in R](https://www.codewars.com/?language=r)

[Website: Online R compiler](https://repl.it/languages/rlang)

[Website: Interactive R tutorial](https://www.learn-r.org/)

[Book: R notes for professionals](https://goalkicker.com/RBook/RNotesForProfessionals.pdf)

## PHP
PHP is a popular language that is suited to web development. If you plan to get into web development, perhaps learn javascript first due to its popularity and job availability however, you can always come to PHP if you prefer it or plan to work in it.

[Video: PHP language tutorial full course](https://www.youtube.com/watch?v=OK_JCtrrv-c)

[Video: Build a Twitter thread reader using PHP](https://www.youtube.com/watch?v=jjodHH6stRU)

[Video: Learn PHP and MySQL with practical full project](https://www.youtube.com/watch?v=NMSlQjm2row)

[Website: Codecademy's free PHP course](https://www.codecademy.com/learn/learn-php)

[Website: Refine skills and improve problem solving in PHP](https://www.codewars.com/?language=php)

[Website: Online PHP interpreter](https://repl.it/languages/php)

[Website: Interactive PHP tutorial](https://www.learn-php.org/)

[Book: PHP notes for professionals](https://goalkicker.com/PHPBook/PHPNotesForProfessionals.pdf)

## Swift
Swift is a language developed by Apple primarily for creating applications for iOS, iPadOS, macOS, watchOS, tvOS and Linux. If you plan to develop apps primarily for Apple's products, Swift is the language to learn!

[Video: Swift full course for beginners](https://www.youtube.com/watch?v=comQ1-x2a1Q)

[Video: Your first app on iOS](https://www.youtube.com/watch?v=09TeUXjzpKs)

[Website: Codecademy's free Swift course](https://www.codecademy.com/learn/learn-swift)

[Website: Refine skills and improve problem solving in Swift](https://www.codewars.com/?language=swift)

[Website: Online swift compiler](https://repl.it/languages/swift)

[Website: Official swift tutorial](https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html)

[Book: Swift notes for professionals](https://goalkicker.com/SwiftBook/SwiftNotesForProfessionals.pdf)

## SQL
SQL is a special query language that is used to manage data held in a database. It is widely used and if you plan to get into developing full-stack applications or even ethical hacking, SQL is an important skill to have.

[Video: SQL full database course for beginners](https://www.youtube.com/watch?v=HXV3zeQKqGY)

[Video: PostgreSQL for beginners](https://www.youtube.com/watch?v=qw--VYLpxG4)

[Video: SQLite Databases with Python](https://www.youtube.com/watch?v=byHcYRpMgI4)

[Video: MySQL tutorial for beginners](https://www.youtube.com/watch?v=7S_tz1z_5bA)

[Video series: SQL database programming](https://www.youtube.com/watch?v=xmwI6VB_wUM&list=PLLAZ4kZ9dFpMGXTKXsBM_ZNpJwowfsP49)

[Website: Codecademy's free SQL course](https://www.codecademy.com/learn/learn-sql)

[Website: Refine skills and improve querys in SQL](https://www.codewars.com/?language=sql)

[Website: SQLite online](https://sqliteonline.com/)

[Website: Interactive SQL tutorial](https://www.w3schools.com/sql/)

[Book: SQL notes for professionals](https://goalkicker.com/SQLBook/SQLNotesForProfessionals.pdf)

## Regex
Regular expressions (regex for short) is a very small and specific language that is used to scan, search and verify text. You can use regex to verify that a user has entered a valid email or use it to replace specific portions of text that conform to a special pattern (e.g. all words ending in a question mark). It is very useful to know and makes programming in every area of the industry very useful.

[Video: Regular expressions crash course](https://www.youtube.com/watch?v=ZfQFUJhPqMM)

[Website: Codecademy's introduction to regular expressions](https://www.codecademy.com/learn/introduction-to-regular-expressions)

[Website: Regular expressions online](https://regex101.com/)

[Website: A quick and interactive way to learn regex](https://learn-regex.com/)

[Book: Bastards book of regular expressions](http://regex.bastardsbook.com/files/bastards-regexes.pdf)

## Go
Go is a language created by Google. It is designed to improve productivity in the modern day. It aims to be fast, readable and have high-performance networking and multiprocessing. It was created due to a dislike of C++ by the developers.

[Video series: Golang tutorial](https://www.youtube.com/watch?v=uCR_A-Bphl0&list=PLJbE2Yu2zumCe9cO3SIyragJ8pLmVv0z9)

[Video: Go tutorial for beginners](https://www.youtube.com/watch?v=YS4e4q9oBaU)

[Video: Go crash course](https://www.youtube.com/watch?v=SqrbIlUwR0U)

[Video: Learn go in 12 minutes](https://www.youtube.com/watch?v=C8LgvuEBraI)

[Website: Codecademy's free Go course](https://www.codecademy.com/learn/learn-go)

[Webiste: Refine skills and improve problem solving in Go](https://www.codewars.com/?language=go)

[Website: Online Go compiler](https://repl.it/languages/go)

[Website: Interactive go tutorial](https://www.learn-golang.org/)

[Website: Go cheatsheet](https://learnxinyminutes.com/docs/go/)

## Perl
Perl is a general purpose language and gained popularity for its unsurpassed regular expression and string parsing abilities. It can be used for system administration, network programming, finance and bioinformatics. It is not recommended for beginners due to its lack of available jobs and popularity in the modern day.

[Video: Perl tutorial](https://www.youtube.com/watch?v=WEghIXs8F6c)

[Website: Execute Perl online](https://www.tutorialspoint.com/execute_perl_online.php)

[Website: Interactive Perl tutorial](https://www.learn-perl.org/)

[Book: Perl notes for professionals](https://goalkicker.com/PerlBook/PerlNotesForProfessionals.pdf)

## Ruby
Ruby is a high level general purpose programming language developed in the 1990s in Japan. It has very unique syntax and is brilliant for string parsing and processing, just like perl, and is perfect for beginners just like Python. It has been used to create web applications used by many major companies and websites due to its Ruby on Rails framework.

[Video: Ruby programming language full course](https://www.youtube.com/watch?v=t_ispmWmdjY)

[Video: Ruby in one video](https://www.youtube.com/watch?v=Dji9ALCgfpM)

[Website: Codecademy's free Ruby course](https://www.codecademy.com/learn/learn-ruby)

[Website: Refine skills and improve problem solving in Ruby](https://www.codewars.com/?language=ruby)

[Website: Online Ruby interpreter](https://repl.it/languages/ruby)

[Website: Interactive Ruby tutorial](https://www.learnrubyonline.org/)

[Website: Ruby in twenty minutes](https://www.ruby-lang.org/en/documentation/quickstart/)

[Book: Ruby notes for professionals](https://goalkicker.com/RubyBook/RubyNotesForProfessionals.pdf)

## Rust
Rust is an new and incredibly fast language written in 2010 that aims to be very safe and have very few issues when run. It has been used everywhere from fire engines to web browsers like Firefox! It is similar to C++ but improves on many aspects and has a very powerful dependency management system. It is not recommended for beginners due to its more advanced syntax and concepts.

[Video: Rust crash course](https://www.youtube.com/watch?v=zF34dRivLOw)

[Video series: Learn and apply Rust](https://www.youtube.com/watch?v=EYqceb2AnkU&list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW)

[Website: Quick Tour of Rust](https://tourofrust.com)

[Website: Refine skills and improve problem solving in Rust](https://www.codewars.com/?language=rust)

[Website: Online rust compiler](https://repl.it/languages/rust)

[Book: Official Rust book](https://doc.rust-lang.org/book/)

[Book: Rust by example](https://doc.rust-lang.org/stable/rust-by-example/)

## Dart
Dart is another Google language that is primarily used for apps on multiple platforms and can be used to build mobile, desktop, server and web applications. It has C style syntax and has very similar syntax to Javascript. It is mainly used for the Flutter tool for building mobile apps that work on both iOS and Android.

[Video series: Dart tutorials](https://www.youtube.com/watch?v=8F2uemqLwvE&list=PLJbE2Yu2zumDjfrfu8kisK9lQVcpMDDzZ)

[Video: Dart programming full course](https://www.youtube.com/watch?v=Ej_Pcr4uC2Q)

[Video: Learn dart in one video](https://www.youtube.com/watch?v=OLjyCy-7U2U)

[Video: Learn Dart in 30 minutes](https://www.youtube.com/watch?v=0CTj3x6jgeY)

[Website Refine skills and improve problem solving in Dart](https://www.codewars.com/?language=dart)

[Website: Online dart compiler](https://repl.it/languages/dart)

[Website: Dart tutorials](https://dart.dev/tutorials)

[Website: Dart cheatsheet](https://dart.dev/codelabs/dart-cheatsheet)

[Book: PDF Dart cheatsheet](https://koenig-media.raywenderlich.com/uploads/2019/08/RW-Dart-Cheatsheet-1.0.1c.pdf)

## Kotlin
Kotlin is a language designed to interoperate fully with Java. It appears to be the most preferred language of app developers on the Android platform.

[Video series: Kotlin tutorial](https://www.youtube.com/watch?v=GA1WWKP1pnw&list=PLJbE2Yu2zumBGXAvQlpSBauM-elyV_DyU)

[Video: Kotlin course tutorial for beginners](https://www.youtube.com/watch?v=F9UC9DY-vIU)

[Video: Programming fundamentals with Kotlin](https://www.youtube.com/watch?v=AeC4G-H-MQA)

[Video: Learn Kotlin in one video](https://www.youtube.com/watch?v=H_oGi8uuDpA)

[Website: Codecademy's free Kotlin course](https://www.codecademy.com/learn/learn-kotlin)

[Website: Refine skills and improve problem solving in Kotlin](https://www.codewars.com/?language=kotlin)

[Website: Online Kotlin compiler](https://repl.it/languages/kotlin)

[Website: Official Kotlin documentation](https://kotlinlang.org/docs/reference/)

[Book: Kotlin notes for professionals](https://goalkicker.com/KotlinBook/KotlinNotesForProfessionals.pdf)

## Julia
Julia is a language that can be used to write any application but mainly focusses around numerical analysis and computational science. It is very fast and can be used by beginners due to its easy enough syntax.

[Video: Julia complete tutorial in 4 hours](https://www.youtube.com/watch?v=lwj-1mclq0U)

[Video: Learn Julia in one video](https://www.youtube.com/watch?v=sE67bP2PnOo)

[Video: Official intro to Julia tutorial](https://www.youtube.com/watch?v=8h8rQyEpiZA)

[Website: Refine skills and improve problem solving in Julia](https://www.codewars.com/?language=julia)

[Website: Introduction to julia](https://juliaacademy.com/p/intro-to-julia)

[Website: Online Julia compiler](https://repl.it/languages/julia)

## Lua
Lua is a language designed primarily for embedded use in applications. It was originally designed in 1993 as a language for extending software applications to meet the incerasing demand for customization.

[Video: Learn Lua in one video](https://www.youtube.com/watch?v=iMacxZQMPXs)

[Video: Learn Lua in an Hour](https://www.youtube.com/watch?v=S4eNl1rA1Ns)

[Website: Refine skills and improve problem solving in Lua](https://www.codewars.com/?language=lua)

[Website: Online Lua interpreter](https://repl.it/languages/lua)

[Website: Programming in Lua (first edition)](https://www.lua.org/pil/contents.html)

## Haskell
Haskell is a general purpose language that is known for being purely functional and is suitable for teaching, research and industrial application.

[Video series: Learn you a Haskell](https://www.youtube.com/watch?v=ZyPfyYmYo6g&list=PLwiOlW12BuPZUxA2gISnWV32mp26gNq56)

[Video: Learn haskell in one video](https://www.youtube.com/watch?v=02_H3LjqMr8)

[Website: Refine skills and improve problem solving in Haskell](https://www.codewars.com/?language=haskell)

[Website: Online Haskell interpreter](https://repl.it/languages/haskell)

[Website: Learn you a haskell](http://learnyouahaskell.com/chapters)

[Book: Haskell notes for professionals](https://goalkicker.com/HaskellBook/HaskellNotesForProfessionals.pdf)

## Typescript
Typescript is a language developed by Microsoft and is a strict syntactical superset of Javascript and adds static typing to the language. It is designed for the development of large applications and transcompiles to javascript. It is advised that you learn Javascript before Typescript but Typescript is becoming more used so you can always move onto it in the future.

[Video: Typescript crash course](https://www.youtube.com/watch?v=rAy_3SIqT-E)

[Video: Typescript in 1 hour](https://www.youtube.com/watch?v=NjN00cM18Z4)

[Video: Learn typescript from scratch](https://www.youtube.com/watch?v=BwuLxPH8IDs)

[Website: Refine skills and improve problem solving in Typescript](https://www.codewars.com/?language=typescript)

[Website: Online Typescript transcompiler](https://repl.it/languages/typescript)

[Website: Official Typescript documentation](https://www.typescriptlang.org/docs/home.html)

[Book: Typescript notes for professionals](https://goalkicker.com/TypeScriptBook2/TypeScriptNotesForProfessionals.pdf)

## Crystal
Crystal is a language that is designed to be incredibly fast while having similar syntax to Ruby. It is good for those who want to make very fast programs without needing to learn more difficult languages like C and Rust.

[Video: Learn Crystal in one video](https://www.youtube.com/watch?v=DxFP-Wjqtsc)

[Video series: Crystal lang tutorials](https://www.youtube.com/watch?v=KGlHq6ljP8E&list=PL_ZUs2eBjBiv-L32YQ0zN9XoIBfAsDCnB)

[Website: Refine skills and improve problem solving in Crystal](https://www.codewars.com/?language=crystal)

[Website: Online Crystal compiler](https://repl.it/languages/crystal)

[Book: Official Crystal book](https://crystal-lang.org/reference/getting_started/)

## ReasonML
ReasonML is a language that lets you write simple, fast and type safe code. It integrates well with javascript and allows use of packages from their ecosystems. It allows you to make websites, animations, games, servers and cli tools.

[Video series: ReasonML tutorial](https://www.youtube.com/watch?v=KOSjVDKmwFw&list=PLJbE2Yu2zumA3P2_0t3zqBECe9Tj6BKyV)

[Video series: Learn ReasonML](https://www.youtube.com/watch?v=3PjPGEoSYFA&list=PLyKUGeeCAzPeZIJ2ESs35DaMjfWH2YZ1c)

[Video: ReasonML full course for beginners](https://www.youtube.com/watch?v=sjWsAYJF8BA)

[Website: Refine skills and improve problem solving in ReasonML](https://www.codewars.com/?language=reason)

[Website: Online ReasonML compiler](https://repl.it/languages/reason)

[Website: Learning ReasonML](https://lucasmreis.github.io/blog/learning-reasonml-part-1/)

## Nim
Nim is an efficient, expressive and elegant language that is very similar to languages like Python while being faster and providing features that lower level languages have. It is great as a stepping stone for going from python or ruby to rust or C++.

[Video series: Nim Programming Language (english)](https://www.youtube.com/watch?v=WugYWc_IEWs&list=PLXIivpcMlfwAevvA4IvLIiYOujqSuyyKY)

[Video series: Nim tutorial](https://www.youtube.com/watch?v=Iro4l0bMBb4&list=PLgiE9waqUrgW33khJnzk53UZhCJDhCPt9)

[Website: Refine skills and improve problem solving in Nim](https://www.codewars.com/?language=nim)

[Website: Online Nim compiler](https://repl.it/languages/nim)

[Book: Nim basics](https://narimiran.github.io/nim-basics/)

[Book: Official Nim Resources](https://nim-lang.org/learn.html)

## Elixir
Elixir is a dynamic and functional language designed for beilding scalable and maintainable applications. It is designed to be fast. It can be used for web development, embedded software, data and multimedia processing.

[Video series: Elixir](https://www.youtube.com/watch?v=R8CeZazrDHo&list=PLJbE2Yu2zumAgKjSPyFtvYjP5LqgzafQq)

[Video series: From zero to hero in Elixir](https://www.youtube.com/watch?v=Jydr6UUYs2U&list=PLaY7qWIrmqtFoZLvOvYRZG5hl367UybRp)

[Video: Learn Elixir in one video](https://www.youtube.com/watch?v=pBNOavRoNL0)

[Website: Refine skills and improve problem solving in Elixir](https://www.codewars.com/?language=elixir)

[Website: Online Elixir compiler](https://repl.it/languages/elixir)

[Website: Interactive Elixir tutorial](https://learn-elixir.com/)

## Brainfuck
Brainfuck is a fun and esoteric language that involves using a very minimal amount of characters. It looks very hard at first but at its core, its very simple.

[Video: How Brainfuck works](https://www.youtube.com/watch?v=-3C200nCwpk)

[Video: Hello world in Brainfuck](https://www.youtube.com/watch?v=0nY80P5QFgo)

[Video: AI in Brainfuck](https://www.youtube.com/watch?v=qK0vmuQib8Y)

[Video: Brainfuck programming tutorial](https://www.youtube.com/watch?v=G-tuXeMyb58)

[Video: Complete Brainfuck tutorial](https://www.youtube.com/watch?v=7C4KOv3mLHc)

[Website: Online Brainfuck compiler](https://repl.it/languages/brainfuck)

[Website: Visual brainfuck](https://fatiherikli.github.io/brainfuck-visualizer/)

# General computer science
It is usually a good idea to get to grips with the basics of computer science as it will really help in the way you program and also has skills that you can apply to your programming and will aid you in learning every language!

### Basics of programming

[Video: Introduction to programming](https://www.youtube.com/watch?v=zOjov-2OZ0E)

[Book: Algorithms notes for prefossionals](https://goalkicker.com/AlgorithmsBook/AlgorithmsNotesForProfessionals.pdf)

### Data structures

[Video series: Data structures and algorithms in Javascript](https://www.youtube.com/watch?v=Gj5qBheGOEo&list=PLWKjhJtqVAbkso-IbgiiP48n-O-JQA9PJ)

[Video: Data structures easy to advanced course](https://www.youtube.com/watch?v=RBSGKlAvoiM)

[Video: Data structures and algorithms in Javascript](https://www.youtube.com/watch?v=t2CEgPsws3U)

### Terminology

[Video: Computer science terminology](https://www.youtube.com/watch?v=LtoBGQPuu1c)

### Graph theory

[Video: Graph theory tutorial from a google employee](https://www.youtube.com/watch?v=09_LlHjoEiY)

### Mathematics for programmers

[Video: Maths for programmers](https://www.youtube.com/watch?v=2SpuBqvNjHI)

[Video: Statistics - A full university course on data science basics in 8 hours](https://www.youtube.com/watch?v=xxpc-HPKN28)

[Video: Big-O notation](https://www.youtube.com/watch?v=Ee0HzlnIYWQ)

# Web development
Web development is arguably one of the most popular and highly paid part of the industry, here are some of the tools that you can use to create your own applications or apply them at a job. The main languages used in Web development are HTML, CSS, Javascript, PHP, Ruby, Python and Java. Make sure you know the corresponding language before starting on a framework!

## Sass
Sass is a popular CSS preprocessor which adds more features and allows better customisation and control of website styling.

[Video: Sass in 2 hours](https://www.youtube.com/watch?v=_a5j7KoflTs)

[Video: Sass crash course](https://www.youtube.com/watch?v=roywYSEPSvc)

[Video: Sass in 20 minutes](https://www.youtube.com/watch?v=Zz6eOVaaelI)

[Book: The official Sass guide](https://sass-lang.com/guide)

## Bootstrap
Bootstrap is a popular CSS framework that allows very quick and easy styling of websites. It makes it very easy to scale down your website from desktop to mobile while still being readable.

[Video: Learn Bootstrap by building a custom theme](https://www.youtube.com/watch?v=RyTRgQ7k6QE)

[Video: Bootstrap 4 crash course](https://www.youtube.com/watch?v=hnCmSXCZEpU)

[Website: Official Bootstrap tutorial](https://getbootstrap.com/docs/4.4/getting-started/introduction/)

[Website: W3Schools Bootstrap tutorial](https://www.w3schools.com/bootstrap4/)

## Bulma
Bulma is an alternative to frameworks like Bootstrap, it makes it easy to style your website and make it responsive meaning that it can collapse down to smaller screens.

[Video: Bulma crash course](https://www.youtube.com/watch?v=IiPQYQT2-wg)

[Website: Bulma official documentation](https://bulma.io/documentation/)

[Website: Bulma in 5 minutes](https://www.freecodecamp.org/news/learn-bulma-in-5-minutes-ec5188c53e83/)

## React.js
React.js is the most popular front-end framework that can be used to build applications out of reusable and modular components. It makes creating web apps and websites in general easier.

[Video: React JS full course for beginners](https://www.youtube.com/watch?v=DLX62G4lc44)

[Video: React hooks tutorial](https://www.youtube.com/watch?v=iVRO0toVdYM)

[Video: React beginners tutorial build an autocomplete text box](https://www.youtube.com/watch?v=NnpISZANByg)

[Video: Build an e-commerce website from scratch](https://www.youtube.com/watch?v=wPQ1-33teR4)

[Video: Build a chat application using React and Redux](https://www.youtube.com/watch?v=x_fHXt9V3zQ)

[Video: React weather app](https://www.youtube.com/watch?v=cdBvSlVCOXw)

[Video: APIs in React recipie app](https://www.youtube.com/watch?v=tvfeBLMA_Q4)

[Video: Full Stack React & Firebase tutorial](https://www.youtube.com/watch?v=m_u6P5k0vP0)

[Video: React & Firebase evernote clone](https://www.youtube.com/watch?v=I250xdtUvy8)

[Video: Todoist clone with Firebase, Hooks, Scss and testing](https://www.youtube.com/watch?v=hT3j87FMR6M)

[Videos: Typescript and React tutorial quiz app](https://www.youtube.com/watch?v=F2JCjVSZlG0)

[Video: Build a recipie app with React](https://www.youtube.com/watch?v=U9T6YkEDkMo)

[Book: React JS notes for professionals](https://goalkicker.com/ReactJSBook/ReactJSNotesForProfessionals.pdf)

## Asp.net core
Asp.net is an open source web framework for creating web applications.

[Video: ASP.NET Full course for beginners](https://www.youtube.com/watch?v=C5cnZ-gZy2I)

[Website: Codecademy's free ReactJS course](https://www.codecademy.com/learn/react-101)

[Book: .NET framework notes for professionals](https://goalkicker.com/DotNETFrameworkBook/DotNETFrameworkNotesForProfessionals.pdf)

## Ruby on Rails
Ruby on Rail is a server-side application framework written in Ruby. It emerged in 2005 and greatly influenced web app development.

[Video: Ruby on Rails in 1 hour](https://www.youtube.com/watch?v=pPy0GQJLZUM)

[Video series: Ruby on Rails from scratch](https://www.youtube.com/watch?v=exEduZlJS7Q&list=PLDmvslp_VR0xlwr5lAx2PDsZLu7oIOhpX)

[Video: Build your first Rails app - blog with comments](https://www.youtube.com/watch?v=wbZ6yrVxScM)

[Video: Build a real estate platform in Ruby on Rails](https://www.youtube.com/watch?v=qvGGz-2WHpU)

[Video: Build an instagram clone in Ruby on Rails](https://www.youtube.com/watch?v=dqjF3C9A-Yg)

[Book: Ruby on Rails notes for professionals](https://goalkicker.com/RubyOnRailsBook/RubyOnRailsNotesForProfessionals.pdf)

## Angular
Angular is a TypeScript based web application framework built by a team at Google. It is not to be confused with "AngularJS" which was the original framework written by Google however it was entirely rewritten and is now just "Angular" or "Angular 2+"

[Video: Full Angular tutorial in 6 hours](https://www.youtube.com/watch?v=2OHbjep_WjQ)

[Video: Angular crash course](https://www.youtube.com/watch?v=Fdf5aTYRW0E)

[Video: Angular 8 from scratch](https://www.youtube.com/watch?v=_TLhUCjY9iA)

[Video: Angular and Spring Boot - Build a reddit clone](https://www.youtube.com/watch?v=DKlTBBuc32c)

[Video: Build a budget calculator in Angular](https://www.youtube.com/watch?v=sU4z4Ti-8OQ)

[Video: Build a todo list app in 30 minutes](https://www.youtube.com/watch?v=jNCzuSryJHE)

[Book: Angular 2+ Notes for professionals](https://goalkicker.com/Angular2Book/Angular2NotesForProfessionals.pdf)

## Vue.js
Vue.js is an community maintained javascript framework similar to React and Angular that allow you to build a web application.

[Video: VueJS full tutorial](https://www.youtube.com/watch?v=4deVCNJq3qc)

[Video: VueJS crash course](https://www.youtube.com/watch?v=Wy9q22isx3U)

[Video: Build a weather app in VueJS](https://www.youtube.com/watch?v=JLc-hWsPTUY)

[Video: Build a music app in VueJS](https://www.youtube.com/watch?v=BPyniDJ5QOQ)

[Video: Build a calculator in VueJS](https://www.youtube.com/watch?v=m1_ih43p24s)

[Video: Build a todo app with VueJS](https://www.youtube.com/watch?v=A5S23KS_-bU)

## Django
Django is a python-based web framework for creating web applications, similar to Ruby on Rails. It is used by many companies and there are plenty of jobs in it.

[Video: Django full tutorial](https://www.youtube.com/watch?v=F5mRW0jo-U4)

[Video: Django crash course](https://www.youtube.com/watch?v=e1IyzVyrLSU)

[Video: Build a e-commerce app in Django](https://www.youtube.com/watch?v=YZvRrldjf1Y)

[Video: Django user authentucation](https://www.youtube.com/watch?v=tUqUdu0Sjyc)

[Video: Create a todo app in Django](https://www.youtube.com/watch?v=f1R_bykXHGE)

## Laravel
Laravel is a PHP web framework for creating web applications.

[Video: Laravel in 4 hours](https://www.youtube.com/watch?v=ImtZ5yENzgE)

[Video series: Laravel from scratch](https://www.youtube.com/watch?v=EU7PRmCpx-0&list=PLillGF-RfqbYhQsN5WMXy6VsDMKGadrJ-)

[Video series: Laravel E-Commerce website](https://www.youtube.com/watch?v=o5PWIuDTgxg&list=PLEhEHUEU3x5oPTli631ZX9cxl6cU_sDaR)

[Video: Laravel student management system](https://www.youtube.com/watch?v=5fTFHAwWRV4)

## Spring boot
Spring boot is a Java web framework for building websites.

[Video: Spring Boot tutorial for beginners](https://www.youtube.com/watch?v=vtPkZShrvXQ)

[Video: Spring boot in 50 minutes](https://www.youtube.com/watch?v=Ke7Tr4RgRTs)

[Video: Spring Boot and Angular reddit clone](https://www.youtube.com/watch?v=DKlTBBuc32c)

[Video series: Building a block using Spring Boot and Angular](https://www.youtube.com/watch?v=YqEDASVUEPc&list=PLSVW22jAG8pCwwM3tjSMfwBKYIS6_fP-F)

[Video: Spring boot MVC E-commerce website](https://www.youtube.com/watch?v=hwSB50DqMkc&list=PL2UwEEhB4YafpL-nXPn8rwkNC3pASLpit)

[Book: Spring framework notes for professionals](https://goalkicker.com/SpringFrameworkBook/SpringFrameworkNotesForProfessionals.pdf)

## Express
Express is a node.js web framework for creating robust APIs.

[Video: ExpressJS crash course](https://www.youtube.com/watch?v=L72fhGm1tfE&t=137s)

[Video: Expressjs & Nodejs course for beginners](https://www.youtube.com/watch?v=JlgKybraoy4)

## Flask
Flask is a python web framework for building web applications.

[Video: Learn flask for python](https://www.youtube.com/watch?v=Z1RJmh_OqeA)

[Video Series: Flask Tutorials - How to make websites with Python](https://www.youtube.com/watch?v=mqhxxeeTbu0&list=PLzMcBGfZo4-n4vJJybUVV3Un_NFS5EOgX)

[Video: Build a social network in flask](https://www.youtube.com/watch?v=-FWuNnCe73g)

## Symfony
Symfony is a PHP web framework and a set of reusable PHP components and libraries.

[Video: Symfony in 3 hours](https://www.youtube.com/watch?v=Bo0guUbL5uo)

[Video: Blog in symfony](https://www.youtube.com/watch?v=WCRjbmhAXpE&list=PLxytbXx3I1x9OPHkSc2QFpfybbTAqyfGK)

## Svelte
Svelte is a javascript framework that generates code to manipulate the DOM and creates fast web apps.

[Video: Learn Svelte in 7 hours full course](https://www.youtube.com/watch?v=ujbE0mzX-CU)

[Video: Svelte.js crash course](https://www.youtube.com/watch?v=uK2RnIzrQ0M)

[Video: Learn svelte in 1 hour](https://www.youtube.com/watch?v=vhGiGqZ78Rs)

[Video: Svelte budget calculator app](https://www.youtube.com/watch?v=uk1eM0Yn0UQ)

[Video: Dad jokes website and API with Svelte.js](https://www.youtube.com/watch?v=WhxwIE66YaU)

[Video: Svelte habit app](https://www.youtube.com/watch?v=U5Eb8zBhO1c)

[Video: Gif search app with svelte](https://www.youtube.com/watch?v=13L02Co52Dc)

[Video: Svelte app in 3 minutes and 15 lines of code](https://www.youtube.com/watch?v=1zWEAluGy9k)

## Gatsby.js
Gatsby is a javascript framework based on React.js and helps to deliver very fast static websites and apps.

[Video: Gatsby in 5 hours](https://www.youtube.com/watch?v=kzWIUX3CpuI)

[Video: Gatsby.js crash course](https://www.youtube.com/watch?v=6YhqQ2ZW1sc)

[Video series: Portfolio website from scratch in Gatsby.js](https://www.youtube.com/watch?v=MRaWzdXE8so&list=PLgcPxVODYXGLe7dherj91PRA0MyBvWswN)

[Video: Gatsby coffee shop website](https://www.youtube.com/watch?v=oAVhEPey_qA)

## jQuery
jQuery is a javascript library that aims to simplify HTML DOM tree traversal and manipulation as well as event handling and animation. It is great for people who just want to build a website without ReactJS or other heavy javascript frameworks. It is really simple to learn and can improve productivity.

[Video: jQuery full course](https://www.youtube.com/watch?v=ScoURsEM_yU)

[Video: jQuery in 6 minutes](https://www.youtube.com/watch?v=JjIvF0yikGU)

[Video: jQuery animated skills bars](https://www.youtube.com/watch?v=xHuWmgV4O9Y)

[Video: Build a jQuery calculator](https://www.youtube.com/watch?v=oYJhGivHPPo)

[Website: jQuery tutorial](https://www.w3schools.com/jquery/)

[Book: jQuery notes for professionals](https://goalkicker.com/jQueryBook/jQueryNotesForProfessionals.pdf)

## Deno
Deno is an alternative runtime for Javascript that can be used on the client and server side.

[Video: Deno crash course](https://www.youtube.com/watch?v=NHHhiqwcfRM)

[Video: Deno in 6 hours](https://www.youtube.com/watch?v=TQUy8ENesGY)

[Video: Deno chat applications](https://www.youtube.com/watch?v=XWyUtYL6ynE)

## Node.js
Node.js is a highly popular runtime that allows execution of javascript programs on the client and server side.

[Video: Learn NodeJS in 3 hours](https://www.youtube.com/watch?v=RLtyhwFtXQA)

[Video: Learn NodeJS in 1 hour](https://www.youtube.com/watch?v=TlB_eWDSMt4)

[Video: NodeJS crash course](https://www.youtube.com/watch?v=fBNz5xF-Kx4)

[Book: Node.js notes for professionals](https://goalkicker.com/NodeJSBook/NodeJSNotesForProfessionals.pdf)

## Redux
Redux is a state container for javascript applications.

[Video: Redux in 5 minutes](https://www.youtube.com/watch?v=oD3miHerQbY)

[Video: Redux crash course](https://www.youtube.com/watch?v=93p3LxR9xfM)

[Video: Learn Redux from scratch](https://www.youtube.com/watch?v=poQXNp9ItL4)

## WebPack
Webpack is a module bundler for javascript. It can be used to bundle Javascript ready for use in a browser.

[Video: Webpack crash course](https://www.youtube.com/watch?v=lziuNMk_8eQ)

[Video: Webpack 4 for beginners](https://www.youtube.com/watch?v=TzdEpgONurw)

[Video: Webpack full tutorial in 2 hours](https://www.youtube.com/watch?v=MpGLUVbqoYQ)

## D3.js
D3.js is an extremely powerful data visualisation library for javascript. Use it to add interactive graphs and other cool data visualisations in your website.

[Video: Data visualisation with D3.js in 13 hours](https://www.youtube.com/watch?v=_8V5o2UHG0E)

[Video: D3.js in 30 minutes](https://www.youtube.com/watch?v=C4t6qfHZ6Tw)

# Machine learning
Machine learning a is a relatively new field and is also very popular. You can build all kinds of cool things from a chat bot to a program that identifies cats from dogs. Here are some tutorials and frameworks that will aid you in creating your dream program.

### General machine learning
Learn the basic concepts of machine learning.

[Video: How deep neural networks work](https://www.youtube.com/watch?v=dPWYUELwIdM)

[Video: Reinforcement learning course](https://www.youtube.com/watch?v=ELE2_Mftqoc)

[Video: Natural language processing tutorial](https://www.youtube.com/watch?v=X2vAabgKiuM)

[Video: Connect 4 API in Python](https://www.youtube.com/watch?v=8392NJjj8s0)

[Video: Theory of neural networks - deep learning without frameworks](https://www.youtube.com/watch?v=u7n9t1cBei8)

[Video: Deep reinforcement learning in Python](https://www.youtube.com/watch?v=GJJc1t0rtSU)

[Video: beat asteroids game using a neural network](https://www.youtube.com/watch?v=2cGHkBeGpeU)

[Video: Neural networks with Javascript](https://www.youtube.com/watch?v=6E6XecoTRVo)

[Video series: Machine Learning with Python](https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v)

### Tensorflow
Learn Google's tensorflow to aid with machine learning projects.

[Video: Tensorflow 2.0 in 7 hours](https://www.youtube.com/watch?v=tPYj3fFJGjk)

[Video: Learn Tensorflow.js](https://www.youtube.com/watch?v=EoYfa6mYOG4)

[Video: Tensorflow 2.0 crash course](https://www.youtube.com/watch?v=6g4O5UOH304)

[Video: Natural language processing with TensorFlow](https://www.youtube.com/watch?v=B2q5cRJvqI8)

### Scikit-learn
A brilliant machine learning library for Python.

[Video: Scikit-Learn course](https://www.youtube.com/watch?v=pqNCD_5r0IU)

[Video series: Sklearn tutorials](https://www.youtube.com/watch?v=Lfz1qheTXOE&list=PLoY9f-5DCBln7ZsL4n9tFgGS0BXz5gXXR)

### Keras
Write neural networks in python.

[Video series: Deep learning with Python, TensorFlow and Keras](https://www.youtube.com/watch?v=wQ8BIBpya2k&list=PLQVvvaa0QuDfhTox0AjmQ6tvTgMBZBEXNk)

### Pytorch
Facebook's deep learning library used for applications such as computer vision and natural language processing.

[Video: PyTorch for deep learning full course](https://www.youtube.com/watch?v=GIsg-ZUy0MY)

[Video series: Deep Lenaring with PyTorch live course](https://www.youtube.com/watch?v=vo_fUOk-IKk&list=PLWKjhJtqVAbm3T2Eq1_KgloC7ogdXxdRa)

[Video: Applied deep learning with PyTorch](https://www.youtube.com/watch?v=CNuI8OWsppg)

### Numpy
Manage statistics and numbers in Numpy for Python.

[Video: NumPy tutorial for beginners](https://www.youtube.com/watch?v=QUT1VHiLmmI)

[Video: Numpy in 5 minutes](https://www.youtube.com/watch?v=xECXZ3tyONo)

[Video: Complete NumPy tutorial](https://www.youtube.com/watch?v=GB9ByFAIAH4)

[Video: Data analysis with Python - Full course in Numpy, Pandas, Matplotlib and Seaborn](https://www.youtube.com/watch?v=r-uOLxNrNk8)

[Video: Python for data science from scratch](https://www.youtube.com/watch?v=LHBE6Q9XlzI)

# Game programming
Arguably what brings a lot of recreational programmers to programming is the idea of creating their very own game! Luckily, most of the hard work has been done already and almost anybody can create a game, both 3d and 2d! Here are some engines and libraries to help you build a game!

## Unity
Unity is a game engine developed that can be used to build 3d and 2d games and can be deployed to mobile, desktop, VR and the web.

[Video: Unity FPS Survival game tutorial - first person shooter](https://www.youtube.com/watch?v=Sqb-Ue7wpsI)

[Video: Unity Beat Em Up fight game](https://www.youtube.com/watch?v=gcF66q-UPCs)

[Video: Unity for beginners - Brick breaker game](https://www.youtube.com/watch?v=NWG8vO02oj4)

[Video: Unity game dev - Infinite runner](https://www.youtube.com/watch?v=gE9bjYpUrNY)

[Video: Unity hyper casual game](https://www.youtube.com/watch?v=kRGQJqHHwXA)

[Video: 3D snake game in unity](https://www.youtube.com/watch?v=8ztq9fQT6Kc)

## Unreal engine
Unreal Engine is a game engine developed by Epic Games and is the most advanced real-time 3d game engine.

[Video: Learn Unreal Engine with C++ full course for beginners](https://www.youtube.com/watch?v=LsNW4FPHuZE)

[Video: 2.5D platformer in Unreal engine](https://www.youtube.com/watch?v=9Fd9hw329fY)

[Video: Learn Unreal Engine C++ in 1 hour](https://www.youtube.com/watch?v=nVm-DYdAsts)

## Godot
Godot is a 2D and 3D cross platform game engine. It was initially developed for compaines in Latin America but can now create games for PC, mobile and web platforms.

[Video: Godot game engine tutorial - 2D platformer game](https://www.youtube.com/watch?v=fQXKjmCDkIA)

[Video: Learn godot in 50 minutes](https://www.youtube.com/watch?v=QftpPI5iYrY)

[Video series: Creating a simple 3D game in godot](https://www.youtube.com/watch?v=VeCrE-ge8xM&list=PLda3VoSoc_TSBBOBYwcmlamF1UrjVtccZ)

[Video: Creating 3D levels in godot](https://www.youtube.com/watch?v=49awsu1VJbo)

[Video: Making an Action RPG in Godot](https://www.youtube.com/watch?v=mAbG8Oi-SvQ)

## Pygame
Pygame is a very simple library in Python for creating 2D games, it is the best place to start as a game developer and can be used to make very interactive and usable games.

[Video: Learn pygame in 2 hours](https://www.youtube.com/watch?v=FfWpgLFMI7w&t=3s)

[Video: Learn Python by building 5 games](https://www.youtube.com/watch?v=XGf2GcyHPhc)

[Video: Build tetris with Pygame](https://www.youtube.com/watch?v=zfvxp7PgQ6c)

[Video: Pygame snake tutorial](https://www.youtube.com/watch?v=CD4qAhfFuLo)

[Video: Online multiplayer game development](https://www.youtube.com/watch?v=McoDjOCb2Zo)

[Video: Connect four in pygame](https://www.youtube.com/watch?v=XpYz-q1lxu8)

[Video: Python Pong tutorial](https://www.youtube.com/watch?v=C6jJg9Zan7w)

## Phaser / Vanilla Javascript
Phaser is similar to Pygame and can be used to create 2D games that run in a website using Javascript.

[Video: Create a platformer game](https://www.youtube.com/watch?v=w-OKdSHRlfA)

[Video: Learn Javascript by coding Tetris](https://www.youtube.com/watch?v=rAUn1Lom6dw)

[Video: How to make a phaserJS game in 10 minutes](https://www.youtube.com/watch?v=88DS3Z8nOdY)

[Website: Codecademy's free PhaserJS course](https://www.codecademy.com/learn/learn-phaser)

## Piston / Amethyst
Piston is similar to Pygame however it is for Rust and is considerably faster. You can use Piston and Amethyst to make very good games and is great if you want to write games that are perhaps a bit more professional. You can make both 3D and 2D games with them however it is not as powerful as an engine such as Unreal, Unity or Godot.

[Video: Pong game in piston](https://www.youtube.com/watch?v=-JIlCYbpNnI)

[Video: Lava lamp in piston](https://www.youtube.com/watch?v=6erSNPToziw)

[Video: Pistonics games programming in Rust](https://www.youtube.com/playlist?list=PLMHbQxe1e9MlsYw7WIQmqJusZbCkMl6dd)

[Book: Creating Pong in Amethyst](https://book.amethyst.rs/stable/pong-tutorial.html)

[Book: Amethyst tutorial](https://book.amethyst.rs/stable/)

# Mobile development
Mobile phones are everywhere and the majority of people on planet earth use them. Many companies have apps, many independent organisations have apps and it has become a critical and important industry to be involved in.

## Flutter
Flutter is an incredibly useful platform to build both Android and iOS apps that run quickly. It was written by Google and uses Dart, a language with syntax similar to Javascript. Flutter is an alterantive to writing different applications for different platforms.

[Video series: Flutter for beginners](https://www.youtube.com/watch?v=1ukSR1GRtMU&list=PL4cUxeGkcC9jLYyp2Aoh6hcWuxFDX6PBJ)

[Video series: Flutter tutorials](https://www.youtube.com/watch?v=b2fgMCeSNpY&list=PLJbE2Yu2zumDqr_-hqpAN0nIr6m14TAsd)

[Video series: Flutter crash course](https://www.youtube.com/watch?v=1gDhl4leEzA)

[Video: Flutter in 2 hours](https://www.youtube.com/watch?v=pTJJsmejUOQ&t=230s)

## Android
Using Android Studio and Java or Kotlin to create native Android apps is perhaps the de-facto way of doing it however you can't write apps for iOS using this.

[Video: Comprehensive android app development](https://www.youtube.com/watch?v=fis26HvvDII)

[Video: Android full course in 9 hours](https://www.youtube.com/watch?v=aS__9RbCyHg)

[Video: Android development with Kotlin](https://www.youtube.com/watch?v=Iz08OTTjR04)

[Video: Build a WhatsApp clone](https://www.youtube.com/watch?v=988UZFB0heA)

## Ionic
Ionic is a framework that allows the creation of applications on both Android and iOS. It uses Javascript. You can optionally use React, Angular or Vue for your mobile applications too.

[Video: Ionic full tutorialin 3 hours](https://www.youtube.com/watch?v=AvbuIRg8_Jg)

## React native
React native is a mobile application framework that can be used to develop apps that run on both Android and iOS using Javascript.

[Video: React native tutorial for beginners](https://www.youtube.com/watch?v=0-S5a0eXPoc)

[Video: React native crash course](https://www.youtube.com/watch?v=Hf4MJH0jDb4)

[Video series: React native tutorial for beginners](https://www.youtube.com/watch?v=ur6I5m2nTvk&list=PL4cUxeGkcC9ixPU-QkScoRBVxtPPzVjrQ)

## iOS
If you plan to write your applications purely for iOS, you can use xcode and swift to write them. However, you will need an Apple device in order to develop for the iPhone, if you don't have an Apple device and still want to build applications for this platform then try using alternative frameworks in this list.

[Video: Your first iOS app](https://www.youtube.com/watch?v=09TeUXjzpKs)

[Video: iOS app development tutorial](https://www.youtube.com/watch?v=bUQz9ZWjsvc)

# Desktop applications
Desktop applications are applications that the user can download and run on their computer. It can be anything from a file manager to a music player, its up to you! Here are a few different frameworks with varying difficulty that allow you to build your very own desktop application that you can show off to your friends and family!

## Qt
Qt is a widget toolkit for creating graphical user interfaces and cross-platform applications that run on various platforms. It allows the developer to write native application with native capabilities and performance which many other frameworks do not offer.

[Video: Qt and C++ Tutorial, make a notepad app](https://www.youtube.com/watch?v=I96uPDifZ1w)

[Video series: Qt and C++ GUI tutorial](https://www.youtube.com/watch?v=8opfd5aYkq8&list=PLS1QulWo1RIZjrD_OLju84cUaUlLRe5jQ)

[Video series: Python and PyQt5 tutorial](https://www.youtube.com/watch?v=Vde5SH8e1OQ&list=PLzMcBGfZo4-lB8MZfHPLTEHO9zJDDLpYj)

[Video series: PyQt5 tutorial for application development](https://www.youtube.com/watch?v=GQoadIcFj7Y&list=PL7PrmaVL3_5fwmJJf00EDqHyn17bhu7AE)

## GTK
GTK is a framework that is similar to Qt and provides native performance and capabilities. It is entirely free to use and one of the most popular frameworks for building applications on Linux.

[Video: GTK+ Tutorials](https://www.youtube.com/watch?v=6dstft52Rbs&list=PL6A4216D6C8E00CFC)

[Video series: Python GUI with GTK+ 3](https://www.youtube.com/watch?v=0O11oEp7QYw&list=PL6gx4Cwl9DGBBnHFDEANbv9q8T4CONGZE)

[Video series: GTK 3 with C and Glade](https://www.youtube.com/watch?v=tcUvJIiw6fI&list=PLaybP4QvyRH1obigtMQwhB2DWhPKg32_T)

## ElectronJS
ElectronJS is a platform that allows HTML, CSS and Javascript code to be run on the desktop, allowing access to the file system. Despite being infamous for producing very slow and resource heavy applications, it is one of the most popular ways to get web technologies on the desktop.

[Video series: ElectronJS tutorials](https://www.youtube.com/watch?v=tqBi_Tou6wQ&list=PLC3y8-rFHvwiCJD3WrAFUrIMkGVDE0uqW)

[Video: Build an electron app in under 1 hour](https://www.youtube.com/watch?v=kN1Czs0m1SU)

[Video: An intro to electron ](https://www.youtube.com/watch?v=mr9Mtm_TRpw)

[Video series: Electron Tutorials](https://www.youtube.com/watch?v=SetziJyL8Yg&list=PLYxzS__5yYQmocPoLUiEAfD1cJNjhdQar)

## Tkinter
Tkinter is arguably the simplest framework and a brilliant place to start developing desktop applications. Tkinter is for Python a beginner can add a front end to their Python projects with ease.

[Video: Learn Tkinter in 20 minutes](https://www.youtube.com/watch?v=_lSNIrR1nZU)

[Video: Tkinter in 5 hours](https://www.youtube.com/watch?v=YXPyB4XeYLA)

[Video: How to program a GUI application](https://www.youtube.com/watch?v=D8-snVfekto)

[Video: Build 2048 in 20 minutes](https://www.youtube.com/watch?v=b4XP2IcI-Bg)

# Code management
Code management is vital in every area of the industry. It is expected if you are working in a programming job that you at least know Git. Not to worry, there are plenty of cool tutorials and guides and websites to aid you in your journey to allow yourself to be employed, work with other programmers and contribute to some of your favourite software!

## Docker
Docker is a way to distribute software in containers which are isolated from one another and have their own software, libraries and configuration files. They are great for setting up a testing environment or for isolating different instances such as development and staging.

[Video: Full Docker course in 2 hours](https://www.youtube.com/watch?v=fqMOX6JJhGo)

[Video: Learn Docker in 1 hour](https://www.youtube.com/watch?v=i7ABlHngi1Q)

[Video: Docker on Raspberry Pi 4](https://www.youtube.com/watch?v=nBwJm0onzeo)

[Video: What is Docker and how to use it to save money](https://www.youtube.com/watch?v=IbUXb4pQbPY)

## Git
Git is a version control system (VCS) that allows the programmer to keep track of his work when updating it. It provides statistics and allows the programmer to easily rollback in case of any issues. It also allows other developers to work on the project at the same time. The majority of software uses Git and it is a vital skill.

[Video: Git & Github crash course](https://www.youtube.com/watch?v=SWYqp7iY_Tc)

[Video: Learn git in 15 minutes](https://www.youtube.com/watch?v=USjZcfj8yxE)

[Video: Git It? How to use Git and Github](https://www.youtube.com/watch?v=HkdAHXoRtos)

[Video: Git and Github for beginners](https://www.youtube.com/watch?v=RGOj5yH7evk)

[Video: Git explained in 100 seconds](https://www.youtube.com/watch?v=hwP7WQkmECE)

[Book: Git notes for professionals](https://goalkicker.com/GitBook/GitNotesForProfessionals.pdf)

## AWS
AWS or Amazon Web Services is an Amazon subsidiary that provides cloud computing platforms and APIs to businesses, individuals and governments. They are great for hosting and running applications without needing to worry about maintainence, security and efficiency of hardware.

[Video: What is AWS?](https://www.youtube.com/watch?v=a9__D53WsUs)

[Video: Getting started with AWS](https://www.youtube.com/watch?v=ubCNZRNjhyo)

[Video: AWS tutorial in 10 minutes](https://www.youtube.com/watch?v=r4YIdn2eTm4)

[Video: AWS cloud practitioner training](https://www.youtube.com/watch?v=3hLmDS179YE)

[Video: AWS developer Associate training](https://www.youtube.com/watch?v=RrKRN9zRBWs)

[Video: AWS solutions architect](https://www.youtube.com/watch?v=Ia-UEYYR44s)

[Video: Complete Terraform tutorial in 2 hours](https://www.youtube.com/watch?v=SLB_c_ayRMo)

[Video: Learn Terraform in 10 minutes](https://www.youtube.com/watch?v=UleogrJkZn0)

# Ethical hacking
Many companies take security very seriously and a breach of security and data leak can lead to a ton of lawsuits and legal, ethical and moral problems. Companies hire ethical hackers and pentesters to test the resilience of their applications to see if they can find a way in and help make the companies applications indestructible and unhackable! Learn the ways in these simple guides below.

## General ethical hacking
Learn the basics of ethical hacking.

[Video: Ethical hacking 10 hours](https://www.youtube.com/watch?v=dz7Ntp7KQGA)

[Video: Create a keylogger with Python](https://www.youtube.com/watch?v=TbMKwl11itQ)

[Video: Gophish tutorial](https://www.youtube.com/watch?v=S6S5JF6Gou0)

## Linux
Linux is an operating system just like macOS or Windows that can be easily used to program on, pentest on and do pretty much anything. It is a solid alternative to Windows and allows people who love customisation and knowing a lot about their computer to tweak and program to their hearts content. It is also faster and more secure and private than Windows. It also is more or less immune to computer viruses.

[Video: Linux for ethical hackers](https://www.youtube.com/watch?v=lZAoFs75_cs)

## Pentesting
Pentensting or Penetration Testing is a term used to define the act of testing the security and resilience of a system. Pentesting doesn't require a knowledge of programming or software, they just need to know the areas useful to security.

[Video: Penetration testing full course](https://www.youtube.com/watch?v=3Kq1MIfTWCE)

[Video: Penetration testing 101](https://www.youtube.com/watch?v=2_lswM1S264)

[Video: Python for penetration testing](https://www.youtube.com/playlist?list=PLBf0hzazHTGM_dncTqO9l-0zUQYP0nNPU)

## Talks and lectures
Here are some talks and lectures on ethical hacking and pentesting to see how it can be used and examples of where it has been used. Including in non-ethical ways.

[Video: Why Ethical hacking is so important in the 21st century economy](https://www.youtube.com/watch?v=fsC7mAtiGHs)

[Video: Watch this hacker break into a company](https://www.youtube.com/watch?v=PWVN3Rq4gzw)

# Databases and Query languages
Databases are arguably one of the most boring parts of programming. Having to store data in the correct way and in a way that is fast and can be accessed without getting hacked is pretty difficult. Luckily there are plenty of tutorials and guides that teach you how to maintain, structure, manage and use a database in your applications!

## Database design
Learn the best way to structure a database to keep it clean and tidy and easy to maintain.

[Video: Database design tutorial](https://www.youtube.com/watch?v=ztHopE5Wnpc)

## SQL
Learn the most common query language and how to use it to manage a database.

[Video: SQL in 4 hours](https://www.youtube.com/watch?v=HXV3zeQKqGY)

[Video: SQL full course in 4 hours](https://www.youtube.com/watch?v=BPHAr4QGGVE)

[Website: Codecademy's free SQL course](https://www.codecademy.com/learn/learn-sql)

[Book: SQL notes for professionals](https://goalkicker.com/SQLBook/SQLNotesForProfessionals.pdf)

## MySQL
MySQL is a relational database management system.

[Book: MySQL notes for prefossionals/](https://goalkicker.com/MySQLBook/MySQLNotesForProfessionals.pdf)

## PostgreSQL
A free relational database management system. It is a modern and fast way to store data.

[Video: PostgreSQL in 4 hours](https://www.youtube.com/watch?v=qw--VYLpxG4)

[Book: PostgreSQL notes for professionals](https://goalkicker.com/PostgreSQLBook/PostgreSQLNotesForProfessionals.pdf)

## MongoDB
MongoDB is a document-oriented database program that doesn't use SQL. It is JSON-like and is one of the most popular NoSQL databases.

[Video: MongoDB full tutorial](https://www.youtube.com/watch?v=4yqu8YF29cU)

[Video: MERN stack in 2 hours](https://www.youtube.com/watch?v=7CqJlxBYj-M)

[Video: MongoDB with Python crash course](https://www.youtube.com/watch?v=E-1xI85Zog8)

[Video: Building a RESTful API using Node, Express and MongoDB](https://www.youtube.com/watch?v=o3ka5fYysBM)

[Video: MongoDB crash course](https://www.youtube.com/watch?v=-56x56UppqQ)

[Book: MongoDB notes for professionals](https://goalkicker.com/MongoDBBook/MongoDBNotesForProfessionals.pdf)

## GraphQL
GraphQL is a query language for APIs and a runtime for fulfilling those queries with existing data.

[Video: GraphQL Novice to Expert](https://www.youtube.com/watch?v=ed8SzALpx1Q)

[Video: Better APIs with GraphQL](https://www.youtube.com/watch?v=A5GvnU1JxdQ)

[Video: GraphQL server intermediate tutorial](https://www.youtube.com/watch?v=-iwjiiCGiO0)

## SQLite
SQLite is a relational database management system and is embedded into an end program instead of being a client-server database engine.

[Video: Python SQLite full course](https://www.youtube.com/watch?v=byHcYRpMgI4)

[Video: SQLite 3 in python](https://www.youtube.com/watch?v=pd-0G0MigUA)

## Firebase
Firebase is a mobile and web application development platform used to handle data. It is currently owned and maintained by Google and provides a very easy way of creating quick web applications without needing to worry about hosting or databases.

[Video: Full stack react & firebase tutorial](https://www.youtube.com/watch?v=m_u6P5k0vP0)

[Video: Build an evernote clone with react and firebase](https://www.youtube.com/watch?v=I250xdtUvy8)

[Video: Build a todoist clone with react and firebase](https://www.youtube.com/watch?v=hT3j87FMR6M)

[Video: Vue.js & Firebase tutorial realtime chat](https://www.youtube.com/watch?v=ifOzAyR1cG4)

[Video: Firebase basics](https://www.youtube.com/watch?v=9kRgVxULbag)

# Esoteric languages
Esoteric languages are fun little languages to play around with when you are bored or just want to try something different or quirky. From languages that only consist of a limited number of characters to languages that are 100% emojis, these languages are quite interesting and test the limits of what a programming language really is. You are highly unlikely to get a job in these languages but they are great fun!

## Brainfuck
Brainfuck is an esoteric programming language that is notable for its extreme minimalism. It consists of only 8 commands and is not inteded for practical use.

[Video: How Brainfuck works](https://www.youtube.com/watch?v=-3C200nCwpk)

[Video: Hello world in Brainfuck](https://www.youtube.com/watch?v=0nY80P5QFgo)

[Video: AI in Brainfuck](https://www.youtube.com/watch?v=qK0vmuQib8Y)

[Video: Brainfuck programming tutorial](https://www.youtube.com/watch?v=G-tuXeMyb58)

[Video: Complete Brainfuck tutorial](https://www.youtube.com/watch?v=7C4KOv3mLHc)

[Website: Online Brainfuck compiler](https://repl.it/languages/brainfuck)

[Website: Visual brainfuck](https://fatiherikli.github.io/brainfuck-visualizer/)

## Emojicode
Emojicode is a language that uses emojis for their syntax. It is an esoteric language but claims to be a full blown language.

[Website: Official emojicode documentation](https://www.emojicode.org/docs/guides/compile-and-run.html)

[Website: Codecademy's free emojicode course](https://www.codecademy.com/learn/learn-emojicode)