
Ask HN: How to build something very complex like Google Maps? - trues
I&#x27;m a professional front-end developer with 5 years of experience. I have only worked on building websites and web-apps. When I started as a front-end developer 5 yers ago, I thought if I stick with it, I&#x27;ll definitely be able to at least understand how Google Maps&#x27; front-end worked in about 5 years&#x27; time. But 5 years later, I&#x27;m still as clueless as I was when I started. I have skilled up a lot and my peers and my manager do consider my skills as one of the best, but when I see projects like Google Maps, the front-end wizardy puts my skills to shame. These projects seem so huge and ambitious and make complicated front-end actions effortless and graceful, while I struggle to make simple websites and web-apps work smoothly.<p>What am I doing wrong exactly and where do I even start to improve my skills to work with teams like that or at least start to  undertstand in an abstract sense, how some of the front-end magic was achieved, when I look at complex projects like Maps.
======
Eridrus
Google Maps is the work of thousands of engineers that has evolved over more
than a decade.

~~~
trues
I understand that. What does it take to be on teams like that? How do I skill-
up to that level? I have put in a lot of effort over 5 years but maybe I'm
doing it the wrong way.

~~~
Eridrus
I'm sort of with the other poster on this thread that it shouldn't be that
hard. The overall product is impressive, but every action is done in the
context of an existing product where step 1 isn't to write Maps from scratch,
but to understand the system (with help from documentation, coworkers, etc)
and then see how you can make a change to achieve the desired outcome.

Maps is sort of an outlier IMO since so much of it is done on a canvas, rather
than traditional web tech, but if you hardcoded some street geometry, would it
be that hard to render it to a canvas and then make it draggable? Then make it
clickable, etc?

It sort of sounds like you're having a tough time breaking the large project
that is maps down to the individual tasks, maybe do a side projects where you
go from idea to prototype yourself, and then see how you can improve it? Hell,
maybe just try making google maps yourself? start with a really shitty version
that's black and white and work your way up?

~~~
Piskvorrr
You don't even need to go for Google maps - there's plenty of space in
OpenStreetMap, and the tech is apparently similar.

------
bufferoverflow
Which part of Google Maps front end isn't clear to you? They used to use
tiles, I think they switched to vectors a few years ago. The routes and such
are drawn dynamically on canvas. The routing itself is done on the server side
(though there's a quick rough pre-route done on the front end when you drag
points).

~~~
LarryMade2
And with that you can see in the beginning it wasn't all what it is now. It's
been built up over the years, sometimes added to, sometimes totally refactored
for better methods...

I would say the two things to make something complex is: to map out the data
identify whats the core elements, and second, start building out from that. As
you get the core stuff operational you can work on more bits and refactor,
etc. As you build you will be coming up with problems and working out
solutions, it's a process.

Also given the scale of Google Maps, from what it tracks and how many access
it so many different ways, projects like that are the work of hundreds - many
specializing on just one aspect or another.

