What makes a good programmer?

[vc_row][vc_column][vc_column_text]Welcome to the latest news from TalkIT. This issue will look at what makes a good programmer. Join Linked In discussion

 What Makes a Good Programmer?

[/vc_column_text][vc_single_image image=”9672″ border_color=”grey” img_link_large=”” img_link_target=”_self” img_size=”220×214″][vc_column_text]

Software drives the world. Developers are back in high demand in the UK. But the supply is limited.

Is it education, experience or just talent? Are males better than females? Are the young better than the old? I am not offering answers, there is enough stuff out there. But inviting discussion. We will also look at how to become a better programmer. You can add your thoughts on this to the end of the blog.

The other day, I realised with shock that I have been teaching people to code for 35 years. This includes at schools, universities and lots of software departments. So here is a brief distillation of my experience.

 Education, Education, Education

You can learn to code at secondary school and university. There has been a recent debate on curriculum in schools. For many years it has focused mostly on MS-Office skills and using the web. Great for creating consumers and providing the office skills now considered standard. But not for helping the UK compete in the global software market.  Or with providing the skills young people need to fill those developer jobs. A new curriculum is planned that includes serious coding, even in primary school.  This article from the Telegraph newspaper describes this quite revolution:

http://www.telegraph.co.uk/technology/news/10410036/Teaching-our-children-to-code-a-quiet-revolution.html

University and College courses like Computer Science do not always provide graduates with industry ready skills. You are more likely to learn to code in Python that Microsoft .Net. Their more rigorous academic approach and broad candidate intake is important. But companies may have to train their graduate recruits with the technologies they will actually use.

There are lots of training centres offering short courses. These focus intensely on a technology for a few days. Companies are often reluctant to put staff on these because of the time and cost. The expectation is that people will just learn on the job. In fact, most delegates report that they have significantly benefited from a course.

Take a look at our online and face-to-face courses. These include C#, VB, Javascript and HTML programming. Tailored courses can be delivered at your offices or our training centre in Bath, UK.
http://talk-it.biz/training/tutorials/
http://talk-it.biz/training/courses/

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column width=”1/4″][vc_button title=”Python course” target=”_self” color=”wpb_button” icon=”none” size=”wpb_regularsize” href=”http://www.talk-it.biz/python-course/”][/vc_column][vc_column width=”1/4″][vc_button title=”C++ course” target=”_self” color=”wpb_button” icon=”none” size=”wpb_regularsize” href=”http://www.talk-it.biz/c-marketing-page-2/”][/vc_column][vc_column width=”1/4″][vc_button title=”C# course ” target=”_self” color=”wpb_button” icon=”none” size=”wpb_regularsize” href=”http://www.talk-it.biz/c-marketing-page/”][/vc_column][vc_column width=”1/4″][vc_button title=”HTML5 course” target=”_self” color=”wpb_button” icon=”none” size=”wpb_regularsize” href=”http://www.talk-it.biz/html5js-marketing-page/”][/vc_column][/vc_row][vc_row][vc_column width=”1/1″][vc_column_text]

Skilling Up

Most programming languages contain the same constructs:

  •                Variables
  •                Arrays
  •                If Else statements
  •                Various looping statements
  •                Subroutines & Functions
  •                Object Oriented Programming features

Learning to combine these effectively to solve a problem requires certain thinking skills. These include logical, verbal and numerical thinking. Here is a computer programming aptitude test from Kent University: http://www.kent.ac.uk/careers/tests/computer-test.htm

But modern coders rarely work exclusively with one language.  When I started I programmed in COBOL. That was it. Today I may work with HTML, JavaScript, C#, TSQL and associated sub-technologies. The technologies are upgraded very frequently. I may work across complex multi-tiered systems. This requires sophisticated cross system thinking. The skills are more about managing complexity.

Programming frameworks provide much of the code needed to develop software. The .Net framework, for example, has extensive class libraries.  Coders today need to research, locate and assemble pre-existing components. So research skills become more important.

Be a Better Programmer

Here are five tips.

  1. Coding is a craft; you learn it by doing it. That is why training courses have such a strong practical element. It is also a skill that is easy to forget, so use it or lose it.
  2. Even when familiar with the basic constructs, it is still worth fully understanding the detailed syntax of the language you are using. Languages contain many subtleties.
  3. Learn some theory and then do some practical. First gain a good understanding of the principles, purpose and limits of a new technology. Next, start to build an application using the technology.
  4. Many developers start to build something, and may even get it to work, without really knowing what exactly they are doing, or why. That is why having a good understanding is important. With software development, theory and practice go hand in hand.
  5. For the practical bit, it is fine to start by copying code or following step-by-step instructions. But then try, by yourself, building a program from scratch. That is when you really get a sense of achievement.

Can you solve these coding problems?

Here are coding tasks that I have set many times to delegates. The aim is to write short but elegant programs.

Write a program in language of your choice, but use minimum number of statements:

  1. That inputs 3 numbers and outputs the largest
  2. That outputs the Fibonacci series, each number is the sum of the two previous: 1, 1, 2, 4, 6, 10, 16 …
  3. That outputs my extended Fibonacci series, each number is the sum of the three previous: 1, 1, 1, 3, 5, 9, 17, 31 …

You can add your code to the end of the blog.

Other Bits

TalkIT in collaboration with VBug organises monthly Geek Speak talks for techies in Bristol. The talks are aimed at developers and team leaders. In February there is a talk on Test Driven Development (TDD). For a description of the talks just click:
http://cms.vbug.net/Regions/VBUG-Bristol.aspx

We have an enhanced tutorial in MVC 4 development that you may like to work with. This includes 3 video clips to demonstrate building an application.

http://talk-it.biz/tutorials/creating-asp-net-mvc-4-application/

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column width=”1/1″][vc_googleplus type=”” annotation=”bubble”][vc_facebook type=”standard”][vc_tweetmeme type=”horizontal”][/vc_column][/vc_row][vc_row][vc_column width=”1/1″][/vc_column][/vc_row]

1 thought on “What makes a good programmer?”

  1. Here is a part solution in C# for coding problem 1.

    // Find the largest
    int intMax = intFirst;
    if (intSecond > intMax) intMax = intSecond;
    if (intThird >intMax) intMax = intThird;
    // Show the largest
    Console.WriteLine(“The largest is {0}”, intMax);

    Have a go at the other problems!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top