guides
May 01, 2024

How to start web development from scratch

This article will teach you how to start web development from scratch, and launch your first website for $0

avatar
iboughtbed
article cover

Understanding web development

Web development is the process of building websites and web applications that are accessed via the internet. It encompasses a wide range of tasks, from designing the layout and appearance of a website to implementing the functionality and features that users interact with. Before diving into the technical aspects of web development, it's essential to understand the different components and aspects involved in the process.

What is web development?

At its core, web development consists of two main areas: frontend development and backend development.

Frontend Development

This involves everything that users see and interact with on a website or web application. It includes the design, layout, and user interface elements that are presented in a web browser. Frontend developers use languages like HTML (Hypertext Markup Language), CSS (Cascading Style Sheets), and JavaScript to create responsive and interactive web experiences.

Backend Development

While frontend development focuses on the client-side experience, backend development deals with the server-side logic and database management that powers a website or web application. Backend developers work with server-side languages (e.g., JavaScript with Node.js, Python with Django, Ruby with Ruby on Rails) to handle data processing, authentication, and server management.

Full-stack development overview

Some developers choose to specialize in either frontend or backend development, while others pursue full-stack development, which involves working on both the client and server sides of a web application. Full-stack developers have a broad skill set that allows them to build complete web solutions from start to finish.

Key aspects of full-stack development include:

  • Understanding the Entire Development Stack

    Full-stack developers are familiar with both frontend and backend technologies, as well as the tools and frameworks used in each area.

  • Versatility and Flexibility

    Full-stack developers have the ability to work on different parts of a project and adapt to changing requirements. They can contribute to various aspects of development, from designing user interfaces to implementing server-side logic.

  • Integration and Communication

    Full-stack developers play a crucial role in bridging the gap between frontend and backend components. They ensure seamless communication and integration between different parts of a web application. By understanding the fundamentals of web development and the different roles involved, aspiring developers can choose the path that aligns with their interests and career goals. Whether focusing on frontend, backend, or pursuing full-stack development, the journey begins with grasping the core concepts and technologies that power the web.

Fundamental techologies

HTML and CSS

HTML (Hypertext Markup Language) is the standard markup language used to create the structure and content of web pages. It consists of a series of elements that define the different parts of a web page, such as headings, paragraphs, images, and links. HTML provides the foundation upon which web content is built.

CSS (Cascading Style Sheets) is a style sheet language that controls the presentation and layout of HTML elements on a web page. It allows developers to specify how elements should be displayed, including aspects such as colors, fonts, spacing, and positioning. CSS enables the customization and styling of web content to create visually appealing and cohesive designs.

JavaScript

JavaScript is a versatile programming language commonly used to add interactivity and dynamic behavior to web pages. It runs on the client side (in the user's web browser) and can be used to manipulate the HTML and CSS of a web page in response to user actions, such as clicks, inputs, and page loads. JavaScript is essential for creating interactive features like dropdown menus, slideshows, form validation, and asynchronous data fetching.

Development environments

First, you should set up a code editor like VS Code. You should get comfortable with the environment, as well as, terminals and command lines.

Useful Resources

HTML, CSS and JavaScript

Learn HTML - HTML CheatSheet by Stanford

Learn CSS - W3 school and Web dev

Learn JavaScript - Learn JavaScript and jschallenger.com

Project-based learning

One of the best ways to learn web development is by working on real projects.

A simple project

Start with a simple project that interests you. It could be a personal website, a blog, or a portfolio site. Choose something that you're passionate about and that will motivate you to keep learning.

Plan your project

Before you start coding, take some time to plan out your project. Think about what pages or features your website will have, what content you want to include, and how you want it to look. You can sketch out wireframes or make a list of requirements to guide you.

Learn as you go

Don't worry if you don't know how to do everything right away. As you work on your project, you'll encounter new challenges and opportunities to learn. Take advantage of online tutorials, documentation, and resources to learn new skills and techniques as you need them.

Start coding

Once you have a plan in place, start coding! Break your project down into smaller tasks and tackle them one at a time. Focus on building the basic structure and functionality of your website first, and then you can add more features and polish as you go.

Test and Debug

Testing is an important part of the development process. Make sure to test your website on different devices and browsers to ensure that it looks and works as expected. And don't forget to debug any issues that arise along the way.

Get Feedback

Once your project is up and running, don't be afraid to share it with others and ask for feedback. Getting input from others can help you identify areas for improvement and make your project even better.

Celebrate your success

Finally, don't forget to celebrate your success! Completing a project is a big accomplishment, and you should be proud of what you've achieved. Take some time to reflect on what you've learned and how far you've come, and then start thinking about your next project!

Notes

Remember, the most important thing is to keep learning and experimenting. Each project you work on will teach you new skills and help you grow as a developer. So don't be afraid to dive in and start building!

Understanding web frameworks and libraries

Frameworks

Frameworks provide a structured way to build web applications by offering pre-built components, libraries, and conventions. They often come with built-in features like routing, database integration, and user authentication, which can streamline the development process.

Libraries

Libraries are collections of reusable code that developers can use to perform specific tasks or add functionality to their projects. Unlike frameworks, libraries typically focus on providing specific functionality rather than an overall structure for building applications.

I would recommend using React. React is a JavaScript library for building user interfaces. It uses a component-based architecture, allowing developers to create reusable UI components that can be composed together to build complex interfaces.

Stacks

Why do we need a stack?

A web stack is the collection of software used for web development that incorporates, at a minimum, an operating system (OS), a programming language, database software and a web server. A web stack, also known as a web application stack, is a type of solution stack.

T3 stack

The “T3 Stack” is a web development stack made by Theo↗ focused on simplicity, modularity, and full-stack typesafety.

The core pieces are Next.js↗ and TypeScript↗. Tailwind CSS↗ is almost always included. If you’re doing anything resembling backend, tRPC↗, Prisma↗, and NextAuth.js↗ are great additions too.

You may have noticed that there are a… lot of pieces. That’s by design. Swap pieces in and out as you need - this stack is modular at its core :)

Why T3 stack?

You can visit the T3 stack website.

Further development and learning process

As you continue your journey in web development, it's essential to engage in ongoing learning and skill development. Here are some strategies to further your growth:

Working on small projects in a small amount of time

One of the most effective ways to enhance your skills is by working on small projects within a limited timeframe. This approach allows you to focus on specific tasks, experiment with new techniques, and practice problem-solving. Consider setting aside dedicated time each week to work on mini-projects, such as building a simple website, creating a portfolio, or implementing a small feature.

Learning from others

Learning from the experiences and expertise of others is invaluable in your development journey. Take advantage of opportunities to study open-source projects, participate in code reviews, and collaborate with other developers. By examining different coding styles, architectural patterns, and development practices, you can gain new insights and improve your own coding abilities.

Useful resources, open-source projects and content creators

Open source projects

shadcn/ui, taxonomy, skateshop, calcom/cal.com.

iboughtbed/nis-insights

Content creators

Theo, Jack Herrington, Josh

Documentations

T3-stack - check this out!!!

React

Next.js

Tailwind