Kids, Code, and Computer Science Magazine

Common Problems Programmers Face

HackNY on Flickr

Developers deal with common problems in their work. Here’s are a few problems and how to overcome them.

Duplicate code throughout the program

If you write code which is duplicated in the program it can be hard to maintain and can introduce bugs. You may think you have made the change to the code, but then find out the same method was duplicated in a different file and wasn’t updated when you made the change. Causing different results, essentially a bug. This is why you should avoid duplication as much as you can. You should create one method and put it in a location which can be called by different sections of the program. When you need to change the method later on, you only need to change it in one place, rather than search for or miss the duplicates.

Introducing new bugs after making a change

When you make a change to a program, or you add a new feature, you run the risk of introducing new bugs into the program. You can help to prevent this by writing unit tests. You write unit tests in a separate project to test the methods and functions in your program are working correctly. A test is an that a method does what it is expected to do, or that a method is called when it is supposed to do. The more tests your write for your program, the higher percentage of code coverage you will have. You would aim for 100%, but not many large programs get to 100% code coverage.

No version control

You may have added new features or changed a part of the code and put that code live. Then when the site is live, a bug may be discovered or you may be asked to remove the feature and go back to the previous version. This can be a problem if you don’t use version control.

What is version control?

Version control is the process of recording changes in a program so you can go back to specific versions later on. When you work for a company, you will most likely already be using version control, probable SVN or GIT. When you are working on personal projects, you may not be using version control, so you will suffer the problems caused by this. I suggest you start using GIT for Open-source Software projects, or install Visual SVN Server on your machine if it is a private project.

Reading/writing code which is difficult to understand

When writing code, you understand it yourself, but do you know whether others will understand it too? Will you understand it yourself if you come back to it 6 months later? This is why companies have coding standards. These are a set of guidelines, rules or best practices to follow so that everyone else will be able to understand the code, no matter which developer wrote it. This covers conventions for things like naming, commenting, indenting, line length, single line or multi line methods etc.

Estimating how long a task will take to complete

When working as a professional developer, you will be asked how long a task will take to complete. This is needed for quoting a price, scheduling in the work and setting expectations. It can be difficult to estimate how long something will take, you need to look back at similar tasks and see how long they took. If you didn’t measure how long they took, you will need to break it down into smaller tasks and make an educated guess for each item. This is why it is good to measure how long tasks take to complete. You can use this to create more accurate estimates for future tasks.

Learn More

5 Common Developer problems and how to overcome them

http://www.codeshare.co.uk/blog/5-common-developer-problems-and-how-to-overcome-them/

5 Common Developer problems and how to overcome them

http://www.codeshare.co.uk/blog/5-common-developer-problems-and-how-to-overcome-them/

The 5 Most Common Problems New Programmers Face–And How You Can Solve Them

http://www.cprogramming.com/beginner_programming_mistakes.html

The Problem with Programming

https://www.technologyreview.com/s/406923/the-problem-with-programming/

10 problems that every programmer has to face in his life

https://codingsec.net/2016/04/10-problems-every-programmer-face/

What are the main problems faced by programmers?

https://www.quora.com/What-are-the-main-problems-faced-by-programmers

The most difficult problems you will ever face as a programmer

http://www.jasonmorrison.net/content/2008/the-most-difficult-problems-you-will-ever-face-as-a-programmer/

8 barriers to overcome when learning to code

https://thenextweb.com/dd/2015/06/11/8-barriers-to-overcome-when-learning-to-code/

6 common problems you may have with other programmers

https://blog.lelonek.me/6-common-problems-you-may-have-with-other-programmers-61cea4bd907b#.fws82o5q9

What are the most common programming tasks?

http://ask.metafilter.com/132516/What-are-the-most-common-programming-tasks

The 10 Most Common Beginner Programming Mistakes

http://www.dummies.com/programming/cpp/the-10-most-common-beginner-programming-mistakes/

Also In The February 2017 Issue

This cryptography method is based on the fact some tasks are relatively easy to do, but extremely difficult to undo.

There's a way to find out if your online passwords have been stolen, and how to prevent it.

Racket is a fun and easy programming language to learn because it's all about creating colors and shapes as you learn.

Networks are a mostly hidden but critical part of the internet.

Surveillance cameras, satellites, RFID tags, and social media activities all create unique digital footprints.

Developers deal with common problems in their work. Here’s are a few problems and how to overcome them.

Programmers use libraries but instead of books they create and share code, often for free, to help solve common problems.

These cards are a fun way to learn Scratch, look up how to do things, and make applications.

Another mysterious four-letter acronym that helps secure information online.

Dorothy Vaughn, Mary Jackson, and Katherine Johnson not only helped make history, they are part of a long line of women in computing

It's almost time to think about summer tech camps if your kids are interested. Here are a few questions to ask.

Your web browser knows (and tells) a lot more about you than you might realize.

When you pick a programming language to learn first, it helps to figure out what software you want to create.

This odd acronym offers security protection beyond your password. Here are a few examples of how 2FA works.

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

Interesting stories about computer science, software programming, and technology for February 2017.