Two things we get wrong

Sign with the words "Wrong Way"

A few days ago, ITWeb published an article about a program for software graduates. This upskilling programme will give seven interns a chance to work with senior developers over nine months.

It’s a great idea. But it highlights two problems in the South African IT industry. Both problems are favourite topics of mine, so I’m going to indulge in a little ranting this week.

Graduates without real skills

According to the article, the programme is for graduates who can already show the ability to code. And that’s the first problem.

Too many people graduate from our universities of technology (and other institutions) without the ability to code.

We expect graduates to be competent and productive. After all, they’ve spent thousands of rands and a few years to learn those skills. But I’ve spoken to ICT graduates who don’t know what data types are, or the purpose of comments.

This is one reason why many ICT graduates are unemployed. Most companies don’t want the effort of training new graduates.

There are so many factors to blame for this lack of skills. Here are just a few of the factors that I believe play a role:

  • Low standards for entry. This means that the wrong people with the wrong aptitude start the programmes.
  • Low standards for passing. This means that people graduate without actually having to know the work.
  • Government funding rules. These mean that the standards for entry and passing drop even further, so that more people appear to be getting an education.
  • Outdated curriculums, often designed by people without the right skills. Think about how long it takes to approve curriculum changes in a big institution. And those changes must be in place for a number of years. But technology doesn’t wait for red tape.
  • Lecturers with limited training and very little practical experience. Having trained many of these lecturers, I know that they are often not adequately equipped for their role. (Some of them are great people, with experience and knowledge and motivation. But not enough of them.)

Final year students sometimes ask us for help with their final assignment. Some want extra training, which is good. Some want us to do the assignment, which is a definite no. The one thing they have in common: the training they have already paid for has not given them the skills they need.

Too much work for too few

We know that one of the best ways to train junior programmers is to let them work with senior programmers. But that’s not as easy as it sounds. I can think of a dozen problems, but here’s the most important one: time.

Your senior developers need time to coach juniors. (They also need the right attitude, EQ and teachings skills). But the senior developers are in high demand. They are already overloaded with projects and deadlines. Are you really going to reduce their workload to make proper on-the-job training possible?

Ethics of the team member

Last week I mentioned that coding ethics is not just about hacking. One of the topics I cover in Coding ethics is the ethics of the team member. And just to be clear: this apples to managers and developers.

It seems most companies don’t believe this training is necesary. So I’m curious. How well does your team embody these statements?

  • Principle 7 of the ACM/IEEE-CS Software Engineering Code:
    Software engineers shall be fair to and supportive of their colleagues.
  • Promise 6 of the Programmer’s Oath:
    I will do all that I can to keep the productivity of myself, and others, as high as possible.

Is there hope?

At the moment, it seems to me that everyone is on the losing end. Upskilling programmes and internships are a great solution, but there aren’t enough of them. Any ideas?

4 thoughts on “Two things we get wrong”

  • Adrian McClughan says:

    Hi Jacqui, I support all your statements in the blog. Personally I feel Aptitude and Attitude should get far more attention than it does. Good technical skills are great but in the wrong person it is wasted.

    Too many students study in directions they do not have the aptitude for. Why? Well, probably because they did not get sufficient career guidance, did not do research and did not do any job shadowing. Furthermore, enrolment criteria at most tertiary institutions do not consider aptitude as an entry criteria at all but are more focused on school exam marks (there are some exceptions but they are far and few in between).

    We need to profile IT jobs in terms of ideal Aptitude, Attitude, Skills and Working environment to enable proper matching of candidates to available jobs. This will surely lead to higher job satisfaction and people retention discounting factors such as management and team dynamics.

    This is such a complex topic that I probably only scratched the surface of but we should be doing more to get the right people into the right jobs.

    Match the right aptitude, attitude and skills with the right job then, given the right working environment, you will never look back.

  • Hi Adrian.

    Thanks for your comment. I definitely agree with you. I’m a strong believer in aptitude. It’s just not true that anyone can do anything. Even with training and motivation, I know that I will never be any good at singing. The same applies to less artistic career choices.

    I’m often asked for training advice by young people who are either struggling with IT studies, or are thinking about studying IT. The first question I ask is “Why do you want to study programming?” Most of the time I get one of two answers:
    1) My friends are studying it or told me to study it.
    2) I like gaming.
    They are both very bad reasons for choosing a career. Very often the young people in question have no real interest in technology, and no aptitude for the kind of mathematical logic that programming requires.

  • Ludwig Willner says:

    Hi Jacqui,

    I agree 100% with your sentiments. I studied at a technical university in the second half of the 90’s but was lucky enough to land a junior developer job first so was mentoured while studying and then already felt that the technical subjects were rushed and the students were never learnt to code. I also felt that students are not learnt how to really plan and design software projects, even on a small scale like designing a class. And then my real issue and something I feel many developers battle with after finishing their studies is to READ code. I actually think that it should be built into lectures where code is given to students and say, improve it, or what is wrong with it.

    With regard to getting job experience. I moved to Germany more than 5 years ago and think that here they have a pretty good setup with getting poeple skilled for the job market. When you finish school you go to a “Occupational” school. Basically it will boil down to a technical university. The difference is at the same time the students should apply for trainee jobs. They work for pretty low salaries as they are still students but the companies get significant support from government (I think in the form of tax benefits among others). The students will typically work two weeks, go to class two weeks. The universities also coordinate arrangements with the various employers. By the time they finish their studies they will have 3-4 years job experience and the youngsters I saw here, know how to code.

    I think I need to keep an eye on this blog to see more interresting articles. Used to love attending your courses in the late 90’s and early 2000’s.

    Regards

    Ludwig Willner

    • Hi Ludwig.

      Thank you so much for your comment.

      It certainly sounds like a more effective education system than we have at our universities of technology.

      I know that you attended C, C++, OO and Visual Basic many years ago. Due to Covid-19, we are now presenting courses virtually. So you can always consider attending some of our other courses from Germany!

      Regards
      Jacqui

Leave a Comment

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