Learn Coding

In this article, we will share with you an extensive list of free resources to learn how to code and program with all major programming languages and topics. While learning new programming languages professionally can be very expensive, it's reassuring to know that there are numerous resources available for acquiring coding skills without incurring any financial burden.

Whether you are new to programming or an experienced programmer, you will be able to find the right resources for your needs. With a commitment to continuous learning, dedicated practice, and a strong work ethic, you can gain proficiency in programming and open up a vast array of opportunities in the tech industry or advance in your current career. In fact, consistency is actually the key to mastering and excelling in any field. Moreover, it's important to stay updated with the latest technology, trends and advancements, in order to keep up with the constantly changing field of development. Continuous learning is necessary as there are always new things to learn.

There are several types of developers in computer programming: software developer, web developer, big data developer (data scientist), devops engineer, security developer, game developer, and mobile developer. Software development involves becoming familiar with programming languages like C#, C++, and others. Web development, on the other hand, can be categorized into three types of developers:

  • Front-end (client-side) development - Focuses on the appearance of the website (user-interface). Front-end developers should know at least three languages: HTML, CSS, and JavaScript.
  • Back-end (server-side) development - Focuses on behind-the-scenes parts of a website which powers the front UI, like managing databases or server-side programming. Back-end developers should know at least one server-side language like PHP, Python, Node.js, Java, or Ruby and have basic knowledge working with databases like MySQL.
  • Full-stack development - Combination of frontend and backend development into one role.

If you're unsure which path you should go as a developer, and which programming language to learn, you can check Stackoverflow's Survey, Statista's Survey or TIOBE Index for the most popular technologies languages. This can help you decide which language you should learn next.

Learn Multiple Languages or Topics

Text Tutorials

  • Mozilla Web Docs – Mozilla's learning center that will help you to learn web technologies, such as CSS, HTML, and JavaScript. You can also check their blog for tutorials about web development.
  • Web.Dev – Growing collection of courses by Google to learn web development and discover how to create cutting-edge web experiences that are fully compatible with all browsers.
  • Google for Developers – Google's learning center offers a wide range of in-depth courses covering various tech topics.
  • W3Schools – Provides a wide range of free online tutorials, references, quizzes, and exercises for all the major web languages, including HTML, CSS, JavaScript, Python, SQL, Java, and many others.
  • GeeksForGeeks – Free learning platform for all types of programmers that provides computer science resources and coding exercises to improve coding skills and knowledge. This platform allows you to check your skills by solving puzzles.
  • TutorialsPoint – Discover a learning platform that offers user-friendly tutorials in multiple languages. Boost your knowledge with ease, regardless of your expertise. You can test your skills with various coding challenges and quizzes provided by the platform.
  • TutorialRepublic – Learn the fundamental and advanced aspects of web development technologies.
  • W3Docs – Enhance your web development skills through comprehensive online courses and tutorials while reinforcing your understanding with engaging quizzes. This platform covers essential web technologies such as HTML, XML, CSS, JavaScript, AJAX, jQuery, React, Angular, Vue, and SQL.
  • JavatPoint – Comprehensive web technology tutorials catered to beginners and professionals alike covering essential technologies such as HTML, JavaScript, AJAX, SQL, Python, and PHP. This platform also offers interview questions and answers and test exams.
  • TutorialsTeacher – Access free tutorials and resources to learn web technologies through step-by-step tutorials. You can train yourself with questions and answers or check how well your skills are in tests section.
  • TheValleyOfCode (Free Plan) – Acquire a solid understanding of the fundamental elements that make up the Internet and the Web through a comprehensive web development manual. Gain in-depth knowledge of HTTP, the core protocol that powers the World Wide Web.
  • LearnXInYMinutes – An online learning platform designed to help developers learn new languages very fast. It offers learning for more than 30 different languages, including C++, C#, PHP, Python, SQL, HTML and CSS.
  • HTMLDog – Get access to great resources to learn the three most common programming languages HTML, CSS, and JavaScript. It provides comprehensive tutorials, three tutorials for each language, categorized into three levels of expertise - beginner, intermediate, and advanced. Morever, there are also great techniques to discover, and live demonstrations showcasing code in action.
  • Kodify – Free code tutorials and programming articles to learn C# and Python.
  • Jobtensor – Learn PHP or Python programming languages to improve your skills, whether you are a beginner or already a pro.
  • Net-Tutorials – A variety of tutorials are available for different programming languages and frameworks, including HTML, CSS, Javascript, C#, and PHP.
  • RipTutorial – Learn programming with easy-to-understand tutorials and eBooks covering top languages such as HTML, CSS, C#, C++, PHP, Python, SQL.
  • Kirupa – Free web development tutorials for both novice and advanced programmers.
  • Sabe.io – Gain access to classes that provide an introduction to a variety of valuable languages including HTML, CSS, JavaScript, Python, PHP, and Java.
  • FullStackOpen – Free course to get an introduction to modern web development and master technologies such as: React, Redux, Node.js, MongoDB, GraphQL, and TypeScript! Learn how to build single page applications with React that use REST APIs built with Node.js.
  • Dayle Rees's Books – Free online books about web development.
  • TutorialKart – Tutorials on various programming topics.
  • TutorialsFreak – Access free online tutorials in many topics including cybersecurity, web technologies, and programming.
  • OpenClassRooms – Online training program with courses on a wide range of subjects including coding and software engineering.
  • TutLane – An e-learning and education platform that offers quality online tutorials and training resources covering the latest IT and tech topics.
  • HomeAndLearn – Free online computer courses in various programming languages and topics, including VB.NET, C#, Java, PHP, Python, web design, and office apps.
  • PHPForKids – Learn development from comprehensive tutorials for PHP, HTML, and CSS.
  • Phuoc Nguyen's collection – Discover a unique way to master web development through a diverse range of techniques and patterns, accompanied by real-life examples, covering various topics in front-end development.
  • DevDojo – Access free guides and courses for HTML, CSS, JavaScript, SQL, Bash, Git, and more. You also have the opportunity to connect with a developer community and benefit from their tutorials and helpful tips.
  • TheCodingGuys – Beginner-friendly programming tutorials for C#, VB, ASP, HTML, CSS, and MySQL programming languages.
  • Josh W. Comeau tutorials – User-friendly front-end web development tutorials and master React, CSS, Javascript, Animation, and much more.
  • Teaching-Materials – A compilation of practical and straightforward programming and web development courses presented through slides for easy learning.

