Live data from Hacker News

What does it take to be a good programmer?

dimitrov2k.wordpress.com

51–60 of 116 posts

Re: What does it take to be a good programmer?

#51

In my opinion, "be humble" isn't a winning strategy. Don't be so arrogant that you stop improving or fail to understand mistakes, but by all means don't be humble. Be proud of who you are and the work you've done. You work in an industry where 90% of people don't understand what you do. Chances are your own boss won't understand the actual value you're providing. So don't be humble. "There's always someone better tha…

I think that's crossing the wires of humility and confidence. You can be confident but humble. Confidence is your ability to come up with solutions and feel like they are the right solutions, and that they are good or excellent solutions. Humility is your ability to come up with solutions and realize that (1) they might not be the _absolute best_ solutions, (2) some solutions that look like they're better are actuall…

You can be confident but humble.

I agree with you in principle, but again, I don't think that's a winning strategy.

A humble, competent woodworker creates a piece that's beautiful, visually rich, has a solid, study feel to it, and can be appreciated by most. The software engineer, who checks in a fix on the back-end service that pre-empts several bugs that had yet to be discovered, goes relatively unappreciated.

So can one be humble and confident? Yes. Will it be understood and appreciated from the outside? Probably not. Is it a good strategy? Probably not.

I'd say a person has three options:

1) work for people who are technically competent enough to understand the true value of your work. In my experience, this is pretty rare out in the real world.

2) become a salesman and sell yourself at all times. This seems fundamentally opposed to dominant personality types in software.

3) stop being so humble and be proud of your work. This seems like the most logical choice to me.

Our industry is rife with imposter syndrome, legends of the 10x engineer, impressions that everyone else is succeeding flawlessly thanks to polished blog posts and GitHub portfolios [1], and endless pontificating on things that often boil down to fashion and code style. I don't think we need anything telling us to be more humble.

You may be a completely average engineer writing CRUD software for some local bank. Yeah, maybe that guy blogging about his work at Google would do a better job than you. But he's not here, and your the best you company has found. You're valuable and capable. Be proud of what you've accomplished!

[1] - people have written recently about how Facebook causes negative feelings since you seem to see others only at their best. I think this is normal folks finding out what tech types have experienced for decades, but nobody has ever talked about it.

Re: What does it take to be a good programmer?

#52
A good programmer is a good problem solver. But it also requires technical knowledge or ability to acquire it, as well as a good ability to communicate ideas.

Now, you can solve problems in many ways. They can be solved in the best interest of the programmer, or in the best interest of the company.

If I have a sales team, and give them a goal to sell $100, and they make a loan for $100 on behalf of the company and give me $100, that's probably not a good sales team. Let alone a 10x sales team.

But in software, technical debt (equivalent to buying with a loan) is something done frequently and some people mistakenly perceive it as being a good programmer. Usually because they cannot perceive the build-up of accrued work.

Re: What does it take to be a good programmer?

#53
post #40

Well, I've been programming 30+ years..... I think one of the main things that makes a good programmer is someone who cares about the final product. Ironically this doesn't necessarily mean you have to be super good at writing code. I have seen people with what seems basic coding capability very methodically build some really nice software. This is because they are very focused on the "end" not the "means". You see t…

Usually they methodically build very nice nightmare, but of course 30+ years is long enough to see a couple of exceptions. I've been there for 15+, and half of that in 'consulting' — it's when you write business code right here, right now after 10m discussion. These are really two different styles, but I feel what you mean. 'Good code' is a hard thing to define, but for me it is the code that fully covers all aspects of the initial set of intents (I intentionally let the purpose and profitability off, because it may be not of value in some cases). If intents are unclear, we can't really evaluate anything in between. If it was a very dirty hack for a hard task, and we intentionally made it, it is still good code. Thus you can't tell good code from bad without knowing its history and the rationale behing it. Code doesn't fail, projects do.

Re: What does it take to be a good programmer?

#54

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

Rarely do devs ever remember what its like to be at the bottom. I've found the elitist attitude everywhere where devs will suggest completely unrealistic solutions to problems that are on such a higher level of development they miss the objective completely. I once saw a Python+JS dev tell a newcomer to JS to just write all their code in Python and transpile down to JS. They completely missed the point that in order to properly do so, you first have to know what your JS is going to do and how it works.

