6 ms·
I only got my current job because I happened to be reading a book on C#, which is strange because we barely code in C#. I spent several years programming in Eli
by wincy 8y ago
I only got my current job because I happened to be reading a book on C#, which is strange because we barely code in C#. I spent several years programming in Elixir which got blank stares from recruiters. But saying I know Elixir and C# actually got me a pretty good gig!
In an ideal world, knowing data structures and algorithms would get job interviews, but without being able to at least speak to some specifics of the language being used, a good number of HR departments will screen you out before you’ll get to the data structures and algorithms part of an interview.
- scarface74 8y agoWhy would knowing “algorithms and data structures” be ideal? In the real world, most jobs aren’t about knowing either. They are about translating business requirements into code.
- mcguire 8y ago...and everyone knows code has nothing to do with algorithms and data structures.
- scarface74 8y agoWell, if you’re doing yet another software as a service CRUD app or another bespoke app that will never be seen outside of a company - like most developers - knowing: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). Isn’t that useful or how to invert a binary tree. I would much rather you show some competence in the language we are using. Knowing leetCode isn’t going to help if we need an iOS app....
- vips7L 8y agoEverything you're saying is true, but for some reason companies still think they need to test you on hackerrank/leetcode like problems. I would much prefer to do some code in the frameworks I claim to know.
- scarface74 8y agoNot companies I interview for. The last time I had any type of algorithm type interview was 1999 when I was applying for a job as a low level cross platform C bit twiddler. Since then all of my interviews have been a combination of soft skill, tell us about your experience, white board architectural discussions type of interviews. Of course they asked me technical questions about the language and stack they were using.
- pjmlp 8y agoDepends very much on what that CRUD app is doing. Knowing algorithms and data structures pretty well, is the difference between an update button taking a couple of minutes, or milliseconds.
- scarface74 8y agoAnd I would even say that’s not true most of the time. Why is the update button slow? - Is your customer in Asia and your servers are in us-east-1? Do we need a multi master database one in each region? Can we make even that faster by doing an eventually consistent write? - do we really need a synchronous update process or can we use queues to make it more consistent? - is our web server slow? Should we scale horizontally or vertically? Should we use autoscaling and if so which metric should we use? What should our cooldown time be between autoscaling events? Do we need to autoscale across regions? Where is our traffic coming from? - is our database indexed properly? Did we look at our slow query logs? Did someone do something stupid like have triggers on our database unnecessarily? Is an RDMS the right choice? Do we need to denormalize the table? - or is it our code? This is the thought process my manager was looking for when he interviewed me. Not the best way to traverse a tree.
- pjmlp 8y agoAnswer 5. Update implemented as O(n!) for the input dataset graph because the coder didn't knew any better.
- scarface74 8y agoBut with a complex system. How would you know where the bottleneck is if you don’t know how to instrument your entire system and how would you know the possible solutions?
- pjmlp 8y agoBy doing a proper architecture design and data analysis before writing a single line of code, instead of coding away without any sense of direction. Delivering a good result out of that process, requires knowing algorithms and data structures tailored at the problem space.
- klibertp 8y agoTrees - although not necessarily binary ones - are everywhere. If you don't know about them, your CRUD will explode if objects can form a multi-level hierarchy. Don't make too light of CRUD apps - there's complexity there, too.