I wanna be a programmer! A journey.

Ordinary World

Chuck was few years into his career. He was sitting at a desk for most of the day, doing menial and repeatable tasks, filling out Excel spreadsheets and agonizing over “ASAP” PowerPoint presentations that nobody really paid attention to during meetings that were absolutely unnecessary.

But the absolute majority of his day was consumed by Facebook. Be it boredom or burnout, he compulsively checked his stream. And to add salt to the injury, pretty often he would stumble into a story how those fresh-out-of-college programmer-people got an obscene salary, office restaurant, laundry, assistant or something as ridiculous as an office with michelin star-train chefs for YOUR DOG. No, seriously.

cmkkvd7vyaa0xxb

Call to adventure

IMG_0300

Chuck said to himself: I wanna be a programmer! I have plenty of friends in the industry and I will ask them what to do.

Refusal of the Call

IMG_5054.JPG

 Lets start with education. I don’t have any formal engineering education! These people had to learn this in school, didn’t they? Maybe it’s not such a great plan, I don’t want to spend another 3 years studying something, do I?

Supernatural Aid

IMG_3406.JPG

After a chat with one of his friends, he learned that IT is one of those weird professional industries, where formal education is not that important. In many other industries, you show your diploma to convince prospective employer that indeed, you know what you are doing. But in IT, diploma is close to obsolete because the education has trouble keeping with technological progress.

You don’t need formal engineering education

Furthermore, programmers are in high demand. In Silicon Valley, companies are poaching employees from each other because the demand highly outgrew “tech talent” there.

Should I go for code bootcamp?

Bootcamp is an intensive few-weeks coding course. It worked for some of Chuck’s friends, but he knew that it would be a bad choice for him. He was always a self-learner and he despised the fact that in a group setting you need to go as slow as a dumbest person in the class or sometimes he needed more time but the group needed to push forward.

One advantage of coding bootcamp is discipline and accountability. The are in charge and they motivate and keep the score. In Poland, Coderslab appealed to him and he wasn’t girly enough for girlsjs, but he wanted to learn on his own terms.

Crossing the Treshold

SONY DSC

A friend recommended Code.org to Chuck. It was created by Facebook and few other companies as an effort to teach kids how to code. Chuck played with few lessons and decided he felt confident enough to try something more serious.

The road of trials

IMG_0992

What programming language should I learn?

When he started asking this seemingly innocent question, clearly he had no idea what he  was getting into. He didn’t mean to question anybody’s religious beliefs, but every time he brought the subject up, he got a different, strong opinion.

Chuck decided to listen to Artur’s advice and learn JavaScript. Following arguments convinced him:

  • JavaScript is one of the few languages that can be used in many layers of application. That meant that he would be able to switch positions without acquiring new language,
  • With React Native and other approaches it is now possible to also write mobile apps in JavaScript. If he decided to, he could write his own apps!,
  • JavaScript ecosystem is still growing rapidly. The demand will only grow.

So he started taking advantage of the amazing free material available on the web:

He also heard good things about a comprehensive free “How to be a programmer” guide.

The inmost cave

Contribute! Show off!

IMG_0421

Chuck decided to call one of his friends who was responsible for hiring in a huge company.

  • “Listen”, asked Chuck, “If you are not looking at diplomas, how DO you know who to hire?”
  • In many companies it boils down to something called “technical interview”. Honestly, it’s exam-like situation, where we ask technical questions, ask you to solve some problems and generally grade you
  • Is this a reliable process?
  • No, it’s very sloppy and a bit random.
  • Ok, but how can I prepare?
  • I recommend Cracking Code Interview. These are hard and this books is really all you need to get into Google or Microsoft. But in many companies it’s MUCH easier. Usually it’s a few random questions related to specific programming language.
  • Is there something else you would recommend?
  • Open Source projects! It’s an easy way to get experience and make your CV stand out.
  • How do i start with that?
  • Start with Contributing to GitHub. There are plenty of projects that would appreciate help. You will learn  A LOT! Pro tip: Best way is to try to set up the project and start by fixing the “README” files. If you had to overcome some obstacle – fix the readme’s before the code. The maintainers of the project will appreciate your help and it will count as contribution. Also check out this guide on starting your Open Source contributions
  • Thanks for the chat!

The supreme ordeal

How do I get motivation?

IMG_4922 (1)

At this point Chuck felt a bit overwhelmed by possibilities and work to be done. Fortunately, one of his friends had a masters degree in psychology, so he asked him how to find a drive and strength to push forward.

His friend responded:

I have learned more about self-motivation from “Awaken the giant within” by Tony Robbins than during 5 years of psychology.

The book was a splendid recommendation. Chuck never felt so driven to get this done!

Reward

How much will I earn? How to find a job?

IMG_2013

Chuck started asking himself what he should learn in order to get a job. What are the requirements? He heard it’s much better to just look for the offer in specific programming language he knew, so he can focus on improving his skills before he starts learning more.

The Road Back

I want to work remotely, like this Artur person!

What is this remote work? How come Artur is writing posts from all over the globe? Chuck managed to call Artur and ask how to get remote work

“Chuck, listen: there are some fully-distributed companies, but they are only functioning because people there are self-driven. It’s hard to control people when they are not in the office, so we need to be very careful in hiring. Almost always they require prior experience and I highly recommend first starting in some other company”

Resurrection

What’s next?

At the beginning of his programming career, Chuck decided to go for big / medium company. He heard, that he definitely should not join “a cool startup of his friend”. It could be bad for him and the startup.

  • Big company has processes and resources to teach more basics
  • His shortcomings will have little impact on the final result
  • There will be more “newbies”, so he wont feel like the only one without 10+ years of experience
  • There will be plenty patterns / good practices to absorb
  • In a big company it’s much easier to know what he doesn’t know

Chuck got a cool job at Samsung. He decided that he will learn constantly in his new job and after 2 years of corporate experience, he will try to step up the corporate ladder or get a better position somewhere else. Changing job in tech every ~3 years is considered normal.

Be smart, be like Chuck. Be a programmer. It’s awesome.

Return

Why are these header titles so weird?

Other stuff I do

These are the apps I am currently developing. Subscribe for lessons learned while developing:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s