Bad habits can ruin any area of life, I prepared a list of few, which are in my opinion most common across software developers:
Not understanding fundamentals
Not trying to understand the problem
Another big issue is not devoting time to planning and problem understanding. Even if you know how things are working, you know your code well, when you are going to implement a new feature, devote a few minutes to think about how the solution should work, how the dataflow will look like, what problems you might face. 5 mins of thinking before starting to code may save you 5 hours lost on writing something that just cannot work properly because of problem misunderstanding.
Blindly copy/pasting from StackOverflow
This is really funny, but also dangerous, some developers tend to at first try to understand and solve a problem they have on they own, but if they cannot, they just start looking for a solution, and copying those which have the biggest number of upvotes on StackOverflow, without understanding what’s really going on in this code. Even if this will work, you have to keep in mind that there might be some edge case in which it will just not work in the app you are just writing, of course, you can always fix it, but you have to understand how it works of course.
Not asking for help
Asking for help doesn’t mean you are stupid if you got stuck and are trying to solve the same problem for few hours, testing different approaches and it still fails… maybe it’s worth to ask for help your friends, maybe someone solved that issue in the past, if not, maybe ask on StackOverflow. Just share what problem do you have, what solutions did you test, what exactly is failing.
Pro tip: sometimes describing the problem to others helps to understand what’s wrong and why it’s not working, it’s called: Rubber duck debugging
Not learning new things
Never stop learning, really, it’s that easy, but still hard for many developers. Many people learn some language and specific framework and then just work with what they learned. All languages are evolving, frameworks get updated, even third party libraries are changing. In order to be a good developer, you just have to be up to date, read release notes, play with what’s new, read blog posts. It’s not only about evolution, learning new things demands sometimes a revolution, learning completely new languages and frameworks, good example might be mobile development, couple years ago iOS Developers had to learn Swift and migrate from Objective-C, nowadays more and more Android Developers have to migrate from Java to Kotlin, some backend developers are switching from Python to Go and so on… in this job you just have to constantly learn.
Avoiding interaction with the programming community
Not interacting with the programming community is one of the biggest mistakes some developers do. Really, there is no book, no course, and no Bootcamp that will teach you more than following some people on twitter, reading their blog posts, meeting other developers during local meetups, or even watching presentations recorded during programming conferences. Different people face different problems and the more of them you see the more of them you can avoid. On the other hand, it can also inspire you to try working with some new library, try a different approach.
I mention a couple more in my video: