Learn current web development without proprietary software
This is a self-study guide for learning the current (and conventionally standard) web development technologies without compromising on freedom. It should help take the reader from no coding experience to being able to get work as quickly as possible and follow with recommendations on refining and progressing your skills as an intermediate.
The Basics
These are the fundamentals all web developers should know, regardless of specialization.
With just the fundamentals, you may be able to get a relatively lower-paying job or an internship, so it's worth starting your job hunt as soon as possible if only to familiarize yourself with the process, which stacks are in demand, and how much different kinds of work pay. You'll also need to be able to differentiate between bad job postings and reasonable ones.
HTML5
CSS3
Basic JavaScript Programming, Algorithms and Data Structures
Bash Basics
Bash is an acronym for "Bourne-Again Shell," a Unix shell and command language written by Brian Fox for the GNU Project as a libre software replacement for the proprietary Bourne Shell. The Free Software Foundation funded the development of Bash directly, with Brian Fox working as an employee.
Since GNU/Linux runs the majority of web servers, you should be comfortable in a Unix environment. Further, there are many powerful tools that only have a command line interface, and you'll be able to automate mundane tasks with Bash scripts. At this stage you should learn command basics (options, arguments, getting help), filesystem basics and navigation, basic package management, pipes and redirects, and basic scripting.
Version control with Git
Git was created by Linus Torvalds in 2005 for the development of the Linux Kernel. Git is the most popular version control system. Version control makes it easier to collaborate with other developers, enables you to work on different features concurrently, and lets you quickly scrap bad ideas. Once you know version control, you may be able to make small contributions to libre software projects.
HTTP Basics
Specialization
Front-end
ES6
npm
A Front-end JavaScript Framework
- React.js
- Angular
- Vue.js
Back-end
Back-end Programming Language
JavaScript
Python
Learn a Back-end Framework
Python
- Flask
Devops
Beginner-friendly libre software projects
Here are some libre software projects that are friendly to first-time contributors.