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!
Here is the index! Choose a field that you are interested in!
- Languages 💬
- General computer science 💻
- Web development 🌐
- Machine learning 🧠
- Game programming 🎮
- Mobile development 📱
- Desktop applications 🖥
- Code management 🛠
- Ethical hacking ⌨
- Databases and Query languages 💾
- Esoteric 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 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 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 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++ 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
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# 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 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
Website: Codecademy's free HTML course
Website: Mozilla's Introduction to HTML course
Website: Interactive HTML tutorial
Book: HTML5 notes for professionals
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
Website: Codecademy's free CSS course
Website: Free CSS viewer online
Website: Interactive HTML+CSS tutorial
Book: CSS notes for professionals
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 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: Interactive R tutorial
Book: R notes for professionals
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 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
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 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: Interactive SQL tutorial
Book: SQL notes for professionals
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 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: Go tutorial for beginners
Website: Codecademy's free Go course
Webiste: Refine skills and improve problem solving in Go
Website: Interactive go tutorial
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.
Website: Interactive Perl tutorial
Book: Perl notes for professionals
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
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 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 series: Learn and apply Rust
Website: Refine skills and improve problem solving in Rust
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: 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
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: 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 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 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.
Website: Refine skills and improve problem solving in Lua
Website: Online Lua interpreter
Website: Programming in Lua (first edition)
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
Book: Haskell notes for professionals
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: 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 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
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: ReasonML full course for beginners
Website: Refine skills and improve problem solving in ReasonML
Website: Online ReasonML compiler
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)
Website: Refine skills and improve problem solving in Nim
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: 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 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: Hello world in Brainfuck
Video: Brainfuck programming tutorial
Video: Complete Brainfuck tutorial
Website: Online Brainfuck compiler
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!
Video: Introduction to programming
Book: Algorithms notes for prefossionals
Video series: Data structures and algorithms in Javascript
Video: Data structures easy to advanced course
Video: Data structures and algorithms in Javascript
Video: Computer science terminology
Video: Graph theory tutorial from a google employee
Video: Statistics - A full university course on data science basics in 8 hours
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 is a popular CSS preprocessor which adds more features and allows better customisation and control of website styling.
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 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.
Website: Bulma official documentation
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 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: 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 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 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 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 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 is an community maintained javascript framework similar to React and Angular that allow you to build a web application.
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 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: Build a e-commerce app in Django
Video: Django user authentucation
Video: Create a todo app in Django
Laravel is a PHP web framework for creating web applications.
Video series: Laravel from scratch
Video series: Laravel E-Commerce website
Video: Laravel student management system
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 is a node.js web framework for creating robust APIs.
Video: Expressjs & Nodejs course for beginners
Flask is a python web framework for building web applications.
Video Series: Flask Tutorials - How to make websites with Python
Video: Build a social network in flask
Symfony is a PHP web framework and a set of reusable PHP components and libraries.
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 budget calculator app
Video: Dad jokes website and API with Svelte.js
Video: Gif search app with svelte
Video: Svelte app in 3 minutes and 15 lines of code
Gatsby is a javascript framework based on React.js and helps to deliver very fast static websites and apps.
Video series: Portfolio website from scratch in Gatsby.js
Video: Gatsby coffee shop website
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 animated skills bars
Video: Build a jQuery calculator
Book: jQuery notes for professionals
Deno is an alternative runtime for Javascript that can be used on the client and server side.
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
Book: Node.js notes for professionals
Redux is a state container for javascript applications.
Video: Learn Redux from scratch
Webpack is a module bundler for javascript. It can be used to bundle Javascript ready for use in a browser.
Video: Webpack 4 for beginners
Video: Webpack full tutorial in 2 hours
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
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.
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
Learn Google's tensorflow to aid with machine learning projects.
Video: Tensorflow 2.0 in 7 hours
Video: Tensorflow 2.0 crash course
Video: Natural language processing with TensorFlow
A brilliant machine learning library for Python.
Video series: Sklearn tutorials
Write neural networks in python.
Video series: Deep learning with Python, TensorFlow and Keras
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
Manage statistics and numbers in Numpy for Python.
Video: NumPy tutorial for beginners
Video: Complete NumPy tutorial
Video: Data analysis with Python - Full course in Numpy, Pandas, Matplotlib and Seaborn
Video: Python for data science from scratch
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 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
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 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 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: Online multiplayer game development
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 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: Pistonics games programming in Rust
Book: Creating Pong in Amethyst
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 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
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
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 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
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: iOS app development tutorial
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 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 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 series: Python GUI with GTK+ 3
Video series: GTK 3 with C and Glade
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 series: Electron Tutorials
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: How to program a GUI application
Video: Build 2048 in 20 minutes
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 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: Docker on Raspberry Pi 4
Video: What is Docker and how to use it to save money
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 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: 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
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.
Learn the basics of ethical hacking.
Video: Ethical hacking 10 hours
Video: Create a keylogger with Python
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
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
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 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!
Learn the best way to structure a database to keep it clean and tidy and easy to maintain.
Video: Database design tutorial
Learn the most common query language and how to use it to manage a database.
Video: SQL full course in 4 hours
Website: Codecademy's free SQL course
Book: SQL notes for professionals
MySQL is a relational database management system.
Book: MySQL notes for prefossionals/
A free relational database management system. It is a modern and fast way to store data.
Book: PostgreSQL notes for professionals
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 with Python crash course
Video: Building a RESTful API using Node, Express and MongoDB
Book: MongoDB notes for professionals
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 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
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
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 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: Hello world in Brainfuck
Video: Brainfuck programming tutorial
Video: Complete Brainfuck tutorial
Website: Online Brainfuck compiler
Emojicode is a language that uses emojis for their syntax. It is an esoteric language but claims to be a full blown language.