Live data from Hacker News

Ask HN: I'm not a good programmer, but I keep acing interviews

news.ycombinator.com

31–40 of 43 posts

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#31
Programming, as a craft, is about the aspiration to write perfect code, as defined by your values.

Programming, as a job, is about doing a job, as defined by the job's values.

It sounds like you're a great craftsman but poor at letting go of your values in order to align yourself to what a job needs. (disclaimer - often what a job needs is NOT what anyone would include in their values - no one is a garbage truck driver because they aspired to it).

2 choices - double down or fold. If you double down, you should hold out choosing a job until you find a company that shares your values. If you fold, you should find a job that meets your living standard needs with the least amount of expectations and then seek something outside of work that aligns to your values. You can find that community via Ask HN, looking at open source projects that you respect, going to meetups - a whole host of ways.

I would recommend you write down your programming values so that you know it. For each value, you may want to give some reasons why you value it - this exercise is, at the very least, good for introspection.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#32
The sign of a good programmer is the one whose code can be refactored. There are, at least, two reasons for this:

1. The solution was apparent (in the code) and the code did what it said it did.

2. The code was "bad" enough to require a refactor or a better abstraction/generalization. To say this another way, the product requirements evolved and the code has different demands placed on it so the original design/code whilst good enough, merits replacement.

Your job as a superstar is to take that code to the next level. This is what these interviews are all about and why we do them.

You are not a disappointment btw... Politics are politics and if you are in a political env then leave... Engineering cultures exist and in those, the name of the game is to make the code work and hopefully make the code robust enough to reduce the amount of work you need to do in the future. And to allow others to build upon your work.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#33
A few things here jump out to me...

Put your happiness and well-being first. It's easy for me to suggest that you take the new position and bank $$$ for 6-12 months and get out before the feelings of disappointment set in, but only you know whether this is something you want or am able to do. Do what you can to keep yourself out of a role that makes you not want to get up in the morning, or staring at the clock anxiously waiting to leave.

Don't feel bad about being able to find work for yourself, and don't feel bad if the role is not what you expected/wanted. Finding the right gig takes some skill of its own, and a lot of luck (or someone you know you can tell you what it's truly like there...)

It sounds like you are projecting from the roles/companies to yourself as a programmer and then as an individual. Never, ever conflate the competency of what you do with the type of person you are. You may write code a living, but the quality and performance of that code does not define who you are. No one is a perfect fit for every role and every company, and some roles and companies are plain toxic.

It sounds like you have stuck around at places too long. You've been exposed to the office politics, questioned/been questioned about your performance, realized it's not a good fit but have not moved on, etc. If it's not what you were expected, if it's not what you wanted, there's no shame in looking to move on. Imagine getting married to someone after going on a blind date. That's a lot like how jobs are acquired in IT, unfortunately.

It sounds as if you're getting opportunities for a job, and not to challenge yourself. You mentioned the money issues, the similarity between roles, etc. Sometimes this is outside of our control, but it wouldn't hurt to think of what you would like to do and prioritize that in new roles.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#34
Not every job is about poorly documented legacy apps. "Green field project" + "quality, not a rushed MVP" might be rare, but hey, if you're a good programmer who aces interviews then you can afford to go for the rare ones. Be selective with what you pick.

Also, don't be afraid to try to make that position. If you're considering turning down this legacy app job for one that offers less money, first try pitching them on a rebuild. If you smashed their interview and they offered you a lot of money, then they think quite highly of you right now. Maybe they'll listen.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#35
In the interview you too can ask questions. For example, "Is this job mostly about slogging through poorly documented Java framework code?" Maybe you can phrase it more politely. But then again a manager should welcome candor. "I want to do __________, __________, and __________. I hope that there's not much _________, _________, and ________."

Then again, you can't always trust the interviewer. Ideally you would somehow find people in that job at that company and ask them what it's like. I know it's odd, but a friend of mine who is a tech recruiter recommended it. Instead of waiting for a job posting, research which jobs and which companies you most want, and then try to network your way into them, job posting or not.

Regardless, you are right, why don't interview questions better line up with jobs? I think I'm in the opposite boat. I like cleaning up code but would probably flunk a flurry of theoretical algorithm tests.

Be sure that programming is what you most want to do, given that so many of the jobs are about keeping up old code. Is there anything that has some of the things you like about programming but less of the things you don't like?

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#36
post #22

I have two comments: 1.) Moneyball made it look like the scouts ruined Billy Beane's life, but the reality is much more nuanced. His playing career didn't go well and when he was in AA, he started seriously doubting himself. But, when his career ended, he started off as an Oakland A's scout. 25 years later, after a great run as General Manager, he was named the A's Executive Vice President. The point of all this is t…

