Ask HN: How to build something very complex like Google Maps?
I'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'll definitely be able to at least understand how Google Maps' front-end worked in about 5 years' time. But 5 years later, I'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.
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.
6 comments
[ 2.3 ms ] story [ 24.1 ms ] threadI 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.
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?