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.
- 1 The Basics
- 2 Front-end
- 3 Back-end
- 4 Devops
- 5 Being "Full Stack"
- 6 Beginner-friendly libre software projects
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.
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.
CSS is used to style and animate HTML elements.
You can learn CSS by finishing freeCodeCamp's Responsive Web Design Certification
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.
- git - the simple guide by Roger Dudler. An approachable overview of basic git usage.
You will need a basic understanding of how HTTP works.
Back-end Programming Language
Python is one of the most popular scripting languages of the Internet.
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
Being "Full Stack"
Beginner-friendly libre software projects
Here are some libre software projects that are friendly to first-time contributors.