Video or Interactive Courses

  • FreeCodeCamp – Online learning platform, supported by donors, that is dedicated to provide free coding education to empower individuals. Users have access to a vast library of videos, articles, and interactive coding lessons, allowing them to acquire valuable skills at no cost.
  • Envato Tuts – Free massive code library that offers thousands of tutorials to help you learn web and mobile development. You can learn HTML, CSS, Javascript, Python, Cloud, WordPress and more...
  • Microsoft's Learning Center – Expand your programming knowledge and expertise through comprehensive documentation, interactive training programs, shows, and questions and answers.
  • Codecademy (Free Plan) – An online education platform for programming with a rapidly growing community of 50 million users. Easily learn most popular languages such as HTML, CSS, JavaScript, SQL, and Python. You can check out the catalog and use the filter to show only free courses. You are also adviced to visit the cheatsheet section or the code documentation section, which will expand your learning journey.
  • Udemy (Free Plan) – Free collection of courses by Udemy, a popular high quality learning platform for professionals.
  • Coursera (Free Plan) - Get free quality training in computer programming, data science, and web development with courses that are suitable for both beginners and those with prior experience.
  • Udacity (Free Plan) - Platform providing diverse online computer programming courses to learn new skills.
  • Educative.io (Free Plan) - Online education service that offers free online courses to learn various types of tech skills fast.
  • Programiz (Free Plan) – An online platform that offers tutorials to learn programming with ease. It focuses on simplicity, making it best suitable for beginners.
  • SoloLearn (Free Plan) – A remarkably user-friendly platform that offers free coding guidance through interactive and straightforward guides. Whether you’re a beginner or an experienced programmer, this platform offers a wide range of coding languages and projects to help you sharpen your skills and push your coding abilities to new heights.
  • KhanAcademy – A nonprofit organization that aims to provide world-class education to everyone. You can learn many topics, such as coding, data analysis, data security (cryptography), and the internet. Mastere new programming languages effectively and proficiently.
  • SimpliLearn (Free Plan) – An online educational platform offering a wide range of courses taught by global experts to help you enhance your skills and advance your career.
  • Exercism – A not-for-profit organization that provides an easy yet powerful learning platform to enhance and elevate your programming skills. The platform offers interactive learning models for over 60 programming languages and also offers coding exercises for assessing your skills.
  • StudyTonight (Free Plan) – An online learning service that offers free interactive coding lessons for JavaScript, CSS, and HTML. It's also offers user-friendly tutorials for different programming languages and provides tests and coding exercises to retouch your skills.
  • Edx.org – Non-profit, open-source learning platform by MIT and Harvard University to improve your coding skills. Enroll in free online coding courses on many topics, such as web development, programming, computer science, and data science, and more.
  • FutureLearn (Free Plan) – Online education platform that offers courses from leading universities. The free plan offers access to the course for its duration, regardless of when you join, but not for lifetime.
  • TheOdinProject – A platform for coding education provides online tutorials and courses on various web development topics including HTML, CSS, JS, React, Ruby, and NodeJS.
  • GreatLearning – Gain access to over 1000 free courses with certificates from top universities worldwide. You can view a list of all free courses available.
  • Scrimba (Free Plan) – Learn to code quickly and efficiently with interactive courses and tutorials in popular programming languages such as React, Vue, Angular, JavaScript, HTML, CSS, and more.
  • MIT OpenCourseWare – Learn for free with an open collection of MIT courses.
  • Jetbrains's Educational Courses (Free Plan) – Learn programming or create courses directly within your JetBrains IDE.
  • CodeWithHarry – Gain coding expertise in a significantly shorter time than others typically take to acquire it.
  • LearnWebCode – Learn web development easily. It offers free courses in HTML, CSS, JavaScript, and WordPress.
  • Zenva – Accelerate your coding and game creation skills with Zenva's free online courses.
  • General Assembly Dash – Interactive course that introduces web development fundamentals. Learn to craft modern websites in HTML, CSS, and JS.
  • Skillcrush – A coding bootcamp that is completely free, designed for beginners with no prior experience, to learn the fundamentals of coding. You can also check out the tutorials section with free resources and tips for wide range of coding languages.
  • Scaler – Online course provider that offers useful free courses to expand your programming skills.
  • BrainStation – Access interactive tutorials to learn how to write code for free inע popular programming languages.
  • CodeDamn – An educational platform for learning programming through interactive courses. You have access to free courses as well as coding challenges to learn by doing.
  • UpSkillCourses – Learning platform that provides more than 200 free courses in various programming topics. You can filter the free courses with the left sidebar (Choose "Free" in "Course Type").
  • SkillsForAll Cisco Networking Academy – Gain the essential skills and take your tech career to the next level with Cisco's free practice-oriented online courses. These cutting-edge courses cover a wide range of topics, such as cybersecurity and networking.
  • Dofactory – Comprehensive free tutorials for developers covering HTML, CSS, JS, SQL, and C#.
  • Eduonix – A learning and training environment that offers world-class courses delivered by experts.
  • LevelUp.Video – A learning platform with over 1K video tutorials about web development.
  • FrontEndMasters (Free Plan) – Get lifetime access to five popular courses about web development and coding.
  • Alison (Free Plan) – An educational platform that provides a wide range of free online courses designed to help you acquire valuable skills and training on essential topics.
  • Gymnasium – A free learning platform that offers a variety of online courses taught by professionals and industry experts. Its goal is to help individuals develop in-demand skills and progress in their careers.
  • IntelliPaat – An educational platform that offers a wide range of free online courses in different industries to help individuals enhance their skills. These courses grant certificates and can help individuals advance their career growth.
  • CodeChef – An online education platform makes learning and practicing computer science enjoyable and engaging. Master the fundamentals of computer science with engaging interactive courses that explore the essential programming languages: C, C++, Python, Java, and SQL.
  • Upcase by Thoughtbot – Improve your coding skills to become an experienced developer.
  • Code.org – A nonprofit educational platform for computer science that focuses on kids, but also provides learning materials for all ages.
  • KevinPowell – Get access to three free courses about web development.
  • CaveOfProgramming – An online platform that offers programming courses that will teach you how to program from scratch or to improve your existing skills. It provides free courses to learn Java or C++.
  • EggHead (Free Plan) – Learning platform that offers expert courses focused on front-end development.
  • Hexlet (Free Plan) – A computer science education platform that offers a few free programming courses suitable for individuals of all levels, from absolute beginners to seasoned developers. You can also find free courses in the "Sandbox" section, which offers courses offered by Hexlet users.
  • CodeGuage – A free education platform that offers courses in computer science, programming and mathematics.
  • LearnVern (Free Plan) – A training portal that offers courses in multiple languages covering many topics such as programming, machine learning, data science, and cybersecurity. The courses are designed with an updated curriculum to ensure that students are prepared for the industry, and they are taught by experienced professionals.
  • HyperSkill (Free Plan) – An education platform that will teach you coding from the fundamentals. Acquire job-ready skills in the tech industry and develop a solid foundation for building a successful career through project-based learning.
  • Lewagon – Tech training platform with free programming courses in many topics such as SQL, Python, UX design, and artificial intelligence.
  • GiraffeAcademy – Access a wide range of free educational content to build and enhance your programming skills.
  • RaspberryPi – Find free tutorials to learn programming and computing skills. Easily learn Python and web development languages such as HTML, and CSS with step-by-step instructions.
  • Webflow University – Access free web design and development video tutorials.
  • University of Waterloo – Access free video tutorials and slideshows for learning Python from scratch, web programming with JavaScript and CSS.
  • LearnTheWeb – A learning platform that aims to help you master web development easily with well-structured guides created by a web development professor. It offers tutorials covering many topics, step-by-step courses, and quizzes, exercises & games to test the knowledge.
  • Roadmap.sh – Website that was created to support developers on their software engineering learning journey. You can access many educational content including roadmaps, videos, and a questions section where you can test your programming skills.

Coding Challenges, Quizzes and Games

