DEV Community

Eeduu Institute digital
Eeduu Institute digital

Posted on

A 16-Week Web Development Roadmap for Freshers

If you're a fresher trying to become a web developer, the hardest part is rarely the code. It's knowing what to learn first. Many beginners spend months jumping between tutorials, then find job posts asking for things they never practised.

This is the roadmap I'd follow: skills in order, a project for each stage, and a few code snippets for the concepts that trip people up in interviews.

It assumes 3-4 focused hours a day. If you're studying part-time, expect it to take about twice as long.

The roadmap at a glance

Weeks Focus What you finish
1-3 HTML, CSS, Git Responsive portfolio site
4-7 JavaScript Three small interactive apps
8-10 React Dashboard using API data
11-13 Node.js, Express, SQL/MongoDB REST API with authentication
14-15 Integration, deployment Live full-stack app
16 SEO, performance, interview prep Polished portfolio

Weeks 1-3: HTML, CSS and Git

Don't rush this stage. Every framework you learn later compiles down to HTML and CSS.

Focus on:

  • Semantic tags (header, nav, main, article, footer)
  • Flexbox and Grid
  • Responsive layouts with media queries
  • Basic accessibility (alt text, contrast, focus states)

A small example of a layout that adapts without a framework:

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}
Enter fullscreen mode Exit fullscreen mode

Project: a mobile-first website for a local cafe or shop. No Bootstrap.

Learn Git in week one, not week twelve. You need commit, push, pull, branching, merging and pull requests.

Weeks 4-7: JavaScript (spend the most time here)

Weak JavaScript is a common reason freshers struggle in technical rounds. Closures and async behaviour come up constantly, because they separate people who understand the language from people who memorised snippets.

A classic closure example:

function makeCounter() {
  let count = 0;
  return () => ++count;
}

const counter = makeCounter();
counter(); // 1
counter(); // 2
Enter fullscreen mode Exit fullscreen mode

And fetching data with proper error handling, which beginners often skip:

async function getUsers() {
  try {
    const res = await fetch("https://jsonplaceholder.typicode.com/users");
    if (!res.ok) throw new Error(`Request failed: ${res.status}`);
    return await res.json();
  } catch (err) {
    console.error(err.message);
    return [];
  }
}
Enter fullscreen mode Exit fullscreen mode

Projects: an expense tracker, a to-do app, a quiz app, all without a framework.

Weeks 8-10: React

Learn React only after you can build an interactive page without it. Otherwise you end up copying patterns you can't debug.

Cover components, props, state, useEffect, routing and forms. Always handle loading and error states, because that's where junior code usually breaks:

function Users() {
  const [users, setUsers] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    getUsers()
      .then(setUsers)
      .catch(() => setError("Something went wrong"))
      .finally(() => setLoading(false));
  }, []);

  if (loading) return <p>Loading...</p>;
  if (error) return <p>{error}</p>;
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}
Enter fullscreen mode Exit fullscreen mode

Project: a movie or recipe finder that uses a public API.

Weeks 11-13: Back end and databases

Pick one stack and go deep. If you already know JavaScript, Node.js with Express is the quickest route.

Learn routing, middleware, validation, authentication and environment variables. Security belongs here from day one. For example, never store plain-text passwords:

import bcrypt from "bcrypt";

const hash = await bcrypt.hash(password, 10);
// store `hash`, never `password`

const isMatch = await bcrypt.compare(inputPassword, hash);
Enter fullscreen mode Exit fullscreen mode

For databases, learn SQL first (joins, grouping, indexes), then MongoDB. A good test: design a schema for an online store with users, products, orders and order items, then write a query for the five best-selling products last month.

Project: a job board or mini store with login and CRUD.

Weeks 14-15: Deploy everything

A project that only runs on your laptop is a draft. Put every project online (Vercel, Netlify and Render all have free tiers, but check current limits).

Also learn what happens beyond clicking Deploy:

  • How domains and HTTPS work
  • Environment variables in production
  • Reading build logs when a deploy fails

Never put secret keys in front-end code. Anyone can read them in the browser.

Week 16: SEO, performance and interview prep

Most freshers skip this, which is exactly why it helps you stand out.

  • Run Lighthouse on every project and fix what it flags
  • Learn Core Web Vitals (LCP, INP, CLS)
  • Write unique titles, meta descriptions and a logical heading order
  • Practice explaining your design decisions in about a minute

A note on AI coding tools

They're great for boilerplate, test data and explaining error messages. But treat them like a fast junior pair programmer: often useful, sometimes wrong. Review every line, run the tests, and don't commit code you can't explain. Interviewers increasingly ask you to walk through your own project live.

Portfolio checklist

  • [ ] 3-5 deployed projects with live links
  • [ ] A README for each with a screenshot, tech stack and setup steps
  • [ ] Clean commit history
  • [ ] A short case study for your best project

Mistakes to avoid

  • Watching tutorials endlessly without building anything
  • Learning several frameworks at once
  • Skipping JavaScript fundamentals
  • Never deploying
  • Waiting until you "feel ready" to apply

Apply when you have around three live projects you can explain confidently.

Wrapping up

You don't need to learn everything for your first job. HTML, CSS, JavaScript, Git, one framework, one back-end stack and a database, all deployed, is enough to get shortlisted.

What are you learning right now? Share your stack or your first project in the comments, and I'll try to help.

Top comments (0)