Skip to content

curlpipe/awesome-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 

Repository files navigation

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 to find out what is best for you!

Index

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

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

Video: C programming all-in-one 10 hour course

Website: Refine skills and improve problem solving in C

Website: Interactive C tutorial for everyone

Website: Online C compiler and IDE

Book: C notes for professionals

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

Video: Full java tutorial for beginners

Video: Build a sudoku desktop application in Java

Website: Refine skills and improve problem solving in Java

Website: Codecademy's free introduction to java course

Website: Online Java compiler and IDE

Book: Java notes for professionals

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

Video: Learn python by building 5 games

Website: Refine skills and improve problem solving in Python

Website: Learnpython interactive python tutorial

Website: Online Python interpreter and IDE

Book: Python notes for professionals

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

Video: C++ programming all-in-one 10 hour course

Website: Refine skills and improve problem solving in C

Website: Codecademy's free C++ course

Website: Free interactive C++ tutorial

Website: Online C++ compiler and IDE

Book: C++ notes for professionals

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

Video: C# Tutorial full course for beginners

Video: C# application from start to finish 24 hour course

Video: C# Complete tutorial from beginner to professional

Website: Codecademy's free C# course

Website: Refine skills and improve problem solving in C#

Website: Interactive C# tutorial

Website: Interactive C# compiler and IDE

Book: C# notes for professionals

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

Video: Simple HTML website

Website: Codecademy's free HTML course

Website: Online HTML renderer

Website: Mozilla's Introduction to HTML course

Website: Interactive HTML tutorial

Book: HTML5 notes for professionals

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

Video: CSS full course (shorter)

Video: CSS crash course (in 20 minutes)

Video: Learn responsive design

Video series: CSS3 in 30 days

Website: Codecademy's free CSS course

Website: Mozilla's CSS course

Website: Free CSS viewer online

Website: Interactive HTML+CSS tutorial

Book: CSS notes for professionals

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

Video: Build 15 vanilla javascript projects

Video: Learn javascript by learning 7 games

Video: Learn javascript by building tetris

Video: Build rock paper scissors game in html, css and javascript

Website: Codecademy's free Javascript course

Website: Refine skills and improve problem solving in Javascript

Website: Online javascript interpreter

Website: Interactive JS tutorial

Website: Learn javascript from Mozilla

Book: Javascript notes for professionals

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

Video series: Learn R Programming

Website: Codecademy's free R course

Website: Refine skills and improve problem solving in R

Website: Online R compiler

Website: Interactive R tutorial

Book: R notes for professionals

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

Video: Build a Twitter thread reader using PHP

Video: Learn PHP and MySQL with practical full project

Website: Codecademy's free PHP course

Website: Refine skills and improve problem solving in PHP

Website: Online PHP interpreter

Website: Interactive PHP tutorial

Book: PHP notes for professionals

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

Video: Your first app on iOS

Website: Codecademy's free Swift course

Website: Refine skills and improve problem solving in Swift

Website: Online swift compiler

Website: Official swift tutorial

Book: Swift notes for professionals

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

Video: PostgreSQL for beginners

Video: SQLite Databases with Python

Video: MySQL tutorial for beginners

Video series: SQL database programming

Website: Codecademy's free SQL course

Website: Refine skills and improve querys in SQL

Website: SQLite online

Website: Interactive SQL tutorial

Book: SQL notes for professionals

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

Website: Codecademy's introduction to regular expressions

Website: Regular expressions online

Website: A quick and interactive way to learn regex

Book: Bastards book of regular expressions

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

Video: Go tutorial for beginners

Video: Go crash course

Video: Learn go in 12 minutes

Website: Codecademy's free Go course

Webiste: Refine skills and improve problem solving in Go

Website: Online Go compiler

Website: Interactive go tutorial

Website: Go cheatsheet

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

Website: Execute Perl online

Website: Interactive Perl tutorial

Book: Perl notes for professionals

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

Video: Ruby in one video

Website: Codecademy's free Ruby course

