Live data from Hacker News

I am a quite good bad programmer

news.ycombinator.com

61–70 of 160 posts

Re: I am a quite good bad programmer

#61
Do you have to be good at everything? It is an unreasonable expectation. It is better to know a lot of stuff a little and some things very, very well.

Do you have to get every job? You do not. You just need to find one that suits you and where you will be successful, and everything else is meaningless. But don't completely reject the feedback -- try to understand what is causing you to be unsuccessful in interview to get better at it and hopefully improve your chances of getting the job you want.

Interview questions (and I say this being an interviewer and having interviewed thousands of candidates) do not tell if you are a good programmer though they can tell if you are a bad one. Even then, one has to recognise that selection of questions is going to shape the definition of what good and bad is.

There is also no single definition of a good and bad developer is. Different types of jobs require different types of people. I have hired for positions where I needed a dull, ambitionless person that can take boring tasks day after day without complaint. If I saw a candidate with even a hint of ambition I would immediately tell them no because there was no way they would stay on the job for long.

My advices:

- Find your niche, find what you are good at AND gives you joy or at least satisfaction that you know you can be doing well and have others at least potentially recognise you for this.

- Know your limits. Do not try to get hired over your abilities unless you do it with intention of stressing yourself to get better in the end (know why you are doing it).

- Set up a periodic review of what you are doing, what is not going well and what you can do to be better at your job.

I, myself, found that I am perfectionist and able to write perfect code, fast, reliable, but with the downside that it takes forever to get anything done.

I decided early on that I will be working on projects that benefit from being perfectionist and that I will immediately reject any project where there just isn't any business case of polishing your code. So no websites, no UIs, no startups, etc. I am working on backends for critical corporate systems.

Re: I am a quite good bad programmer

#62
post #58

I understands Object Oriented correctly and knows where to use it and how and when to avoid it Literally nobody "knows" this for every case, there's not a right answer: OO is a philosophy not an instruction manual. "Good programmers" accept there's ambiguity.

My interpretation of OP's comment was that they were saying something pretty similar to what you are saying. That is to say, knowing where to use it and how and when to avoid it is an acknowledgment of that ambiguity. Maybe you mean that nobody can claim to know where to use it? Also, why did you put good programmers in quotes. Do you not believe there is such a thing?

Re: I am a quite good bad programmer

#63

For a recent interview I was asked to build an IOC dependency injection library in 2h and the task was made “deliberately” unclear according to the interviewer. So I spent 2 days researching IOC libraries, building some nice examples of how it should work to get a feel for the API, writing tests up front, writing the library and adding docs. Then I got an interview! Fantastic I thought, I passed the technical with my…

I start a new gig Monday… my best interviews were with two big tech companies… one hired me and the other said I lacked “code fluency”, which I had never heard of in those words.

Some of these places expect your first draft of a weird abstract problem to be perfectly readable in a live coding environment. Without any pressure my first draft is feeling out the problem and then trimming everything up.

In any case I landed at my preferred company, which is very exciting.

Re: I am a quite good bad programmer

#64
Your experience is very common

Take home projects are much better for me than interview problems, but take home projects are unnecessarily complex and time consuming. But at least I can open source them and put them and make it look like I do side projects

Re: I am a quite good bad programmer

#65

> I understands the usage of Hash / Map instead of searching arrays and many other small things that actually enhance the code performance I would consider this an assumed skill for any developer with a college degree. It’s basically the point of the entire Data Structures class, which is a degree requirement.

I had an extraordinarily painful conversation with someone who had done pretty well in our DS class but didn’t have a ton of practical experience. Me: “why don’t you just use a hash table here? That array you’re iterating through each time has like 200,000 entries” Him: “I can’t. I need to be able to get both the key and the value and hash tables don’t store the key” Me: “…sigh, school has failed us again”

> someone who had done pretty well in our DS

> Him: “I can’t. I need to be able to get both the key and the value and hash tables don’t store the key”

How could he do well in the data structures class? This is the definition of a hash map or hashed dictionary, so this is basic knowledge of data structures that is taught in this class and central to know to even have a chance of passing the exam.

Re: I am a quite good bad programmer

#66
I used to be like you. I stay on top of cpp con talks, I read Meyers and Andrescu's books and I had some fun side projects and I do fine at work, regular promotions, etc, but I did incredibly badly during interviews. I wasn't sure if it's some kind of IQ thing because I know people who can answer those CS questions without studying but I took the advice of some friends and I spent months grinding leetcode style questions. After a while something in my brain clicked and since then I've gotten a ton of job offers and worked at two FAANGs.

Re: I am a quite good bad programmer

#67
I'm the same way. 25 years in the industry, though I consider myself a jack of all trades. Went from Oracle development -> ASP Classic -> C# -> PHP -> NodeJS. I think I'm pretty good at getting what needs to be done, but I absolutely fail when doing tests. I know how to program, I just may not know all the terminology and what... and if I don't understand something, google is always a few clicks away. Keeps me scared of looking for new opportunities though.

Re: I am a quite good bad programmer

#68

For a recent interview I was asked to build an IOC dependency injection library in 2h and the task was made “deliberately” unclear according to the interviewer. So I spent 2 days researching IOC libraries, building some nice examples of how it should work to get a feel for the API, writing tests up front, writing the library and adding docs. Then I got an interview! Fantastic I thought, I passed the technical with my…

Similar experience last week

The company added a take home project into the interview process retroactively

Said the task would take 2-4 hours

It took me days of research and development

And then I re-did the project in a few hours, simulating github commits to a new repo so they could see the time it took

They graded unknown things

Re: I am a quite good bad programmer

#69

I used to be like you. I stay on top of cpp con talks, I read Meyers and Andrescu's books and I had some fun side projects and I do fine at work, regular promotions, etc, but I did incredibly badly during interviews. I wasn't sure if it's some kind of IQ thing because I know people who can answer those CS questions without studying but I took the advice of some friends and I spent months grinding leetcode style quest…

That "Something" is usually problem decomposition. Programming is very much a game of slicing a big problem into solve-able smaller problems, and leetcode is usually just a one-to-one mapping of description to some polynomial time algorithm from a textbook.

It's a game of quick matching (what polynomial time alg comes close to solving this), then quick coding (how do I translate the input to something that alg can solve). Do that over and over and you're an excellent interviewee.

Re: I am a quite good bad programmer

#70
post #65

Earlier quoted context omitted.

I had an extraordinarily painful conversation with someone who had done pretty well in our DS class but didn’t have a ton of practical experience. Me: “why don’t you just use a hash table here? That array you’re iterating through each time has like 200,000 entries” Him: “I can’t. I need to be able to get both the key and the value and hash tables don’t store the key” Me: “…sigh, school has failed us again”

> someone who had done pretty well in our DS > Him: “I can’t. I need to be able to get both the key and the value and hash tables don’t store the key” How could he do well in the data structures class? This is the definition of a hash map or hashed dictionary, so this is basic knowledge of data structures that is taught in this class and central to know to even have a chance of passing the exam.

No, technically he's right. On paper, a hash map creates an index in an array-like structure from the key, but does not necessarily store the key in a retrievable way. The "Hash" in hashmap comes from the fact that the key is somehow hashed (an often irreversible procedure) to determine the memory location to store the value.

In practice it's not the case, but very technically from a purely theoretical standpoint, I think he's right.

EDIT: untrue on any finite sized array, due to collisions. See below, and sorry for the brain fart!

Post reply on HN