Live data from Hacker News

I Am a Bad Developer

eewz0z.pen.io

111–120 of 223 posts

Re: I Am a Bad Developer

#111
OP here.

To clarify: I do understand algorithmic complexity. You don't often study information theory and ordering while skipping Big-O and friends if you're into CS. I was rather mad at myself for missing it in an interview. I should know it but I struggle with it under pressure.

If it's not one thing it's another though... and the repeated failures to find market acceptance for all the effort I expend to be a good developer is draining. I don't think I had any specific intent before I wrote this. I've just been trying to write it for weeks because this is something I'm going through and it's not something I find easy to talk about. I started out hoping to find out more about myself but I'm just left with more questions.

I'm ten years into a career and have had a long passion for programming (ever since I was a young kid copying BASIC listings into a Commodore).

Re: I Am a Bad Developer

#112
post #75

Earlier quoted context omitted.

Knowing the time complexity a given function you write is generally not important. However, the skill to analyze the complexity is an important one to have, because when performance issues to come up, it is often a very powerful tool to have.

My read was that he froze during the interview. Perhaps I was injecting my own experience, which once very literally went like this : interviewer : "what's the time complexity of blah " me : "hmm... O(1)" interviewer : "what's the space complexity?" me : "fuck, oh, I don't know" interviewer : "well, think about it. no stress" me (2 seconds later) : "oh, right, yeah, O(n)... of course" Not saying I'm proud of not taki…

I'm drawn to this for several reasons...

Trite though it is, admitting that you don't know truly is on the path to wisdom.

Not taking time to think things through is endemic in the workplace, not just an interview quirk.

in the real world, many O(N) algorithms are in fact O(I don't know) because of unexpected or unpredicted behavior from language, compiler, interpreter, runtime, os, etc.

Re: I Am a Bad Developer

#113
" I never achieved much and there's nothing I have done that I'm especially proud of. I just got by as best I could even when the world decided I wasn't good enough anymore."

This hit home... I wish to change it though.

Re: I Am a Bad Developer

#114
post #13

After calling yourself a "bad developer", I was hoping to find a link to your github so I could judge for myself. I'm not implying my judgement matters; I'm just curious.

I'm pretty sure it's an anonymous post .. on purpose.

Re: I Am a Bad Developer

#115

OP here. To clarify: I do understand algorithmic complexity. You don't often study information theory and ordering while skipping Big-O and friends if you're into CS. I was rather mad at myself for missing it in an interview. I should know it but I struggle with it under pressure. If it's not one thing it's another though... and the repeated failures to find market acceptance for all the effort I expend to be a good…

I'm a lot like you, so I hope you'll believe me when I say your entire problem is that you allocated 1/4th the time you needed for getting a new job.

Re: I Am a Bad Developer

#116
> Well my bookshelf is stocked with the classics...I've read most of them

He's able to digest heavy tomes of abstract and concrete methodologies (for some value of "understanding"), but not create anything with it that he isn't told to? That sounds like a bad developer trying to pump up his image, to me.

Re: I Am a Bad Developer

#117

I also feel like I'm not very good at in-person interviews because I'm not very good on-the-spot. I mitigated this by using a variation of "The Briefcase Technique" which I learned from Ramit Sethi. The company I interviewed with is in the SAAS email space, so to get their attention I created a mini web app combining SMTP and web technologies. This took me about 3-4 hours tops. I was trying to demonstrate a few thing…

Great strategy!

Re: I Am a Bad Developer

#118
post #60

Earlier quoted context omitted.

I understand Big O. My point is for a lot of cases it doesn't matter, and just because someone can't throw off the top of their head the O complexity of some algorithm they just wrote in a stressful interview does not mean they don't understand the concepts. Besides a O(N log N) algorithm over 10 or 100 items is not going to cause any issues. In the case of your standard CRUD application that's what you are going to…

You're right that it matters very little if you can deduce the exact complexity right off the bat. But it DOES matter is if you can tell if an algorithm is closer to n^2 than log n. OR identify that n is low enough that it doesn't matter. > Besides a O(N log N) algorithm over 10 or 100 items is not going to cause any issues. In the case of your standard CRUD application that's what you are going to be dealing with. I…

Going to have to ask for an example.

I am yet to have seen a basic CRUD app that had performance issues due to a bad coding algorithm. Certainly from poor queries but never from an bad algorithm.

Keep in mind I would say that a simple CRUD app with millions of entries is no longer a simple CRUD app.

Re: I Am a Bad Developer

#119
post #23
post #22

On 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…

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…

A friend of a friend was recently fired from Github. I don't know where you got this information from.

Re: I Am a Bad Developer

#120
From your post you sound like a nice fellow and I wish you the best and want you to find happiness and job security. However, also based on your post, I am sad to say that I think you're right, you are a bad developer. I strongly urge you to lower your sights and aim for a job that has a lower skill requirement.

So as not to leave you guessing, here are the red flags that jumped out at me in the post: I don't remember the particulars but I know that for every recursive form there is an iterative solution. This is not a fact to be memorized and referenced, it's a consequence of a fundamental understanding of how programs execute.

I still draw a blank when asked what the magnitude of complexity is for the guests function I just wrote ... damnit, of course calculating the permutations of a list is n-squared, but this is an interrogation of the random trivia I can manage to recall This also sounds like you are trying to apply memorization to a problem that requires analysis. When asked for the complexity of a function, you don't compare it to algorithms with known complexities that you've memorized, rather, you look at the code and reason about what it is doing proportional to its inputs. There are certainly insanely hard algorithms to analyze, but I don't think we're talking about them here.

I really like joint semi-lattices I don't point this out to be pedantic, but as another instance of memorization vs. understanding: they are called 'join semi-lattices' ('join' one of the fundamental operations you use when working with these).

I still blunder my way through an exercise to write a function which returns a boolean in response to the question of whether sequence A is a sub-sequence of sequence B I ask a warmup question like this to cut the interview short if the interviewee has problems. Good programmers will absolutely get nervous, stutter, and make mistakes; that's fine; but this is simpler than that.

I once had a friend who did fantastically on Biology with little effort but did horribly on Physics, despite immense effort. After trying to help her a few times, it was clear that she was trying to apply memorization (which worked well for her in Biology) to Physics. To do well in Physics, you have feel comfortable enough with the math and physical concepts to derive your own answers. The same goes for programming and I wonder if some of your latent unhappiness with your original job wasn't caused by a fundamental impedance mismatch with your approach to programming.

I'm sorry if this was blunt; if we were in person, I'd try to be much more delicate. But you did post on HN, presumably for advice. Best of luck!

Post reply on HN