Website: Refine skills and improve problem solving in Ruby

Website: Online Ruby interpreter

Website: Interactive Ruby tutorial

Website: Ruby in twenty minutes

Book: Ruby notes for professionals

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

Video series: Learn and apply Rust

Website: Quick Tour of Rust

Website: Refine skills and improve problem solving in Rust

Website: Online rust compiler

Book: Official Rust book

Book: 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

Video: Dart programming full course

Video: Learn dart in one video

Video: Learn Dart in 30 minutes

Website Refine skills and improve problem solving in Dart

Website: Online dart compiler

Website: Dart tutorials

Website: Dart cheatsheet

Book: PDF Dart cheatsheet

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

Video: Kotlin course tutorial for beginners

Video: Programming fundamentals with Kotlin

Video: Learn Kotlin in one video

Website: Codecademy's free Kotlin course

Website: Refine skills and improve problem solving in Kotlin

Website: Online Kotlin compiler

Website: Official Kotlin documentation

Book: Kotlin notes for professionals

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

Video: Learn Julia in one video

Video: Official intro to Julia tutorial

Website: Refine skills and improve problem solving in Julia

Website: Introduction to julia

Website: Online Julia compiler

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

Video: Learn Lua in an Hour

Website: Refine skills and improve problem solving in Lua

Website: Online Lua interpreter

Website: Programming in Lua (first edition)

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

Video: Learn haskell in one video

Website: Refine skills and improve problem solving in Haskell

Website: Online Haskell interpreter

Website: Learn you a haskell

Book: Haskell notes for professionals

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

Video: Typescript in 1 hour

Video: Learn typescript from scratch

Website: Refine skills and improve problem solving in Typescript

Website: Online Typescript transcompiler

Website: Official Typescript documentation

Book: Typescript notes for professionals

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

Video series: Crystal lang tutorials

Website: Refine skills and improve problem solving in Crystal

Website: Online Crystal compiler

Book: Official Crystal book

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

Video series: Learn ReasonML

Video: ReasonML full course for beginners

Website: Refine skills and improve problem solving in ReasonML

Website: Online ReasonML compiler

Website: Learning ReasonML

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)

Video series: Nim tutorial

Website: Refine skills and improve problem solving in Nim

Website: Online Nim compiler

Book: Nim basics

Book: Official Nim Resources

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

Video series: From zero to hero in Elixir

Video: Learn Elixir in one video

Website: Refine skills and improve problem solving in Elixir

Website: Online Elixir compiler

Website: Interactive Elixir tutorial

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

Video: Hello world in Brainfuck

Video: AI in Brainfuck

Video: Brainfuck programming tutorial

Video: Complete Brainfuck tutorial

Website: Online Brainfuck compiler

Website: Visual brainfuck

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

Book: Algorithms notes for prefossionals

Data structures

Video series: Data structures and algorithms in Javascript

Video: Data structures easy to advanced course

Video: Data structures and algorithms in Javascript

Terminology

Video: Computer science terminology

Graph theory

Video: Graph theory tutorial from a google employee

Mathematics for programmers

Video: Maths for programmers

Video: Statistics - A full university course on data science basics in 8 hours

Video: Big-O notation

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

Video: Sass crash course

Video: Sass in 20 minutes

Book: The official Sass 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

Video: Bootstrap 4 crash course

Website: Official Bootstrap tutorial

Website: W3Schools Bootstrap tutorial

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

Website: Bulma official documentation

Website: Bulma in 5 minutes

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

Video: React hooks tutorial

Video: React beginners tutorial build an autocomplete text box

Video: Build an e-commerce website from scratch

Video: Build a chat application using React and Redux

Video: React weather app

Video: APIs in React recipie app

Video: Full Stack React & Firebase tutorial

Video: React & Firebase evernote clone

Video: Todoist clone with Firebase, Hooks, Scss and testing

Videos: Typescript and React tutorial quiz app

Video: Build a recipie app with React

Book: React JS notes for professionals

