DEV Community

Cover image for 10 common mistakes when learning to code and how to fix them

10 common mistakes when learning to code and how to fix them

Vignesh M on January 12, 2020

Starting with programming can be both exciting and exhausting at the same time, its a demanding activity that needs a lot of focus and energy to do...
Collapse
 
jongtelles profile image
Jon Telles • Edited

Overall, a good list, but depending on your goals:
Data structures,
Algorithms,
Object oriented programming,
Design patterns
SOLID principles

Could be way, way overkill. Unless you're going to be a DB admin or doing some tricky backend work, this isn't really necessary. I've been doing professional Dev for about 2 years now and not once have I used any of the above with any sort of formality. These seem to be the things people tell you to learn for technical interviews that are never actually used on the job.

There are other programming fundamentals that are far more valuable than algorithms. If you need an algorithm, it'll be there for you to search up and already optimized by someone smarter than you. What you wrote about at the bottom (clean code, comments, etc) is more than enough for someone starting out.

Collapse
 
danytulumidis profile image
Dany Tulumidis

I can understand your point and you are not wrong. But in my opinion things like data structures and algorithms are very important. Its the foundation of solving problems.
I would say as an more advanced beginner you should learn for example Big O because if you learn it early in your career you will write more beautiful and efficient code.

For me its important that i understand what im coding and what kind of data structures fits best for the problems im solving. But thats just my two cents :)

Collapse
 
shivenigma profile image
Vignesh M

Thank you, I will also keep these in mind when targeting beginners as an audience

Collapse
 
shivenigma profile image
Vignesh M

Thanks for your comments, your input is really valid, those things are not necessary when they are just starting out.

But they are necessary once you started working for more than few years and start to think about software architecture, performance, maintenance.
. I started the article for beginners but I thought that it might be good to have something that they should learn in the future. Maybe I need to clarify this a little bit.

Thanks for your input.