Live data from Hacker News

Ask HN: Essential skill needed to be a programmer?

news.ycombinator.com

161–170 of 193 posts

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

#161

The ability to stay with a problem for a long time. I think some folks will see something they don't understand and just disengage with it, but a lot of successful programmers that I've seen will continue to think about situations/ problems a lot longer after realizing they haven't fully grokked it, until eventually they do.

As a result of a few recent Forth threads here, I first heard of STOIC on September 29th. (1 Week ago) Intrigued at the novel way it addressed the shortcomings of Forth which limited its use... I tracked down STOICAL. It really got me motivated, and I decided to download it and dive in.

At that moment, I had almost zero of the specific bits of knowledge required to make it work. I only used Linux sporadically. I never programmed in Linux. I actively avoided C for the last 40 years. Yet, I dug in.

Last night I got it compiled enough that it now starts up, and then hangs. This is a vast improvement from 2 days ago. I now have WSL installed, with gcc, automake, and all manner of stuff required to make it go. I still use Notepad++ and windows to edit the source (as the /home/mike folder is visible as a network share) I've even got git/github going.

I know I'll get it up and running in short order. Then I'll start banging away at it until it matches my ideas of how it should work. My goal is to produce a Forth-ish compiler that doesn't get people intrigued but then run out of steam.

STOIC checks all the boxes, it's Imperative, Structured, Object Oriented, Functional, Concatenative and HomoIconic.

And right now.... it doesn't even boot... but it will! That's programming!

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

#163

The ability to focus for extended period of time is important and well known. I think that good programmers also have a better than average short-term working memory space, so they can keep relatively complex structures in their head.

I'll second this one because it's the first thing I came up that wasn't just some generic advice.

The worst feeling for me in programming is not knowing 'where' I am in the code, when everything just feels like some sort of mental mush and you just stare at code confused because it's clogged your head up.

It's really good to be able to really focus, rearranging things in your head, imagining how something might look before it's done and so on.

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

#164
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.…

Most coders I see give up on asking clarifying questions because they realize quickly that the answers aren’t there, and they never will be, and this is somehow okay to the person who is telling them what to do.

It’s really obvious during remote work: PowerPoint then silence, then a bunch of assignments handed out. If you ask any one of the audience, coder to coder, they all have the same confusions; some write a fancy class template like ‘ProblemSolverObjectDispatchFactory’, others just ignore.

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

#165
post #23

To simply be a programmer, one must only write a program, nothing more. The essential skill I guess would be literacy, knowing how to read and follow directions, knowing how to use a keyboard, not much. To be a good programmer, if I have to pick only one "skill" I would pick systemic thinking/understanding. This starts with the ability to learn and eventually understand how a system works. The next level is the abili…

The base skill to effectively write code is the ability to think abstractly, to be able to reason about and create what can't be seen. A surprising large number of people really can only reason about the concrete things they can see and manipulate.

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

#167

Just "to be a programmer"? Frustration tolerance. Thats pretty much it. To be a good programmer: very much depends on your area of expertise. Most of them need good communication skills, some machine-level understanding, some math or algorithm skills, some require high velocity / long hours... It really is a very diverse field. But like for most jobs, frustration tolerance gets you surprisingly far.

I successfully turned my mom from someone who often needed computer help, into someone who was pretty self-sufficient, when I told her that "The solution to any technology problem will only have two ingredients: Google and pain. If you have access to the first, you can solve anything provided you're willing to endure enough of the second."

Outstanding move.

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

#169
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.…

That doesn't seem specific to programming. You could say the same thing about mechanical engineering for example.

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

#170

Earlier quoted context omitted.

The examples I gave obviously requires being part of a team, but even programming on your own, I think it's one of the most important skills. I'd be happy to elaborate on that argument if you have any examples of one or more situations where you wouldn't consider communication important? :)

I totally agree - I think I'm probably coming off as disagreeing with you though. I think the difference for me is that the importance of communication for solo programming is a bit of a sliding scale depending on what your goals are. There aren't many exceptions when you work on a team. When I use the word importance, I'm tying it to a notion of necessity in relation to some goal. Team goals trump individual goals i…

I would extend the term "communication" to also include how we speak and listen to ourselves

I don't think I am able to explain it clearly without writing a very long post. There's a really good book by Marshal Rosenberg, titled non-violent communication, which gives a better explanation than I can right now. I would recommend it to pretty much anyone, if only for the very healthy way of treating oneself that it provides. Mileage may vary, but it fits my mental model pretty well

As an aside, I'm very glad to read through the replies to your post and see all the constructive you've engaged in. I've gotten mare than a few new thoughts and ideas because I chose to get involved in this post - thank you :)

Post reply on HN