Asp.net core

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

Video: ASP.NET Full course for beginners

Website: Codecademy's free ReactJS course

Book: .NET framework notes for professionals

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

Video series: Ruby on Rails from scratch

Video: Build your first Rails app - blog with comments

Video: Build a real estate platform in Ruby on Rails

Video: Build an instagram clone in Ruby on Rails

Book: Ruby on Rails notes for professionals

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

Video: Angular crash course

Video: Angular 8 from scratch

Video: Angular and Spring Boot - Build a reddit clone

Video: Build a budget calculator in Angular

Video: Build a todo list app in 30 minutes

Book: Angular 2+ Notes for professionals

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

Video: VueJS crash course

Video: Build a weather app in VueJS

Video: Build a music app in VueJS

Video: Build a calculator in VueJS

Video: Build a todo app with VueJS

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

Video: Django crash course

Video: Build a e-commerce app in Django

Video: Django user authentucation

Video: Create a todo app in Django

Laravel

Laravel is a PHP web framework for creating web applications.

Video: Laravel in 4 hours

Video series: Laravel from scratch

Video series: Laravel E-Commerce website

Video: Laravel student management system

Spring boot

Spring boot is a Java web framework for building websites.

Video: Spring Boot tutorial for beginners

Video: Spring boot in 50 minutes

Video: Spring Boot and Angular reddit clone

Video series: Building a block using Spring Boot and Angular

Video: Spring boot MVC E-commerce website

Book: Spring framework notes for professionals

Express

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

Video: ExpressJS crash course

Video: Expressjs & Nodejs course for beginners

Flask

Flask is a python web framework for building web applications.

Video: Learn flask for python

Video Series: Flask Tutorials - How to make websites with Python

Video: Build a social network in flask

Symfony

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

Video: Symfony in 3 hours

Video: Blog in symfony

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

Video: Svelte.js crash course

Video: Learn svelte in 1 hour

Video: Svelte budget calculator app

Video: Dad jokes website and API with Svelte.js

Video: Svelte habit app

Video: Gif search app with svelte

Video: Svelte app in 3 minutes and 15 lines of code

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

Video: Gatsby.js crash course

Video series: Portfolio website from scratch in Gatsby.js

Video: Gatsby coffee shop website

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

Video: jQuery in 6 minutes

Video: jQuery animated skills bars

Video: Build a jQuery calculator

Website: jQuery tutorial

Book: jQuery notes for professionals

Deno

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

Video: Deno crash course

Video: Deno in 6 hours

Video: Deno chat applications

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

Video: Learn NodeJS in 1 hour

Video: NodeJS crash course

Book: Node.js notes for professionals

Redux

Redux is a state container for javascript applications.

Video: Redux in 5 minutes

Video: Redux crash course

Video: Learn Redux from scratch

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

Video: Webpack 4 for beginners

Video: Webpack full tutorial in 2 hours

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

Video: D3.js in 30 minutes

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

Video: Reinforcement learning course

Video: Natural language processing tutorial

Video: Connect 4 API in Python

Video: Theory of neural networks - deep learning without frameworks

Video: Deep reinforcement learning in Python

Video: beat asteroids game using a neural network

Video: Neural networks with Javascript

Video series: Machine Learning with Python

Tensorflow

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

Video: Tensorflow 2.0 in 7 hours

Video: Learn Tensorflow.js

Video: Tensorflow 2.0 crash course

Video: Natural language processing with TensorFlow

Scikit-learn

A brilliant machine learning library for Python.

Video: Scikit-Learn course

Video series: Sklearn tutorials

Keras

Write neural networks in python.

Video series: Deep learning with Python, TensorFlow and Keras

Pytorch

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

Video: PyTorch for deep learning full course

Video series: Deep Lenaring with PyTorch live course

Video: Applied deep learning with PyTorch

Numpy

Manage statistics and numbers in Numpy for Python.

Video: NumPy tutorial for beginners

Video: Numpy in 5 minutes

