Yet Another How-To-Be-A-(Junior)-Programmer Guide

Kajetan Janowski on 7 November 2017

Ever thought of joining the ranks of IT? Dreamt of developing kick-ass apps everyone talks about? Solving hundreds of problems in the colourful splash of well-earned satisfaction? Writing awesome articles while listening to Bach? Wait, what? Does it sound impossible?

Well, it is not impossible if I am doing it (right now). And so can you. You’ve probably heard thousands of stories like this, but I’ve got candy. So stay awhile and listen. It all begins with —

A WHIM

I know this is a cliché but that’s really all you need.

I should buy a boat
source: http://knowyourmeme.com/memes/i-should-buy-a-boat-cat

My first adventure with programming was cramming C++ at the university. I studied physics, had no prior programming knowledge (unless you take the shiny hello-world-of-html webpage into consideration) and afterwards I told myself: Well, that was not SO bad, but I am not going to write code for the rest of my life! I had ambitions, you see.

Later on (when I started to realise that a Master of Physics is quite a useless person, really), I decided to enrol for some Computer Science classes just out of curiosity. There, I met Python. I learned how cool and pleasant coding can be. And that was the first step — if you’re thinking about programming, just write some code! Nothing easier these days. Don’t ask about the language yet, do what feels best for you. Maybe grab a book about C++, or should you spend 15 minutes trying ruby? Complete a couple of courses from Codecademy or Codeschool. Was it fun? Then —

GET INTO THE SWING OF IT

I hate to admit it so soon but this is the most difficult part. Not only because my writing invention starts to dry out, but also because this is a stage at which choices and sacrifices are made.

Until now, you have learned couple of things. You’ve probably heard about stack overflow, you plan to get familiar with git, someone shouted at you to replace your system with some fancy linux distribution, and you’re lost in the jungle of more or less distinctive programming languages, looking like the famous dog.

Dodge
source: http://knowyourmeme.com/memes/doge

I spent a lot of time in this phase. Learnt this and that, installed Ubuntu, created a Github account, read never-ending discussions about what to code in. Questions answered in the beginner’s-guides seemed trivial. I’ve had already begun, but what the heck was I supposed to do next?

One day, a friend of mine told me that he was learning Ruby on Rails and maybe I should give it a try. He recommended this tutorial as well. Needless to say, I fell in love with Mr. Hartl’s writing. Not only did he say HOW to do things but also WHY. I did the whole thing twice, and started my own project following his advice.

The point is — it’s worth just asking around, sounding out your friends or online good spirits. I really encourage you to have a look at railstutorial.org, even if you’re not interested in rails or programming at all. There is plenty more, of course: udacity will let you pick and choose or djangoproject for those more interested in snakes than stones. But what it all comes down to is: aim to begin your own project.

PRACTICE YOU MUST, PADAWAN

I will not exaggerate when I say 90% of all developers made their way mostly by focusing on their very own projects. Some conceived their ideas, others copied existing solutions, others still decided to modify software they liked. Different strokes for different folks; there is always a great lesson to be learnt.

Right, that sounds just perfect, assuming infinite motivation and enough relentlessness to spend another hour looking for the solution to a problem I’m sure is basic, yet I can’t effing solve. Been there, done that.

I’ve got some good news for people who love bad news. Everybody must experience this frustrating period on their own, pardon me.

Yoda: with it you shall deal
source: http://slowrobot.com/i/48839

But look here, young Jedi, I will not abandon you without some tips and tricks. It is the story of my struggles, after all.

Two things would be quite helpful here: some awareness of common issues and how to find them (Expelliarmus!) as well as enough small victories to keep you motivated. What you need then, is a source of minute, computing-related problems to solve on a daily basis. Best place to start? Pick up your sword at Hattori Hanzo’s and head to these code-warriors training grounds. You could also be tempted to help win a frontend-backend war (javascript-python) for either side. Or check-out good old reddit for their daily challenges. And if you are an avid rubyist already, meditate on your karma during these wonderful Ruby Koans. May the force be with you.

