Live data from Hacker News

Ask HN: What habits make a programmer great?

news.ycombinator.com

51–60 of 191 posts

Re: Ask HN: What habits make a programmer great?

#51

The "developer on fire" podcast closes out each episode by asking the guest to provide three tips for delivering more value. Some that occur frequently are: * Take care of yourself. Get enough sleep, exercise and healthy food. Have hobbies. * Constantly learn new stuff * Practice communication skills. Building stuff fast and well doesn't help if you're building the wrong thing, and you need communication skills to pr…

> * Practice empathy Any tips on how to do this? I don't often feel things for myself and it's even rarer to experience empathy at a level I can detect. I meditate to try to better understand and learn to detect my feelings, but haven't made much progress yet (I use Headspace).

Do you have close relationships with people? A good place to work on empathy is with your significant other, friends, and family.

Re: Ask HN: What habits make a programmer great?

#52

A few habits I've found that work well for me: 1. Start small, then extend. 2. Change one thing at a time. 3. Add logging and error handling early. 4. All new lines must be executed at least once. 5. Test the parts before the whole. 6. Fix the known errors, then see what’s left. Taken from here: https://henrikwarne.com/2015/04/16/lessons-learned-in-softwa...

> All new lines must be executed at leaat once. What if you write a function in Go that's littered with the usual if err != nil { return err } and the error that's being propagated is hard to reproduce, e.g. a filesystem error? I never cover those "return err" in actual programs.

I sometimes temporarily modify the program by for example misspelling a file name of a data base column name just to provoke an error that will execute the error handling code. Or changing a condition from == to != to cause an exception. Not ideal, but at least the new code is executed at least once, so I see that it executes as expected.

Creating tests for some of these cases would involve mocking things out, and then you have to make assumptions that may not hold anyway. That's why I like to see it execute in the real environment at least once.

Re: Ask HN: What habits make a programmer great?

#53

The "developer on fire" podcast closes out each episode by asking the guest to provide three tips for delivering more value. Some that occur frequently are: * Take care of yourself. Get enough sleep, exercise and healthy food. Have hobbies. * Constantly learn new stuff * Practice communication skills. Building stuff fast and well doesn't help if you're building the wrong thing, and you need communication skills to pr…

> * Practice empathy Any tips on how to do this? I don't often feel things for myself and it's even rarer to experience empathy at a level I can detect. I meditate to try to better understand and learn to detect my feelings, but haven't made much progress yet (I use Headspace).

Empathy is both a cognitive and an emotional thing. Getting to know your own emotions is great and helps in understanding others, which can be achieved by meditation. But it's also necessary to think about other persons and the reason for their behaviour. Here, I think, literature and other narrative forms of culture helps us. Read good books!

Re: Ask HN: What habits make a programmer great?

#54

Focus on the problem and not the tools ceremony around it. Don't follow the herd and the hype. When given a problem, keep drilling the problem until it is absolutely clear to you and then only work on solution.

"A woodsman was once asked, 'What would you do if you had just five minutes to chop down a tree?' He answered, 'I would spend the first two and a half minutes sharpening my axe'.”

Proper understanding of the problem is extremely important. Great advice.

Re: Ask HN: What habits make a programmer great?

#55
- Add value. Train yourself to only do things that add value. Value is loosely defined. It can be going the extra mile smashing that bug that everybody is complaining about. It can be whipping up a mind blowing demo to pull in that big customer. Nobody cares if you work 80 hours a week, but it's not adding any value. Get in the habit of working on things that bring value to others.

- More communicating, less coding. This is extremely important in teams and large organisations. Communicate to make sure nobody does double work. Communicate to have your ideas and opinions heard. Communicate to avoid doing pointless work. The list goes on. Communicate with your peers, your boss, your customers.

- Have healthy habits. Eat well, sleep well, exercise. When you're young you can pull off all nighters and eating pizza's all week. As you get older, you cannot.

- Be reliable. When you say you're going to do something, do it. Write reliable, well-tested code that works.

- Fail. Make mistakes. And learn from them. Don't be afraid to take on a challenge. You cannot expect to be great without having made mistakes. You'll make them once and hopefully never again.

- Follow up. When people send you e-mails and messages. Answer as fast as you can. Things move a whole lot more quickly when people don't wait on each other.

- Be on time. Nobody likes people who are late.

- Always learn. Try new things. If you don't like them, then at least you tried and learned something new. Keep exploring and reading.

Re: Ask HN: What habits make a programmer great?

#56

Meta-habit: learn to adopt different habits for different situations. With that in mind, some techniques I've found useful for various situations: "Researchey" green-field development for data-science-like problems: 1. If it can be done manually first, do it manually. You'll gain an intuition for how you might approach it. 2. Collect examples. Start with a spreadsheet of data that highlights the data you have availab…

