DEV Community

Cover image for 20 tips on how to become a better developer in 2023

20 tips on how to become a better developer in 2023

Lars Wolters on September 13, 2022

Hi all, As a developer, you read and write code — and lots of it. It might feel like it is the only thing that matters in our profession as we imp...
Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I honestly think writing tests is hugely overrated. I've been a professional developer for 27 years (programming for 39) and have rarely used automated testing, or worked anywhere that strongly advocates it. This has never been a problem.

Collapse
 
larswolters98 profile image
Lars Wolters

I agree that software can be written without using tests. I learned about testing rather late but personally I’ve experienced too many times that when fixing a bug in X place, the code in place Y broke and I knew about it due to failing tests 🙂

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

I would not completely agree with that, because I have been working as a Software Developer for almost 3 years and I have not wrote any tests for the first 2 years and as I am moving forward in the Software Development field writing tests seems a good option to maintain the maintainability of the code, because tests ensure you that the things that were working previously are working fine with the things that you have just built and nothing has broken.

Tests has also made the life simpler with the combination of the CI/CD, and yes CI/CD and other pipelines helped me as developer very much.

Collapse
 
larswolters98 profile image
Lars Wolters

I agree with this 🙂

Collapse
 
jonrandy profile image
Jon Randy 🎖️

tests ensure you that the things that were working previously are working fine with the things that you have just built

Err... what? Unless you changed the original thing while building the new thing, then the original thing will be working the same.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I didn't write any tests until after about 24 years as a professional developer, and then only when it was absolutely insisted upon (rarely)

Collapse
 
axibord profile image
Info Comment hidden by post author - thread only accessible via permalink
Aghiles Lounis

what are you talking about man, any serious software have tests, and ALL kind of tests unit, integration and E2E, it helps a TON, I'm only 25 I work at medium/big company, we have a huge app developed over 3 years, and you have absolutely 0 idea when you are updating the code or creating new features that you are not breaking previous code, it helps you ship the code with a great level of confidence, with CI pipeline everything is automated, as we ship new versions every 2 weeks, a lot of times we have huge merge conflicts and breaking tests, and it's part of our job to fix them. There is only 1 RULE for tests, you need to write GOOD tests, not a test that will make you app difficult to change, or a test that will break everyday, these are BAD tests written by bad programmers.

If you are working on a small projects or even medium, or hoby project/side..., this is the only time you can omit test (ex: a small selling page with dashboard and some stats for small client, in this case yes you can omit, it's something that will not change often and very easy anyway), but other more complex cases hell NO.

Writing tests is not a question of liking them or not, you HAVE to, if the project require tests, it's inevitable for an APPLICATION, maybe not for a website that will never evolve or very little.

I don't know what you were doing for 27 years, but saying this does not make you a good programmer, neither worse, I know programmers that have 10 years EXP and in a very short time I became way better and got better positions, it's not about time ONLY, it's a combination of time, intelligence(sadly yes, bc i'm not that intelligent), hard work.

Collapse
 
larswolters98 profile image
Lars Wolters • Edited

Let’s keep the comment section a place for discussion rather than taking it to a personal level.

If this post causes hostile / insulting comments towards another person, I will unpublish it instantly. Please let’s not take it that far 🙂

Thread Thread
 
axibord profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Aghiles Lounis

So answering with an honest opinion is considered taking it to a personal level ? and @jonrandy I never said it was the only way everytime, but in case it is the only way on the situations i just described, if i hurt your feeling i'm sorry it was not my purpose AT ALL, but to give you good reasons to re-consider your view, you can read again if you want. @larstw98 censoring me will not change reality, it's too easy to censor, not helpful for anyone, you are not qualified to decide if it was personal or not, let everyone decide in the comments, they will blame me if it's the truth, but by doing this you are just over using your rights, it's astonishing for me to see that, I never insulted someone, or being hostile, but i'm 100% honest and will make you reconsider what you are thinking, and if i'm wrong prove it to me with arguments, and i will be MORE than happy to take them and publicly say that i was wrong no shame for that, that's what i call constructive criticism, not telling you yeah it's good you can have your own opinion, that's bullshiet. But since you don't like constructive criticism I will not comment on you posts.

@jonrandy I don't believe that coding time aka "experience" is impressive by any mean, if this hurt you i don't know what to say, but i never said you were bad, in fact you can be better that me who knows. I think you or the Author completely missed the point, but anyway...

Thread Thread
 
michaeltharrington profile image
Michael Tharrington

