I built this list for a friend who was looking to transition into web development from another field, and I realized that it could be useful to others who had some experience with the field but were looking to transition to web development. This list is by no means exhaustive, but it might give you a place to start if you're looking to level up. If there is anything on this list that you don't know about, then it is worth looking into, but there are many things not touched on this list that you may want to learn as well.
Git is a huge topic, and you really only need to know some of the common workflows.
- Basic structure (commits/branches/refs)
- Pull Requests
- cherry pick
For the first couple years of being a backend web developer, I forgot what
REST stood for in interviews and still got the job. Even though I had
REST APIs on my resume, and was applying for jobs building them. A lot of the time, when job requirements refer to
REST they are realy only talking about some standard web server conventions, and not a complete understanding of REST concepts
- REST/HTTP basics
- methods (e.g GET/POST/DELETE)
- status codes (e.g 404 Not Found, 301 Moved Permanently)
- route conventions (e.g
- ports (e.g localhost:5432)
- MVC (model/view/controller) patterns and basic best practices
- Best practices for interacting with a database server-side
- Building basic APIs
- Testing, using a framework from your target language. Unit and Integration
- Package manager from your target language
- Build tools from your target language (often the same as the package manager)
- Conventions for building APIs that service large SPAs (single page applications)
- Websocket Programming (not the nitty gritty, just how/when it might be done and how you might do it with a library)
Some SQL basics can take you a very long way. There are plenty of other kinds of databases, but I wouldn't focus on them until you have a good grasp of SQL.
- Simple SELECT queries
- creating tables
- The differences between Postgresql/SQLite/MySQL
- Other kinds of databases, like graph databases
- data normalization
Docker is just like git. Often, it is listed as a requirement, but in reality you don't need to understand the whole thing, just how to get it running and use containers.
- Why containerize
- Work on/with an application running inside of a container
- Port mapping (accessing ports on the docker container)
- Disk mapping (making a folder on your machine accessible to the container)
- Be able to write a simple Dockerfile
- Know how to use docker compose
Other things that would be good to have some knowledge/insight in.
- Chrome/Firefox inspectors, for things like debugging requests.
- Cloud providers, like AWS/Google Cloud
- Kubernetes (kubernetes and Docker play very nicely together)