---
contentId: da0b1718-8c8c-4c99-bacc-72ec11d55317
title: "For a Friend: From Infrastructure to Web Development in 2025"
description: "Guidance for transitioning from infrastructure to web development with practical steps and resources. Everything you need to know to start your journey."
date: 2024-11-28
---

After a meetup where I delivered a talk on **optimistic UI**, a friend approached me with an interesting query. He primarily works in infrastructure, dealing with **Linux**, **Terraform**, and **Kubernetes**, and dabbled in **web development** years ago. He asked, "I'd like to get back into web development. Where should I start?"

The question struck me as both interesting and highly relevant. Web development is a vast and sometimes perplexing field from the outside. It evolves rapidly, with new tools, libraries, frameworks, and best practices emerging constantly. It can seem daunting, especially the **JavaScript** world, where **JS fatigue** is a common challenge.

> [!IMPORTANT]
> Regardless of your background, this advice applies universally. Remember, though, this is based on my experience, vision, and opinion, not an absolute truth.

Before I offer any advice, it's crucial to understand the context. How my friend intends to use web development will influence the recommendations. I see two main paths:

1. **Web development as a hobby**: Creating personal projects, learning, and having fun.
2. **Web development as a career**: Working in a company to build products and collaborate with a team.

The approach also varies by location, as different countries have distinct markets and favored tools. Here, we're focusing on creating websites or web applications, not developing tools or libraries.

In recent years, I've experimented with numerous tools, libraries, frameworks, and languages. Finding the right stack can be challenging and time-consuming. Guidance at the start of your journey can save significant time and prevent spreading yourself too thin amid the constant influx of new tools.

Let's start with the essentials.

## The basics

The foundations of web development are **HTML**, **CSS**, and **JavaScript**. Here are some resources to learn them:

- [Apprendre l'HTML](https://youtu.be/oEAuNzWXRjM?si=CtsGceAM_z3WNfGz) with Grafikart.
- [Découverte du CSS](https://youtube.com/playlist?list=PLjwdMgw5TTLVjTZQocrMwKicV5wsZlRpj&si=J4vZKiGb3LBjiDks) with Grafikart.
- [Apprendre le JavaScript](https://www.youtube.com/playlist?list=PLjwdMgw5TTLXgsTQE_1PpRkC_yX47ZcGV) with Grafikart.
- [HTML & CSS Crash Course Tutorial](https://youtube.com/playlist?list=PL4cUxeGkcC9ivBf_eKCPIAYXWzLlPAm6G&si=QTwFntwwlQ3pbkQ-) with the Net Ninja.
- [Modern JavaScript Tutorial](https://youtube.com/playlist?list=PL4cUxeGkcC9haFPT7J25Q9GRB_ZkFrQAc&si=RzCATnLejIdUzMgf) with the Net Ninja.
- [JavaScript DOM Tutorial](https://youtube.com/playlist?list=PL4cUxeGkcC9gfoKa5la9dsdCNpuey2s-V&si=kX5SKcV3x4Tc3BpD) with the Net Ninja.

These resources will provide a solid foundation. Don't spend excessive time on them, while fundamentals are essential, they are just the starting point. Keep the **Mozilla Developer Network (MDN)** as your go-to reference guide.

## Backend or frontend

Many newcomers prefer to explore frontend frameworks like **React**, **Vue**, or **Angular**. Others may opt for a **Node.js** backend with **Express**, leveraging their comfort with JavaScript.

However, neither path is ideal at the start. Using a frontend framework too early or diving into the Node.js ecosystem can be overwhelming. My recommendation is to start with **PHP** and **Laravel**.

> [!NOTE]
> Laravel is a web application framework with an expressive, elegant syntax, allowing you to create apps effortlessly.

Forget any preconceived notions about PHP being outdated or cumbersome. The language has evolved significantly, making PHP development comfortable and efficient.

Here's why PHP and Laravel are recommended:

- **Laravel's documentation** at [laravel.com](https://laravel.com/) is one of the most comprehensive.
- The **Laravel package ecosystem** is vast, well-maintained, and documented, providing resources even for niche needs.
- Laravel's community is supportive and resource-rich, with platforms like [Laracasts](https://laracasts.com/) offering extensive learning materials across web development topics. You can't find a better resource for learning web development.

<Callout
  icon="i-ph-ticket-duotone"
  text="Subscribe to Laracasts with my referral link"
  to="https://laracasts.com/referral/Barbapapazes"
/>

## Learn PHP and Laravel

On Laracasts, I recommend following [the path](https://laracasts.com/path), which guides you from PHP basics to advanced Laravel concepts. Here are some courses to consider:

- [PHP for Beginners](https://laracasts.com/series/php-for-beginners-2023-edition).
- [30 Days to Learn Laravel](https://laracasts.com/series/30-days-to-learn-laravel-11).
- [Build a Forum With Laravel](https://laracasts.com/series/build-a-forum-with-laravel). This course is challenging, but find related courses for concept clarifications when needed.

## Things start to get messy

Once comfortable with PHP and Laravel, begin building with Blade, pure CSS, and JavaScript. Recognize why more powerful tools are necessary before adopting them.

When CSS and JavaScript management become challenging, learn **Tailwind CSS** and **Vue.js** for enhanced maintainability and interactivity:

- [Tailwind CSS](https://tailwindcss.com/) is a utility-first CSS framework, making you more productive by eliminating direct CSS file edits, bloated stylesheets, and repetitive classes.
- [Vue.js](https://vuejs.org/) is a progressive JavaScript framework, easy for beginners, with technical advantages over React and Angular.

Explore Laracasts for courses on these technologies and thoroughly read their documentation to understand capabilities and limitations before usage.

## Become a full-stack developer

Achieving full-stack development proficiency is possible with the right approach and tools.

Avoid building a **Single Page Application (SPA)** with a **REST API** unless necessary. Over-engineering complicates maintenance without proper justification.

Once familiar with Laravel and Vue.js, learn **Inertia**, a protocol that combines server-driven simplicity with SPA power. [Laracasts offers a series on it](https://laracasts.com/series/build-modern-laravel-apps-using-inertia-js), helping you become a full-stack developer capable of building various web applications.

## Some more tools

To avoid JavaScript package management fatigue, use [pnpm](https://pnpm.io/), a fast, space-efficient package manager suited for all needs, from mono-repos to local dependency patching.

For documentation or content-centric websites, leverage [VitePress](https://vitepress.dev/), a static site generator powered by Vue and Vite. Familiarity with Vue.js makes it easy to adopt.

<CalloutReadMore id="674a3932-aaba-445c-82bb-0896ce3a8e7e" />

For applications requiring API integration, consider [Nuxt](https://nuxt.com), a Vue.js meta-framework supporting various build styles, offering a powerful and well-documented solution.

You might find other tools appealing, but consistency leads to mastery. Focus on these recommended tools and deepen your knowledge.

Additionally, keep an eye on:

- [UnJS](https://unjs.io/), a growing ecosystem of well-crafted JavaScript libraries.
- [Spatie](https://spatie.be/), a web development agency offering valuable PHP and Laravel packages.

## For the work

While these recommendations suit hobbyists and provide in-depth web development knowledge, adapt to market trends for professional work. In France, for example, **Java** with **Spring Boot** and **Angular** are in demand. Focus on core concepts for flexibility in tool or company transitions.

Stay motivated amidst the learning curve. The journey is long but rewarding. Embrace the learning process, connect with peers, and enjoy building creations. Web development is gratifying and offers boundless possibilities.

I hope this post assists you in embarking on your web development journey. Feel free to leave comments or share your experiences with us. 💜
