Code, Code, Code
Tags: codenewbie, career, beginners, howto
Published: 2020-02-29 04:03:52

---
description: How to get better at coding.
---
I'm often asked by new programmers how they can forge a path into using
their skills professionally. Or how they can get better at writing
software.

## How to improve your coding skills

This was my path. It may not be your path. This path also isn't in any
particular order, all of them apply from the moment you start on the
path.

## 1. I coded.

A coded a lot. From silly little scripts to automating tasks to attempting full-blown projects. At work or for fun. I failed a lot, but learned along the way.

## 2. I didn't jump from language to language.

Instead I stayed in a few places for years and focused my learning on those tools. My 19+ year career can be summed up as `FoxPro` then `Java` then `Python` then `C#`. In the middle of things I picked up `JavaScript`. Sure, I've dallied with a few things (Lisp, Haskell, Lua, Perl, ColdFusion, Go, Kotlin), but by staying focused on a small set of tools I'm better than mediocre.

## 3. I coded lots.

Yes, this is a repeat of #1.

## 4. I learned best practices

Once I got the basics of a language, I looked up best practices for each of them. Then I religiously adhered to them, even becoming dogmatic about it. In general this means my code is more easily read. More easily debugged. And most importantly, more easily shared.

## 5. Did I mention that I coded a lot?

You can never get good at anything unless you practice. Another repeat of #1.

## 6. I got over my fear/pride of asking questions

Well, mostly, I still am afraid/prideful from time to time. Honestly, by asking questions you aren't showing what you don't know, you are showing you are willing to learn. Also, the simple act of figuring out how to ask a question can put you in the right mindset to determine the answer yourself.

## 7. Coded some more.
 
As soon as I asked a question, whether or not I got an answer, I coded some more. **Code, code, code!** Yet another repeat of #1

## 8. Read cookbooks and pocket references

Once I've gotten the hang of a language, I looked for cookbooks and/or pocket references on it. I prefer paper copies of tech books (everything else I read is electronic). The recipes in cookbooks become the foundation of my toolkit. The terse, easy-to-find reminders in pocket references mean less cognitive overload.

## 9. Used the recipes to code

I took those recipes and references and coded with them. Again and again I coded. In work hours or play time. Practice makes perfect! Why do I keep repeating #1?

## 10. Didn't let the IDE get in my way

Over the years I've stayed with the easiest-to-learn stable IDEs/text editors. Yes, I know there are really powerful tools with arcane commands (Vim, EMACS, etc), but I don't want to have to stop what I'm doing to learn new tools. I want to code, not tinker with desktop tools or arcane text editors.

## 11. Back to item #1

And again, reference back to #1, I use the text editor to write code. **Code, code, code!** Until my fingers and hands hurt, until I've had to learn how to deal with carpal tunnel syndrome. **Code, code, code!** It's like learning martial arts, guitar, or anything, repetition of simple actions provides the confidence for you to either combine those actions into something greater or learn something more complex.

## What I Wish I Had Done

- Studied computer science in university. If I could do it all over again, that would have been the focus of my academic studies. It wouldn't replace anything on my list, the path I've defined remains the same. Code, code, code!
- It goes without saying I should have taken more tutorials and read more books. Nothing gives a kickstart like having an instructor, online or in-person or in text, who guides you down the right path. Then you can **code, code, code!**

Practice makes perfect, right?