Over the last few months, the conversation on Singapore’s tech talent has evolved. It started from the current state of Singapore’s tech talent, engineering becoming a choice profession, the government’s hiring of 1,000 engineers and more for large public projects, to students pursuing their professions of choice as engineers.
Taking this further, with the state institutions producing over 11,409 engineering and science graduates in 2013 and obviously handling the bulk supply of tech talent, are the institutions creating an environment that generates good tech programmers? What else can be improved?
I asked five students and graduates from the various programming courses for their insights.
Better balance between theory and application
Are our programming courses relevant to the industry? Kayla (not her real name), a 2013 Computer Engineering graduate in National University of Singapore (NUS), gives her take.
“A lot of the modules we took were more theoretical than applied learning. Most of the computing modules do require some sort of hands-on assignment, but because most of the projects are within the context or boundaries of schoolwork, sometimes it doesn’t reflect the kinds of issues we face in real-world implementations. As a whole, the course does give me a foundation for which I am equipped to pick up more skills on my own if I were to require to.”
She suggested that schoolwork could be geared more toward real-world projects. “For example, if I’m applying a concept or theory for a project, what could the real-world use be like for this particular theory, in which industry or sector is this commonly used?”
“In my course, there were a lot more theoretical lessons than practical ones. However, I would say most of the lessons are about problem solving in theory, before implementing the solution by coding. Most of the practice I did were self-taught, albeit there being some help from peers or lecturers to a certain extent.”
To improve, he suggested there to be a better balance between the amount of theory and practical lessons.
Jun Rong Pang, a final year DBIT student in Singapore Polytechnic (SP), faces the same issue of there being too much theory in the curriculum. “Some of these skills might be a little obsolete in the current IT industry,” he said, and believes that more can be done to focus the curriculum on industry standards to prepare them for the workforce.
A web developer who doesn’t know how to publish a website simply doesn’t make sense to me.
On the other hand, Bryan Tan, a second year DBIS student in Republic Polytechnic (RP), found his lessons extremely relevant and knows it will be definitely useful in future. He feels that practicing the programming helped in understanding unfamiliar concepts.
Lung Hao Liu, a final year DIT student in Nanyang Polytechnic (NYP), feels that “while lessons are still considered relevant, the materials should be updated with the latest solutions. For example, the current trend of preventing DDoS attacks is to subscribe to a CDN service, but the materials are still teaching students to add more servers and network bandwidth to counter DDoS.”
He mentions there are also segments which are obsolete. For example, in the UI/UX course, NYP does not update its content with the industry’s design principles like Google Material UI, Microsoft Metro UI and Apple Flat UI. Rather, the students are required to memorise rules like ‘dark text on light background is better than light text on dark background’, which makes little sense by today’s standards.
He gives his suggestions to improve the system. “Instead of making the students memorise the principles, students should be asked to improve the UX using Google Material UI or do a comparison regarding Google Material UI and Microsoft Metro UI (their good and bad points and perhaps create a new design principle from there). On another note, students should be trained to publish their applications. A web developer who doesn’t know how to publish a website simply doesn’t make sense to me.”
Lecturers to promote learning beyond the classroom
Jun Rong agrees that his lecturers are up to speed and on occasion, certain industry partners are invited down to provide students with insights on the industry. In spite of this, he feels that it would be much better if lecturers could provide a set of topics and materials for students for self-learning and have an open discussion about these topics during lessons.
However, Lung Hao has a different take.
“To be fair, there are many specialisations in IT, so it is not entirely the lecturer’s fault that they are not able to answer all their students’ questions. There are simply too many things to know in the IT industry. However, the lecturers should encourage students to learn beyond their curriculum. For example, a project module should encourage students to take up some of the latest framework like AngularJS, MeteorJS etc.”
He feels that lecturers are reluctant for students to learn beyond what is being taught. To him, this goes against the spirit of learning and innovating.
He felt that students who explored beyond their scopes were getting penalized a lot.
“For example, a friend of mine loves design. She went online to learn about the various design theories and submitted a very simple and clean single page UI to the school. She got a C for that assignment.
When we approached the lecturer, the response was, “Your design is too simple. There’s very little information. If you look at the textbook, it says ‘less click and scrolling is good’ and ‘it is good to have all the information at one glance’. Your design needs the user to scroll down, so it’s bad”. We asked the lecturer what good design was, and she showed us a website that looked like Yahoo in the early 2000s.”
He fears that students criticised for going out of their way to create unique designs would eventually stop innovating in an effort to please their lecturers.
Over in the university side, Kayla observes that most of the lecturers are pretty experienced. She feels that most of the syllabus is based off content between 2-5 years old. And she understands that it is rather hard for lecturers to be constantly integrating new content, especially for lecturers who believe in building foundations that will endure in the long run rather than just learning the newest technologies.
However, 2-5 years of content can get outdated very quickly in a fast-moving tech industry. She explains, “To take things into perspective, the iPhone SDK for developers was launched in 2008, which is barely just 8 years ago. iOS and Android development only started to be taught in schools sometime around 2013.”
For Zhen Jie, given that most of the lecturers have PHDs, he is comforted that they should be well experienced in their fields, but whether that experience is relevant to the course they teach is another question. “While in NTU, some lecturers didn’t manage to explain the theory well enough for us to understand. We have to understand it on our own.”
Provide the necessary tools and hardware support
It was highlighted that one institution did not provide Mac-related hardware to do iOS programming, but rather asked students to use a PC emulator instead. Does this affect the quality of training?
Zhen Jie says he has not encountered this situation before during his course of study. But he suggested that the lecturers/course coordinators should cater to the majority of the students and not just teach certain technology when the students are not able to acquire relevant tools.
Kayla feels that despite much of the software and tools are provided by the school, the hardware used is outdated.
“Tools wise, NUS is pretty good in supplying students with their necessary tools. Hardware aside (most of the microprocessor chips we were using were pretty old); most of the software tools we require for schoolwork will generally be provided by the school.
Even when there were modules that require special tools like for example, a Mac, the school would let us do our work in the computer labs with iMacs provided. I’ll have to say it is already the best the school can provide in terms of resources, and I appreciate their effort to help students in that aspect.”
Lung Hao finds using an emulator is perfectly alright and smirks, “Anyone that says that they would need an iPhone/Mac to develop well is just finding an excuse for students to get their parents to buy a Mac for them. It doesn’t justify the cost for students to spend thousands on a MacBook for a module that requires iOS programming.”
He believes a compromise should be made.
“The school should provide a 24h access lab with Macs and iPhones to allow students to do their development work. In NYP, we do have a lab with Macs but students are not allowed to access it. The school could set up an application system for students to apply for access since the door is controlled by the same RFID card.
As for hosting servers and other resources, I believe the school has provided enough resources. The most important thing is not to spoon feed the students. There are lots of resources online for students to utilise. The GitHub student package gives students a free domain for a year. Microsoft DreamSpark gives free web hosting and 10MB of mySQL storage. These will be enough for students to deploy their web app.”
While Jun Rong finds the tools provided by his school sufficient, they are not without their own set of problems. “It is somewhat impossible to cover the two main areas, Android and iOS development, in the short span of 3 years. To accelerate the learning, we have shifted towards learning on how to use cross-platform development tools such as Titanium and Phone gap. But these tools tend to be rather slow and buggy.” Instead, he proposes that the course can focus more on developing students in one area, either Android or iOS, and use more common software tools to improve the development quality.
Nurturing a motivated culture of learning
At NUS, Kayla finds her peers pragmatic, and are motivated to learn programming as it would be near impossible to survive without. But at the same time, most of them seem unmotivated to learn new skills on their own accord. She finds herself in the same spot, as she has a very hectic school life with limited time to learn new programming languages.
Jun Rong shares the same view on pragmatism and comments, “While many of my classmates do not have an inclination towards programming, they still try their best when it comes to accomplishing these programming assignments because it is graded. But if given a choice, most have a preference towards business or design modules, but not programming.”
So should I comply with what the school wants and lose all my creativity just to score well?
At NYP, the spirit of programming is not as exciting. Liu explains, “The majority of my peers are just here to get a diploma. Some of them don’t even like IT and some were thrown here not by choice.
On the positive side, the good students are really passionate and they learn really fast. With proper guidance, these students would be the best engineers in our country. These students like to explore new things and create new solutions, but they are heavily penalised by the school because they are trying to be ‘unique’.
Personally, I love IT and I still do, but I lost my interest in school after Year 2. The lessons just do not make sense to me anymore. It helps many students to score well but it limits anyone who tries to innovate and create something unique. So should I comply with what the school wants and lose all my creativity just to score well? Or should I continue to innovate and pray that my lecturers would like what I have created?”
Zhen Jie focuses on the supporting factors to build a passion for programming. He explains, “In any institution, peers are a very important part of our life; they could be the one you could be learning from, or even learning from you. I would say most of my peers and I are highly motivated in learning programming. It’s not only just the knowledge of programming that is important; the understanding of the system design/architecture/workflow are equally important. These are the skills that we can bring to the society and further improve on it.”
Bryan ends off this article with a simple truth. “The people I hang around with are mostly nerds. We are all very passionate about programming and are constantly upgrading ourselves. Motivation is never a problem when it comes to programming because to us, it is something fun to do. It is very important that we stay in school and learn to code because when in school, we are guided by our lecturers. This beats us sitting at home and scratching our heads. So yes, I’ll say that I’m motivated to learn in school.”
Training a quality engineering workforce is no doubt challenging, but necessary in order for a nation to meet its visions of a Smart Nation. And the students have spoken about areas in their courses which needs revisiting to remain relevant, effective, and for students to nurture their passion. And maybe, by sharing this, we will see an improvement in the quality of programming courses offered in educational institutions in the near future.
This article is the seventh of the ‘Engineering Singapore’ Series, where I delve into the state of engineering and its community in Singapore.
This article first appeared on Tech in Asia.