4 ms·
Maybe your idea of a front end developer differs from mine. I don't agree that front end developers need to code BFS. They just need to know that graphs can be
by educar 10y ago
Maybe your idea of a front end developer differs from mine. I don't agree that front end developers need to code BFS. They just need to know that graphs can be searched, that should be it.
Frontend devs can do many tasks that systems engineers (who can supposedly whip out algorithms in their sleep) cannot do:
- Make pages render properly in all popular browsers
- Make responsive UIs
- Align text of variable length in the vertical center of a page
- Know when to use tables and when not to
- Understand when to use a SPA app and what not to
- Make SEO friendly pages
etc.
All this has nothing to do with said algos. I really think that people who don't understand this should not be interviewing frontend engineers.
- tptacek 10y agoI'm having a hard time responding to this. More and more, whole applications are being delivered in clientside Javascript using Angular or React or whatever. Are you suggesting that there are two "kinds" of front-end developers, the kind that knows how the DOM APIs work and the kind that can implement the rest of the application and domain logic in Javascript?
- educar 10y agoI am suggesting the frontend developers developing using angular/react code do not require to implement graph search algorithms. What algorithms have you seen in practice in web frontends? I have seen nothing even minor, not even binary search or bublle sort.
- tptacek 10y agoI really don't know what to say to this. What kinds of applications do you work on? If what you do is primarily CRUD front-end stuff, then sure, I suppose you can get by without really understanding how to write general-purpose code. But pretty much anything past simple CRUD is going to start implicating simple data structures pretty quickly. I can cite examples from the front-end I'm working on right now, but that wouldn't sound like a fair example (it's an AVR debugger). But all sophisticated applications are complicated in their own ways, and most of them require developers who can actually, you know, program. Even if all you're doing is CRUD, how much computer science is embedded in even a straightforward framework like React? "Lots", is I think the answer.
- chillacy 10y agoI'm building an app with react which uses DFS to determine connected elements on a 2D grid: you'll have to be more specific when you say "frontend developers", since the frontend is getting more and more business logic.
- dclowd9901 10y agoI'd love for you to try to explain to me how it's relevant to my front end javascript to write a moving window algorithm in 45 minutes on a white board. I have no problem with thinking engineers should be able to understand and implement algorithms. I have a real problem with thinking they need to know them off the top of their head. Wouldn't a more reasonable approach be to give an algorithm and ask the person to implement it? If that's what they're actually going to do (since most of us aren't PhDs) day-to-day, and they may more likely find an appropriate algorithm on Wikipedia and implement it, isn't that more relevant?
- stale2002 10y agoGladly! Lets say your software as a service website has a real time analytics graph, so that customers can look at statistics of how much they are using the service in real time. One potential question a customer might want to know is "How many API calls have I made over the last hour". This is a moving window average question, and it needs to be displayed/done on the front end. My company that I work at has such a feature. Algorithms questions come up all the time in javascript development.
- dclowd9901 10y agoThank you for the example, but this is not a generalized problem, and is very specific to your domain, so it would be silly to receive such a question from companies that are not your company, which I have had happen. If I were applying for your company, I would expect to have to implement an algorithm like this on the job, but I don't see why I should have to know it to get the job. As long as I was capable of implementing algorithms as described, wouldn't that be the most important factor?
- chillacy 10y agoHow would you demonstrate that you're capable of implementing that algorithm? Isn't the best way to have them implement that algorithm? (I will admit that this is best done when the candidate has their favorite text editor and internet, and I have had an interview in the past where this was the case, which went well)
- hunterloftis 10y ago> All this has nothing to do with said algos. I really think that people who don't understand this should not be interviewing frontend engineers. React, Angular, Ember, etc, are all basically just giant tree diffing algorithms. The DOM is a tree. Understanding how to manipulate trees is important. Memorizing algorithms, less so, but it's absurd to suggest that front-end developers should get a pass on being able to code generalized solutions to problems. More and more, "front end" is coming to mean "the whole application," and the difficulty is moving away from the gritty individual DOM manipulations and into writing structured algorithms to process large sets of application data and wrangle state, which you then throw into your deterministic renderer of choice. It sounds like when you say "front end developer," you might really mean, "person who is comfortable with HTML and CSS." In that case, sure, that has nothing to do with algorithms, but that person is also not a software developer.