Kids, Code, and Computer Science Magazine

How to Be a Better Programmer

Steven Depolo on Flickr

10 steps you can take to improve your skills as a programmer.

Here are my top 10 rules to follow which will enable you to become a better programmer

1. Don’t repeat yourself.

This is a great principle to follow. I really enjoy going back through my code after I have written it and refactoring parts that are used more than once. I get a buzz from reducing a long method down to several short methods. Ctrl+R+M works great in Visual Studio to help you refactor code into separate methods. This makes the code more reusable and testable.

2. Name your variables to say what they are for, not what data type they are.

For example, if you use the .NET framework class called StringBuilder to build a list of email addresses as a single string value, with each address separated by a comma, you might write code like this to create a new instance of a StringBuilder object:

StringBuilder stringBuilder = new StringBuilder();

where StringBuilder tells your .Net software to use the StringBuilder framework class, stringBuilder is your variable name that contains (equals) a new instance of a StringBuilder object with all the constructors, properties, and methods within the StringBuilder class.

However, your code is more readable and accurate if your code looks like this:

StringBuilder emailAddresses = new StringBuilder();

In this case, the confusing variable name stringBuilder has been changed to the more accurate name emailAddresses.

The only exception to this is if you are picking up someone else’s code and are continuing with that, you should carry on with their naming convention.

3. Give your methods a clear name for what they are going to do.

For example, a method called CountWidgets most likely adds up the number of widgets you pass into the method.

If you do this well, it reduces the need for comments. You shouldn’t need comments if your code is clear enough to read.

4. Don’t use magic numbers or string literals.

There shouldn’t be any numbers or string values in your code that when someone comes to read later wonders what they are. Create constants, enums or private variables to give them a name so it is easier to understand.

For example, a statement of Password.Length > 22 uses 22 as a magic number. Ideally, the statement should be password.length > MaxPasswordLength and MaxPasswordLength should be set equal to 22 as a constant. This allows MaxPasswordLength to be used in multiple places in your code with only one place to change if the value is changed in the future:

MaxPasswordLength = 22
Password.Length = MaxPasswordLength

String literals work the same way. Imagine if you have a company name in quotes in multiple places in your code. Then the company changes its name. Using a variable CompanyName instead of “Our Big Company” in quotes is much easier to change and the purpose and value of the CompanyName variable is clear to anyone reading the code.

5. Write your methods so they can be tested without having any dependencies on other parts of the application, where possible.

Write it in a way that it doesn’t matter where it was called from. It makes the code far more testable and reusable.

If you are using session values or app setting values, pass them in as variables instead and get the session and config values at the point you call the method. This makes it far more testable.

6. Don’t be afraid to ask for help.

I’m not saying you should ask for help with everything and not learn for yourself, I mean have a good go yourself, but if you are stuck ask someone for help. They may have already had this problem and know how to solve it. Also the process of telling someone about what you are doing, what you are expecting and what the problem is, can bring you to solving it yourself.

7. Follow the boy scout rule.

If you see some buggy or messy code, fix it while you are there and move on. Don’t leave it for someone else to do, but don’t rewrite the whole program either.

8. Share knowledge with others.

Don’t be selfish by keeping your knowledge to yourself. Try to create a culture of helping others. You’ll find that you will work better as a team and you can help eachother to improve. You’re not giving away knowledge and putting your job in danger if your colleagues improve. You are making yourself more valuable as you are someone who not only has the knowledge, but can also help other around them improve.

9. Don’t interrupt your colleagues whilst they are in the flow.

Think about it, when you are programming you have all of these pieces that you are putting together in your mind, like a house of cards you are carefully trying to build. If someone interrupts you to ask a question, then you lose concentration and that house of cards could easily fall down. It may take them 5 or 10 minutes to get that concentration and pieces back together in their mind, when you could have googled it or asked someone else. If you give your colleagues this respect and let them know, they will do the same for you, which in turn will make you more productive.

10. Use criticism as a positive instead of a negative.

To me, criticism is a chance for me to improve. If there is another way of doing something that I haven’t thought of then I want to know about it as it will help me to improve.

Learn More

10 golden rules for becoming a better programmer

http://www.codeshare.co.uk/blog/10-golden-rules-for-becoming-a-better-programmer/

Avoid using magic numbers and string literals in your code

http://www.techrepublic.com/article/avoid-using-magic-numbers-and-string-literals-in-your-code/

Usage of magic strings/numbers

http://programmers.stackexchange.com/questions/221034/usage-of-magic-strings-numbers
http://programmers.stackexchange.com/a/221042

What is a magic number, and why is it bad?

http://stackoverflow.com/questions/47882/what-is-a-magic-number-and-why-is-it-bad

Magic Numbers

https://en.wikipedia.org/wiki/Magic_number_%28programming%29

String Literals

https://en.wikipedia.org/wiki/String_literal

Naming Conventions

https://en.wikipedia.org/wiki/Naming_convention_%28programming%29

The world’s two worst variable names

http://archive.oreilly.com/pub/post/the_worlds_two_worst_variable.html

.Net StringBuilder Class

https://msdn.microsoft.com/en-GB/library/system.text.stringbuilder%28v=vs.110%29.aspx

DotNetRocks

http://dotnetrocks.com

Simple Programmer

http://simpleprogrammer.com

Also In The April 2016 Issue

The iDTech summer camp recently posted 102 questions. Here are a few with links to the full list.

The choice of a first programming language can be overwhelming, from simple drag and drop to full languages.

REST is a standard way for software applications to work with each other to do things.

Blockchain software technology works as a distributed ledger to record what was done and when.

Believe it or not, computers and keyboards were not invented together.

Learn the basics of Go plus neat math details about Go and AlphaGo, the computer that beat a human playing Go.

If you were a wizard, wouldn't you want to know how to scale your spells for maximum effect?

— John Johnson

A phone and tablet app exposes the invisible world of radio, phone, and satellite waves that connect our computers.

ASCII is a set of letters, numbers, and characters computers use to communicate accurately.

Links from the bottom of all the April 2016 articles, collected in one place for you to print, share, or bookmark.

Computing at School (CAS) provides resources and support for computer science teachers and parents.

Interesting stories about computer science, software programming, and technology for April 2016.