How to become a programmer: Kirill Shirinkin's story

Three individuals observing artwork in a gallery, with focus on a large framed illustration of a man in a window. Walls adorned with various smaller framed pictures. Three individuals observing artwork in a gallery, with focus on a large framed illustration of a man in a window. Walls adorned with various smaller framed pictures.

It’s hard to deduce the moment when I took an interest in programming. But the moments when I had no such an interest pop up in my head in no time.

From an early age I had a computer at home. My dad used it for some serious stuff and I used it for games. If something didn’t work, my father was ready to come to the rescue. I wasn’t keen to understand how that thing works. Everything that kept me away from games was an aggravating nuisance. At least that’s how I remember my computer experience in my early days.

Another flashback. When I was 13 or 14, a particular friend of mine got into programming. He was doing some simple mp3-player in C++. Having looked at what he was doing and his results, I decided that programming was something really complicated and boring and wasn’t for my mind at all. Neither the process nor the result aroused my interest.

But a year or two later my dad offhandedly suggested that I installed Dreamweaver and tried to learn how to create websites. It turned out to be more exciting than my previous experience. You just write some HTML/CSS and something appears on the screen right away. That moment was probably the first I got acquainted with coding, even though through Dreamweaver interface.

I set my heart upon creating the websites and doing it right. I started interrogating all my IT friends on how everything works and what I had to learn. Thus, Evgeny Yanusov, who was in charge of the Game World Navigator (a Russian gaming magazine – translator’s note) website at that time, became my first IT mentor. As for me, I became something like a content manager for the said website.

My first tasks were the ones like ‘to install Jabber’, ‘to follow a couple of blogs with Google Reader’ and just well after ‘to install Linux’. All those tasks served their purposes. Habrahabr (a Russian collaborative IT blog – translator’s note) news flow allowed me to be wrapped up in the IT world. Articles about some certain programming languages encouraged me to learn them.

The following tasks from Evgeny were about learning HTML, but not with WYSIWYG editor now, but with something more serious. That’s how I became a front-end developer. At first I created a crude personal website. Then a Russian web-site about Jasper Fforde, in collaboration with my old friend from Game World Navigator message board. Then a website about some Moscow band, with the very same friend. I continued doing that until my first real paid project.

My first money I got for changing an internet store layout from tables to blocks. I got that work from the store programmer, who I knew from (you won’t believe that!)the Game World Navigator message board. If my memory doesn’t fail me, I got 3000 roubles for this exhausting quest of adapting the layout for the Internet Explorer 6.

Another twist! I met our mkdev co-founder Leonid Suschev on the Game World Navigator message board. The Game World Navigator message board is the mkdev cradle of civilization.

During the last months I, surprisingly, happened to have work pieces on a regular basis and acquired some skills. By the year 2010 my portfolio was massive and some little money was enough to pay for the movies.

But I wasn’t satisfied with HTML only. After HTML and CSS I started learning JavaScript and trying to add the maximum amount of jQuery plug-ins to every web-site. After the front-end I set my sights on the back-end. My first exposure to it resulted in learning a couple of CMS, which I used to change my personal website

I was a programming major at that time. I have no idea how it happened. Probably even then it was obvious for me that a programmer would always be in demand. I don’t know what role my three and a half years of studies played. I sometimes regret not paying much attention to the classes on operating systems and databases, as I had to learn it by myself later. Strictly speaking, I was actually learning my future job mostly in free my time.

Anyway, I wanted to create full-fledged web apps. My wish was to create a cool online service, add a paid subscription there and live upon that money, upgrading the product time after time. I still think that the learning motivation should be the result of wanting to solve some problem or create something new. It’s unacceptable for me to learn programming for the sake of programming. It’s like if the person wants to become a surgeon just because he or she likes dissecting people.

As it turned out, if I had wanted to create a cool web app, knowing only frontend wouldn’t have been enough. While I was searching through Habrahabr articles, I came across article series like ‘Let’s master Ruby together’ every now and then. On the Internet I bumped into Railcasts, where some dude could implement a feature in an app in 10 minutes. The choice was made, both consciously and subconsciously. I started learning Ruby.

Later on I continued learning it the same way I did with HTML. My first crude apps. Then some less crude apps. Some front-end jobs in different Rails projects. At some point I was invited to work for plain 11000 roubles and experience by Dima Vasilets. And then...complete hardcore, fast-paced learning, sleep deprivation, growth of income, and gain in experience. It was like that all the way to my relocation to Berlin. In Germany I continued growing and learning intensively and changed the development direction once again. As simple as that, for more than 8 years.

Can you give some advice that is usually considered to be controversial?

Forget about any rules in IT. Don’t listen to those who say that you need half a year or even a year to master X, you can do it in half the time and start earning money. Don’t listen to those who say there’s a wage ceiling for X programmers in Y country. There may be a ceiling, but it is three or four times higher than you’ve been told in some Telegram or Slack chat.

How do you maintain your skills to be relevant? How do you grow and get better as a developer?

More often than not I undertake the tasks I haven’t encountered before. If it looks complicated, hard and unfamiliar, I have to try it. And when the working day consists mostly of such tasks, the skills increase by themselves.

Your top 3 books for a newbie?

I guess, I haven’t read any programming book till 2015. There are always docs, articles, Google, mentors and a head on your shoulders. Sometimes the book is needed to fill the gaps on some topic. But not for a newbie.

And the newbie obviously needs Self-Education for Web-Developers. This is my first book and it’s free. It’s extremely short and is meant to be so easy-to-read that even a complete newbie can read it and understand what to start with.

Spoiler alert: I started working on an updated and enlarged edition of Self-Education for Web-Developers. We will publish it up to February. Join our newsletter to be the first to know.

You can also read something about personal growth, but go easy on it. If you’re interested, I can write another article, a small review, about the books that were helpful for me at some point. Let me know if you want it in the comments below.

Your top 3 sites/newsletters/information sources that every developer should read?

Unsubscribe from all the newsletters. Leave all the Telegram channels and unfollow everybody on Twitter and Facebook. Turn the notifications on your phone off. Turn the red unread message circles off too.

All newsletters and feeds are a push technology. Dozens of articles will be attacking your brain with some irrelevant info, drawing your attention away. Learn how to analyze your skills, find weak spots and troubleshoot.

Hold on. Do not unsubscribe from our newsletter. We send stuff just once every few weeks and nearly always it’s something useful rather than promotional. But do unfollow Geekbrains, there’s mostly junk.

Your working area photo

I can work just anywhere and use nothing but my laptop. So here’s a photo of mkdev deployment on some escalator for you.