“With the expansion of the information technology sector, more and more people are choosing it, but this doesn’t mean that they will all work as programmers. There are many IT specialisations. Yes, these people will all need programming knowledge and skills in the same way one needs to know the multiplication table in maths, but thinking that IT is just programming is a rather stereotypical view,” says Jonas Čeponis.
What fascinates you most about programming?
When talking to students about information technology, I explain that one of the most important things in IT is programming. Because of it, a computer is a very multifunctional device – programming allows you to perform different functions with it. This is a unique feature compared to other systems. The device stays the same, but we can change its function: we can watch films, surf the Internet, listen to music, socialise. Different functions are provided by the computer programming features.
What are the links between programming and creativity?
Programming is a creative process, 100 percent. It could be compared to writing a poem. Just as poets have to rhyme the text they are writing, the programmers have to follow the right algorithm. In other words, using the syntax of a programming language creates some kind of algorithm. Just like in a poem – you can’t put words in random order – this way you could never make a good piece!
One friend of mine, a programmer has once said to me that programming is akin to poetry. He used to program in a way that would make the code not only efficient but also beautiful.
IT has permeated all areas of our lives today, so creativity is essential in all IT disciplines: one must not only be able to program but also to look creatively at the codes or systems being tested.
There are plenty of ways to do this when implementing specific systems, but being able to find and apply the right algorithm is already a matter of creativity. A poet will not write a good poem if his or her vocabulary is poor and narrow, and a programmer will not work creatively unless he or she has subject knowledge of the system being developed. After all, one day they will have to program a banking system, and another to write a code for heating control of a building or for car booking system.
Is it necessary to encourage creativity from childhood? If so, how should this be done?
I would say that encouraging creativity from childhood is mandatory. Figuratively speaking, I would say plainly and sternly – childhood must be “rough” in the sense that the child needs to face challenges and to learn to solve them. Especially this applies to school: challenges are necessary when trying to interest a child with science. After all, people only take a creative approach to a problem when they are curious and know they will receive encouragement for it, or when they face difficulties.
Even if a child has a harder time learning science but is more skilled in arts, he or she can still work in an IT field, for example, as a UX specialist or a front-end programmer. This will require not only programming knowledge but also artistic skills, a sense of style to make the created program user-friendly and attractive.
What are the biggest challenges programmers face?
I think that security is very important in response to current threats. As we use computers and programs in so many different areas, it’s very important that all the software developed is secure and cannot be “hacked”. This is a real challenge, as it is practically impossible to create an “unhackable” program. At KTU I am teaching the course of software security. I think that in today’s global world, a developer often forgets about the security component.
Another thing that is very important is to adjust the user interface of the software to suit people of different nationalities and cultures. A user interface might be suitable for a Lithuanian but a person from, let’s say Japan, might not like it at all. Cultural aspects are very important when using the software. Apps are often expected to be used by people around the world because this increases the number of users.
As technology changes, so do programming languages. How to adapt to such changes? What is the role of creativity here?
Many programming languages have been developed, but only a dozen are widely used. If a programmer can write an elementary code in 20 programming languages it doesn’t mean that he or she is a good specialist. It is more important to understand the principles of programming and, if a specific system is being developed where a specific programming language is being used, to be able use the advantages of that language. Creativity, in this case, demonstrates itself in the ability to take advantage of the possibilities offered by the programming language.
Creativity in education. How will the importance of creativity change in the future? Are students sufficiently encouraged to be creative?
Creativity in education has been, is, and will always be needed. If we want to create something innovative, new – we have to be creative.
The creativity in education starts when students feel motivated to complete their tasks. For many reasons, we are often faced with a situation when the tasks are not completed, work is not made, lessons – not learned.
If we were to talk about the mistakes that inhibit creativity, I could name the biggest one – the lowering of the education quality bar. By the way, this is happening in both schools and universities. It is clear that reduced requirements for students diminishes the need to be creative.
How to fix these mistakes?
I think it would be appropriate to motivate the students to complete their tasks. Of course, the tasks should also be interesting and relevant. Only in this way, through challenge and complexity, will we be able to foster creativity. Humans are lazy, always looking for the easiest path.
What advice would you give to people looking for a career in programming?
When talking about program development – be prepared to think a lot and to think algorithmically. Very often the popularity of software, as I mentioned before, is determined by user interface. For it to be acceptable to consumers, it takes both a sense of empathy and involvement, because, like in any other product, everything – from packaging design to functionality – is important. When developing software, it is important to understand that it will be used by others, so it is necessary to think about making the final product convenient, uncomplicated, and enjoyable.