DEV Community

Amy Liu
Amy Liu

Posted on

What is the single most effective thing you did to improve your programming skills?

Would love to know - also include some context on your level +industry if possible!

Top comments (16)

Collapse
 
ben profile image
Ben Halpern

I think for me the biggest leap I’ve taken is to better project future communication problems into the current task.

It’s hard to wrap you’re head around, but even beyond code legibility, if the whole task isn’t being handled with future groups in mind, it’s setting up for future pain.

You can’t overdo it with this mentality but it’s a big thing on its own.

Collapse
 
amyliumaiyi profile image
Amy Liu

That's definitely not an obvious one for me, thanks for the thoughtful response!

Collapse
 
taijidude profile image
taijidude • Edited

Starting to write Unit Tests / TDD.

Collapse
 
amyliumaiyi profile image
Amy Liu

What type of coverage do you typically aim for?

Collapse
 
taijidude profile image
taijidude

At least 80% for new code.

Collapse
 
jessica_veit profile image
Jessica Veit

Doing and receiving lots of code reviews!

I usually do the following steps when reviewing code:

  1. Look at the ticket
  2. Look at the code without the changes requiered for the ticket
  3. Think about how I would implement it
  4. Look at the actual implementation

This way I get to know different approaches when it comes to one specific ticket and, depending on the circumstances, one may be better suited in a certain situation than the other. With this you can learn a valuable lesson that may be important for your next task! 😄

Collapse
 
amyliumaiyi profile image
Amy Liu

Great advice, thanks!

Collapse
 
darkain profile image
Vincent Milum Jr

Two decades ago, I mentored under the developers of Winamp. I didn't sign up for this, didn't even ask for this, I simply hung out in their IRC channels they were super active in. If I ever had a question, they'd be quick to answer.

What they were focusing on the time, and what they instilled inside of me wasn't "programming" skills, it was systems architectural design skills, something that often isn't taught, or sought after.

Collapse
 
jestingrabbit profile image
Bill C

I think a hurdle for some is just writing more code. Practice is huge when you're a junior.

Collapse
 
paulpreibisch profile image
Paul Preibisch

I also relised that becoming a master of Laravel Validations is important. Learn how to do Validations as a Closure, and Custom Validations, and familiarize yourself with all the Validations Laravel has to offer.

Lastly, try to remember how to "get to value" for your customer/manager as soon as possible. Try to improve workflow, and reduce time spent on problems

Collapse
 
bezpowell profile image
BezPowell

Learning Rust definitely made a big difference for me. Up until then, most of my programming experience was in PHP or JavaScript, both of which are very forgiving of errors. Fighting against the Rust compiler was initially quite frustrating, but once I started to develop a better picture of what my code was actually asking the computer to do, and why the compiler was complaining, my programming skills improved dramatically.

I still only have a very hazy notion of how computers work "under the hood" (and would love to learn more), but my programming is much better. The only downside to this, of course, is now I want to do everything in Rust, as I would much rather the compiler throw an error if I make a mistake, than it get ignored and result in weird data outputs.

Collapse
 
bbkr profile image
Paweł bbkr Pabian

Larry's Wall "Laziness, Impatience and Hubris" virtues of a programmer theory is incredibly valid. So I've learned just that :)

  • Laziness. Know your language to achieve maximum efficiency with minimal code. Think ahead to implement future changes in minimal time. Cut unnecessary work wherever possible. Keep everything simple. And bomb-proof.
  • Impatience. Refactor annoying code immediately. Automate everything. Keep your code and documentation so clear than others won't bother you about explanations. Reduce meetings to minimum to avoid annoying side threads and scope creep.
  • Hubris. This goes against all those team building principles, but sometimes democracy in code is a bad thing. You must learn to listen to others, analyze their proposals and points of view. But also to take a steering wheel and go back on track without remorse when your experience tells you their ideas are going nowhere.

And from hard skills - train on programming challenges a lot. There is a reason why top level chess players do a lot of chess puzzles. It helps to see/learn optimal patterns and force your brain to systematically think about encountered issues. No joke. Programming challenges are really, really good as mental excercise.

Collapse
 
dangernoodle profile image
Eszter Szücs-Mátyás

Explaining myself algorithms by drawing charts and pictures with pen-and-paper.
Explaining ideas is a skill we all need but don't practice enough. Helps me memorizing, helps me when I have to help juniors, helps me when I discover in the mid of the explanation that I try to use the wrong idea to the problem.

Platform engineer, ex front end senior, working on SaaS products.

Collapse
 
paulpreibisch profile image
Paul Preibisch

For me, something that is 'out-of-sight' is 'out-of-mind' - so, to help me remember important / useful commands, I sometimes use my label maker, and paste these important commands etc. all over the side of my screen side, and keyboard.

IE: do you sometimes forget if 0, or 1 = true?
I also put neat linux commands, like, ncdu, duff,z, fzf on labels.

Collapse
 
karanvir profile image
Karanvir Gupta

I stopped coding 🤭 it took me sometime to realise that I am better at marketing codes than writing codes! I am at a happy place. #irrelevantanswer

Collapse
 
x64x2 profile image
Erik

Using less bloated tools to code