Learn current web development without proprietary software

From LibrePlanet
Jump to: navigation, search

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

HTML, hyper text markup language, is the skeleton of web pages. The ability to write HTML is the ability to write simple web pages.

<!--- A very simple HTML example. --->
<h1>
  This is a heading.
</h1>
<p>
  This is some content.
</p>

You can learn HTML at freeCodeCamp.

CSS3

CSS is used to style and animate HTML elements.

You can learn CSS by finishing freeCodeCamp's Responsive Web Design Certification

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.

  • linuxcommand.org by William E. Shotts. Although opinionated, it is an approachable resource for beginners.

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

You will need a basic understanding of how HTTP works.

Front-end

ES6

npm

A Front-end JavaScript Framework

  • React.js
  • Angular
  • Vue.js

Back-end

Back-end Programming Language

JavaScript

Python

Python is one of the most popular scripting languages of the Internet.

https://imgs.xkcd.com/comics/python.png

With Python, you can create dynamic web pages, web pages that change. For example, a web page that shows the time of day or only shows information to a logged in user.

Learn a Back-end Framework

Python

Devops

Being "Full Stack"

Beginner-friendly libre software projects

Here are some libre software projects that are friendly to first-time contributors.