Video: Complete NumPy tutorial

Video: Data analysis with Python - Full course in Numpy, Pandas, Matplotlib and Seaborn

Video: Python for data science from scratch

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

Video: Unity Beat Em Up fight game

Video: Unity for beginners - Brick breaker game

Video: Unity game dev - Infinite runner

Video: Unity hyper casual game

Video: 3D snake game in unity

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

Video: 2.5D platformer in Unreal engine

Video: Learn Unreal Engine C++ in 1 hour

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

Video: Learn godot in 50 minutes

Video series: Creating a simple 3D game in godot

Video: Creating 3D levels in godot

Video: Making an Action RPG in Godot

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

Video: Learn Python by building 5 games

Video: Build tetris with Pygame

Video: Pygame snake tutorial

Video: Online multiplayer game development

Video: Connect four in pygame

Video: Python Pong tutorial

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

Video: Learn Javascript by coding Tetris

Video: How to make a phaserJS game in 10 minutes

Website: Codecademy's free PhaserJS course

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

Video: Lava lamp in piston

Video: Pistonics games programming in Rust

Book: Creating Pong in Amethyst

Book: Amethyst tutorial

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

Video series: Flutter tutorials

Video series: Flutter crash course

Video: Flutter in 2 hours

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

Video: Android full course in 9 hours

Video: Android development with Kotlin

Video: Build a WhatsApp clone

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

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

Video: React native crash course

Video series: React native tutorial for beginners

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

Video: iOS app development tutorial

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

Video series: Qt and C++ GUI tutorial

Video series: Python and PyQt5 tutorial

Video series: PyQt5 tutorial for application development

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

Video series: Python GUI with GTK+ 3

Video series: GTK 3 with C and Glade

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

Video: Build an electron app in under 1 hour

Video: An intro to electron

Video series: Electron Tutorials

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

Video: Tkinter in 5 hours

Video: How to program a GUI application

Video: Build 2048 in 20 minutes

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

Video: Learn Docker in 1 hour

Video: Docker on Raspberry Pi 4

Video: What is Docker and how to use it to save money

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

Video: Learn git in 15 minutes

Video: Git It? How to use Git and Github

Video: Git and Github for beginners

Video: Git explained in 100 seconds

Book: Git notes for professionals

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?

Video: Getting started with AWS

Video: AWS tutorial in 10 minutes

Video: AWS cloud practitioner training

Video: AWS developer Associate training

Video: AWS solutions architect

Video: Complete Terraform tutorial in 2 hours

Video: Learn Terraform in 10 minutes

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

Video: Create a keylogger with Python

Video: Gophish tutorial

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

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

Video: Penetration testing 101

Video: Python for penetration testing

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

Video: Watch this hacker break into a company

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

SQL

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

Video: SQL in 4 hours

Video: SQL full course in 4 hours

Website: Codecademy's free SQL course

Book: SQL notes for professionals

MySQL

MySQL is a relational database management system.

Book: MySQL notes for prefossionals/

PostgreSQL

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

Video: PostgreSQL in 4 hours

Book: PostgreSQL notes for professionals

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

Video: MERN stack in 2 hours

Video: MongoDB with Python crash course

Video: Building a RESTful API using Node, Express and MongoDB

Video: MongoDB crash course

Book: MongoDB notes for professionals

GraphQL

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

Video: GraphQL Novice to Expert

Video: Better APIs with GraphQL

Video: GraphQL server intermediate tutorial

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

Video: SQLite 3 in python

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

Video: Build an evernote clone with react and firebase

Video: Build a todoist clone with react and firebase

Video: Vue.js & Firebase tutorial realtime chat

Video: Firebase basics

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

Video: Hello world in Brainfuck

Video: AI in Brainfuck

Video: Brainfuck programming tutorial

Video: Complete Brainfuck tutorial

Website: Online Brainfuck compiler

Website: Visual brainfuck

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

Website: Codecademy's free emojicode course

About

Teach yourself a new technology from this list B)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published