DEV Community

Cover image for "Am I a bad developer?" - A question developers commonly face
manu
manu

Posted on • Updated on

"Am I a bad developer?" - A question developers commonly face

Being a developer is hard, no doubt about it.
Software development is a field where nobody knows everything. Everyone in this field loves to share and talk about the technology they are working on or they have explored. Everybody wants to learn some sort of technology they are lacking because nobody wants to become a bad developer. If you are a beginner or experienced understand that technology is a never-ending thing so there will be always something to learn and you can’t learn all the technology, frameworks, tools which are coming out every day. Accept that when you see someone’s proficiency in a certain domain or technology it doesn’t mean he/she knows everything. They are also like you and they also don’t know something in tech that you know. Today everyone in software development needs help from StackOverflow or other resources so you’re not alone with this feeling. Just because someone knows a framework or library which you don't know doesn't mean you're a bad developer!

A good programmer understands that that they have to continue to learn and grow. They strive to do their best at every effort, admit to failures and learn from them. A good programmer loves to program, and would do so in their spare time even if they already spend 80+ hours a week programming.
(Source)

Here's a couple of tips for you:

  • Don't judge yourself - People tend to undervalue themselves. Ask a mentor instead
  • Learn the basics first - React, jQuery, Vue might be wonderful technologies, but remember, they are all based on JavaScript! Learn the fundamentals first before going on to the frameworks/libraries. It will make life easier!
  • Don't try to learn everything - If you know at least 2-4 programming languages (With frameworks included), that's awesome! There are over 700 programming languages. Don't try to learn them all
  • Be passionate - Yes, you should want to learn more. Wanting to learn more makes you a very good programmer!
  • Work on personal projects - (ok, well, I'm still in school, and I dont have a job yet), but still, have personal projects. It makes coding fun!!!

Hopefully you found this useful

Top comments (46)

Collapse
 
afif profile image
Temani Afif

If you know at least 10-15 programming languages, that's awesome! --> I think this is still too much. Your brain cannot handle such number, the more language you learn the less you are good at them (you may probably know only the basic stuff). I think no more than 4-5 languages is pretty good and you can focus on them in order to do advanced stuff. You can easily notice this with veteran developers and people doing complex thing, they focus on few languages.

Collapse
 
metalmikester profile image
Michel Renaud

Yeah. I've toyed with dozens of languages since I first started in 1984. A lot of them, even those I used for years, I would not say today that I "know" them, because I don't remember enough to just jump in and be productive. I'm currently working with... Let's say three languages, only two very actively (the third one is more of an occasional maintenance thing, so I often have to reset my brain if I need to do anything non trivial).

The ability, the willingness to learn something new (language or whatever) is more important than something like, "knowing X languages", because that's a completely meaningless metric as far as I'm concerned.

Collapse
 
__manucodes profile image
manu • Edited

Agreed.
(I have edited the article to include frameworks instead of learning a new language altogether)

Collapse
 
legorock profile image
Ahmet Erdem

Totally agree! Also what does knowing a language or framework means? When we say you know python, do we mean we know all the language features end to end, which version of the language... If not, where do we draw the line :) 10+ language in this case definitely not feasible. Especially, languages also evolve. (These apply also to frameworks)

Collapse
 
__manucodes profile image
manu • Edited

Depends on how much you want to learn and how much the project you're working on needs. Just my personal recommendation ;)

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Nah, there's no upper limit; you should have one or two languages that you're really good at, where you keep up with the latest news and the ecosystem. Beyond that, the more languages you play around with the better, but there's no point in learning them properly unless you're going to use them.

Collapse
 
afif profile image
Temani Afif

There is a contradiction in your comment : you said there's no upper and right after you should have one or two language that you're really good at ...

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

There's no contradiction whatsoever. Know as many languages as possible, and focus on a small number that you really master.

Thread Thread
 
ludamillion profile image
Luke Inglis

I think an issue that always comes up in this sort of discussion is that people often have two distinct and very different ideas of what knowning a language means.