Its even more upsetting when you see all these stories of people that only took them 'a year' to start making a good living with it. Typically, they show the most arrogance by asserting that they have what they have because of their merit, when really the company that hired them just couldn't get anyone else that had some specific knowledge in what they were doing, or the job description was wrong, as they always are, so it attracted the wrong people. I don't consider these individuals to be developers of any usefulness outside of their scope of work, because they simply haven't spent time outside of it, so they are not problem solvers, they just look up guides online and make the same stuff everyone else makes.

Being a good developer takes time, it takes a lot of failure, and it takes a continued effort to learn.

Re: What does it take to be a good programmer?

#55
post #13

Shocking to me that there are so many articles on this. The strategy to becoming a good programmer is the same strategy to become good at anything else. 1. Identify what it means to be good 2. Work endlessly towards that aim 3. Deliberately practice 4. Decide to refine strengths or squash weaknesses. Do this as frequently as possible. Make sure you have an accurate assessment of what your strengths and weaknesses are…

This is a good generalized process for getting better at anything, but it's still awfully subjective and squishy once you try to apply it to a given domain. How do you `Identify what it means to be good`? How exactly do you `Deliberately practice`? How do you assess your strengths and weaknesses? How do you find someone more experienced? How do you know that experience has given them good lessons?

Answering all those questions for a given domain is how we have so many articles like this. Everyone has their own take, and it can be useful to look at others' so you can compare it to your own.

Re: What does it take to be a good programmer?

#57
I've been programming professionally for the last 6 or so years, I've been in 4 teams across 3 companies. The reason this question generates so many answers with such great diversity is that the answer really depends on where you work and what you consider success to be.

At the first company, a good software engineer was a person who could effectively work inside of the team and get through the requirements for code review in a timely manner. While working at another job a good programmer was someone who could figure out the requirements by themselves and have a working product to show the boss in a timely manner. At my current a good software developer is someone who has a strong grasp of their language of choice, can deliver features to a Product Owner, and who can grab a project by the horns and lead from an architectural or design perspective.

None of these answers are wrong, they are just reflections of the engineering cultures they are born from.

Based on my experience a good programmer is someone that understands what success means in the culture they are currently in and can execute on that. Long term a good programmer is someone that continues to learn popular skills, products, frameworks, tools and can continue to follow the path that best suits them, whether that be a startup, large corp, freelance, or entrepreneurship.

It's all about opening doors for yourself to walk through.

Re: What does it take to be a good programmer?

#58

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

This nails it in my opinion. Too often I see people assume that programming/coding is somehow science based. It's not really, it's an art and you need to be a creative person to be good at it. The science comes later (sometimes never for some).

I moved from coding to teaching. It's amazing how they use math scores to predict how well someone will do at computing.

I was rubbish at maths, but fine at coding.

It's more art than anything.

Re: What does it take to be a good programmer?

#59

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

Finishing things.

So many coders don't do that. It's really hard to just say "Done." and click 'release'.

Then wait for the criticism.

Re: What does it take to be a good programmer?

#60
post #53
post #40

Well, I've been programming 30+ years..... I think one of the main things that makes a good programmer is someone who cares about the final product. Ironically this doesn't necessarily mean you have to be super good at writing code. I have seen people with what seems basic coding capability very methodically build some really nice software. This is because they are very focused on the "end" not the "means". You see t…

Usually they methodically build very nice nightmare, but of course 30+ years is long enough to see a couple of exceptions. I've been there for 15+, and half of that in 'consulting' — it's when you write business code right here, right now after 10m discussion. These are really two different styles, but I feel what you mean. 'Good code' is a hard thing to define, but for me it is the code that fully covers all aspects…

Usually ... I find many people can make nightmares for all kinds of reasons ... but for me, usually, people who have a strong sense of what they want and they have a strong sense that they want it to be "good" but only have a basic coding skills. They don't end up with nightmares, possibly slightly strange things, but they tend to adopt coding advice in a considered manner and start growing their coding capability. The biggest problems there comes when the person is dealing with frameworks which have concepts beyond their current coding capability.

I think we see at the other end of the spectrum with the frameworks, languages and software we really like, they are done by people who really want their end result to have this quality of "good" and are very considered. They leverage their coding ability to great effect.

(lua and its implementation is a good example of this )

I think when we see your more run of the mill business app where you spec -> implement, often you don't see good programming, often because no one super cares. It's just average programming. However, when someone starts thinking, well, applications like this should be super easy to put together and really starts to care that they are easy to do, then you'll see some good programming :)

Post reply on HN