You don't need to learn map/reduce
14 July, 2016During an interview, a candidate - a smart guy just at the start of his career - asked me the following (paraphrased)
I feel like the biggest hole in my understanding at this point is how applications work at scale. How does one put together a large application with millions of users and hundreds of thousands of data connections? How does one process big data and use map/reduce. How do I advance myself in that area?
I’ve heard similar questions before. Heck, at some point I probably asked them myself. So let me answer this here, in blog format.
You’re wrong.
That is not your biggest hole. Honestly, it’s hardly a hole. Hardly anyone actually has to work with applications “at scale”. Maybe if you work at Netflix, and even then, the only person who really works at that level is named Magnus, has an office on the top floor and can read bit streams raw.
That’s not going to be you in the near future and, chances are, not going to need to be your skillset at all. It is simply not where you should invest your time.
You, my dear codecamp graduate, need practice working with others.
Not in an interpersonal sense (although maybe), but in the sense of how to write your code so that others can read it and maintain it. And that’s not just code comments. That’s design patterns, software architecture, project management, and just plain ol’ experience in getting-things-done. You need experience estimating, selecting proper technologies, and helping clients figure out that what they think they want is not what they need, and talking them into allowing you that extra week of refactoring.
In short you need practice coding. And coding with other people. Lots and lots of practice.
It’s hard of course. You’ve been focused on learning for so long with a side of implementation and now its time to see-saw in the other direction. The easier route is of course to just keep taking lessons and schooling and learning, but what I’m saying is its time to start getting those ten thousand hours in.