For some people knowledge means familiarity. Knowing a language means being familiar with how it works, it's essential concepts, etc. but aren't masters. For other people knowledge means proficiency. Knowing a language means knowing all the ins and outs, edge cases. For the first group 'knowing' a dozen languages, frameworks, etc doesn't seems at all out of the question while for the second 'knowing' more than a few languages means decades of work.

I suspect that you (as I am) are in the first group while Temani above is in the second group.

Thread Thread
 
fjones profile image
FJones • Edited

Even for the second group, it's often more a matter of memorizing specific idiosyncracies of individual languages. And with that, I would argue it's much easier to have multiple broader strokes in memory than knowing every last detail of any given language. That is, I find it much easier to remember the various details of how PHP handles things differently from Python, for example, than remembering the deep exact details of everything PHP does. The rest is general programming knowledge.

The more languages you explore to depth, the more you'll be able to generalize that knowledge - and recall the contrasts.

So I would actually argue that especially the second group should learn more than a handful of languages. The underlying principles and their differences teach a lot more about algorithms and language theory than mastery of one language ever will. And that, in turn, is knowledge that can be applied as mastery of any language very quickly.

To expand on that, since a few people are applying the criterion of whether you can immediately dive into a language you used to learn: Minimizing the time it takes to get back into a language I haven't worked with in years (or even a new language!) has repeatedly come in very useful. I learned Golang in its basics overnight, and to depth within a week. I switched back from PHP to Java within two weeks, despite not having worked with Java in at least four years, to the point where I'm comfortably discussing intricate language and architecture problems the new team had been struggling with for months.

Collapse
 
alvaromontoro profile image
Alvaro Montoro

We count HTML and CSS as 2 for this list, right? 😈

Collapse
 
afif profile image
Temani Afif

is it needed to consider HTML at all? for someone drawing with no html element 😜

Thread Thread
 
alvaromontoro profile image
Alvaro Montoro • Edited

I even have a full game in CSS without HTML (it only works on chrome though)

Thread Thread
 
cokacode profile image
theoldman

nice, took me a few seconds to figure out what it is but yeah .... nice

Collapse
 
__manucodes profile image
manu

Yes! Absolutely!
(Even though HTML is technically not a programming language)

Thread Thread
 
alvaromontoro profile image
Alvaro Montoro

Nonononononono... if we add them to the list, it's with full privileges or they don't count at all. They cannot be programming languages for what we want, but not for what we don't want. 😋

Collapse
 
scovic profile image
Stefan Čović

Languages and frameworks are just a tools. In my opinion, you need to learn principles behind software development, design patterns, etc. You can use principles with every language, and framework.

Collapse
 
ozzythegiant profile image
Oziel Perez • Edited

When you're starting out it's perfectly fine to tinker with multiple languages but understand programming fundamentals first. Even if you learn multiple languages, at some point, you should consider mastering a default stack. For me that's Vue/Django/PostgreSQL, switching to Laravel for shared servers or Go for web sockets or high performance. Then I use Flutter for mobile apps

Collapse
 
link2twenty profile image
Andrew Bone • Edited

Yeah, 10 - 15 feels like a big number. I generally think knowing a language off the top of your head isn't as important as knowing, logically, how to do something.

If you know I want to do xyz because of abc, without falling into the xy problem, you can easily google how to do that in a said language and the more you use the language the more it will stick with you.

Collapse
 
devlorenzo profile image
DevLorenzo

Totally agree

Collapse
 
jonahgeek profile image
Jonathan Mwebaze

Well said

Collapse
 
__manucodes profile image
manu

(EDIT: With frameworks and libraries included, such as react, vue, angular, etc.)

Collapse
 
afif profile image
Temani Afif

also included in my thinking. Even if you count frameworks and libraries, it's too much to handle 10 of them. You will clearly notice this one day. Either you know 20 different things and you are stuck at the basic stuff or you know 3 different things and you can gain enough experience and knowledge to become an expert on them.

