Live data from Hacker News

Ask HN: Essential skill needed to be a programmer?

news.ycombinator.com

101–110 of 193 posts

Re: Ask HN: Essential skill needed to be a programmer?

#101
You need to believe that computers are understandable. There’s no magic involved. Eventually, every abstraction leaks — so if you have fear or learned helplessness blocking you from trying to understand the leaky abstraction layer, the only way you can debug it is by squeezing your eyes shut and trying random things, which is ineffective. You really need to internalize that even things that seem mysterious happen for reasons, and that those reasons are something you could in principle figure out.

Re: Ask HN: Essential skill needed to be a programmer?

#102

The question is too broad, but along the lines of Norvig's answer... There's a particular micro-expression I sometimes notice with people who are working on a software problem. I notice it when something goes wrong unexpectedly. People who aren't particularly talented at SW development, for a brief instant, give a facial expression of disgust when something crashes or behaves incorrectly. People who are awesome at de…

A pro will additionally want to delay fixing a problem so that the root cause can be determined if there is no major financial cost. Management will want to brute force solve the problem right away and forget about it. Usually this involves restarting something: machine/instance.

Re: Ask HN: Essential skill needed to be a programmer?

#103
Frustration tolerance! Don't get me wrong, programming is frequently joyful, but sometimes you'll run into bugs that are maddening and require a lot of divide and conquer sort of work, and being able to separate yourself from the natural frustration is key to making progress.

Re: Ask HN: Essential skill needed to be a programmer?

#104
post #96

I consider this essential: The ability to decouple the task from your ego. Specifically: - Never say "Got it" or "OK" when someone is explaining a problem or solution and you don't follow. It feels awkward to say "Sorry, I'm still not following. Do you mean that when..." five times in the same conversation but it is worth your time and embarrassment to come away with a correctly framed and well understood situation.…

I've never mentally dinged someone for saying they don't know how to use a particular technology. This field is immense and there is no possible way for any person to understand it all.

But when someone said they could do something a particular way and the results suggest otherwise I find it completely frustrating.

Re: Ask HN: Essential skill needed to be a programmer?

#106
Here's one I find doesn't get enough credit: Reading comprehension.

That can be interpreted as reading someone else's code, but even more importantly: Just being able to understand plain English (or whatever human language).

I've seen so much code that used an API incorrectly, or misunderstood (or simply ignored) documentation. Being able to RTFM, imo, is essential. See also: Understanding what your boss wants and delivering it.

Re: Ask HN: Essential skill needed to be a programmer?

#107
You need a few skills to be a good programmer:

1) Literacy. You have to know how to read (and ideally write in) your native language at a relatively high level. So much of our craft's knowledge is written down, in technical if not arcane terms, that in order to learn you really have to read.

2) The ability to reason about causes and effects, that is, to envision in your head what the computer will do when it evaluates a statement in your program. Also, the ability to back-reason which statements will produce a desired effect. You need to be able to predict what will happen before you write the code and test it out after the code is written. You'd be surprised how few people have this ability developed and how hard programming is for the general population as a consequence.

3) The ability to be humble and stay focused. Your program will take much longer to write than you think it will, and there will be more bugs. You have to have the diligence and passion to see it through.

Re: Ask HN: Essential skill needed to be a programmer?

#109

I've a MSc in Computer Engineering and I think the most important stuff I learnt are "Design Patterns" and in general any Principle that guides you to write code that is: flexible, clean, maintainable, efficient and reusable. Any programmer can write code, but how many can meet the requirements mentioned?

Put another way, it's easier to write a throwaway program that works once but how do you make it continue to work and serve needs over some period of time? I think part of it is knowledge of principles like you said, but I also don't think there's a substitute for experience because the real world is messy and principles sometimes need to be intentionally broken.

Re: Ask HN: Essential skill needed to be a programmer?

#110
I like the differentiation that engineering is programming integrated over time. [1]

To be a programmer you need the direct hard skills of coding literacy, analytical and logical thinking, combined with enough grit and creativity to see a problem through to completion. If you have that, you'll be a decent programmer, but you may not be a good engineer.

Engineering requires the maturity of thought to consider your actions and your solution over time. It requires more wholistic thinking and not just from the tech architecture point of view. Human soft skills tend to be more important over these time scales: communication, empathy, humility, courage. It's these skills that sustain success.

[1] https://www.oreilly.com/library/view/software-engineering-at...

Post reply on HN