What's your greatest software development skill?

Ben Halpern on July 09, 2019

What are you best at? We can't all be great at everything, but we all have certain skills which set us apart. What is it for you?

markdown guide
 
 

I'm a big fan of the following flow chart:

Just wish I could figure out someway to convey this idea as a tattoo.

 
 

I literally tell my girlfriend this probably at least 2 - 3 times a week. "Why worry about something you can't control? You're just putting yourself through it twice".

 

BTW, I don't think this book is particularly great, it could have been written as a series of blog posts. But I am pretty good at not giving a fuck, which I think is a valuable skill when the proverbial shit hits the fan, as it invariably will:

  • Oh, we are writing corrupted data to our DB? Sucks, but not as badly as when we dropped a whole table by accident, so let's just get this fixed.
  • We had a 5 minute downtime? Let me tell you about this time where I accidentally shut down a whole factory plant floor. Turns out it takes quite a while to restart a series of conveyor belts...

This is mostly a result of having been in this business for quite a few years and having had many different roles (syadmin, devops, pen tester, developer, etc.), so I don't easily get upset (or excited).

 

LOL, great examples :)

I've run out of f*cks to give. My f*uck bucket is empty.

I learned this from my co-worker. If there's a problem just ask "is anyone dead or dying? Could someone be killed (because of this problem/emergency/urgent interruption"

No? Ok, it's not that bad then. It helps put things in perspective quickly.

Over the past few years I realized that fucks are an inverse function of age, which is one of the reasons I like working with "older" (which has a messed up definition in our industry) developers.

You'd love working with me then. I'm 48 and still in the game playing hard. I do have to say it IS amazing the perspective you have on things at this age. Especially when I look at how far technology has come - which is a distinct advantage for me.

I literally had 20k and 64k RAM in my first and second computer, no internet, dial up BBSs and you traded 5 1/4" floppy disks if you wanted to swap software. With those types of constraints, you learn to use your resources wisely. I can write some pretty tight code because of it compared to some of the bloated code I have to deal with that other devs write.

To your point, at 48, life is too short to give one.

Ok, getting off my old-man soapbox now, hope I don't fall and break a hip.

Signed,
"Get off my lawn" Jon

I feel you. The first computer I programmed on had 64k RAM and ran at an amazing clock speed of 1 MHz. It's hard to explain to developers nowadays how coding worked before the Internet and how as kids we learned from magazines and by trading tips and tricks in person. It was so exciting when we figured out how to use interrupt 33 to get mouse interaction in our terminal UI programs :-)

 
 
 

My colleagues treat me like a living encyclopedia.

But I don't think it's my best trait. On the contrary, it may have a detrimental effect in the long run. And I think I'm not very good at controlling this.

Maybe because I've graduated in Mathematics and not CS, I've always been pretty comfortable at grasping the big picture of a project. Never lose sight of the goal (thesis), divide the problems, follow the implications and such.

Also, I've never had any problems with mathematical formulae, logical expressions and geometry. Always useful, even in web development.

 
 

Precisely on point.

Not that we actually face emergencies, but giving away punctual notions usually doesn't help your colleagues grow. And that's a problem, or at least a missed opportunity.
It's definitely a problem if developers start relying on that.

I've suggested my boss to let me (and other seniors too) create internal courses and classes, especially now that we're growing. I would love that, really, not to mention we could also sell the courses outside the company.

But this idea hasn't taken off yet: we can't "sacrifice" our seniors' time to that. Oh well, I hope that'll change Β―\_(ツ)_/Β―

 