Enhance your programming skills by practicing and solving coding challenges.

  • HackerRank – Evaluate your proficiency in development.
  • HackerEarth – A developer community that provides programming challenges and coding competitions to help you upgrade your coding skills by solve coding problem.
  • CodinGame – Unique learning platform that provides programmers with the opportunity to enhance their coding skills, and gain inspiration, by solving a wide range of challenging coding challenges.
  • CodeWars – Master top programming languages by solving programming tasks.
  • CheckIO – Free-to-play coding game for Python and TypeScript. The game is suitable for both beginners and advanced programmers, and allows developers to train and improve their skills by solving challenges.
  • Edabit – Comprehensive coding training platform offering compelling challenges for various programming languages and skill levels at no cost. You can also find free basic interactive tutorials for Python and JS.
  • FrontEndMentor – Free coding challenges to learn HTML, CSS and JS.
  • DatWwars – Online learning and training platform to learn data science through project-based playgrounds featuring interactive challenges and ready-to-solve exercises.
  • CodingFantasy – A learning platform that provides an engaging approach to learning and skill development through interactive games.
  • ICodeThis – Improve your coding skills with HTML, CSS, and JavaScript by building project challenges every day using an in-browser IDE.
  • DevProjects by CodeMentor – Enhance your programming expertise through the creation of hands-on projects.
  • DevChallenges – Improve your programming skills by practicing and building real life coding projects.
  • Codepip – Develop your coding skills through interactive gaming.
  • GreatFrontRnd (Free Plan) – A front-end interview preparation platform designed to provide all the resources you need to excel in your front-end job interview. The platform offers an in-browser environment to practice your skills and simulate real interviews. Moreover, it offers free trivia questions bank, interview coding questions with detailed solutions from ex-interviewers and some free questions in the focus areas.

YouTube Channels

One of the most effective ways to learn programming is to learn it from seasoned experts. Developers have free access to a plethora of YouTube channels offering rare and engaging tutorials on how to learn to code and valuable insights in the field of development.

Free Books

  • GoalKicker Books – Free programming books.
  • SitePoint's Free Books – Collection of free books by SitePoint.
  • Syncfusion's Free Books – Get free access to a large library of more than 200 e-books covering key subjects and topics in software development, data visualization, and data science.
  • LaunchSchool's Free Books – Collection of books to learn about computer science and programming languages like Python, Ruby, and SQL.
  • ExploringJS – Useful JavaScript and TypeScript books for programmers.

Blogs and Others

  • IBM Explainers – Learn about many tech topics by the tech giant IBM.
  • Cloudflare Learning Center – In-depth guides on various web security topics and how the internet works.
  • DigitalOcean Community – Get access to tutorials, videos, and answers to questions on a wide range of topics.
  • CSS-Tricks – Blog that is exclusively focused on the world of web design and development. Immerse yourself in comprehensive tutorials and valuable insights about CSS, HTML, and JavaScript. You are also advised to check their snippets section.
  • Toptal's Resources – A collection of valuable resources that developers can use to prepare for the next tech job interview. It provides interview questions, common mistakes, and tips for over 50 programming languages and development topics.
  • Design Gurus Answers' Hub – Prepare for tech interviews or grow your tech knowledge with expert answers to commonly asked tech interview questions.
  • JoelOnSoftware – A blog by Joel Spolsky, the CEO of Stack Overflow from 2010-2019 and one of its creators, with over 1K articles about software development and other topics. There is a must-read article for every developer that explains in detail what is "Unicode".

Learn Specific Language or Topic

Learn HTML

HTML is the most basic programming language in web development and the core of any website in the world. If you wish to start learning web development you must master this language first.

  • Learn-HTML.org – Simple HTML tutorial that offers an interactive guide how to build websites.
  • ShayHowe – Master the art of coding HTML & CSS and create visually stunning websites.
  • DiveIntoHTML5 – Advanced HTML5 tutorial.
  • Marksheet – Free tutorial to learn HTML and CSS.
  • HtmlReference.io – Free guide to HTML that features all elements and attributes.
  • HowToCodeInHTML – A free e-book that teaches basic concepts and techniques of web development, specifically focusing on building websites with HTML and CSS. This e-book is suitable for complete beginners in the field of web development.
  • Careerfoundry's Web Development Course – Free short course to get hands-on introduction to the field of web development.
  • Dive Into HTML5 – An in-depth tutorial to master the latest HTML5 features.

Learn CSS

CSS (Cascading Style Sheets) is used to style websites.

  • GCFGlobal – Learn the basics of CSS.
  • ShayHowe – A comprehensive guide for coding in CSS.
  • LearnLayout – A tutorial to learn the CSS layout fundamentals designed for developers who are already familiar with CSS basics.
  • Magic of CSS – Learn key topics in CSS layout.
  • TheCodePlayer – A unique way to learn CSS is through video style walkthroughs that demonstrate the development process from the beginning.
  • CSSReference.io – Free visual guide to CSS with engaging illustrations and animated examples.
  • CSSGrid.io – Learn CSS grid which is a layout system in CSS to create flexible layouts.
  • Flexbox.io – Free video courses to master CSS Flexbox.
  • CSSGridGarden – An interactive game to learn CSS grid.
  • FlexBoxDefense – Learn CSS flexbox by playing tower defense game.
  • FlexBoxZombies – Educational Game to learn CSS flexbox.
  • KnightsOfTheFlexboxTable – Engage in an exciting adventure game where you'll uncover hidden treasures in the depths of the dungeon, all while learning the fundamentals of Flexbox and Tailwind CSS.
  • Flex Cheatsheet – A comprehensive cheatsheet to master CSS flex with interactive demonstrations.
  • Grid Cheatsheet – A guide to learn CSS grid with interactive exmaples.
  • Alialaa CSS Grid Cheatsheet – A visual guide for CSS grid.
  • LearnCSSGrid – A guide to learning CSS grid.
  • CSS Diner – A fun game to learn and practice CSS selectors.
  • CSS-Speedrun – A fun challenge to test your knowledge with CSS selectors.
  • Mikito Takada's CSS Book – Master the art of CSS layout with an in-depth tutorial that covers all the key concepts in CSS layout.
  • FFFuel – A visual guide to CSS selectors
  • CSSBattle – Show your skills by competing against players from all around the globe and strive to become the top performer in solving CSS challenges with the most efficient code.
  • 100DaysCSS – A unique way to help you master CSS in just 100 days by engaging in project challenges and exploring the work of other people around the world.
  • Josh W. Comeau Color Formats Tutorial – A comperhasive tutorial to learn Color formats in CSS.

Learn JavaScript

JavaScript is one of the most popular programming languages and is widely used by almost all websites worldwide. It runs on the client-side (browser) and makes your webpage dynamic and interactive. We advice you to check the evolution of JS before you start learning it.

Learn Node.js

Node.js is a not a programming language, but a JavaScript runtime environment that allows you to execute JavaScript code on a server for back-end development. It utilizes the high-speed V8 JavaScript engine that also empowers the Chrome browser, making it an excellent option for building server-side applications. One of the advantages of using Node.js for back-end development is that the code across both the front-end and the server side is the same. This approach streamlines code management and debugging, making the entire development process more efficient.

Learn Angular

