12 ms·
How to Ace a Startup Engineering Interview Part 1
- liveink 14y agogreat post!
- kirinan 14y agoI think these are applicable to any engineering interview. The key to every tech interview is most of the time is less about your actual answer but how you get there. If you code something that clearly would never work in any language, you won't get the job. If you code something decent, have a great thought process and in general communicated what you were thinking about the problem, you will most likely get the job. Remember the more you can demonstrate about yourself during the interview the better. The interviewer has a couple of hours to make a decision that can affect their bottom line pretty heavily. The more information you have (Github, Resume, references) the easier it is for them to feel comfortable with you and the easier it is for them to give you the yes.
- immad 14y agoAgreed. The thought process is very important. Will mention that in part 2 for sure.
- PaulHoule 14y agoi dunno... you can get pretty far as a Data Scientist with two stock answers: (i) look it up in a hash table or (ii) look it up in the literature... I think I'll ask the next guy how to train a neural net to make that decision. ;-)
- immad 14y agoYou have to have enough background to know what to look up in the literature.
- carterschonwald 14y agobut at what point does that alone make them a scientist? (NB: I actually froth at the mouth over the weakening of the word scientist, when the way in which many folks do "data science" is not in accordance with any scientific principles.)
- ramchip 14y agoSame thing for engineers IMHO. Where I come from the title is regulated, so it requires a bachelor's degree with a specific list of courses and 2-3 years of work experience as a junior engineer in the specific field to call oneself "engineer". But in the country where I work, there are plenty of people with no programming experience who can setup a wordpress site or grab a Microsoft certification and instantly become "system engineers"...
- carterschonwald 14y agoThats why my card says "Computer Scientist". :-) People ask what that means a shockingly often fraction of the time! They ask "so what do you?", I say "computer science", they then ask "what parts?", I reply "all of it". Thats of course ignoring the conversations where they then ask what computer science is or how thats different from programming or setting up a web server. those chats are tough :)
- arturospec 14y agoIn general, it is highly inappropriate to title yourself a scientist without a PhD. A 20 year old undergraduate with an enthusiasm is not a biologist. You claim to hate the dilution of the title, yet have upgraded yourself without earning it by either mastery produced via a doctorate or via a proven professional track record. Maybe you should consider titling yourself software engineer or program developer until you've produced something that shows mastery to the world.
- carterschonwald 14y agoyou're making claims based upon social convention, but I do not see any evidence that you have authority with respect to making such claims. The issue with the phrase "data scientist" is that it is overused, is highly ambiguous in what people mean when they say it, and when someone identifies themselves as such does not communicate any clear lower bounds on expectations of relevant background and skill. This is not an appropriate fora for getting into an argument about what formal training vs autodidactism (i have plenty of both) is sufficient for being a scientist of one sort or another. I am open to hearing reasoning that isn't based upon institutional validation. There are many scientists whose work is not in the domains which they had formal training, eg Oded Schramm, Cosmo Shalizi. They could be considered amazing scientists, but surely they were scientists by intellectual inclination even before they did their great work, and likewise successfully defending their phd's didn't make them scientists, it merely gave them the title of doctor! Calling oneself an engineer of software is misleading in my mind, because in many countries engineer is legal certification of reliability. Calling myself a program developer would be a gross misrepresentation of what I do, so i do not call myself that. I solve hard problems and build better tools for solving hard problems. As for showing mastery to the world, I care not, open source is great, but ability to self publicize, or have great open source projects, have absolutely no relationship with being a good computer scientist, though they work synergistically together in a wonderfully positive way. At the end of the day, everything is some sort of social convention, and the folks who I respect would consider me a computer scientist, and thats good enough for me. have a great rest of your day on the internet good sir.
- criveros 14y agoLaunch your own startup instead.
- throwa 14y agoWell said, why not learn one framework and high level language and launch your own startup. In the beginning Facebook needed only php, twitter needed only ruby before moving to Java. Instagram is 98% python. When you begin to gather traction, you will employ the alpha geeks who use C, some of them are in Facebook and Twitter today. So just focus on building a product that succeeds with one or the only single backend language that you know in addition to some javascript and then use twitter bootstrap for design. Why burn all that learning time to get a startup job, probably with reduced salaries and equity that might amount to zero if it fails. This is thesame risk you will face with your own startup but the difference is that the upside or equity is bigger if your startup takes off and you are doing it with the one language you know.
- eli_gottlieb 14y agothe alpha geeks who use C Wow. That just made me feel old and sad. Wasn't it just a few years ago that everyone had to know C and C++?
- Apocryphon 14y agoWe still need to know C to do well with Objective-C for our fancy newfangled iOS apps.
- swang 14y agoEver since C++ got switched out by the major universities (in the US) for Java (circa 2001), there have been fewer and fewer people who learn/know C/C++ and who can then also understand pointers and other C related knowledge. It's not completely unused but for the most part it has been relegated to game programming and systems based work where speed is important. I am sure there are exceptions or other reasons to this, but I feel that once the universities switched over to Java, C/C++ went on a big decline.
- DanWaterworth 14y agoPure functional: Lisp, Scheme, Erlang etc Wha???? You didn't even mention Haskell under pure functional languages, but listed three that aren't.
- immad 14y agoGood point. Added Haskell
- DanWaterworth 14y agoLisp, Scheme, Erlang are functional languages, but they are not pure functional languages.
- icn 14y agoIt looks like starting a new startup is easier than getting a startup job
- pepve 14y agoNothing new here. These are just someone's notes on hiring (the post does not at all deliver on the title). It's all been said before, and in better ways. Also I'm tired of the "learn C" mantra. You don't need to know this language to understand pointers and their difference from references. Or the different approaches to memory management.
- bcbrown 14y agoI agree that there's nothing new here, but I think knowing C is still useful. It's as close as it gets to a lingua franca in our field.
- zeroonetwothree 14y agoI've yet to interview anyone that didn't know C or C++ but correctly understood pointers and references. Of course that's not necessarily bad since it's not a useful distinction in some higher level languages.
- heretohelp 14y ago>I've yet to interview anyone that didn't know C or C++ but correctly understood pointers and references. Clearly you haven't interviewed any Lispers. The concept is innate to cons cells and how they're constructed.
- tsm 14y agoI think the stock of people who are comfortable with Lisp but know nothing about C has dwindled to be almost non-existent.
- heretohelp 14y agoI sorta know both, but I'm generally more comfortable speaking in terms of Lisp than C and if an interviewer forces me to speak in terms of C I'm likely to be less cogent.
- 14y ago
- scient 14y agoI stopped reading at "Learn C".
- pjscott 14y agoWould you care to elaborate? C is a worthwhile thing to learn, though I admit, it's probably not that relevant to job interviews.
- thisisnotmyname 14y agoI actually laughed out loud at: "Improve your Theoretical knowledge" ...followed by... "Learn C" I obviously have a completely different idea in mind when it comes to computer science theory than the author does.
- baddox 14y agoWhere does the article say "computer science" theory?
- mtanski 14y agoOne of my favorite interview questions is do binary search when the function prototype is this: int bsearch(int *values, size_t len, int term); By the time we finish going through this exercise. I have a pretty good idea how they do with basic algorithms and indirection (pointers). In fact, pointers are a great way of testing a candidates ability to deal with indirection. You can come up with simpler C pointer questions that also do not require tricks but this does the trick for me. And yes, everybody gets binary search wrong, but that's okay. I learn a lot about a candidate when they are doing the exercise.
- throwa 14y agoThis link gives an alternative hiring perspective that eschews unnecessary loops. http://radar.oreilly.com/2012/07/overfocus-on-tech-skills-could-exclude-the-best-candidates-for-jobs.html http://radar.oreilly.com/2012/07/overfocus-on-tech-skills-co... Check out the hackernews discussion on the subject: http://news.ycombinator.com/item?id=4275140 http://news.ycombinator.com/item?id=4275140
- ad93611 14y agoOne key skill that is needed in a startup is how quickly can you learn and adapt. We try to figure out how quickly a person can learn and be productive by giving a small problem in an area that the candidate is not strong at. We then give them the complete internet access and a development environment and ask them to write code for the problem. We also pick a problem that is highly relevant to the day to day work, not a theoretical one.
- dustingetz 14y agoThe people who matter aren't going to comment on this, but I'm out celebrating, so what the hell. I was actively looking for a job until about 6 hours ago. I read lambda calculus papers for fun. Hayzap, and the class of companies hayzap belongs to, is not even on our radar. Hayzap does not have hard problems and does not need a team who can ace this interview, and those of us who can ace this interview are uniterested in you. We don't want to take your worthless equity and we don't want to take a 50% pay cut for the privilege of working for your startup.
- slurgfest 14y agoI think I understand what you are saying, but I don't understand how it relates to the article. For example, the article doesn't seem to say anything about Hayzap being boring and a turnoff to engineers on account of paying 50% of market and offering worthless equity. It sounds like there is some personal history here. Is there?
- danielrhodes 14y agoI find it rather sad to see such bitterness and cynicism. Somebody took the time to write a blog post in order to help people, and the reaction above was one of anger.
- achompas 14y agoI think the blogpost is worse than helpful, as the author is simply parroting common hiring tropes, then adding misleading advice. Consider: * He recommends CLRS for learning the basics of algorithms. This is like reading baby Rudin to learn about the basics of numbers. * He edited his post 2-3 times because he can't identify whether Common Lisp is a purely functional language or not. * He mentions that side projects don't need to be complex, then suggests "simple" iPhone apps or open source libraries. In practice, neither of these is "simple."
- anika11 14y agoAccording to your profile on HN you are a Software Engineer at http://wingspan.org/ http://wingspan.org/ I am sure the engineering challenges at a very small, simple CMS site are truly mind boggling.
- deleted 14y ago[deleted]
- shock3naw 14y agoBland, generic, and inaccurate advice on what to learn/practice before interviewing. The comments here have corrected several problems with your understanding of functional languages, which leads one to believe that you have dabbled with them, but really don't know them all that well. You are attempting to target a more experienced demographic of developer, but your article is catering to newbies. Masquerading as a guide to 'Ace a Startup Engineering Interview' is just salt in the wound. We don't need any more guides on preparing for interviews. There are several good ones that exist, the advice that already abounds isn't going to expire anytime soon.
- dmitrykoval 14y agoIt always amazes me how people keep recommending CLRS as an interview preparation material. If you haven't studied Algorithms before it will take months to go through material in this book, leave alone making exercises. It is a serious textbook with strong mathematical rigor. If you have studied algos, granted, you would know what book to pick as a refresher and chances are - CLRS would be on your table. I think Sedgewick's book would be a more practical choice as a first book to learn some data structures/algorithms.
- ichinaski 14y agoI really appreciate this post. As a job seeker, I like reading this kind of tips. What is more, it has told me that all the things that I'm doing just for fun and for the passion that learning new things give, is being useful also for this purpose. Indeed, I think that the opposite direction is the weird one, since I can't see the point of learning C, algorithms,... just for the job seeking intention. You really need to enjoy that stuff.