I think I'm a good teacher and I enjoy explaining difficult technical concepts to those who're just starting out.
Other than that, I have debugging superpowers (I'm known to have spent days searching for am missing comma on a 3rd party library to fix a bug they were having, which ended-up affecting us).

 

I also love teaching others and having mutual knowledge exchanges with people.

 
 

While I am skilled in many areas, I love automation!!! Some might not think it's a development skill, but automating things can be efficient, productive, and smooth with proper utilization of tools and correctly interfacing with APIs and years of experience. I don't just use AutoHotkey, AutoIt, or AutoKey (Linux), I use various languages integrated with each other as many programs do. I debug well too :D

 

Finding where you can automate is really cool as well as where it's not possible to automate. And then having to tell the client that haha πŸ˜„πŸ‘πŸ‘.

 

I am not very happy with the state of automation of UWP (or limit/lack thereof) :(. Though I haven't spent much time researching the state of UWP automation, but that's because I am not a fan of UWP in general. Slowly, but surely, I guess lol.

 

People ask me...

"How do you always have a cup of coffee?"
"Where are you getting this coffee?"
"It's 5pm, how are you still drinking coffee??"

This is my greatest development skill.

 

I get the opposite question: "How do you work in IT and not drink coffee/energy drinks?"

 

Remembering that I have solved things before, which means I can solve whatever it is I'm "stuck" on.

And that nobody has ever died because of code I wrote.

 
 

I'm a master debugger and can figure out repro steps for even the most bizarre cases. This is probably due to my help desk origins.

 

I came to say the same thing!

I worked at my college's IT dept and I feel it was key to how I debug issues.

It even helps when debugging non-tech issues. For example:

hm, my office is cold even though we put in new insulation. What provides the heat? Furnace. Is that working? Yes. Other rooms are heated. What if I'm losing heat? Possible. What changed? Insulation was put in. Noted, but how could that make it colder? Check the vent, hm. Some hot air but not nearly enough. Maybe my room is further from the furnace? Nope. Other farther rooms are heated. Time to get into the crawlspace. Turns out the insulation workers knocked the vent loose!

Same thing with code: What are the conditions the bug occurs in? What about when it doesn't? What's changed? Does it happen in all cases? If not, when does it? When did it start? ...etc etc.

It's even become a problem when watching TV. I think my debugging skill makes it easy to predict what's going to happen or be said. The plots, jokes, dialogue, and "twists" become predictable, mostly because it's easy to catch things because they only show things that are relevant. It's still enjoyable though, it's just a fun game I play. It used to drive my spouse nuts but now she's picked it up too!

 
 
 

I feel like I'm pretty good at picking stuff up and running with it, even if I haven't had much exposure to it before. Another tangential skill I have is sticking with a difficult problem when others might give up.

I will admit though, the latter sometimes results in me being the keeper/expert on certain things that I don't love.

 

I feel comfortable debugging an issue. One memory that I sometimes remember is when i spent two entire days on encoding. I was working on a Python project (i learn as i go, i don't know python, i just adapt) and we had some serious problems with some generated reports. Loved that task.

 

I'm a great problem solver and debugger, I know the right place where I can put a logging statement in the code.

My StackOverflow reputation can confirm it!

profile for Espoir Murhabazi at Stack Overflow, Q&A for professional and enthusiast programmers

 

Not loosing my mind when stuff doesn't work.

 

The only thing I'm good at is that I can read very fast (700 - 1000 wpm). It really helps when going over books, docs, or example code. I actually prefer reading over videos or podcasts because of that.

 

Being persistent to the point until I had achieved something.

 

I would have to say the two-edged sword of empathy is my skill.

I can quickly empathize with the user and understand their pain, frustration or pie-in-the-sky ideas. Which helps me quickly analyze problem areas, etc. By putting myself in their shoes, I can develop software that hits their sweet spot because I was "there" with them.

I sometimes can over-empathizing and their pain/frustration/expectations quickly become mine and that can cause stress and anxiety at times. Mostly I can see it happening and can handle it, but if it creeps up and I don't, it's stress city.

 
 

For me it is overall system design. I'm quite good at hearing out business requirements, and imagining the various stages the business will go through as it grows, and then parlaying that into a system design that is robust enough to grow alongside the business while suffering only minor tech-debt issues.

 

I'm still a new developer and am constantly learning new things about myself in regards to code. I think my greatest skill so far has been my ability to learn new concepts and tools quickly.

 

I'm somewhat of an all-rounder. I haven't found something that I feel like I'm that much better at than my peers.

 

My ability to talk about technical things with non-technical people. It has allowed me to succeed in work both in product companies and in consultancies.

 

Team morale. I bring the enthusiasm and energy, or so I'm told.

Actually it's just the fifteen double espressos I drink everyday...

 

Turning on computers, entering password in user login. type on keyboards to write some f***ed sh*ted programs. then compiling and executing for enjoying what I was wrote.

It's Dreaming...

 

I'm creative and really good at thinking about user experience and how to engineer backwards from that.

 

Learning. I'm great at diving in and figuring out something I've never seen before. This is mostly due to having ADHD and being able to hyper-focus with a strong dose of caffeine, but hey, I'll take it

 

I would say finding finding/pointing out how someone (even myself) got to a weird state with a git repository.
Well at least most of the time.
Some times the easiest solution is to cd .. & rm folder & git clone & cd into πŸ˜„

 

Googling. Everything I've learned, I've found it through Google.

With that comes with a very shallow knowledge about a lot of stuff. Way too many times people are debating the answer to something while I'm busy looking it up. We could all just sit here shooting in the dark, or we can just look it up.

 

In my opinion: detect the strenghts of each member of your team
You could gain in efficiency, allow each of them to assign tasks in which they feel great; if not in charge, you can see with the most skilled person for most of the questions you need help with on certain topics

 

Solving solutions and writing complex and clean programs however evreyday I try to enhance my knowledge so that I can become more advance on various topics...

 

Saying no and being able to explain why yes is your ticket to doom.

 

Asking the right questions when figuring out requirements.

 

I am best at delaying. Why do it now if you can do it tomorrow?

 
 

I'm good at isolating where a problem lies. This is a blog post I wrote about how I do it a lot of the time.

 

I am informal you need some help ok will do that, this needs to be changed no issue buddy, I hate those developers who behave like managers everything needs to be formal. It shit

 
 

Kludging stuff together rather quickly to solve short term problems :)

 
 

I hyper-focus when I'm really into finishing something urgent or figuring out something I've not done before.

 
 
 

A robust grasp of grammar, rhetoric and syntax and spelling, since I am responsible for producing all categories of software documentation.

 
 

I'd say none, but my coworkers say that I'm a fast learner and a fast coder.

 

Listening and digging into customer requirements.
Although that's more a business skill.

 

Helping others solve there problems, I am particular good at this as once I start on a problem I will not stop till it is resolved.

 

To architect environments (with Technologies and practices) to develop softwares and put them in production

 

use of representations to solve problems, going from mockup designs, to writing few codes on paper, flowchart etc. Simply put a detailed analysis of what is to be solved or worked on

code of conduct - report abuse