Collapse
 
jamesthomson profile image
James Thomson

Work on personal projects - (ok, well, I'm still in school, and I dont have a job yet), but still, have personal projects. It makes coding fun!!!

You're right, they are fun, but as you said, you're in school. Once you've been in the industry for a number of years you value all the spare time you can get away from the screen. So, enjoy those fun projects while you're young, but as a senior dev, I highly recommend taking full advantage of your own time away from the screen and don't spend one moment feeling guilty about it.

Collapse
 
qwby profile image
Dominik Halfkann

80+ hours a week?! That seems very excessive and nobody has to put in 80 hours to call themselves a good programmer imo.

Collapse
 
jamesthomson profile image
James Thomson

A good programmer puts in enough time to get their work done with quality results. If you're having to put in 80+ hours a week programming you're either horribly over worked or not a very efficient programmer. It should never be the norm to have to put in 80+ hours a week to be "a good programmer".

Collapse
 
metalmikester profile image
Michel Renaud

When I see people regularly putting in so many hours (no matter the job), I make sure I'm not around when they come down crashing. Because they will.

Collapse
 
holdenmad profile image
Holden

Yeah came here to question this as well. This kind of expectation is extremely toxic and stinks of gatekeeping and capitalism.

Collapse
 
dwd profile image
Dave Cridland

For a JavaScript programmer, learning Python isn't going to teach you very much. You'll pick up a handful of new ideas, perhaps, but really not very much - it'll be more of a different perspective on the same ideas.

Learning C++ will teach you a whole load of new ideas, many of them all at once. That'll be really helpful, and teach you a range of new approaches to solving problems. Many of them will apply to JavaScript too (though some will not, and you'll pine for the convenience of, say, RAII).

Learning a pure functional language will give a new set of approaches. You can use these approaches in JavaScript (and this, in particular, has been quite a fad recently).

Broadly speaking, learning the syntax is uninteresting, and won't make you a better programmer. Indeed, if you're anything like me, it'll make you worse as you try to remember the distinction between => and -> in different languages...

But learning new approaches that are idiomatic for different language environments will allow you to apply those to your JavaScript, TypeScript, or whatever else you're faced with.

Collapse
 
cristiancastrodc profile image
cristiancastrodc

I kind of feel like a bad developer. I like to sleep a lot and I don't practice in my free time, or I practice very little. But at working hours, when I'm inspired, I'm a machine.
I'm feeling bad lately because my two best friends are the kind of developers who sleep ~3 hours a day and they seem to be happy with that.
I feel like to improve my skills, I should do that too. Take some sleep hours or out of work hours and practice. But I don't really like that idea.
Does that make me a bad developer? I'm not sure, but still I'd like this feeling to go somehow.

Collapse
 
jamesthomson profile image
James Thomson

I'm feeling bad lately because my two best friends are the kind of developers who sleep ~3 hours a day and they seem to be happy with that.

This is just not maintainable. They will hit developer fatigue and burn out hard, I can guarantee that. Don't feel guilty for not participating in such a destructive lifestyle. Be proud of the good work you do in your working hours. Enjoy your life outside of them.

Collapse
 
aarone4 profile image
Aaron Reese

Enlightened employers would not only allow you to learn new technologies in work time but actually expect it. Learning more effective ways to work is only going to benefit them in the long run with keeping up with the industry, attracting the best new talent who only want to work with @next versions but also retain older and more experienced staff.

Collapse
 
__manucodes profile image
manu • Edited

Ok, I would suggest getting at least 8 hours of sleep. Your health comes first before your work.
Check out this blog article on how to code much faster.
If your boss and team is putting too much pressure on you, if possible, I would suggest having a meeting with your boss.

But, otherwise, you're a good developer.
I admire how hard and how much you work :D

Collapse
 
cristiancastrodc profile image
cristiancastrodc

I will read the article! Thank you for that and for your kind words :)

Collapse
 
