Aleksandr Martynov, Lead Programmer at Netcracker Technology: We Need Programmers Who Understand What They Code For
These days, programmers are expected to not only know how to code, but also be well-versed in the business processes of the field they are working for. A good specialist is someone who can create solutions for unique tasks, effectively communicate with customers, cooperate with colleagues to solve various problems and is not afraid to take initiative. Aleksandr Martynov, lead programmer at Netcracker Technology, an international company that deals in development, introduction, and maintenance of BSS/OSS systems and SDN/NFV solutions, talks to us about how requirements to programmers change over time and what skills every employee of a major IT-company should possess.
Please tell us about the tasks you solve as part of your everyday work, and how you started working for NetCracker.
I’ve been working for NetCracker since 2013. I joined the company as a developer. At that time, the company had just opened its St. Petersburg office, so I had many opportunities for development. Right now, I’m head of developer teams on several projects, and I also lead a team at our St. Petersburg office and manage NetCracker’s training center in St. Petersburg (by the way, we have a joint program with ITMO University). This is why time management is very important to me, as I have to distribute my time between these three areas of activity. I really like everything that I’m doing, and I seek to try different opportunities for development; you never know whether you’ll find something to your liking or not unless you try it.
I got into NetCracker on a recommendation from a former colleague. I took several interviews and was offered to join the team in St. Petersburg. I actually spent some time thinking whether to take this offer or not, as I already had quite an interesting job. Still, I decided to try, and I've never regretted it since.
I was working at a small company that grew from a startup, and we were almost like a family. This kind of thing really grows on you, and you find it hard to leave. Still, I was only a developer there, and there were no opportunities there to try myself at being a manager. Also, when you come to work at major companies, you find yourself in a more aggressive business environment, where they don’t just develop but also attempt to sell a product. This is very interesting: you constantly communicate with customers, receive feedback, develop your soft skills.
Most programmers don’t think much about business, they are immersed in coding, and that can be a problem. Yet, it is not that hard to learn to code on an average level. This is why I agree with those who believe that what we need today is not programmers who can simply code, but programmers who understand or want to understand business processes, who know what their code is meant for and can find ways to improve it. They, too, have to go on business trips, communicate with customers and collaborate with their colleagues on improving the in-house business processes. What is more, when working for an international company, it is very important to understand the peculiarities of different cultures.
This is the time when you can take the initiative, propose something new based on the vast experience you already have. It is very important to understand that working at a company helps attain both your personal and the company’s goals. Sure, you can switch between different fields of software development within the framework of a single project, yet it is not always possible: there are some very specific tasks that you just can’t switch over from.
Well, let’s say that at some point, programmers set the goal of learning more different techniques. As soon as they’ve mastered those that are most relevant to their current work, they reach the next stage: they come to understand why they are doing it, what does it give them and how can all of it help them fulfill themselves and reach their personal goals.
A good example of a goal is to earn more money. Many go to work in startups, which is natural, as they want to apply the skills and instruments they’ve mastered. Still, it is very hard to be successful if you lack the experience in launching a business, doing sales, interacting with clients and so on. You can fulfill yourself and even attain better results in a corporate environment, as you’ll be backed by a major company, its resources, and capabilities.
But you’ve said that programmers are only interested in coding, so what does it have to do with business?
Students tend to focus on technical skills, programming languages and such - the most basic competencies that are easy to master. Many have those. Yet, there’s a demand now for employees who understand the field they are writing their code for, have a knowledge of different business processes. For instance, our company is working in telecommunications, so a good specialist has to know how networks are organized, what the customers need and what the latest trends in this field are. You’ll have to understand the inner workings of this system and know how to communicate with customers. By the way, all of that is very important for launching a startup, as well. This is why before starting their own business, many developers get these so-called soft skills at major companies.
I’d say taking initiative is a must. Many novice programmers have something like a child’s psychology: they expect that once they’ll come to work at a company, they’ll be told what to do and how exactly. As a team lead, I can assure you that it is very hard to work with people who have no goals, no motivation. I can’t give that to them.
No one will ever tell programmers how exactly they are to solve a particular problem. It is their task to come up with a solution; they can discuss it with colleagues, or take the initiative and propose something new. Actually, when I hold interviews, I don’t really care about how fast the candidates code; their enthusiasm and the ability to approach complex and non-standard tasks is a lot more important.
Is there much difference between specialists with a Bachelor’s degree and those who’ve completed Master’s programs?
Yes, definitely. The former are more like the programmers who only see the code, that I’ve been talking about, all they can do is work with thoroughly explained tasks. Yet, in business, there are often tasks to be figured on one’s own. To understand those, one has to know how to ask questions, try different approaches. And this is what they teach you in a Master’s program. Master’s students do research work, meaning they learn to comprehend tasks, figure out why something goes this way and not the other, and mend it.
In your opinion, do competitions and contests help students assess their professional level?
Any contest is above all a challenge to yourself. Also, they are a safe method to test your skills, feel the drive, as well as find new motivation for self-development. In a business environment, you won’t get to do that easily: you invest money, so the risks are higher. Still, you should always test yourself, take every opportunity.
Actually, when talking about the professional field, nowadays the price of a mistake is not too high. It is better to try and fail than to never try at all. You make fewer mistakes if you have the experience, but to get experience, you have to make mistakes. Any change, any step you take to self-development makes you more experienced.
What steps did you take to become a better IT specialist?
This is quite an interesting story. I graduated from the Mathematics and Mechanics Faculty of St. Petersburg State University, my major being astrophysics. My father is an electronics engineer, so since my very childhood, I’ve been constructing different receivers and such. In the 90s, my father sold used computers, and assembled one for us. I remember being one of the first among my peers to have a computer; I’ve played all the games I could get. Yet, I soon got bored with them, so my mother, who is a programmer, showed me how to code. So, this is how I came to like this profession.
During my university years, I’ve worked as a freelance programmer, so I got a decent portfolio. Also, I’ve worked at the Institute of Applied Astronomy for some time. Still, when I was offered a permanent job in IT, I took the offer.
Why? Firstly, there were few programmers at that time. Also, much like now, what was deemed important were not your skills, but enthusiasm, your willingness to learn and do something new. I got interested in programming, as it was a field where we could create something new. Also, I got a bit disappointed in the profession of an astrophysicist. Not because it's boring, it’s actually a great and captivating science, I would advise it to anyone. Yet, I thought that IT offers more opportunities in what has to do with applying your skills in practice. And I never regretted my choice.