Live data from Hacker News

I Am a Bad Developer

eewz0z.pen.io

131–140 of 223 posts

Re: I Am a Bad Developer

#131
post #61

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.

Agreed. However it would probably be better to show someone some code with a loop in a loop and ask them why it could potentially be a problem. If they can tell you in Big O notation why its bad for large inputs then great, but so long as they can tell you why that's what really matters.

Right -- Big O notation is a useful formalization of a thinking process that in practice usually includes more information.

That is -- anytime you write a loop, you'd better think about what's inside it (and how long those things will take), and -- given the amount of data you might be sending through that loop -- if that's a problem or not.

I want someone to notice that they're making a remote call in a loop when it could be batched, cached, etc.. I don't want them to spend 2 days optimizing an algorithm tinkering with a bit of text that yes, is inefficient, but in practice is only going to take a few milliseconds anyway and isn't a hotspot.

Re: I Am a Bad Developer

#132
post #66
post #63

Earlier 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.

Heart surgeon? No. But lawyer? Yes. Chemical engineer? Yes. Physician? Yes (private family practice is a dying art in the US). Movie star? Yes.

Very few career paths offer absolute job stability and an infallible guarantee of employability. That's no reason to be embarrassed of a career choice.

Re: I Am a Bad Developer

#133

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

Those "stupid programming puzzles" are about evaluating problem-solving abilities. Asking about architecting a system from a higher level also does this. Asking how a browser works is in the memorization category, and I just don't understand how that can give you useful information.

Now you didn't give a lot of details - maybe you're upset about being asked to implement mergesort. That would also be an exercise in memorization. I'm not condoning that.

Being able to analyze an algorithm from a time/space complexity standpoint is about whether you can reason about code. I think that is also a useful thing to find out in an interview.

Re: I Am a Bad Developer

#134
You are twice as good as I am. And you have put something in words I would never ever have dared to, or am capable of. I see you as a bright individual. I am struggling with the same question. With 7 years of experience and not good enough open source code to show, I am spiraling in a vicious circle. I love Math, programming and physics. Thanks for posting, you glorious dude.

Re: I Am a Bad Developer

#135
post #33

Earlier quoted context omitted.

It's clear that the author is very motivated and probably pretty smart, but I wonder if there might be some gaps in his knowledge foundation. I was surprised for example that he was learning about information theory, and yet he had trouble analyzing the computational complexity of a function that he coded.

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…

I know a specific case where a manager was convinced he could do a better job of something than his employee, and coded up an algorithm over the weekend that performed 20% better on the test-data and was only slightly slower.

The employee had to explain that they couldn't deploy this algorithm because it was O(N^3) whereas the (already deployed) one that was doing worse on the test-data was O(N log N). The test-data was two orders of magnitude smaller than what could reasonably be expected while deployed.

Re: I Am a Bad Developer

#136
post #17

Anecdotally I have come across developers that match the description the OP gives of himself. They read a lot of papers, they know a lot about the inner workings of many common and obscure programming languages. Many know and love development process theory and they contribute to open source projects. Here is the but: when push comes to shove, they can't deliver to production. I've seen many smart coders falling shor…

Tend to agree (though it's impossible to say about any particular person.) Mentioning TAOCP and SICP at an interview (as he did in the post) would raise some alarms with me. They're not useful books in most jobs, and bringing them up just makes you look like the kind of person who doesn't understand that.

> They're not useful books in most jobs, and bringing them up just makes you look like the kind of person who doesn't understand that.

That seems like a rather silly conclusion to draw. I actually think these sorts of hasty conclusions are part of the problem with the hiring process in the industry.

Re: I Am a Bad Developer

#137
post #68

Earlier quoted context omitted.

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...

Absolutely the best questions to ask in interviews, in my opinion, are open-ended questions. The problem with those, however, is that the interviewer himself has to know enough to be able to correctly judge whether the candidate's answer is a reasonable one. 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 Engli…

I've had some good luck with open-ended questions like "Tell me about a time when you had to deal with a scaling issue." How they define "scaling issue" often says just as much as their explanation as to how they solved it.

I think I've had to ask for clarification a few times due to the interviewee answering the open-ended question with something I wasn't familiar with, but that's an excellent opportunity to gauge their explanatory skills anyway!

Re: I Am a Bad Developer

#138

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

> - when I type in a URL in my browser's address bar, press Enter, and then the page appears, tell me what happened technically in as low level as possible. Hey, that's one of my favorite questions as well! Great way to gauge depth of knowledge, and you can take it so many places afterwards (HTTPS / SSL, REST, etc). The best answer I heard started with "well, the enter key press triggers an interrupt...., followed by…

I used to like this question, until I interviewed a few people who hadn't worked with HTTP. Then it's unclear how to rate them. Since I'm not interviewing specifically for a web programmer I had to pick problems someone could work on without that kind of experience.

Re: I Am a Bad Developer

#139

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

> And admittedly, the questions I asked were so difficult that I seriously doubt I myself could've answered them when I first got hired.

Would you be willing to share any of the questions you asked? Your description here has piqued my curiosity.

Re: I Am a Bad Developer

#140

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 think I went through 50-75+ different applications, 25+ phone/skype screens, and 5 on-sites for my most recent job hunt. I stopped keeping track after a while. I targeted companies that I thought I'd fit with a person and agreed with the products they made. It's very disenheartening to find out that you didn't make the cut time and again. I guess I'd advise you to ensure (1) you're going to open houses and tech mee…

I can't speak for the OP, but living in the boonies is great. It does ensure a long time between jobs, and the choices aren't as good. On the other hand, they tend to really value you since it's just as hard to get people to move to the middle of nowhere for a job as it is to find work out there. Scarcity works both ways.
Post reply on HN