I have no idea what I’m doing

When you change your job, an unfortunate event happens. You think you are prepared for it, but you’re not. No one has warned you this would happen, you thought all would be perfect.

Nowadays recruiters even don’t say “We have a job offer that might interest you”. It’s more like “We have a new challenge for you” or “We have found a project in which you will be a perfect match”.

But let me warn you, things won’t be perfect.

You will feel like a noob again, be prepared for that.

The last time I though myself as a noob was about 18 years ago. Don’t get me wrong, I don’t consider myself an expert by any means, but more on that later.

By definition:

Noob
/nu:b/
a person who is inexperienced in a particular sphere or activity, especially computing or the use of the Internet.

There are different levels of experience/knowledge you need to have in order to be successful has a software developer. And I suppose in any kind of job.

First, there’s the technical knowledge. Well, if you are like me, you treasure constantly learning. You look at Twitter every day, check hacker news, read some weekly newsletters, dig into cool articles at Medium and read books. This gives you the technical knowledge that more or less prepares you for your day to day work. It won’t make you an expert, but you will be equipped with tools to tackle any challenge.

Then there’s the experience you get by working months, years or decades on some field like web development, UX/UI, QA or operations. You can read the entire library section around a subject, but don’t fool yourself. Knowledge gained while executing is a lot more ingrained in you than the one you get from books, at least for me.

And then there’s the domain knowledge. Each startup usually addresses a specific problem, which has its unique nature. Although there are many similar problems, unless you are in a bad place reinventing the wheel or cloning others people’s work, you are solving a unique and challenging problem.

Then there’s the knowledge of the solution that previous people devised to solve that problem. It is as valuable as the previous ones.

You may be an excellent driver, but if you don’t know the roads you will get lost.

You won’t rewrite everything, and even if you would, it’s better to check if the new implementation matches the previous one.

You will probably see great things, others you won’t understand and probably some that you think could be better.

And don’t be sad if problems exist, if everything was perfect they wouldn’t probably need your help anyways.

Finally, there’s the organizational knowledge of the company. Who is responsible for what or what are the key players in a specific area. In order to solve any challenge, you will probably need the help of others and for that, you need to know how the engine works from inside.

But when you arrive at a new company like I did, you will feel like a noob in more than one of the previous knowledge areas, if not all of them.

You are down, feel bad, your stomach hurts. Damn, why in the hell did I change my job :/

Everyone seems really smart. You don’t get anything they are saying. Is this a twilight zone episode? Am I brain damaged? Have I lost my x-factor?

It’s my third week here at Talkdesk, and I thought this feeling would be gone by now.

My confidence has fallen to very a low level because I’m constantly asking questions, trying to understand how the different pieces fit together.

Nowadays I have a lot in common with my three years old daughter when she asks me a lot of why this and why that…

My awesome teammates and all the people at Talkdesk have been great in trying to cheer me and never say no to any question.

But I start a lot of conversations with “Sorry to bother you” and end many of them in the same manner. I was used to being on the opposite side, and it’s very awkward to be on the on the other side of the fence.

Although rationally I know that this is normal and it’s only an initial phase, nonetheless I constantly feel really bad for acting like a noob.

I have gained some domain knowledge and I’m at least able to know some things that my teammates talk about. Similar to Antonio Banderas on the 13 Warrior movie, where he begins to understand what the hell Vikings are saying, one word at a time.

My second sprint begins and I read the user stories and stare at the monitor. What the hell, most of them I don’t know how to tackle, others I don’t even know what’s supposed to be done. Damn you impostor syndrome, you are chasing me again. Is something wrong with me?

I look at them and pick two of them, an easy and hard one. The first it’s a no brainer, change the copy of some text. Although ending up not being so simple like I initially thought, I got it done pretty quickly.

The second one, emit an event to RabbitMQ. Prior to coming to Talkdesk, rabbits were fluffy creatures and Kafka was the name of a friend’s dog. Well, I look at the codebase, search for things that resemble events and dwell into some of them. But something is wrong, something is missing, I don’t understand …

I call Daniel, one of the persons that worked on that codebase and he kindly explains to me that I was looking at the wrong place.

Hmmm, now things are making sense, I think I can do this…

Thinks are starting to make sense, and I reach a solution. Time to write some tests, and a little bit of refactoring here and there, and bam…

I review my commits, try to put an easy to understand pull request message, hit the submit button and celebrate.

But then a rain of reviews start appearing on Github :/

While I was doing this, one thing popped in Slack that made me curious. So I asked why we were using one type of server and Antonio told me to ask Nizar.

It’s a bit challenging to ask something to someone you don’t know, especially if you are a disguised introvert like me. But, if you don’t try to break that barrier, you won’t be able to work faster and get new friends along the way.

So I pinged Nizar on Slack. A funny thing happened, I recognized his avatar. I had previously followed him on twitter for posting tweets about Elixir, a cool programming language.

We had a small conversation around the topic, and at the end, I apologized for taking his time, for asking too many questions, for being a noob…

He tried to cheer me up, “Here there are no noobs man, only talkdeskers”. Yeah right, I thought to myself, easy for you to say…

But then he said something, that at first I heard and didn’t give too much importance.

I think that’s a great indicator. It means you are being challenged like you haven’t been in a long time!

He was right, one of the things that made me leave a 16 years job, was the lack of technical challenges I was facing and because of that, I was becoming a sad and frustrated person.

Then I began remembering what I’ve been doing for the past 3 weeks. I had been in contact and learned a lot of things:

  • Scrum
  • Pair programming
  • Mob programming
  • Retrospectives
  • Grooming sessions
  • Daily standups
  • Big project in React
  • Redux
  • Graphql
  • Apollo
  • Unit testing with mocha
  • Big project in Ruby
  • Grape
  • Docker
  • RabbitMQ
  • Heroku
  • Some design patterns like iterators, representers and decorators
  • A state machine
  • Rubocop
  • RSpec unit testing
  • Elixir

Wait, what…

Many times we are so distracted by the moment, that we don’t see the big picture.

I got in touch with more new stuff in 3 weeks than in the past 3 years.

Now, let’s talk about the opposite, being an expert. In my previous company, I had a conversation with a very resourceful and skilled developer and asked him how much did he know about ASP.NET MVC. I’m a solid eight, he replied. I laughed for a bit and answered:

If you think you know that much about something, that doesn’t leave you much room for improvement. That’s why I don’t think I’m an expert on anything or else I’ll stop learning.

I had forgotten that I said this, and only remembered it after my talk with Nizar. Wise words that my inner forgotten philosopher had spoken and forgotten…

So, although still uncomfortable, still very doubtful, unsure of myself, I dare to say:

It’s more fun to feel like a noob than to be an expert because you will be challenged and learning along the way.

So if you feel like a noob, don’t be that frustrated, do a list of what you have recently learned and prepare yourself to be amazed.

And last but not least, thank you Nizar :)