7 ms·
This 100%. When I'm involved in the interview process I make a point to check out all candidates side projects but over 90% of people don't care. In getting my
by nrjdhsbsid 10y ago
This 100%. When I'm involved in the interview process I make a point to check out all candidates side projects but over 90% of people don't care.
In getting my last job I thought I would have a slam dunk because I have a bunch of cool stuff I work on but nobody cared at all.
I failed multiple on site interviews until I gave in and read a couple CSCI 101 books cover to cover. I had too much specialized knowledge and not enough fizzbuzz. On my second round of interviews I got offers from all three companies because I could regurgitate their stupid toy problems in minutes.
- akhilcacharya 10y ago> stupid toy problems in minutes. What sort of toy problems are you talking about?
- logicallee 10y agoI'm going to be snarky but I'll say it anyway: you know, stupid stuff like balanced binary trees and shit like that, when nothing's going to fall apart if the user's browser shows a spinning wait animation for 7 seconds (45 seconds at peak times but that happens for just a few hours per week at most) while you iterate through the data sequentially. honestly, who ever needed an algorithm or data structure. /s (I'm sorry. I thought about using less snark but I can't.)
- gricardo99 10y agoand if you did absolutely have to implement one from scratch, then you probably wouldn't have to spit out an answer on a white board in front of some judging eyes with very limited time and push that into production.
- adrianN 10y agothe last time i had to implement a datastructure was in class. on the job i use the standard library. i hope you do the same.
- logicallee 10y agoBut rolling a standard datastructure (and what's the "standard library" for a red-black tree anyway - in Python, or in Java? - or C++ for that matter) proves that you can do something "tricky" and hopefully get it right. You can understand and reason about what you're doing. If they don't let you Google while doing a "CS" type problem, of course, then they're insane. When it comes time to do something novel, that understanding will be very useful. People pooh-pooh Google's hiring interviews, but when was the last time Gmail's search results on your email were as bad as Bing's (I use this example because it's not their general index, I'm asking about your mail.) There are a lot of good reasons to bone up on CS 101 (and 201, 301, 401, and 501).... I disagree that it's just "studying for the test".
- dragandj 10y agoEven then, you'd have to know the characteristics of various data structures to be able to choose the right one. On top of that, in almost all code beyond CRUD, you'd have to write some custom algorithms - there, the knowledge from data structures and algorithms is really helpful.
- marcosdumay 10y agoYou know, besides the other comment about not implementing data structures in a real job¹, why do people insist on memorizing all that trivia about balancing binary trees instead of just using some much simpler self balancing structure like a B-tree²? 1 - I have. But it is overwhelming more likely that you'll just need to know their characteristics than how to implement them. 2 - And get better caching behavior for free.
- bravo3 10y agoI have a different perspective. This is for applied math in general, but translates to algorithms with a little stretch of imagination. In your daily life, you use tools to do your job. Over time, your tool set has sufficient coverage that it can handle most jobs. However, because of this "good enough" coverage, you may not realize the existence of other tools that may be far superior. I believe "applied math" is one such tool. (Translate to "algorithms".) Its applications are everywhere, including at least 50% of your daily life in my experience. However, you fail to see them because you may not have that tool in your tool belt! This is no different than wearing x-ray glasses - you get to see almost every problem in a different light. Google and others who realize it want to make use of these versatile glasses. I do not mean to be obtuse but a different perspective may be helpful!
- 79d697i6fdif 10y agoAnything you could write in less than a half hour. Lets take fizzbuzz for example. These types of problems almost always require manipulating strings and dumping them to the console in the simplest scenario possible. Usually the main method or equivalent in a console program. It would be easy as hell except they don't let you use google or an IDE, so you need to memorize the syntax for the main method and string manipulation. 1) In real life you almost never write directly to the console. 2) In real life, you never manipulate strings using sub-string or regex really... In fact the only time I do this a lot is for terrible reasons in bad code. 2) Main method? If your real life app even has one it was written by the first guy 10 years ago and is 3 lines long, just some function that looks like this: var app= new BootStrapMainApp(); app.run(); logger.log("App crashed if we get here");
- user5994461 10y agoSay that you dont remember the exact arguments for main and move on. It will be fine. And don't assimilate fizzbuzz with half hour problems. There are for sure some difficult half hour interviews questions; they are not comparable to trivial exercises like printing the numbers from 1 to 10. P.S. If you never use console, strings or regex. I really wonder what kind of applications you're writing.
- nrjdhsbsid 10y agoMostly web. You always use a logging lib so no console really ever. Strings are used all the time but not substring or splice, 90% of uses for those are anti patterns tbh. Regex really never. Unless you're munging data in Python it's usually a bad idea to use regex. Clean strings? Use a library. Parsing? Use a parser. Raw regex implies filtering stuff or banning certain characters in strings which breaks all kinds of multi language compatibility
- user5994461 10y agoI use regex all the time for refactoring stuff and transforming data. There is nothing else to achieve that. Also, for log/message filtering at times. Well, I am obviously the guy who write the tools and the libraries, so you don't have to know these things yourself but I do :D
- Arizhel 10y agoDo you have any recommendations for the best CSCI 101 books to read?
- sn9 10y agoYou'd probably just be fine spending a few hours per week working on a MOOC that covers the fundamentals of algorithms and data structures like the ones on Coursera by Bob Sedgewick. Other fundamental courses might include ones on Computer Networking or Databases like those offered by Stanford Lagunita. Just keep a list of MOOCs that start regularly (like once a quarter or twice a year) or the self-paced ones and just rotate through them as review.
- chris11 10y agoI'd recommend Cracking the Coding Interview for studying for interviews.
- wheaties 10y agoThis speaks more to a flawed interview process than it does anything else.
- user5994461 10y ago> I had too much specialized knowledge and not enough fizzbuzz It's dubious to say that one has a lot of specialized knowledge yet he fails at writing a for loop.
- EpicEng 10y agoI suppose it would be if you took what the parent said literally. Not sure why you would though.