You're a genius! How long have you been into the developing world, if I may ask?

Re: Ask HN: What habits make a programmer great?

#58

The "developer on fire" podcast closes out each episode by asking the guest to provide three tips for delivering more value. Some that occur frequently are: * Take care of yourself. Get enough sleep, exercise and healthy food. Have hobbies. * Constantly learn new stuff * Practice communication skills. Building stuff fast and well doesn't help if you're building the wrong thing, and you need communication skills to pr…

> * Practice empathy Any tips on how to do this? I don't often feel things for myself and it's even rarer to experience empathy at a level I can detect. I meditate to try to better understand and learn to detect my feelings, but haven't made much progress yet (I use Headspace).

Read (good) fiction.

Backed by science! https://www.scientificamerican.com/article/novel-finding-rea... https://www.theguardian.com/books/booksblog/2013/oct/08/lite... https://www.washingtonpost.com/news/speaking-of-science/wp/2... https://www.psychologytoday.com/blog/the-athletes-way/201412...

I've been confronted with this question a couple of times even before I read the articles linked above and I always answered the same. Always felt like it's such an "obvious" answer since reading fiction puts you in the perspective of another person/character, so it's good empathy exercise. My personal experience confirms this as well, that when I want to shift my perspective to that of another, reading fiction helps.

(Emphasis on "personal" as, in this use case, YMMV.)

Re: Ask HN: What habits make a programmer great?

#59
post #13
post #9

One of the most important things, in my opinion, is being able to admit that you don't know or don't understand something. The opposite attitude gets in the way of learning new things, which is really bad for programmers.

This exactly, but let me add: Develop an urge to understand things. One needs to understand the whole system environment just to be able to make good choices. To give "urge" more meaning: These days I get a noticeable weird feeling in my gut if I'm working in a environment where there are too many unknowns.

>I get a noticeable weird feeling in my gut if I'm working in a environment where there are too many unknowns.

That's fear for me. Always a chance I'll knock something important over...

Re: Ask HN: What habits make a programmer great?

#60

The "developer on fire" podcast closes out each episode by asking the guest to provide three tips for delivering more value. Some that occur frequently are: * Take care of yourself. Get enough sleep, exercise and healthy food. Have hobbies. * Constantly learn new stuff * Practice communication skills. Building stuff fast and well doesn't help if you're building the wrong thing, and you need communication skills to pr…

> * Practice empathy Any tips on how to do this? I don't often feel things for myself and it's even rarer to experience empathy at a level I can detect. I meditate to try to better understand and learn to detect my feelings, but haven't made much progress yet (I use Headspace).

I've struggled with this, but feel that I've made some headway in the past decade, so for what it's worth, here are my two cents (YMMV): I'd say start by conscious effort, and then eventually you can build intuition and 'empathy' in a more traditional sense (and your mirror neurons might even help you understand your own feelings better that way too, as seeing something in others might help you recognize those same things in yourself). Whenever you interact with a person, consciously ask yourself questions like 'how does this person feel?', 'how do they perceive me?', 'what are they trying to achieve?', 'what do they think I am trying to achieve?', 'in what context will they interpret the things I say?' and so on. Even if you won't have a lot of those answers, just making yourself aware that there is information there that you are missing is a valuable step in noticing it - and teaching yourself to care about that dimension of the human experience. Understanding what goes on inside a person is not unlike playing an imperfect knowledge game, e.g. reading someone's hand in poker - a combination of observation, prior knowledge, statistics and logic can help gain you insight into likely scenarios (e.g. "Aggressive behavior is often due to being stressed, or feeling threatened - this person is normally well-mannered, so they are likely under stress right now, so instead of snapping back at them, I could ask them if there's anything I could help with - assuming they normally trust me enough to confide in me"). And read books/blog posts about psychology and what motivates people (e.g. watch stuff like this, https://www.ted.com/talks/dan_gilbert_asks_why_are_we_happy (that book is recommended too) and read stuff like this https://youarenotsosmart.com/ ) - it'll help you think about a mind as something that follows rules and patterns, even if those patterns aren't always strictly logical, and hence it is something that can be understood. Eventually, all these things can combine to give you an intuition (a heuristic if you will) about what goes on emotionally inside others and yourself, and as this becomes a greater part of your world view, you'll also get more of a chance to feel a link between those feelings inside yourself and others (which is what I'd call empathy). I think some people, the "natural empathists" stumble on this by themselves; they've just developed this intuition without ever becoming aware of it - but for a person like myself, I needed to understand it consciously before my subconscious could really catch up and start to work on the domain. But it's totally a learnable skill like all others.
Post reply on HN