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?
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:
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.
Most programming languages contain the same constructs:
- 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
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.
- 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.
- 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.
- 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.
- 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.
- 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:
- That inputs 3 numbers and outputs the largest
- That outputs the Fibonacci series, each number is the sum of the two previous: 1, 1, 2, 4, 6, 10, 16 …
- 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.
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:
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.