My name is Michal (aka Maikl). I am a software engineer at a crazy company called Tesonet.
Every day we, Tesonet engineers, juggle with tons of algorithms to serve the ossest user experience possible.
What it’s like to be a developer?
Being a developer is not just a job – it’s a lifestyle. Seriously. If you want to be good, you have to love what you do. And it’s easy to do. I would call us a group of geeks doing mind-blowing things together to rule the world. We like what we do, and we are good at what we do. We don’t have fixed working hours or angry boss judging us for being late or leaving 15 minutes earlier.
I am also a lecturer at Code Academy teaching people how to code – people who barely know anything about programming or IT. I am happy enough if any of them joins my course knowing how to create an empty file and open it on Notepad. But usually, they don’t. And it’s okay. Most of them are not related to IT at all and have never had anything to do with maths or even numbers. Usually, they know how to use Facebook and Youtube. On their phones, of course.
My students are just regular people thinking about changing their careers. Sounds like I am talking about you? Well, then you can become a developer! I know it’s not easy to start a journey from scratch, but actually, most of the students succeed. That’s because it’s not so hard as you think or might have heard from others.
First, I want to burst the stereotypes flying around and share some essentials for those who want to shift to programming. So here comes the part where I reveal a few tips on how to become a developer.
Development is only for nerds
No. Now is a good time to be a developer, because development is easy. You don’t have to be a math genius to code apps, websites or games.
Did you know that game development doesn’t have to involve coding at all? All you need is to draw the world, put some models inside, and connect different blocks and diagrams to create the game logic. That’s it. These days, there’s no need to code the physics of the elements, the lighting or the game camera.
Software development is boring
People think that programming is just sitting in front of a computer and writing code all day long. It might seem boring, right? Moreover, I’ve heard this myth that developers who work in the same room usually don’t know each other and eventually become very antisocial. It’s one of the most common stereotypes ever!
Yes, you sit in front of your computer for most of the day (like any other people who work in an office, to be honest), but it’s not boring by any means. Imagine yourself playing your favourite video game. You like it and enjoy playing it. You love the graphics, physics, gameplay, all possible scenarios, and most important – CHALLENGES!
But have you ever dreamed of being on the opposite side? Creating challenges for others is definitely more fun. For example, using your favorite soundtracks in your game and writing your own scripts. That’s THE dream! Even if you’re not a gamer, this is a great creative task for all code aficionados.
Software development requires maths
Yes and no. You should have basic skills in maths. Simple algebra and the Pythagorean theorem are enough to start coding. In very rare scenarios, you might need deeper knowledge. But most of the times you are so excited about developing something new that learning a new theorem or formula is not a big deal.
Nowadays coding is relatively easy. A few decades ago, people were solving problems like how to sort an array efficiently or how to deal with large files. Creating the basic algorithms to work with data was the biggest challenge, and it actually required vast knowledge of maths. When a new array sorting algorithm was built, the media was raving about it! It was another massive step in the world of development.
Today we have the most efficient algorithms integrated into our programming languages. We don’t need to think about them. All we have to do is implement the basic business logic, which is the most exciting part of any kind of software.
Development requires deep technical knowledge about computers
Master typing skills are infinitely more useful than deep technical knowledge. Well, unless you are developing an operating system or BIOS. If you are a web developer, all you have to know is how a certain browser works. However, if you spend a lot of time on Facebook, you probably know that pretty well anyways.
Creating a nice looking webpage has nothing to do with computer hardware knowledge – it’s more about being creative. Technical specifications of monitors only matter to make your webpage look great on monitors of any size. So if you know what monitor resolution stands for, you are good to go.
I am too old to start learning how to code
It’s never too late to start learning new things. NEVER. A lot of my last year’s students were over 50, and they did really well.
Have you heard the rule of 10,000 hours? That’s how many hours you need to dedicate in order to become Master Yoda. To put it in simple terms, it would be around 3-5 years. But is it that much when you are willing to live up to 100? Don’t expect to become a superhero after a 2-month course. But to become a junior developer in 1 year – that’s more than reasonable. And my students have proved it many times. Don’t look for excuses, just start learning now.
Only programmers need programming skills
“Everybody in this country should learn to program a computer, because it teaches you how to think.”
— Steve Jobs
We live in the tech century. Programming skills can change the way you think. Also, they allow you to understand how computers and software work. A lot of tools (like Microsoft Office) are taught at school as basic knowledge, but actual programming skills would open more opportunities. After all, programming is not only about writing code; it’s about thinking in a more abstract way. Also, paying attention to details, training your memory, as well as the ability to divide the process into the smallest atoms.
When I talk to my students, I often find that they could make their job more efficient by automating processes with a few tiny scripts. So here comes another niche where programming skills can increase efficiency in your daily routine.
There’s only one programming language suitable for beginners
All coding principles and patterns are mostly the same in any language. For great developers, switching to a different language is not a big deal. Actually, this happens quite often. So my advice is: Don’t choose a specific language – choose the technology and field you want to be in.
The most important thing is to choose the field you want to work with because this will motivate you throughout the journey. You will spend a lot of late hours learning new things only because you really enjoy what you do. Otherwise, you may end up with a bunch of boring algorithms in an area you don’t really understand but chose it because someone advised you to. Don’t do that. Follow your passion, and you will learn very fast.