Resources: Learning web languages the modern way
334 words
· 2 minute read
Last updated: Sep 26, 2022
· Published: Oct 18, 2021
Programming languages that are used for web development have changed significantly over the latest years. This means that there exist many old guides that teach outdated knowledge (their solutions generally still work, but often, you “would not do it this way” anymore). For beginners, this is confusing & makes it harder to get a mental model of web development. This document is an attempt to collect resources that teach the respective language the “modern” way.
HTML&CSS1
Example for significant changes: Introduction of
display: flex
&display: grid
modes for creating layouts. Previously, people would use thefloat
attribute for this.
- https://developer.mozilla.org/en-US/docs/Web/CSS
- https://css-tricks.com/where-do-you-learn-html-css-in-2020/
- Common CSS Layout Patterns: https://every-layout.dev/layouts/ & https://web.dev/patterns/layout/
- Focus on the design aspects: https://www.refactoringui.com (paid, costs 99$ + tax)
JavaScript
Example for significant changes: Arrow functions &
let
/const
variable types. These changes make scoping (this
scope & variable scope) much easier. Previously, people would use.call()
and.bind()
for scopingthis
, and generally get confused aboutvar
scope. Life is much better now.
- https://eloquentjavascript.net/ (written by the creator of CodeMirror and ProseMirror)
- https://github.com/thejsway/thejsway
PHP
Example for significant changes: PHP got more Java-like (in a good way). We now have types that guarantee type safety even during runtime.
- https://phptherightway.com/
- https://github.com/PatrickLouys/no-framework-tutorial (or the more detailed book Professional PHP, that followed from the GitHub-Tutorial)
Python
Recommendation: Do not bother with virtualenv, pip and
requirements.txt
until you really know what you are doing. Instead, use the package manager Poetry to install third-party packages. Poetry finally solves most of Python’s packaging & dependency mess.
- https://python-poetry.org/
- https://cjolowicz.github.io/posts/hypermodern-python-01-setup/
- Effective Python: 90 Specific Ways to Write Better Python (some code samples here: https://github.com/SigmaQuan/Better-Python-59-Ways)
- Comprehensive Python Cheatsheet
- The Flask Mega-Tutorial
- Django
Computer Science in General
Yeah, I know, HTML&CSS are not programming languages. HTML is a markup language & CSS is a style sheet language. But when talking of programming languages in the web, chances are very high that discussion is about these two languages, too. ↩︎
- You are in control
- My Favorite Shortcuts for VS Code
- Customizing my shell: From bash to zsh to fish
- JSON5: JSON with comments (and more!)
- jq: Analyzing JSON data on the command line
- Get Total Directory Size via Command Line
- Changing DNS server for Huawei LTE router
- Notes on Job & Career Development
- Adding full-text search to a static site (= no backend needed)
- Generating a random string on Linux & macOS