Yes, you read that right. To be a good programmer you don’t need to be good at programming.
I hear what you’re thinking, that makes no sense! Well hold on a second, hear me out.
When you think of a good programmer you know, what’s the first trait that springs to your mind? Determined, smart, approachable? Calm, Quiet, or conscientious? Maybe it’s something else, but I can bet it wasn’t… a really good programmer. Why is that?
Programmers require lots of skills in their day to day jobs. The discipline no longer consists of sitting in a dark basement on your own thrashing out some code. In fact interpersonal skills are some of the most important a good programmer can have. Agile methodologies require lots of communication between different departments and individuals. You’ll be required to check in at least once a day, be available for planning, refinement, retros; constantly communicating about struggles, improvements and things that are going well.
The old days of getting your tasks and specifications up front, and being left to your own devices is long gone. You’ll probably be in contact with your users, asked difficult questions about your progress, and required to feed information back to your product owner/manager.
You’ll need to talk through your design with your superior and team as most likely you won’t be working on this on your own. Testers will be asking for updates, questioning whether your unit tests are credible and sufficient, your issue tracker will need to be constantly updated keeping discussions available for all to see.
You actually might be better off with a psychology degree than a computer science one to understand how to deal with all these different people.
So yeah, programming is gonna be needed at some point, but in general the stuff that 90% of us will be doing won’t require any revolutionary coding expertise.
In most cases the reason a project will fail is because requirements were not properly discussed and refined, or teams did not communicate properly about what was required from them. Rarely will it be because you weren’t a good enough coder.
Do you share the same views? Or do you think I'm talking nonsense, I'd love to hear your opinions below.
Latest comments (58)
"Only 10% of what we do has anything to do with coding"
Hmm, sorry but I think you're just doing easy engineering in your day to day work. Doesn't apply to many really but I understand why posts like this sell well. People like to believe in order to become software engineers they don't really need to get good in it but they can instead practice small talk and public speaking.
I'm just not happy that posts like this mislead newcomers into putting efforts in the wrong direction.
I agree it's a little hyperbolous but if you think newcomers shouldn't work on there interpersonal skills as well as their technical skills then I'd have to disagree with you.
There's a difference between "you should work on your interpersonal skills" and "90% of your job depends on your interpersonal skills"
And to be honest, it's much more practical to get better in technical skills than interpersonal ones. Emotional Intelligence is not something that can get better easily with practice.
Finally, that Bachelor's in psych is paying off.
I think this matters a lot on your organization and product.
Is interesting the fascination of the IT crowd (yes, I said it) about this "soft skills", of course being a functional social being is better than not; of course you will work better with others if you don't are a jerk and is you can communicate well with others. Is the same in any activity that involve others, for obvious reasons. Of course if you work alone you need less communication skills than if you work on a team. If a person doesn't code much is not much of a coder is it? and in that case of course your coding skills are not that relevant, if sometimes you have to drive are you a professional driver? If you take care of the food orders at launch are you a cattering?. Of course the thing you do a lot is important and is better to do it better. To me all the "soft skills are important" speech is not that useful, the "what" you have to do is usually very obvious, the "how" can be tricky. But I think that if nobody wants to work with you, if you forcefully eat alone and you don't get very good feedback from your partners I'm pretty sure you can figure it that it has something to do with people and not because of how or when you use recursion or your overuse of comments. Just as obvious as that you need to improve your coding if your code keeps getting rejected. Because many times this "soft skills" are the shield of people who doesn't make real contributions and spend the day "social skilling".
"The old days of getting your tasks and specifications up front, and being left to your own devices is long gone."
Yeah, and don't I miss those days. But hey, I'm in a two-man programming company so at least the other guy tells me he wants that thing over there over here.
Programming, at least for me, has always been about problem-solving. The last bit of formal training I did was in 1988.
The title is misleading, but the concluding remark is thoughtful.
So true
No and yes this is nonsense.
I had to make an account just to say this.
I agree programmers require lot of skills, but sweet talking, talking to testers, planning, improve his/her and the team's communication are not some of them, there are people that are paid to do this.
Programmers today are paid for and need to know about Message Queues, ESBs, Cloud Services(hundreds of them), Spark, Message Streaming, Metrics Stores, Dashboards tooling, Networking, Jenkins/Teamcity/Travis/etc, Git/Mercurial, about 2-3 scripting langugages, at least, one backend language (java,c#) at least, one frontend language (Javascript, Typescript), testing tools and testing frameworks, Sql dbs , Nosql dbs, ecosystems,frameworkt and libraries (ie for java 100 spring-xxx.jar, 3 JPA implementations, etc), frontend ecosystems(angular, react, vue, etc), OOP, FP etc.
This kind of stuff makes a developer good and we spend years learning this, I honestly don't think soft skills are things a programmer must have, I agree they are a nice to have thing, but it is an arrogance to say that soft skills can replace any of the technical skills.
Haha, thanks for the comment. We do seem to have quite a lot on our plates already don't we!
I think that nowadays people use the terms "programmer" and "software developer" interchangeably, so I won't be focusing on the choice of word. (Disclaimer: I prefer the use of term developer, because like you said, the work you describe is more than just mere programming).
I see the work of a software developer mainly as problem-solving. And for that, you don't have to know every detail of some specific technique/language. It helps if you have basic knowledge about the possibilities and restrictions of the technology you're using. But technical skills are easy to learn when necessary.
What I think are really important qualities for a good software developer? The ability to grasp the bigger picture, enthusiasm to learn and grow and also the will to change things when it's needed. On top of the communication skills that you already mentioned.
For sure, the ability to write efficient, maintainable and reusable code (clean coding practises) is a "good-to-have". But it's a fact that not all developers have the ability to write clean code. But if you're not willing to learn and improve, then there's a big chance that you end up being one of those "I do this because of some obscure reason x that I learned years ago and I don't care if it's right or wrong. I just work here."-developers. And those can be hard ones to work with.
Thanks for your comment. They're my thoughts exactly, but putting them like that doesn't make a very good post! 😋
I love the term "Software Writer" that DHH suggests.
youtube.com/watch?v=9LfmrkyP81M
I also love the provocative title of your article... made me open it! Thank you.
Haha, Thanks. An enticing article title is always something I strive for!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.