HackerTrans
TopNewTrendsCommentsPastAskShowJobs

catwind7

no profile record

Submissions

Ask HN: Essential skill needed to be a programmer?

144 points·by catwind7·6 years ago·183 comments

comments

catwind7
·6 years ago·discuss
I think this is exactly why "communication" crops up so often and why "talk to your customers" is the number one advice for founders.

I think it's a really underrated / underinvested skill in the industry (from my experience) with a lot of complexity. For example, there's so many levels of listening. It's one thing to understand what someone is saying but yet another to pick up on meta messages (facial expression / body language) that signal true thoughts / feelings.
catwind7
·6 years ago·discuss
Yeah - I think that drive to learn and improve also directly relates to what peter norvig touches on.

I think a big part of _keeping_ that drive if you have it (or cultivating that drive if you don't) requires a sort of being able to experience delight / happiness from learning new things. Even the little things.

Like today, I learned a tiny shortcut in writing rails routes. Not a huge game changer obviously, but little things like that make me smile!
catwind7
·6 years ago·discuss
I had a friend who said he would never consider this type of work because there's way too much sitting... and I'm like wow that's actually one of the _easiest_ problems to solve!
catwind7
·6 years ago·discuss
Yeah, there are so many different motivators for work. I really enjoy programming as a hobby, but I also wish we would stop treating that as if it's a pre-req to doing good work.

You can't be effective at your job if your manager sucks and you work with rude coworkers.
catwind7
·6 years ago·discuss
I've noticed myself scrolling farther and farther down search results. There's so much SEO'd garbage at the top of the fold now.
catwind7
·6 years ago·discuss
Ah, I see. Thank you for clarifying that. That book sounds interesting, I'll check it out.

Thanks for taking the time to engage! I've also learned quite a bit reading through everyone's responses.
catwind7
·6 years ago·discuss
There's also another side of disgust that motivates you to improve things. Some of my favorite work were born out of sheer anger
catwind7
·6 years ago·discuss
> remind myself I've been able to solve pretty much any problem I've faced.

I think this confidence is really important and part of it seems to come from having solved lots of problems in the past / working through frustrating periods. That's why "write lots of programs" is still my favorite piece of advice because it's a lot like "show up to the gym" if you want to get stronger.
catwind7
·6 years ago·discuss
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.
catwind7
·6 years ago·discuss
This is so easy to forget. I think when we're in the trenches it's quite hard to pull back and view what you're doing as means to an end and the means (libraries, frameworks) change constantly.

I think it's also difficult in practice because it feels good to master things in general. It's a nice feeling to know that you know a system inside and out, so detaching from that is going to be hard no matter what especially if you've invested quite a bit of your life into it
catwind7
·6 years ago·discuss
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 in organizations.

if you have no intention of making your code available for someone else to read / use / modify, the benefit for having readable code is really for yourself in six months and nobody else.

you also don't need to tell anyone what you're doing, so being able to clearly / succinctly explain what it is and why it's useful isn't a necessity. Does that make it an unimportant skill? No, it's just that the goals are different
catwind7
·6 years ago·discuss
i've come to appreciate how useful it is to just remember basic stuff from stlib instead of having to look things up. Makes getting into flow much easier.
catwind7
·6 years ago·discuss
I think some of my favorite programmers exhibit this quality in spades
catwind7
·6 years ago·discuss
when I get frustrated that's often a cue for me to take a break haha. It's been a nice way to deal with frustration for me.
catwind7
·6 years ago·discuss
reminds me of http://threevirtues.com/
catwind7
·6 years ago·discuss
I intended it to be pretty open ended. Mostly interested in skills that are useful for _both_ solo and team work. I agree that there are some things that can be very useful for team work that are not as essential for solo work when it comes to programming. For example, being able to justify technical decisions to higher ups. Lots of communication skills are essential for teamwork.
catwind7
·6 years ago·discuss
literally true!

I agree - so much of our time is spent coming up with working models of systems