Being a good programmer is not the same thing as being a good engineer or developer. Also, there are the true and corporate varieties of each. True Developer: builds technical assets (apps, scripts) based on business needs, often by self-initiated awareness of what the company's needs are. Corporate Developer: turns managerial ideas (with no audit of whether those are good ideas) into apps that sorta work, very quick…
I Am a Bad Developer
81–90 of 223 posts
Re: I Am a Bad Developer
#82On Friday I had a remote interview where I was asked to search for the value closest to X in a sorted 2D array (columns and rows are both sorted in increasing order). I came up with a trivial solution to find a specific value, but got tripped up modifying it to find an unknown value that could be higher or lower than the target. I have not heard back from the company. On Saturday/Sunday, I went to AngelHack SF and di…
> Or is the hiring practice of reducing someone's technical competence to a handful of esoteric questions arbitrary and broken? Certainly the hiring practices of Google et al, generally the worst perpetrators of cs bingo in my experience. Started a startup, you say? Rebuilt a non-trivial webapp? Won a hackathon? That's great, but we're going to need you to implement red-black trees and variations of fizzbuzz until yo…
But I didn't give a crap, because hiring is something you're kind of coerced into doing (it's not technically required, but not doing interviews looks bad at promotion time). And I hated doing interviews with a passion, so I'd just give them one impossibly hard question, which is easier than asking a bunch of questions.
Re: I Am a Bad Developer
#83I could have written this piece. It hit that close to home. I'm 15 years into my IT career and I can honestly say it's not getting easier. I don't believe it's an ageism thing, but just a symtom of something I still cannot put my finger on. I put myself on sabbatical after realizing that my needs were not being met on a regular basis by my job. While I'll allow short-term ROI to be negative, I will never allow my lon…
100% agree. For a web position I have no idea why you would ask them to write a tree parser or binary search algorithm which I experienced not that long ago. Asking about what happens at a low level when entering a URL however is a good question. Or perhaps asking how to do cross domain JSON requests etc...
Not only that, there are fewer language barriers when asking some canned binary tree bullshit. So a Chinese programmer doing an interview who barely speaks English can still proudly ask the candidate some crap about Heapsort and feel like he's done his job well.
Re: I Am a Bad Developer
#84Earlier quoted context omitted.
Ya, I've been the victim of "couldn't balance a B-Tree fast enough so you're not hired but you'll never see a B-Tree at work." You mention that there isn't a better solution. IMHO, I disagree. I think Github has figured out a way. They've been around 5 years and haven't fired anybody and nobody has quit. Most firings are due to a job / job skill mismatch. At Github, they do a week long paid interview so both sides re…
What make you think GitHub haven't fired anybody? I don't know that they have, but it seems very unlikely.
Re: I Am a Bad Developer
#85Interviews should be a lot more simple. How about sitting the potential candidate down after validating their resume and skill-set meets the requirements of the role with your developers and have them help the team out for an hour or two and see how they go. There are many other factors to consider like; are you a good fit for the team (personality wise especially), are you able to adapt to other coding styles and conventions you might not be accustomed to?
As Albert Einstein once said: "Never memorize what you can look up in books" — Google is the 21st century equivalent of a book. Why remember what you can Google? You might not know how to write that complex algorithm off of the top of your head, but that shouldn't matter. What should matter is knowing what to search via Google or a book to solve the problem.
As a web developer who uses a plethora of languages like PHP, Ruby, Javascript (Node.JS and jQuery), CSS, HTML and Python it's a given you won't know how to do everything. I consider myself pretty knowledgeable but the things I don't know, I Google. The difference between a good developer and a bad developer is whether or not you have the skills to find the answers to your problems not whether or not you know the answers off of the top of your head.
Another approach when hiring someone is sitting them down and ask them to build something, not solve a mathematical problem but actually build a website application or software application. Interviewing a web developer? Ask them to build a simple blog application or script that interfaces with the Twitter API and fetches 10 Tweets based on a hashtag...
That's my take on it anyway.
Re: I Am a Bad Developer
#86Sadly, this may be the cause more than anything else. Degrees are a very quick signal. The author may be doing as equally well as candidates with degrees, but the degree becomes a tie-breaker.
Re: I Am a Bad Developer
#87Earlier quoted context omitted.
> Or is the hiring practice of reducing someone's technical competence to a handful of esoteric questions arbitrary and broken? Certainly the hiring practices of Google et al, generally the worst perpetrators of cs bingo in my experience. Started a startup, you say? Rebuilt a non-trivial webapp? Won a hackathon? That's great, but we're going to need you to implement red-black trees and variations of fizzbuzz until yo…
Did interviews for 5+ years at Google... the real problem is that there's no uniformity to the hiring process. I was allowed to just make up my own questions and judge candidates based on those. And I did so. And admittedly, the questions I asked were so difficult that I seriously doubt I myself could've answered them when I first got hired. But I didn't give a crap, because hiring is something you're kind of coerced…
Re: I Am a Bad Developer
#88All I would say is, aim much lower, pick up plain old ugly Java, learn Spring, Hibernate. From being a "bad" advanced algorithms Lisp / C++ developer it's an easy jump to be an "ok" CRUD apps developer / Enterprise drone. You will nail the technical interviews, just try not to be overqualified. Pick up either Spring/Java/Hibernate for the corporate "boring" market (but still well paid / plenty of offering) Or Rails /…
Java seems to be on its way out here.
Re: I Am a Bad Developer
#89Earlier quoted context omitted.
Not sure if that's really relevant. Unless you are applying for a job where time is money stock trading or some such I don't see how knowing a method you are writing is O(log N) rather then O(N2) is useful. Its something to keep in mind sure, but I would rather have the slower method integrated into the code base faster. Yes performance is a feature but realistically you can get away with some fairly awfully performi…
Although understanding the difference is important, the specifics are typically far more relevant in a high performance language than a dynamic scripting language with lots of "magic". OP is interviewing for a C++ gig, so performance was clearly a motivating factor. Not nearly as relevant for someone using scripting languages and building UIs.
I've used slow web pages that show a lot of items or data. One way to make them slow is O(n^2) DOM manipulation (e.g., inside a loop over items in a page, O(n)-searching the page for something).
Knowing complexity theory isn't the only way to find performance problems, and sometimes isn't even relevant, but it sure is helpful.
Re: I Am a Bad Developer
#90Earlier quoted context omitted.
I think it's a combination of both. He sounds ashamed to be a software developer to the extent that he doesn't want his daughter to know. What's up with that? It might not be the same as being a heart surgeon, but at least in the US software engineering is viewed very positively as a career, probably alongside chemical engineering and law (actually law is viewed fairly negatively by many these days).
Ever heard of a heart surgeon that can't pay his bills? Now have you heard of a developer that couldn't pay his bills? That's why he wouldn't want his daughter to know what he does.