One more thing — apart from learning structure, those sites will help you achieve fluency in your language of choice, so you’ll know all the dirty tricks. They’ll also boost your confidence, allowing you to tackle previously unheard of problems with some ease. And THAT, my dear reader, is what really comes in handy during job interviews.

ARE YE WORTHY, M’LADY? M’LORD?

If you hoped for fewer indifferent guidelines and more life-related drama which makes you feel better about yourself — there you are. After all this practice and learning and devotion, I haven’t felt I was ready to apply anywhere, I thought I was incompetent, constantly setting new goals, comparing myself with various requirements, true or fake. Anyone in this kind of position knows the solution is simple — just start applying. Easy.

Silly Job Interview - Monty Python
source: makeagif.com/gif/silly-job-interview-monty-python-UdiNwN

What I didn’t know was that almost every job application comes with an assignment. And these tasks are one of the best learning tools EVER. Surprising, real-life problems, far from your comfort zone aaaand with a deadline. Yummy!

What’s more, each interview is a precious experience. You get to know the market from the inside, create an understanding of how things work and, last but not least, establish contacts with recruiters, who may remember you when you’ll be searching again.

There are tons of advice about interviews, so I won’t bore you with any of it. That said, remember — the recruitment process is as complicated as calculations near the black hole’s event horizon. Do analyse what you did wrong, but be aware there are plenty of incoherent factors that are taken into account. Maybe you just weren’t the right person for the team (would you feel comfortable with a team, who doesn’t like you?) and maybe you’ll get lucky when you’re in the right place at the right time.

That brings us to yet another matter. Companies know they need to hire somebody before they announce it, right? On the other hand, they also might not realise they need a specialist before meeting one. My point is: don’t rely on ‘available vacancies’ — if you think you’re a good fit for the job, send an e-mail; there is no harm in asking (but for recruiters’ sake do a decent research about the firm beforehand, will you?). I almost always got a positive response to a query about a position not listed on the website. And that means recruitment tasks — yay!

I realise this all sucks, and you need a lot of ancient, dark rituals to gather up the strength, but being persevering pays off. One time I didn’t get an answer from the company I applied to, not even a ‘Thanks, but no thanks’ brass off. So after two weeks I gave them a call, just to clear things out. Two days later I was invited for an interview. And guess where I  work now?

To sum up, there is no point in procrastinating. The easiest way to have your skills tested is to be given an assignment. For the applicant it means more practice — a positive value regardless of the outcome. And where is a good place to look for a job? I know a magical one,  it solves problems better than Mr. Wolf. Facebook groups are also mighty helpful (try city-specific startup groups as well). Check out IT conferences taking place nearby, as they are a grand opportunity for networking.

THERE IS STILL MORE

Let’s suppose you got the job. The end of an exhausting adventure. This was a triumph, you’re still alive. There’s fireworks, there’s cake, your family cheering; ‘We are the champions’ sounds in the background, someone even sings ‘Happy birthday’. Everything is colourful, pretty and all smiles (you didn’t take any drugs, did you?) and you are frightened AF. And right you are, because a first job is always scary (if they’re asking you to bring doughnuts as a welcome, deliver or be eaten alive). But time passes, you get more and more comfortable and you even suspect your co-workers might like you a bit. So what am I writing this paragraph for?

The reason is — surprise, surprise — that’s not the end of the hard work. In IT, getting a job is where the learning begins. You might discover that the technology you’ve been mastering so patiently is already being phased. Or the project you are assigned to requires a different business approach. And when that lovely PM asks you to jump in on a project written in Angular, not Ember, would you say no? That’s what you’re in for: constant development.

One does not simply
source: https://imgflip.com/memegenerator

The industry is evolving faster than SpaceX rockets, and you need to stay in the swim.

Happily, there are countless resources to help you out. Develop your daily blog routine, listen to some podcasts when commuting, sign up for dozens of newsletters or stick to your favourite social media: whether it be Reddit, Facebook or Youtube. Better ask your colleagues though — after all, I’m just a junior.

, , , ,

You might also like