hey,
to start with heres the backdrop;
me and a friend from school have a year to create a fully working web browser and for this i think C++ would be best.
heres where i need help, i have no experience with C++ and i need to learn it from near-scratch.
so what steps should i take and how should i start it?
should i sit and learn C++ first or learn as i progress?
what programs should i use as a compiler and to write the code?
what engine should i use?

how do i incorporate all this into a program?
what other advice can you give?

Dani AI

Generated

A realistic goal for a one‑year school project is a usable browser shell, not a full rendering/JS engine from scratch. Embedding an existing engine (Chromium via CEF or Qt WebEngine, Microsoft WebView2 on Windows, WebKit on macOS/Linux) frees most of the heavy work so effort can go to UI, tab management, features and polish. This keeps the plan achievable while still teaching real systems, C++ and cross‑platform concerns.

Pair learning with building. Follow a two‑track approach: (1) bite‑size C++ fundamentals (modern C++ idioms, RAII, smart pointers, STL, basic concurrency, CMake and git) and (2) an immediate prototype that embeds a web engine and loads a URL. Books/tutorials as suggested are useful, but couple reading with practice: small console tools, then a minimal GUI that hosts a WebView. For example, use std::unique_ptr and RAII for resource safety.

Use a milestone roadmap: month 1 — core C++ and toolchain (MSVC/Clang/GCC, CMake, git); months 2–3 — simple GUI + embedded engine that loads pages; months 4–6 — navigation, history, tabs, bookmarks; months 7–9 — downloads, simple settings, basic security checks; months 10–12 — polish, cross‑builds, profiling, packaging and tests. Instrument continuously with AddressSanitizer/UBSan, static analysis and unit tests so bugs don’t accumulate.

Practical tips and cautions: avoid writing an HTML parser/layout engine unless the goal is research. Use established libraries for networking and parsing, keep multi‑threading models simple, and log network/renderer crashes early. Echoing and , prior programming experience shortens the learning curve, so start with tiny, focused programs before adding tabs and IPC. Ignore the OS joke from —focus scope and ship a working shell.

Recommended Answers

All 6 Replies

Books and Tutorials.

Do you have any other programming experience?

hey,
to start with heres the backdrop;
me and a friend from school have a year to create a fully working web browser and for this i think C++ would be best.
heres where i need help, i have no experience with C++ and i need to learn it from near-scratch.
so what steps should i take and how should i start it?
should i sit and learn C++ first or learn as i progress?
what programs should i use as a compiler and to write the code?
what engine should i use?

Why not start with something simpler like writing an operating system? :P

commented: FTW +2

When you have 1 year time for this i guess someone wants you tod o this project.
So im guessing as well you have some programming experience.
Why dont you try a language you´re familiar with? Check maybe in the internet if its possible with these languages you already know to create a web browser, so you don´t neet to start from scratch.

And to start with, i personaly would try to get informations how explorer, firefox,google chrome or safari was created.

use event handlers, probably be easier in java since it comes with a lot of predefined shapes and stuff.

I've been studying C++ and programming for about a year. I know I am not capable of building a web browser yet. The only GUI I ever get to use for programming is the command prompt. Looking forward to the day they teach us about graphics though.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.