Angular, also known as Angular v2/v4 or later, is a powerful web development framework built on TypeScript and continuously supported by a committed team at Google. Angular was previously known as AngularJS or Angular v1, but since version 2 it named just "Angular" as it introduces several significant improvements and changes compared to old AngularJS, transforming it into an entirely new framework. For example, Angular is completely rewritten in TypeScript and is based on component and directive-based architecture, while AngularJS is written in JavaScript and is based on Model-View-Controller architecture.

  • Angular.dev – The new official Angular website, which has replaced the outdated "angular.io", offers new interactive tutorials covering the fundamental concepts of the framework. The new site also offers a in-browser playground for exploring the latest Angular concepts.
  • Angular.io – The official tutorial for Angular, that will teach you all the fundamentals of developing with the Angular framework.
  • Thinkster's Angular Course – A Free course to quickly learn the basics of Angular through interactive exercises.

Learn React

React also known as ReactJS, is an open-source JavaScript framework created by Facebook that provides a robust set of tools for constructing user interfaces (UI) using modular and reusable components. In this section we will also provide tutorials for Next.js, which is a framework that is based on React.

Learn TypeScript

TypeScript is an open-source programming language that was developed by Microsoft. It's a strict superset of JavaScript (ECMAScript 2015, also known as ECMAScript 6 or ES6), which means that all JavaScript code is also TypeScript code. It is specifically designed to improve the functionality of JavaScript, especially to facilitate the smooth development of large applications with extensive code bases.

Learn PHP

PHP is an open-source server-side scripting language that powers the most popular websites and also the popular CMS - WordPress. According to W3Techs reports, PHP is the most widely used server-side programming language, with such popularity that Meta (formerly Facebook) has even created a modified version of PHP known as Hack. There are several PHP-based web-frameworks that you can help you to boost up your development process, such as CodeIgniter, Laravel, Zend and Symfony.

  • PHP.net Manual – The official PHP manual from the creators of PHP. To enhance your skills and discover valuable snippets, make sure to refer to the comments.
  • PHPTutorial – Modern PHP tutorial that will help you learn how to develop dynamic websites and web applications from scratch.
  • PHP.org – Find easy-to-understand PHP tutorials suitable for both beginners and experienced developers. Gain comprehensive skills to become proficient in the PHP language.
  • PHPInternalsBook – A tutorial for advanced developers to learn how PHP works internally.
  • PHPCheatSheets – A PHP cheat sheet collection.
  • ClearPHP – Learn how to write clear PHP code.

Learn Python

Python is a versatile, beginner-friendly programming language that has a clean syntax. Python is a general-purpose language that can be used for all types of developers but is commonly used for data science and machine learning. Backend developers who wish to develop server-side apps with Python should use web frameworks such as Django, Pyramid, Flask, and Pylons (Django is the most popular). You can get started quick with the free plan of PythonAnywhere, a full Python environment to host and run Python code in the cloud.

  • Python Official Docs – A guide from the official Python website introducing many of Python’s most commonly used features. If you're new to programming, you can visit the BeginnersGuide for Non Programmers. But if you have programming experience, you can check out the BeginnersGuide for Programmers. After you've got some experience in Python development you should check Python Developer's Guide or check this list of free books to expend your knowledge even futher.
  • FutureCoder – Free fully interactive learning course for Python that is suitable for complete beginners.
  • Google's Python Class – Google offers a free Python course that is suitable for all users, including those with no programming experience. The course provides written materials, lecture videos, and numerous coding exercises to help you master Python programming.
  • FullStackPython – Master the development, deployment, and maintenance of Python applications.
  • LearnPython – Interactive tutorial to learn the Python programming language, suitable for both beginners and experienced programmers.
  • Python-Guide – This guide is designed to help Python developers, whether they are beginners or experts, with the installation, configuration, and daily usage of Python.
  • DiveIntoPython – A comprehensive guide for learning Python.
  • PythonTutorial – Tutorial that will help you quickly learn Python programming from scratch and eventually master it.
  • PythonBasics – Course to learn the basics of how to write a Python code.
  • Python for you and me – Introductory book for novice programmers seeking to learn the Python programming language.
  • PythonProgramming – Explore a wide range of Python programming tutorials, covering topics from beginner to advanced levels.
  • Python for Everybody – Free tutorial to learn the Python programming language even if you have no prior programming experience.
  • Python101 – Learn the fundamentals of Python 3.
  • ProgramArcadeGames – Learn to program arcade games using Python and Pygame. With this platform you can also enhance your skills and assess your knowledge through quizzes.

Learn C#

C# (pronounced C-Sharp) is a high-level modern programming language developed by Microsoft that allows developers to build and run apps on the .NET Framework. C# is a modern, versatile object-oriented programming language that enables developers to build a wide range of applications, ranging from desktop software to web-based solutions.

  • freeCodeCamp Foundational C# Certification – Microsoft and freeCodeCamp have teamed up to bring you 35-hours course that provides a thorough overview of C# programming. At the end of the course, you'll earn a free professional certification.
  • Microsoft's .NET Learning Center – Microsoft pltform offers a variety of resources such as tutorials, videos, and courses specifically tailored for .NET developers of all levels, from beginners to advanced. You can start with a simple in-browser-tutorial.
  • C-SharpCorner – Online community for software developers and IT professionals focused on C-Sharp language, but also offers learning resources for other languages. You can check out the free ebook section, the learning section, and certification section to get certified.
  • CSharpTutorial.net – A complete tutorial to learn C# programming from the ground up.
  • Pinvoke.Net – PInvoke wiki that enables developers to discover, modify, and contribute PInvoke* signatures, custom data structures, and all other relevant details pertaining to invoking Win32 and other unmanaged APIs from managed code.

Learn C++

C++ is a powerful low level programming language which is an extension to the C programming language. C++ is an item-oriented language which is distinct from many other modern high level languages which are object/component-oriented. Another significant distinction is the fact that in C++, the programmer is required to manually handle memory management, whereas in languages like C#, there is an automatic "garbage collector" that takes care of it effortlessly. Due to its nature as a low-level language, it provides enhanced control and speed, particularly for applications involving hardware manipulation or requiring maximum performance. However, it also has drawbacks. It is complex, difficult to maintain, has hard-to-read syntax, and requires higher proficiency. That's why most developers prefer using high-level languages for their projects.

  • LearnCPP – C++ tutorial that will guide you through writing, compiling, and debugging C++ programs, with lots of examples, regardless of your previous programming experience.
  • CPlusPlus – Tutorial that explain the C++ language from basics to advanced features of C++11.
  • CProgramming – Beginner-friendly tutorials for both C and C++, covering essential concepts and advanced techniques.
  • Google's C++ Class – Google's C++ tutorial is a great resource to learn C++ even if you have no prior knowledge.
  • Microsoft's C++ Language Reference – This reference explains the C++ programming language as implemented in the Microsoft C++ compiler.

Learn Visual Basic

Visual Basic, also known as VB, VB .NET, or Visual Basic .NET, is an object-oriented programming language developed by Microsoft. It is designed to run on the .NET framework, providing a powerful platform for creating software applications. Visual Basic is the successor to the original "Classic Visual Basic," which had its final version as 6.0, abbreviated as VB6. The "Classic Visual Basic" is an event-driven programming language that derives from an earlier programming language called "BASIC". "BASIC" stands for "Beginners All-Purpose Symbolic Instruction Code" and is known for its simple syntax, making it a beginner-friendly programming language. Although "Classic Visual Basic" is no longer supported, it still lives on in the form of "Visual Basic for Applications" (or VBA in short). VBA enables the creation of macros and scripts that can be executed exclusively within Microsoft Office applications like Word and Excel.