thomasjunkos profile image
Thomas Junkツ • Edited

Am I a bad developer

is the software developer's version of FOMO the fear of missing out. We live in a time where -thanks to the gods! - so many resources are (freely) available: There is always a new language to learn and a new framework to master, a new database to store your data in. Not to speak of the many conferences you could attend and to each and every topic you find competent people talking about these topics. And then there are social networks where you could share your knowledge and compare yourselves to others. Very fast you get into the downward spiral of having missed this and that. And then self doubt raises in form of this selfharming question (of course you are never good enough: Say "Hello!" to the impostor syndrome).

I would answer the question - whether one is a good developer - in a different way:

Are you still getting paid for your work as a developer and getting things done meeting the requirements? Then you are a good enough developer. Remember: being an employed programmer you get paid only for doing your job. I would leave the rest to personal happiness (Years ago I often read books on programming for fun, now I prefer good novels). Feel free to have personal projects. But there are other ways to spent your sparetime.

Collapse
 
ludamillion profile image
Luke Inglis

Combining 'Learn the basics first' and 'Don't try to learn everything'. One thing that is very valuable when looking at what languages to learn is to select languages/tech from different paradigms.

For example is you are a beginner especially learning Ruby or Python is a great place to start. But once you've picked one of those up there is not much to be gained by focused learning of the other.

When I was in school we learned mostly C, Java, Ruby, and Scheme. This gave me a really solid basis different paradigms and approaches languages can take. Those four alone covered high level vs. low level; static vs. dynamically typed; imperative vs. OOP vs. functional.

Collapse
 
aarone4 profile image
Aaron Reese

Not just basics, but fundamentals. Data storage (array, linked-list, key-value, matrix, objects etc) branching, looping, SOLID principles, clean code, source code control. Any coding language is just syntax and can be discovered from internet searches but the fundamentals don't change

Collapse
 
lexplt profile image
Alexandre Plt

I can not agree more on the fact that you should have personal projects, for the fun of it, to learn something you like even if it isn't related at all with your job!

Programming isn't about the language but about the thinking, the way you solve problems. The more you will solve the better you will be!

Collapse
 
trueneu profile image
Pavel Gurkov

"Don't try to learn everything - If you know at least 10-15 programming languages (With frameworks included), that's awesome!" -- in my experience, I still have to personally meet a person that truly knows 2 programming languages in and out (I know people with 1 language under the belt, though, Perl core committers). I guess we all have different definitions of what is it to know a language. If being able to write code in a language is knowing, I guess most of us can "learn" a new language in a matter of days.

There's nearly no point in learning, IDK, PHP if you know Perl. Not gonna bring a lot of new ideas into your head, just syntax and language quirks. Better take a look at Clojure, Haskell, Common Lisp, APL, C++, as those will bend your understanding in their distinct ways.

And on your second point, "Learn the basics first" -- true, and basics start deeper than Javascript :) Learning how CPU works will bring even more benefit in the long run.

"A good programmer loves to program, and would do so in their spare time even if they already spend 80+ hours a week programming." -- and no thanks, I have other interesting stuff in life. :) That quote is basically saying a good programmer can't have kids.

Collapse
 
nyomansunima profile image
Nyoman Sunima

In my opinion, become a good developer not just knowing everything in the world. I just realize and think what can I build and and what already I make with the technology.

this I like important thing for me.

Collapse
 
peleisgit profile image
peleisgit

Well said!

Collapse
 
sheikhrashed profile image
Sheikh Rashed

well said, brother ❤

Collapse
 
rakesh_nakrani profile image
Rakesh S Nakrani

Short but something heart-touching things you wrote :)

Collapse
 
winstonpuckett profile image
Winston Puckett

IMO, which I think agrees with your post, it's more important to learn how to write good code than code in any framework. With a good architecture, you aren't bound to those frameworks anyway

Collapse
 
__manucodes profile image
manu • Edited

Completely agree!
Writing clean code is also essential to learn a framework