Heyo!

My name is Michael and I'm a Community Manager at DEV.

Reading through your previous comment, it did come off as a bit hostile to me and I can understand why the author would have chosen to hide this comment. While we want you to feel open to expressing your opinion, we ask that you please be respectful of different view points & avoid dismissive language like "I don't know what you were doing for 27 years" — see our Code of Conduct.

And, to be clear, the author has the right to hide comments on their posts as they see fit. This is described here in the changelog post when we launched the hide comments feature.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Whoa! OK, calm down there! I was just recounting my opinion and experience from my career so far. In this industry, you don't HAVE to do anything... sure there may be norms, but you should do what works for you, your project, and your team. If you're big into testing and it works for you - great! But that isn't the only way to do things.

Collapse
 
ramazanm profile image
Ramazan

I was thinking like you until I completed my first test-driven project.
Actually until right after I made the first big change after publishing.
I can say that tests give you self-confidence. I mean, I can change anything on this project without any doubt.
So I suggest you, give a chance to TDD at least one time.
This may change your mind too.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Believe me, I've tried it - a number of times. Really didn't like it. Just slowed development for no apparent gain. I found that it also impedes the free flow of ideas, and tends to stifle creativity

Collapse
 
wadecodez profile image
Wade Zimmerman

Bonus tip. Work with a mentor. You learn all sorts of little tricks that will put you light years ahead of your peers. Getting a mentor will probably add more stress/work to your life for a year or two, but certainly worth it.

Collapse
 
larswolters98 profile image
Lars Wolters

Great one indeed. I will add it to part 2 I plan on writing in the future 😊

 
larswolters98 profile image
Lars Wolters • Edited

Thanks for your reply, but as stated in the article, I shared tips that worked for me and might help someone else. I don’t see how that is ‘forcing writing tests upon every developer out there’. If you don’t agree with it, then don’t do it 😎

In case you are wondering why testing is important, this post explains it very well 🙂

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I disagree to varying degrees with every point in that linked post - but, as you say, it works for some people... so, each to their own 😀

Collapse
 
baasmurdo profile image
BaasMurdo

Something small that also helps over time, if you use something (CSS selector or API or function) that you haven't before or are not used to.
Take some time, just read through the docs (not like you are going to write a test on it, but just to have a better understanding. I'm talking about like 10 minutes) and then play around with it. (in jsfiddle / local project / codepen wherever)

Not just to copy and paste for your use case now, but to understand it a bit better for possible use cases later.

Collapse
 
larswolters98 profile image
Lars Wolters

I agree. Taking the time to read through something and pay attention to it makes you really understand what you are doing, rather than just how to do it.

Collapse
 
maurerkrisztian profile image
Krisztián Maurer • Edited
  • 21. Write your own javascript framework
Collapse
 
larswolters98 profile image
Lars Wolters

& switch to a completely new Linux distro you have never worked with every 3 days.

Collapse
 
maurerkrisztian profile image
Krisztián Maurer

And code with vim

 
larswolters98 profile image
Lars Wolters

Let's just conclude that it's the decision of a developer / development team whether to test a codebase or not.

Thread Thread
 
kev4ever profile image
Kevin van Schaijk • Edited

@wojtekxtx It's more about what you test, You don't need 100% test coverage. But to say tests are for newbie developers, is a bit short-sighted.

If it takes you longer to manually test certain features with new code added every day, it may be useful to write certain e2e-tests to test the functionality. If certain logic is very complex, and you want to test every possible flow, or you want to refactor some logic, unit tests can be helpful.

Everyone makes mistakes and introduces bugs at times, junior devs, and seniors. If manual testing is your thing. Go for it, if you think an automated test is useful for your use case go that way👍

Thread Thread
 
larswolters98 profile image
Lars Wolters

Exactly this!

Collapse
 
kev4ever profile image
Kevin van Schaijk • Edited

I think we have a different mindset/opinion if I read your reply. And I won't try to convince you. Everyone has their own opinions, and I respect yours 👍

Why is that?

Because tests are tools in your developer toolkit to test changes as the application grows. Of course you can manually test everything, but why not use tests if they could be useful.

It's the same with tools, if it helps you do the job why not use them? If you want to do it without, go for it😀.

Even if you think as yourself as a senior dev that rarely makes mistakes or spots errors soon, the majority of the time there are more devs than just one on a project and it could help you catch a bug sooner if certain components are related.

Some comments have been hidden by the post's author - find out more