Learn Go

Go (or Golang), is an open source programming language developed by Google.

  • Go.Dev – The official Go documentation with all the info you need to get started. They also offer a playground to run Go code online.
  • Learn-Golang – Free interactive tutorial to learn Go.
  • LearnGolangOnline – Learn the Golang programming language with a simple tutorial that is suitable for both experienced and novice programmers.
  • GoByExample – Get a practical and immersive introduction to Go with annotated example programs.
  • GoPhercises – Free course to enhance your programming abilities and gain a deeper understanding of the Go language by building mini-apps.
  • Learn Go With Tests – Learn test-driven development with Go.

Learn Assembly

Assembly, also known as ASM, assembler language, or symbolic machine code, is a low-level programming language that was the first interface to assist humans in interacting and communicating with machines. Machine code is the first and most basic programming language that is closest to the processing hardware - the CPU. The Assembly language stands one level above machine code and is transformed by an assembler. The assembler converts human-readable instructions like "mov ecx" (also named assembly code or mnemonics) into numerical machine code instructions (binary code) composed of bits represented by 0s and 1s, such as 010011000. Every CPU architecture has its own set of machine code instructions, leading to diverse assembly codes with distinct syntaxes for each processor family, including x86, mos6502, and others. On the other hand, high-level languages use an interpreter (used by PHP, Ruby and Python) or compiler (used by C, C++ and C#) to execute the code, giving them the advantage of being compatible with a wide range of CPU architectures and operating systems. Nevertheless, the advantage of compatibility does come with a drawback - it leads to a decrease in performance speed when compared to assembler. Nowadays, Assembly is often used for educational purposes. Many developers choose not to learn this language because they prefer to program using high-level languages that are easier to write and maintain.

Learn Java

Java is a powerful programming language that enables the creation of sophisticated software applications. It's often misinterpreted as being the same as JavaScript. In reality, they are distinct languages with different syntax and purposes. JavaScript is used for web development, whereas Java is specifically created for software development and has syntax similar to C and C++.

  • CodeGYM – Access online Java programming course designed to help you master java skills through interactive lessons, suitable even for beginners with no previous knowledge of Java.
  • IBM Developer – Learn the basics of Java quickly with easy-to-follow tutorials that cover setting up your Java development environment and writing Java code step by step.
  • ProgrammingByDoing – Advanced Java tutorial.
  • Think Java – An introduction to Java, computer science, and programming. Starting with basic concepts and advancing to advanced object-oriented techniques. There is also an interactive version of this book hosted by Trinket, with an option to run the code examples in real-time.

Learn Ruby

Ruby is an open-source and all-purpose programming language that is processed on the server side, but in some cases can be used also on the client side. It is designed to emphasize simplicity and efficiency, enabling you to effortlessly develop innovative applications.

  • Ruby-Lang.org – The official Ruby tutorial to help you start quickly. You can also take an interactive lesson to learn the basics of Ruby.
  • RubyMonk – Discover Ruby idioms with free interactive tutorials right in your browser.
  • RubyGuides – Learn the basics of Ruby programming.
  • LearnRubyOnline – Free interactive tutorial for Ruby.

Learn SQL or NoSQL

SQL (Structured Query Language) is a popular programming language used for managing data in relational databases (In short, RDBMS - relational database management system). No-SQL (aka "not only SQL") is used for managing data in non-relational databases. Relational and non-relational database management systems offer more sophisticated and advanced approaches to organizing and managing data compared to basic database systems such as hierarchical databases (Windows Registry is one exmaple of that database type). In SQL databases, data is organized into tables, whereas No-SQL databases store data in key-value pairs, documents (JSON), and other collections. Some examples of SQL databases include MySQL, PostgreSQL, and SQLite, while examples of NoSQL databases include MongoDB and BigTable. To gain a comprehensive understanding of database types, and the differences between relational and non-relational database management systems, refer to the following detailed explanation.

  • SQLBolt – Interactive SQL Lessons
  • SQLTeaching – Interactive tutorial for learning SQL.
  • SQLTutorial – Learn SQL quickly and effectively with practical examples.
  • SQLZoo – Tutorial to learn SQL step-by-step.
  • Mode's SQL Tutorial – SQL tutorial for three levels of expertise: basic, Intermediate and advanced. No previous coding knowledge is required.
  • SelectStarSQL – Interactive book for learning SQL.
  • SQL-Easy – Learn SQL quickly with an easy-to-follow tutorial that enables you to practice as you learn.
  • SQLZap – A comprehensive SQL tutorial to learn the basics of SQL Interactively.
  • SQL-Practice – Enhance your SQL proficiency by tackling SQL query challenges.
  • SQL Police Department – Learn SQL while playing an online crime-solving game.
  • SQL Murder Mystery – Learn SQL while solving a murder mystery.
  • SQLiteTutorial – Step-by-step SQLite tutorial covers everything you need to know. SQLite allows desktop and mobile apps to use SQL database, without having the need for server.
  • MySQLTutorial – Learn MySQL quickly and easily.
  • PostgreSQLTutorial – Master PostgreSQL fast.
  • PostgreSQL Exercises – A comprehensive collection of interactive questions and explanations for mastering PostgreSQL.
  • SQLCourse – Basic and advanced SQL tutorials with easy-to-follow instructions and an online SQL interpreter for practice.
  • MongoDB University – Master MongoDB with video lectures, hands-on labs and quizzes, and earn MongoDB certification for free.
  • MySQL Documentation – The official MySQL documentation.

Learn Command Line

Knowing how to use the command line interface is a fundamental skill for developers. If you wonder what's the difference between CMD, CLI, Command Line, Shell, Terminal, PowerShell and Bash, we will try to explain it in short.

  • Shell, or "Command Line Interpreter", is a program that communicates directly with the operating system, whether it's Windows or Linux, by executing various commands.
  • Command Line or "Command Prompt" or "Command Shell" or CMD (an abbreviation for command) is the name of the most basic command line interpreter application for Windows that allows users to communicate with the operating system by through text-based commands.
  • Terminal serves as a host application for command-line shells. It acts as a bridge between the user and the shell, ensuring that the user's input reaches the shell and the shell's text-based output is displayed. The Terminal itself does not perform any processing.
  • CLI is an abbreviation for Command Line Interface, which is an interface that only receives text-based input from the keyboard, as opposed to GUI (Graphical User Interface) which receives input from the mouse.
  • Powershell is not just a shell but a scripting environment that is used mostly by administrators with many advanced capabilities that are not possible with regular command line, for example it can perform automated tasks, or accept and return .NET objects.
  • Bash (Bourne Again Shell) is the default shell for Unix/Linux-based operating systems. At a later stage, it also got a version for Windows OS called WSL (Windows Subsystem for Linux).

It is strongly advised to begin practicing using a DOS emulator, especially if you're a beginner. That way, you can avoid damaging your own machine. To become familiar with all commands, refer to this index that contains all cmd commands.

Learn Regex

Regular expressions, commonly known as regex or regexp, are not considered a programming language; rather, they are a group of characters used to define a search pattern to search within text. Regex is widely utilized by developers worldwide in their programming projects. Regular expressions are very useful and used in many programming languages, such as PHP, C#, Python, SQL, JavaScript, and more.

  • RegexOne – Master the art of regular expressions through engaging and straightforward interactive exercises.
  • RegexLearn – Learn Regex from scratch through comprehensive lessons and interactive exercises to strengthen your understanding. This tutorial provides a well-organized approach to learning, beginning with the fundamentals and gradually advancing to more complex concepts.
  • Regular-Expressions.info – A complete guide to understanding regular expressions covers all its aspects.
  • RexEgg – Website that provides advanced regex tutorials, tips and tricks.
  • Learn-Regex – Simple interactive tutorial to learn regular expressions.

Learn Git and GitHub

When working collaboratively, using a version control system (VCS) or source code management system (SCM) is essential. VCS is a DevOps tool that provides powerful team collaboration capabilities and enables seamless management of large codebases, resulting in a more efficient and effective development process. There are various version control systems (VCS) available, such as CVS, Subversion (SVN), Mercurial, Microsoft Azure DevOps (formerly Team Foundation Server), and Perforce, but the most popular one is Git, which was created by the creator of Linux. Git is an open-source distributed version control system (VCS) that tracks and manages all the modifications made to the codebase. It enables developers to effortlessly revert to older versions, providing a reliable solution for resolving conflicts and other coding issues that may arise. GitHub is an online platform that allows you to create and manage Git repositories, in other words it's built on top of Git. It allows developers to share and store their open source projects, allowing others developers around the world to contribute. All public projects adhere to GitHub's Terms of Service, unless the developer specifically specified a license such as MIT or so. There are also other cloud-based code repository platforms available as an alternative to GitHub including: GitLab, Bitbucket, Codeberg, Google Cloud Source Repositories, and AWS CodeCommit. It's recommended to get familiar with Open-Source.Guide, a guide for launching open source projects, ChooseALicense, A guide with information about licensing options, "Semantic Versioning", a set of rules for assigning and incrementing version numbers (check this cheatsheet as well) and KeepAChangelog to learn how to write readable changelogs.

  • Official Git Tutorial – The official tutorial to learn the basics of Git.
  • Pro Git Book – A comprehensive book to mastering Git.
  • Nulab's Git Tutorial – A simple Git tutorial for both complete beginners and intermediate users.
  • Set Up Git – A guide to setting-up git from Github official docs.
  • GitHub Training Kit – Useful GitHub cheatsheets from the GitHub Professional Services team.
  • GitHub Skills – Learn how to use GitHub with GitHub's interactive courses, specially designed for both beginners and experts.
  • Learn Git Branching – An interactive way to learn Git branching with step-by-step demonstrations.
  • GitImmersion – A guide that teaches the essential concepts of Git.

Learn Web Security

Discover free resources that will empower you to master essential cybersecurity concepts and gain the necessary knowledge and skills to fortify your web application against hackers. The OWSAP organization have made a list of the top and critical web security vulnerabilities you should focus on. Beside the online platform listed below you can also find a curated list of vulnerable environments in the vulnerable web applications directory by OWSAP. While some of these environments are available online, others require manual deployment on your server or local computer. Utilizing them can help sharpen your hacking abilities and gain valuable hands-on experience.

  • Imperva Learning Center – Comprehensive security learning center. Gain valuable knowledge on safeguarding your computer, websites, applications, and APIs from a wide array of security risks and vulnerabilities.
  • Cybrary – A comprehensive education platform that provides training for developers to build their cybersecurity skills with a wide range of interactive courses and cutting-edge tools by security leading experts. You can also test your skills with hands-on labs based on real-world cybersecurity scenarios.
  • PortSwigger Academy – Free online training platform dedicated to web application security. Learn about security vulnerabilities and how to safeguard your apps against them. This platform offers hands-on practice exercises where you can apply your knowledge in real-time.
  • HacksPlaining – Interactive security learning platform that will teach you how to protect your web apps from intruders by letting you hack a demo vulnerable web applications. Gain experience with real hacking right in your web browser.
  • TryHackMe – Interactive cyber security platform that will teach you how to hack by compelting hacking challenges.
  • Hacker101 by HackerOne – A free web security learning platform by HackerOne to build your skills with educational materials for all levels. Learn with video lessons, guides, capture the flag challenges and resources. We highly recommend exploring HackerOne's knowledge center, which offers a plethora of articles designed to enhance your understanding of web and app security.
  • HackTheBox (Free Plan) – Cybersecurity education platform to learn hacking for every skill level. Begin your journey into cybersecurity by taking advantage of a wide range of expert courses that cover offensive, defensive, and general fundamentals of cybersecurity. Enhance your cybersecurity capabilities through interactive, hands-on training on live targets, all within a browser-based environment.
  • DefendTheWeb – An interactive platform for cybersecurity that covers all aspects of security and teaches how to protect your apps from hackers. It provides real and detailed explanations of each attack method. Furthermore, there are more than 60 challenges available for you to put your knowledge to test in real-life scenarios.
  • HackThisSite – A free hacking learning environment that offers a wide range of educational materials and tests to help users enhance their hacking skills. You can find helpful articles about web hackings and practical hacking challenges for various skills and tutorials to solve them.
  • Wizer-Training – Cyber security awareness training platform with 10+ free courses to learn the basic of security. You can start with learning the OWASP 10 - top web security vulnerabilities.
  • Kontra – Get free interactive training on OWASP Top 10 web vulnerabilities with modules to help developers understand, identify, and fix security issues in their applications.
  • OWASP Attacks – Learn about wev security vulnerabilities. We also advice you to check the OWASP Cheat Sheet Series which is a comprehensive repository of expert insights on application security. In addition, it's recommended to check OWASP Web Security Testing Guide (PDF version) for valuable information on testing the security of web applications.
  • OWASP Juice Shop – A web application that has intentionally injected with known security vulnerabilities to practice and perform security trainings, awareness demos, and CTFs. You can start with the online demo.
  • Varonis – Free comprehensive security courses by renowned cybersecurity top experts.
  • OpenSecurityTraining – Free cybersecurity training program that provides learning materials covering three major topics: system security, secure coding and malware analysis.
  • CryptoHack – Engage in exciting cybersecurity training that allows you to master modern cryptography through a series of interactive puzzles and challenges.
  • OverTheWire – Discover an exceptional platform designed to make learning and practicing security concepts fun and interesting through fascinating games. To play the games you'll have to connect to the server via SSH.
  • Root-Me.org – Online education platform to learn security concepts and train your hacking skills by completing challenges.
  • CTFLearn – Begin your journey into the world of cybersecurity and ethical hacking with an easy-to-use platform that provides Capture the Flag (CTF) competitions to help you sharpen your skills.
  • VulnHub – Collection of vulnerable environments for practicing on Linux using a virtual machine.
  • Invicti Learn – Provides comprehensive information on web vulnerabilities and guide you on how to detect, avoid, and mitigate them. Check the full index from the left.
  • HackTricks – A comprehensive wiki with invaluable hacking tricks and cutting-edge techniques.
  • Red Team Notes – A comprehensive online book designed to provide a deep understanding of numerous cybersecurity concepts. Explore the execution and workings of various cyberattacks and techniques, as well as the intricacies of writing malware and more.
  • SecurityBlue – Explore free cyber security courses to gain knowledge on various defensive security topics.
  • Xargs.org – Detailed demonstration of TLS v1.3 connection. Demonstration of version 1.2 is also available.
  • Excess-XSS – An in-depth guide to cross-site scripting.
  • XSS-Game – Learn the cross-site scripting vulnerability through an interactive game by Google.
  • HowHTTPS.Works – A comic that explains HTTPS in a detailed yet entertaining way. Other comics are available for learning how DNS works and how DNSSEC works.
  • Mozilla Web Security Cheat Sheet – A helpful guide for creating secure web applications.

Learn Server Management

Learn how to manage servers. There are multiple web servers available, including Apache, Nginx, Microsoft IIS, LiteSpeed Web Server (LSWS), and Lighttpd. However, the two most widely used web servers are Nginx and Apache, both of which are compatible with both Linux and Windows servers. Nginx (pronounced "engine X"), is an incredibly fast and robust open-source software that utilize an event-driven architecture, and is primarily designed for web serving but can also be utilized as a reverse proxy, load balancer, mail server or HTTP cache. The Apache HTTP Server is a powerful open-source web server that provides unparalleled speed and customization through its innovative modules' architecture. You can learn the difference between them here.

  • ServersForHackers – Learn the necessary skills for both server development and production. Learn how to configure and backup servers, how to secure your servers, how to use containers such as Docker and more...
  • LinuxJourney – An in-depth guide to Linux and networking with exercises and quizzes.

Learn WordPress Development

Whether you are just starting out with WordPress or looking to expand your knowledge, these guides provide step-by-step instructions and helpful tips to help you enhance your WordPress skills and create even more dynamic websites. You can even learn how to build your own plugins, themes, widgets and other WordPress components. You can also try experimenting with WordPress on your computer by setting up a local server or testing it on your browser with WordPress Playground.

  • WordPress Learning Center – The official WordPress learning hub. You can also check the WordPress Codex, and WordPress Developer Resources, that provides comprehensive guidelines and valuable references for developers looking to modify, expand, or make contributions to WordPress. Additionally, you can find videos tutorials in WordPress.TV.
  • Wpza (Free Plan) – Informative and insightful WordPress guides, showcasing essential tips and tricks and providing interactive demonstrations and detailed guides on utilizing specific functions.

Learn Mobile Development

Learn how to develop applications for Android and iOS mobile operating systems. Android applications can be developed using either Java or Kotlin. Although Java is a widely used programming language and was initially the primary language for developing Android apps, Google now strongly advises using Kotlin for writing Android applications. Applications for iOS can be developed using the Swift programming language.

  • Android.com – The official Android developers learning center with training courses for both beginners and experienced developers.
  • Apple.com – Learn how to develop compelling apps for iOS.

Learn DevOps

DevOps is a term made up of "development" (Dev) and "operations" (Ops). The term refers to a strategy that allows for the efficient and timely release of a product to the market while maintaining the highest possible level of quality. By implementing a variety of productivity enhancement techniques, like automation of tasks and utilization of efficient team collaboration tools, the product can be expedited and enhanced in terms of both quality and speed. Popular and trending DevOps tools are GitHub, Docker, Kubernetes (or K8s), and OpenShift.

  • Edureka’s DevOps Course – Free course for beginners to learn DevOps fundamentals with a certificate provided at the course completion.
  • KodeKloud (Free Plan) – Online hands-on training platform to enhance your DevOps skills in cutting-edge Cloud and DevOps technologies. Choose from a wide range of courses designed to provide practical learning experiences and develop your expertise.
  • Google Cloud Tutorials – The official Google Cloud quickstarts and tutorials.
  • Qwiklabs – Acquire practical experience with Google Cloud applications while earning badges by completing quests and games.
  • AWS Educate – Amazon offers a free learning platform providing training and resources to help you initiate your cloud journey and enhance your cloud expertise.

Learn Data Science/Analysis

Data science involves the extraction and analysis of data to uncover valuable insights for businesses.

  • DataQuest (Free Plan) – A learning platform to help individuals acquire new skills through project-focused learning. It provides free courses in data analysis, engineering, and data science, with interactive lessons and practical exercises.
  • Kaggle – Complete courses to gain the essential skills required for independent data science projects and obtain certificates upon successful completion of the courses. You can learn Python, SQL, machine learning, data visualization and more.

Learn Artificial Intelligence or Machine Learning

Many people often mistake artificial intelligence and machine learning as being identical, however, this assumption is incorrect. Artificial intelligence (AI) is a type of computer software that aims to enable machines to "think" and process data similarly to how humans do, while machine learning (ML) is a common method for achieving artificial intelligence, by producing models from massive amounts of data, often reaching into the billions. In summary, machine learning is a subset of artificial intelligence. To avoid any confusion, it's important to understand the distinction between machine learning and its related terms such as deep learning and neural networks. Familiarize yourself with the dissimilarities by reading about the differences between machine learning, deep learning and neural-networks.

Learn Graphic Design

Learn many topics in graphic design such as 3D rendering, digital imaging and mastring graphic design programs such as Figma, Adobe Illustrator, Adobe Photoshop, and Adobe InDesign.

  • ScratchAPixel – A user-friendly educational platform that guides you through the world of computer graphics with easy step-by-step lessons.
  • Canva's Graphic Design Course – Learn the fundamentals of graphic design with Canva's comprehensive tutorial.
  • Sketch's Courses – The official courses to learn how to use the Sketch design software.
  • Framer's Academy – Learn how to design professional websites with Farmer.

Learn UX/UI Design

UX stands for "user experience", while UI stands for "user interface". The process of UX design involves designers focusing on the visual aspects of websites or apps, ensuring that users have a seamless experience when interacting with them. The UX process involves several stages, including market research, prototyping, and testing. UI refers to the actual visual elements that the user interacts with.

  • Google's UX Design Certificate – Online course by Google to learn the foundations of UX design and give you all the skills required to get your hob as UX designer.
  • Figma's Design Courses – Access free tutorials on a variety of design topics by the design giant Figma.
  • UXDesignInstitute – Learn the essential concepts of UX design for free with a 7-lesson course.
  • UXWritingHub – Master UX writing and content design completely free of charge.
  • KickassUK – UX education platform that offers free course to start your journey as UX designer.
  • HackDesign – Free interactive design course created by a design expert.
  • CareerFoundry's UK Design Course – Free short course to get introduction to UX design. You can also find a free course to UI design.
  • LearnUK – Free courses to learn UX and UI tools.
  • UXDatabase – Free course to learn product design even if you are a complete beginner.
  • BaselineHQ – Free design bootcamp created by expert educators.
  • LearnUIUX – Become a UX Designer with no prior experience or background.
  • ColorAndContrast – Discover a comprehensive and interactive guide that will expand your knowledge of color and contrast theory.
  • Google Fonts Knowledge – A library of typography guides.
  • DesignLab Adobe XD 101 – 7-day course covering the main functions of Adobe XD.
  • UXPin – Free e-books to learn UX concepts like prototyping, wireframing, mockups, and usability testing.

Learn Algorithms & Data Structures

It is very important and almost required by every developer to understand common algorithms (especially array sorting and search algorithms f.e. binary search, bubble sort, heap sort, and quicksort) and data structures, which are ways to store and organize data (such as stack, queue, hash table and tree). Furthermore, it is crucial for professional developers to have a deep understanding of asymptotic analysis, which involves evaluating the complexity of algorithms to determine how their performance is affected by the size of the input. For instance, as the input size grows, poorly designed algorithms will result in decreased performance. To represent the algorithm's complexity, there are three popular asymptotic notations: Big-O, Big-Omega and Big-Theta. The "Big-O Notation" is the most crucial and popular notation used to describe the worst-case scenarios of algorithms using the big letter O such as O(1), O(N) or O(N2) (the lower the complexity, the better the performance). The "Omega (Ω) Notation" is used to describe the best-case scenarios and the "Theta (Θ) Notation" for average-case scenarios.

  • AlgoDaily (Free Plan) – A platform to learn algorithms, data structures, systems design, and more through coding challenges and interactive courses with a focus on visual experience.
  • Javascript Algorithms – A comprehensive collection of JavaScript-based examples showcasing numerous popular algorithms and data structures.

Learn Design Patterns

Design patterns are templates of optimal and tested code solutions that can be reused to efficiently solve common problems and tasks encountered during software development. Design patterns are not just code samples that can be copied and pasted into your program, but rather an optimized approach to solving problems that can be implemented in all programming languages. The design patterns we use today were invented by a group of four individuals known as the "Gangs of Four (GoF)", who created a comprehensive set of 23 software design patterns called "GoF Design Patterns". These 23 design patterns can be classified into three main types: creational, structural, and behavioral (you may face more types such as architectural or concurrency). The "Creational" patterns are about creating new objects or classes, "Structural" patterns focus on the structure of your code and "Behavioral" patterns mostly focus on optimized ways for interaction between objects.

  • Patterns.Dev – Collection of design patterns for Javascript and Javascript framework such as React, Node.js, and Vue.js.
  • Refactoring.Guru – A comprehensive design pattern guide featuring breathtaking visuals, designed to accelerate and enrich your learning experience.

Development Communities

Online development communities/question and answer sites that allow developers to help each other by asking questions. Connect programming communities to learn how to code, develop your development skills, solve coding problems with the help of professional developers around the world, or share your own programming knowledge with others.

  • StackOverFlow – A trusted and popular global web development community with over 4.7 million programmers ready to assist you with your programming issues.
  • Reddit – Subreddit (thread or category within the Reddit website) related to programming.
  • Dev.to – A huge community of over 1 million esteemed software developers who support and uplift one another by exchanging their wealth of knowledge in their exclusive development journal.
  • FrontEndFront – Feed of articles from front-end developers. Share your work, or interesting coding stuff with the world or ask questions related to front-end development.
  • SitePoint Forums – Feed of articles from front-end developers. Share your work, or interesting coding stuff with the world or ask questions related to front-end develoment.
  • WebDeveloper.com Forums – A community where you can discuss with others developers to become a better developer and extend your programming skills.
  • CoderWall – Web development discussion to get coding tips, inspired by others projects, or find solutions to coding bugs.
  • ProgrammersHeaven – Collaborate with fellow programmers to seek advice and assistance on development-related inquiries.
  • FreeCodeCamp Forum – A global web development community to learn how to code, or solve coding problems.
  • Daily.Dev – A professional network that empowers developers to stay informed and expand their expertise by curating a personalized news feed tailored to their specific interests.

Code Samples

Explore a vast array of code examples that will enhance your development journey and your creativity by showcasing how other developers tackle various coding challenges.

  • DotNetPerls – Collection of tested code examples for many languages (including C#, VB. NET, Python, and Go) with explanations and code side by side for easy understanding.
  • Snipplr – Collection of over 60k code snippets.
  • HotExamples – Search code examples in over 1 million open source projects.
  • Microsoft's Code Samples – Discover a huge list of code samples to speed up your learning of programming concepts.
  • WPCode Snippets Library – Enhance your skills and boost your productivity with a collection of over 700 expert-curated WordPress code snippets.
  • CodeToGo – Enhance the learning experience of JavaScript by exploring up-to-date, accurate and ready-to-use snippets of JavaScript code.
  • 30SecondsOfCode – A large collection of over 500 short code snippets and practical examples to help web developers improve their skills.
  • CSS-Tricks's Snippets – A huge collection of code snippets for many programming languages, including HTML, CSS, PHP, JavaScript and jQuery.
  • Josh W. Comeau Snippets – Short snippets for React HTML and JavaScript.

Find Free Courses

Online platforms that provide comprehensive listings of free courses offered by various education providers.

  • Hackr.io – Easily discover free curated courses and tutorials from popular learning platforms. Simply choose the language you wish to learn, and use the filter in the left sidebar to show only free courses. You can also get programming tips when you open a new tab, using their "Programming Tips" chrome extension.
  • Coursesity – A platform that enables you to effortlessly explore over 50K courses offered by the greatest learning platforms. Find the right online courses for you.
  • ClassCentral – A platform that curates and aggregates courses from a wide range of providers, offering you to find the best courses suitable for you. This platform offers a massive list of free courses from tech giants, and collection of free certificates courses.

Coding Style Guidelines

Coding style guidelines, coding standards or coding conventions are set of rules and best practices to ensure the code is written in a clear and human-readable way as much as possible. Following these guidelines is not mandatory, but it is highly recommended for ensuring the maintainability and consistency of the codebase, particularly when collaborating with a team of developers. There are different opinions about the best coding style for each language, and there is no single best standard. You should choose the one that seems right to you (you don't have to acquire all standards) and stick with it - consistency is the key here.

Cheatsheets

Cheat sheets (or cheatsheets) are small documents that summarize important information into a compact format, making it easy to read and remember. In the past they were these small notes used by students for cheating in exams. In the world of programming, cheat sheets are invaluable resources that offer a quick reference of the syntax, methods, concepts, and commands used in a particular programming language or framework. Making this information easily accessible is extremely valuable in streamlining and optimizing the development process.

  • Codecademy Cheatsheet – A collection of cheatsheets created by leading experts to learn a wide array of topics and subjects in the realm of computer science.
  • Cheat-sheets.org – Discover over 6K cheat sheets for numerous programming languages and computer science subjects.
  • Cheatsheet.wtf – A website that offers cheat sheets for different programming topics and concepts to help developers learn new languages more easily.
  • OverAPI – A huge collection of computer science cheetsheets.
  • Big-O Cheatsheet – A complexity chart of common algorithms.
  • Grid.Malven – A CSS grid layout cheat sheet.
  • Big-O Notation Cheatsheet – A big O notation cheatsheet.
  • ZeroToMastery's Cheatsheets – Collection of useful cheatsheets for popular programming languages.
  • Cheatography – A large collection of programming cheat sheets.
  • QuickRef – Collection of cheatsheets for developers.
  • DevHints.io – A huge collection of cheat sheets for web development.
  • HTMLCheatsheet – Comperhasive cheatsheets for HTML, CSS and JS.
  • Modern JavaScript Cheatsheet – An essential JavaScript cheat sheet created to assist developers to get familiar and adapt to modern JavaScript codebases.
  • Awesome-Cheatsheets – Collection of useful cheatsheets for popular programming languages.