Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It depends on what your field is. Can you imagine a frontend web developer writing a graph traversal algorithm in javascript?


This.

Funny story(now, wasn't at the time but been a few years now). Made it to a final interview at one of the "elite" tech companies.

Was interviewing for a web development position, and the second whiteboard question was about designing a hash table. I of course was confused as I had no backend knowledge. Next one was about a graph traversal, and again I was confused.

So, because of that I was scared shitless that I needed to know that stuff and went out/crammed it.

Ended up interviewing other places, got an offer and didn't have to answer it.

However, because of that "elite" company's questions I went and learned more about graphs, queues, stacks etc.

So while I was pissed off at them for awhile for wasting my time, in the end without them I might not have spent the time learning and progressing through Comp Sci topics.


Unless you're designing to spec, how do you not need to understand graphs and hash tables for front end work? I'd imagine understanding hash tables would be useful in reasoning about caching, and graphs for dependency management if nothing else.


Great points.

As a front end developer, if you're consuming APIs and building out interfaces, and passing data back to the APIs you don't have to know much about graphs or hash tables.

For most web developer/front-end positions, you can be perfectly fine without knowing much of the "advanced" topics of computer science. You're going to be designing to the product manager's specs, paired with a back-end programmer who is going to tell you the structure of the data that will be passed back down and then you build it from there.

As far as understanding hash tables or graphs, you can really get away with knowing them.

However, I agree with you after learning these topics. There's incredibly more efficient ways to build front end pages with the concepts of a hash table/lookup. Most recently I designed a page that basically uses the URL slugs as keys in a complex dictionary to grab content from a SQL database to render the pages.

In addition to that, it's also just wonderful to be part of the conversation when you go to design APIs or architecture so you can make sure to relay/point out concerns that may cause a lot of unneeded pressure on the front end.

Tl;dr You can be a web dev or front end without much knowledge of hash tables, graphs but I can't imagine you advancing your career very far without that knowledge.


Of course. Web applications are bigger and bigger, and quite often you have some hierarchical data structure in JSON (usually in form of tree, but tree is kind of graph anyway).

You have to deal with these kind of structures anyway. You have to be able to render such data as hierarchy of components, you have to be able to get some information from it, to transform it, to update it.

Tree traversal is almost as common in front-end world as using .map, .filter or .reduce, I think (and using `reduce` also can seem hard on beginning, but it's quite useful).


Relatively unusual but not unheard of. I shipped one while at a YC startup.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: