Getting Started in Web Development: Essential Tips for Beginners

Dr. Adam Nielsen
4 min readAug 29, 2024

--

Clean Workspace

I’ve been a self-taught web developer and freelancer from Germany for nearly a decade. If I could go back and give myself some advice when I first started, these are the seven tips I would share:

1. Use GIT from Day One

In the early days of my projects, I used to manually upload files to my server via FTP clients like Filezilla. This often led to missed uploads or overwriting the wrong files. Discovering GIT was a game-changer. With GIT, you can automate your workflow so that every time you push changes to your repository, the files are automatically deployed to your server. If you’re using a VPS with PLESK, there’s even a built-in GIT tool to make this process seamless.

2. Adopt a Framework Early

Learning a framework like PHP’s Laravel can save you a lot of time and frustration. While it’s tempting to code everything from scratch, constantly reinventing the wheel leads to errors and slows down progress on your main project. Frameworks provide a solid foundation, helping you with easily writing tests, allowing you to focus on building unique features rather than debugging common issues.

3. Implement Tests Early

Adding tests to your application is crucial, even in the early stages. Writing unit tests, integration tests, and end-to-end tests ensures that your code works as expected and helps prevent bugs from creeping in as your project grows. Automated testing also makes it easier to refactor code with confidence, knowing that your tests will catch any issues that arise. Starting with a testing mindset will save you time and headaches in the long run.

4. Use Linux for Development

When working with Docker for local development, using a Linux distribution like Ubuntu makes life significantly easier. Linux tends to run tests faster and offers more straightforward troubleshooting for web servers — skills you’ll definitely need as a self-sufficient developer. Learning Linux basics, including file permissions, can be incredibly beneficial.

5. Switch to a US-Based Keyboard Layout

Switching from a German to a US-based keyboard layout was a game-changer for me. On a US keyboard, essential characters like ;:<>/\|{}[] are easily accessible, which is not the case on a German keyboard without using AltGr. For quick access to umlauts, I recommend using the EurKEY layout. On Ubuntu, you can easily switch by typing setxkbmap eu in the terminal.

6. Master the i3 Window Manager

The i3 window manager has revolutionized the way I work with multiple windows. It allows me to efficiently manage my workflow using just the keyboard. I no longer lose track of how many browser windows I have open, and switching between different workspaces is a breeze. The productivity boost I’ve experienced with i3 is remarkable.

7. Use a Reliable Email Service

When renting a VPS, sending emails directly from your server’s IP often results in them landing in spam folders. To avoid this, I highly recommend using a dedicated email service like [Postmark](https://postmarkapp.com/They provide a robust API that lets you track when an email is sent, opened, received, or blocked. Handling this on your own can be incredibly complex, so it’s worth the investment. Postmark offers 100 free emails per month, with pricing starting at $15 for 10,000 emails. This is a small price to pay for ensuring your emails reach their intended recipients and don’t end up in spam folders.

8. Use a CDN for Faster Content Delivery

As your web application grows, optimizing the delivery of static content becomes crucial. A Content Delivery Network (CDN) like Bunny.net helps by distributing your static files — such as images, CSS, and JavaScript — across multiple servers worldwide. This ensures that users can access your content quickly, no matter where they are located. Using a CDN not only improves load times but also reduces the load on your VPS, allowing it to handle dynamic requests more efficiently.

9. Automate Your Backups

Regular backups are essential to protecting your data, especially as your project scales. I perform daily backups of my database and use the Laravel Backup package to automate this process. This package makes it easy to schedule backups of your database and other important files, ensuring you always have a recent copy of your data available in case of an emergency.

10. Use External Storage to Offload Data

Storing all your data on your VPS can create bottlenecks, especially when it comes to backups. Large data sets, such as 10 GB of files, can be difficult to manage and can slow down your server significantly when you attempt to zip and transfer them to create a backup. To mitigate this, I use external storage providers like Bunny.net to immediately store critical files — such as invoices and uploaded images — both on my VPS and externally. This setup ensures your data is secure without putting unnecessary strain on your VPS. In addition, when storing the uploaded images to bunny.net, you can immediately make use of the CDN feature.

If you’re not able to write code that perfectly synchronizes everything to external storage (which can be complex when dealing with file movements or deletions), you should still use external storage. Backing up large amounts of data directly to an external provider won’t slow down your VPS, though it may incur some additional costs.

--

--