How do you become the best software developer you can be? We talked to Viktor about it. He works at TOPdesk’s office in Budapest and besides being a great programmer, he’s also got an adventurous streak. Curious how Viktor brings programming to the outdoors? Keep reading!
Name: Viktor Tamás
Home base: Budapest, Hungary
Road to tech: Programming in secondary school, Computer science @ tech university Budapest
How did your career as a software developer take you to TOPdesk?
After I graduated I started working at the Hungarian mobile game development department of Nokia, and no I didn’t develop Snake. But I learned a lot and I had great mentors there. Unfortunately, while I was working there, the dotcom crisis hit, so the department was closed. After that I worked on projects for various companies. I helped out on projects that were stuck and worked on projects with a lot of different people. The work was diverse and I gained a lot of experience, but I didn’t enjoy having to start over every time and having to prove myself all the time instead of building a steady reputation within a company. I decided to find a company where I could stay longer and be involved in the big picture. And so my epic quest led me to TOPdesk.
Do you also have any hobby projects that have to do with programming?
Yes, I almost always have a project going on, because I love experimenting. Right now I’m working with cloud-based and mobile technologies. The project is actually related to my other hobby, trail running. I’m working on an app for running competitions where the participants have to pass checkpoints. The app would register runners’ times and publish them via Google Cloud.
A friend of mine has also developed an embedded system. It’s a simple box that can be used instead of a phone to check in at the checkpoints. It works with near-field communication technology.
What are your personal goals as a programmer?
I have a whole Maslov pyramid of goals for programming. The lower-level goal is obviously to write good code. But the higher goal to always work towards is having an impact on people’s lives. TOPdesk is a good place to achieve that, because here we focus on helping people. We get a lot of feedback from our customers and we focus on long-term goals. The focus isn’t just on making things that can be released quickly but are very hard to maintain; we try to create something elegant as well.
Is there anything you’ve created that you’re particularly proud of?
Our team made the TOPdesk form designer. I’m proud of it because more and more other modules are interacting with it. It adds a lot of value for our customers and we coded it so that it’s relatively easy to maintain. One of the best things about our projects is that you’re not just writing code, you’re working on a full product and you get to see your work come to fruition. Everything comes together when you create a useful product with quality code based on solid principles.
Do you have any examples of solid programming principles you apply?
I’m quite literally talking about SOLID principles, haha. It’s an abbreviation. SOLID is the basis Object Oriented Design. It helps keep your project as simple as possible so you can easily extend or change it later.
And I often try to find new knowledge. I follow several experts online (see the list below this blog for my suggestions) and I visit conferences, or if I miss one, I watch presentations online. And I know it’s old school, but I read books too.
Would that be your advice to new software developers as well? To read and visit events as much as you can?
Yes. But it’s not just about reading and doing tutorials. Find projects to work on as well. Get out of your comfort zone and start experimenting. That’s the best way to learn. When I see tutorials, I like to diverge from them a bit just to see what happens. I even make some ‘mistakes’ on purpose to find out how the system reacts.
Making new mistakes every time is a great way to learn, so mistakes don’t bother me. Although of course I don’t like making old mistakes over and over again.
Do you have an example of a mistake you made recently? What did you learn?
We were working on a particular type of database server. We got an unexpected error when we tried to install date/time values. Milliseconds weren’t being registered the way we thought they were. I had to spend some more time figuring things out and I learned that I shouldn’t blindly trust my assumptions regarding database-related standards and the way they are followed by different vendors.
How do you deal with topics that are hard to wrap your head around?
The most difficult problem in software development is often not the technical side, but finding a balance between quick fixes and more elegant but time-consuming solutions. And once you figure it out for a particular problem, you have to convince colleagues.
The Agile/Scrum process helps. You work with user stories which give us an idea what the scope is of a project.
For software developers who are just starting out, the most important thing is to understand development concepts of course. But at the intermediate level, decision-making is the biggest challenge.
Last question: What is your number one tip for new developers?
The most important thing I can tell you is this: never stop learning. And don’t expect to ever be done learning. I still learn from colleagues too, with pair programming for example. If I know the details of an issue, but am unfamiliar with the programming language that’s being used, pair programming is great. So don’t just study, work with others and watch them work on the things you’re trying to learn.
Recommended by Viktor
Curious how Viktor got so wise? Check out these resources on programming, the world of development and more.
Uncle Bob has been a software professional for over 40 years, so he knows a lot. Check out his blog at http://blog.cleancoder.com/
Computing Thoughts is a blog by programmer Bruce Eckel. He has written some books too.
Prefer news sites over blogs? Check out Thenextweb