Thank you for your kind responses. 1) I know the movie is a fictionalization. I should have said, the “Billy Beane character”. But I see your point. Reality is more complex than one person being right for a role, and another person being wrong. There are many variables and a smart manager (or a smart person managing their career) can and should make changes. I am not sure what those changes are. It might surprise you…

> It might surprise you but I’m not a young developer at all

Have you considered becoming a team leader/scrum master/whatever it's called nowadays? I slipped into that role by accident, but found it very fulfilling. I saw my role as shielding my devs from mgmt, so they could deliver, which is all management wants at the end of the day. You still need to be technical, participate in design, do code reviews, maybe do a bit of coding etc, but you aren't slogging it in the trenches/doing the grunt work. You'll have to do more planning, sizing items, distributing work, but that also takes dev skill and dev knowledge.

Give it a try if you can. Worst case you can say it isn't for you, and you don't seem to have a problem finding a job. Best case, you might become a great team leader (or even manager if you want to go even less technical), and make a difference for the devs who'll be in a similar situation like yours once the novelty wears off. Team leaders can make huge changes to process, if you can justify them with e.g. hours of engineering saved.

Best of luck to you. I know what it feels like when you think you're trapped in one career path because you happen to be good at it, and it's horrible.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#37
post #23

Think about building anything else, besides software. The act of building is very different than the act of fixing, and even the act of adding on. Practically all software interviews -- technically speaking -- about building new stuff. Fixing bugs, adding features, and dealing with technical debt have practically nothing to do with algorithms and other technical interview topics. Which is to say that if you're not in…

If tech interviewer were trades interviewers, it would go somewhere along those lines:

For a welder position:

- "So, you are a welder."

- "Yes."

- "Good, so tell me how an IGBT transformer works."

- "I don't know, I can stick weld, MIG weld or even TIG weld aluminium, stainless, heck, even titatium"

- "That's not the question, I'm asking about an IGBT transformer"

- :facepalm:

That is, totally irrelevant questions for the job asked.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#39

"The desire to craft perfect code is an obstacle. Know how to do it better? Congratulations, you will be permanently dissatisfied." One way to think about it is: A programmer's job is not writing code. It's creating solutions to problems that the people who are paying you have. These solutions are usually time-sensitive, and can never wait for someone to keep rewriting their code until it's perfect. If you can learn…

> One way to think about it is: A programmer's job is not writing code.

Yet, interview revolves around: implement a link-list/LIFO algorithm.

Re: Ask HN: I'm not a good programmer, but I keep acing interviews

#40
post #4

"The desire to craft perfect code is an obstacle. Know how to do it better? Congratulations, you will be permanently dissatisfied." One way to think about it is: A programmer's job is not writing code. It's creating solutions to problems that the people who are paying you have. These solutions are usually time-sensitive, and can never wait for someone to keep rewriting their code until it's perfect. If you can learn…

Exactly - there is no such thing as perfect code. All code has constraints: maintainability, securability, scalability, flexibility and so on. You can't maximize all the constraints simultaneously as some are opposed. That's the nature of the beast. Once you realize there is no such thing as perfect code AND you realize your job isn't to produce code but to provide solutions then you'll be on your way to becoming a g…

And then, real question from another recent experience: "here's our network, optimize it" ... without any insight on any existing problem to solve, nor details about constraints or requirements.
Post reply on HN