Goal

Gain familiarity and experience with web development through an infrastructure oriented software engineering lens (more on this in a later post).

Previously

The previous installment in this series provided a bit of background and introduced a select few terms. In this post, I will focus on a few practical things I think might be useful for a beginner looking to try out some tools and acquire basic skills. I am a big believer in project-based learning, and so I will provide some ideas that might be good ways to put the knowledge to practice.

A short word

The information provided here is purposefully limited. For a beginner, infinite choice and open endedness can be a hindrance to the learning process. Also, notably missing are some explanations and explicit mentions of assumptions made when composing this post. My hope is to elaborate on these in the future, and in the meanwhile to provide a self service “get up and running” reference.

Theory

  • Read the Wikipedia entries for the terms “Website” and “Web page”. These describe the parts of the Internet that we interact with the most.
  • This video does a nice job explaining some of the related key elements and concepts as well.

Tools

  • “Git and GitHub for Beginners - Crash Course” - an excellent and comprehensive introduction to one of the most commonly used tools, git. This video is easy to follow along, and covers a few useful fundamental commands and resources on how to get started from scratch.
  • For Microsoft Windows users, the Windows Subsystem for Linux seems to be a useful way to have a Linux based development environment with minimal hassle. This is a straightforward guide on how to get it setup.
  • Selecting a text editor is a personal choice, which should ideally be driven by convenience, preference, and using the right tool for the job. It doesn’t really matter. That said, I personally enjoy vim and have used some variant of it almost daily for 20 years now. This playlist on YouTube is an tremendous resource for anyone who wants to learn how to use vim.
    • If you do go down this path, I recommend LazyVim eventually.

Build something!

  • A website! With GitHub pages one can host a static website for free. Their initial setup intructions are a great starting point, especially once the materials in the “Theory” section are understood.
  • After getting the hang of the development flow, i.e. writing files, committing changes to the Git repository, publishing the static pages, etc., one might find a static site generator more powerful and interesting. My current favorite is Hugo.