There are several key skills that I believe you need to have if you want to be a programmer / developer:

  1. The ability to learn concepts and apply them to other problems.

    An example of this would be the concept of writing cascading style sheets (CSS). The concept is to write styles which apply to the top level of a site and cascade down to the lower elements in the site / page. You would then write other style rules for levels below the top level of the page and they would cascade down too. This means if there is a general style that you need to change, which is used on every page, you can change it in one place and the change will cascade to all pages that use the style and that don't override the rule with their own rules.
  2. Basic mathematical skills.

    In programming, basic maths is unavoidable. You need to make sure you have a basic understanding algebra and arithmetic.
  3. A passion for problem solving

    Most of the time, as a programmer, you will be writing a programme to solve a particular problem. If you don't enjoy solving problems, you won't enjoy being a programmer. This could be a problem for you!
  4. Good communication skills

    There is a stereotype of a developer who sits in the corner on their own, not talking to anyone and just writing code. Some people are like this, but they do still have to communicate. If you don't communicate well, problems will arise and this could cause tension for you or your colleagues. If you don't like talking much face to face, become good at written communication to make up for it.
  5. Good writing skills

    Whether you are writing code or documentation, you need to be able to write in a way that gets your message across clearly. The ability to explain something complicated to someone non-technical will definitely help you and your colleagues in your career.
  6. Confidence around a computer

    This may seem obvious, but if you are thinking about becoming a developer, you will need to be confident with a computer. If you are too timid or afraid you might break something, it will hold you back.
  7. Resourcefulness

    I often tell people I got a degree from the university of Google, because most of what I know is the result of searching for the answer in search engines such as google. There is an art to searching for answers on the internet and it is a vital skill for any programmer.
  8. An inquisitive mind

    This will help you go far as a programmer. Find out how something is done and try to find ways to do it better. If you have an idea that you think will improve things, go away and investigate it.

You may have thought of other skills which I have missed or you think are more important, please feel free to add them in the comments.

If you enjoyed this article, take a look at my other article which talks about the 10 golden rules for becoming a better programmer.

Paul Seal

Umbraco MVP and .NET Web Developer from Derby (UK) who specialises in building Content Management System (CMS) websites using MVC with Umbraco as a framework. Paul is passionate about web development and programming as a whole. Apart from when he's with his wife and son, if he's not writing code, he's thinking about it or listening to a podcast about it.

Proudly sponsored by

Moriyama

  • Moriyama build, support and deploy Umbraco, Azure and ASP.NET websites and applications.
AppVeyor

  • CI/CD service for Windows, Linux and macOS
  • Build, test, deploy your apps faster, on any platform.
elmah.io

  • elmah.io is the easy error logging and uptime monitoring service for .NET.
  • Take back control of your errors with support for all .NET web and logging frameworks.
uSync Complete

  • uSync.Complete gives you all the uSync packages, allowing you to completely control how your Umbraco settings, content and media is stored, transferred and managed across all your Umbraco Installations.
uSkinned

  • More than a theme for Umbraco CMS, take full control of your content and design with a feature-rich, award-nominated & content editor focused website platform.
UmbHost

  • Affordable, Geo-Redundant, Umbraco hosting which gives back to the community by sponsoring an Umbraco Open Source Developer with each hosting package sold.