You are on page 1of 201

Sold to

haitamkenwai@protonmail.com
Self-Taught Developer’s
Handbook:

Practical Guide to Start Your

Coding Career the Right Way!

By Sourena Shadmahani
Contents

INTRODUCTION ............................................................................................................................................... 4

SELF-TAUGHT DEVELOPERS JOURNEY ............................................................................................................15

SET YOUR .....................................................................................................................................................34

KILLER GOAL .................................................................................................................................................34

DESIGN YOUR ROAMAP..................................................................................................................................52

GATHER THE BEST RESOURCES......................................................................................................................86

BUILD YOUR ONLINE PRESENCE ................................................................................................................... 107

WRITE YOUR FIRST RESUME ........................................................................................................................ 134

GET READY FOR YOUR FIRST INTERVIEW ...................................................................................................... 150

DEVELOPERS COMMON QUESTIONS.............................................................................................................. 169

EXTRA RESOURCES ..................................................................................................................................... 181

WHERE TO NEXT? ........................................................................................................................................ 197


˙

About the Author

Hi! I’m Sourena, the Author of this E-


book!

I wrote my first line of code about ten years ago without ever intending to
turn it into a career.

As a self-taught developer who studied literature in college, I had to go


through lots of trial and error, and in the process, wasted so much time,
money, and energy.

That’s why I decided to write this book—to share my experience as a self-


taught developer and help you to start your coding career the right way!

I hope you enjoy it! :)

Self-Taught Developers Handbook 2


INTRODUCTION

Do we need more self-taught developers?

There are so many books and courses out there to help you break into
tech fields. Yet, every year, thousands of people graduate from colleges
and boot camps. Not to mention the people who start their coding career
as self-taught developers with no technical background, like me!

With so many “developers” out there, does the world really need more?
And most importantly, is there enough space for you to join the rally?

Self-Taught Developers Handbook 4


INTRODUCTION

Let’s look at the statistics:

According to Code.org, there were less than 50,000 Computer


Science graduates in 2017. But there are over 500,000 open
computing positions in the United States. This could mean that in
2020, the available seats for this position will exceed qualified
applicants by a million, which could widen the gap even more.

Based on research by ACT (The App Association), there are more


than 220,000 job openings in the US—more openings than there
are qualified applicants. Thus, companies might find it extremely
challenging to find the right talent.

Wait, what?

Why do companies have a hard time finding qualified developers? How is


it possible that 220,000 job openings are unfilled?

The problem is that the career path of working as a developer in a tech


company isn’t as clear as it should be. I simply thought developers make
a lot of money and get to work with computers! How cool is that?

Why did I think that? Well, I started my journey like most self-taught
developers—by enrolling in an online course. I saw a report on how much

Self-Taught Developers Handbook 5


INTRODUCTION

developers make on average in the United States, and that the number of
job openings increases every year. Let’s look at what you would find on
the sales page of most online courses:

First, they start with a problem: how many open positions there are in
tech companies each year.

Next, they show you the potential. They tell you about the average salary
of a software developer in the US compared to other jobs, and they tell
you that you only need a laptop and the internet to achieve this. Finally,
they tell you they will teach you to do that.

The only thing you need to do is sign up for their courses. Then you’ll start
living your dream life as the employee of a tech company where you get
to work with computers, play games, and get a big check at the end of the
month.

Self-Taught Developers Handbook 6


INTRODUCTION

Before we get into the details of how each part works, let’s pose one
question: Are these online programming courses useless? Are they
a scam? Well, no. But you do need to know certain things before you
enroll in a programming course.

Self-Taught Developers Handbook 7


INTRODUCTION

Why did I start this book?

I started this book because I went through the same thing you are
experiencing right now, and you will experience in the near future! :) I took
my first course with a lot of hopes and dreams, thinking I would land my
first job after I finished it and then keep advancing my career. I thought I
would quickly get promoted and soon be making a six-figure income.

The first hard truth hit me in the face when I started sending out my
résumé, thinking I would get lots of interviews and have the option to
choose where I wanted to work. After all, there is a shortage of
programmers. These tech companies needed me! Here’s the lesson I
learned after getting my first ten rejection letters and no interview:

There is a shortage of “experienced” developers.

Landing your first job can be extremely hard if you have only focused on
your coding skills. You also need to know how to sell yourself!

I did lots of trial and error to get my first job. In fact, I got my first freelancing
project before I got my first job. (I’ll talk about this in more detail later in
this book.)

Trial and error!

I did lots of trial and error to find out what works and what doesn’t, from
designing my own résumé with fancy colors (huge mistake!!), to writing a

Self-Taught Developers Handbook 8


INTRODUCTION

tech article, to reaching out to senior developers in a company to ask for


referrals, and more! And quite frankly, I wasted lots of time, energy, and
money doing it.

One of the reasons I went through so much trial and error was that I didn't
know anyone in the tech industry. I was studying literature in college, and
my only connections to the tech world were YouTubers and course
instructors. And since the road to becoming a developer wasn’t clear for
me, I have almost quit coding three times! At one point, I even hated
coding so much, I started changing my career to UX design. I had no idea
that what I was feeling was a burnout.

But with all ups and downs I managed to go from someone who knew
absolutely nothing about coding to landing a job as a developer, do
more than 100 projects for clients and become the founder of a tech
startup which managed to raise seed money and got accepted in an
accelerator program.

Self-Taught Developers Handbook 9


INTRODUCTION

First Day at the accelerator center

I also had lots of bad experiences as a developer. From toxic work


environment to accepting a job that I wish I haven’t that’s why I decided
to share my experience with others who are in the first step of their
journey. I thought that maybe I could help someone else make fewer
mistakes and get to their goal faster.

For this reason, I started an Instagram account (previously @sourenadev)


and began sharing my experience as a self-taught developer. After a few
months, I started getting DMs and comments asking me questions about
how to become a developer. I could see that others had the same

Self-Taught Developers Handbook 10


INTRODUCTION

questions I had when I was starting out! I understood what they were
feeling. I even got DMs from more experienced developers saying how
they could relate to what I was talking about.

Just don’t quit

The path for self-taught developers is not clear.

During my brief burnout when I decided to change my career to UX design


(!), I discovered one interesting fact: even though UX design hasn’t been
around as long as software development, there are better resources to
show you the clear roadmaps for how to become a UX designer. They tell
you exactly what to expect in your day-to-day job, where to start studying,
and give you suggested materials.

Self-Taught Developers Handbook 11


INTRODUCTION

That was the moment I started thinking about why we don’t have the
same thing for someone who wants to become a developer—a roadmap
that explains every step of the journey and gives self-taught developers a
heads up about what’s at the end of the road. That’s why I decided to write
this book—to help self-taught developers find clarity in their journey.

Why not hardcover?

During the pre-sale, I received lots of DMs asking if the hardcover book
would be available to buy. However, I decided to only publish the eBook
version of this book for one important reason: I wanted to create a true
handbook for self-taught developers, which means I need to keep
updating the materials. That’s why I chose to create an eBook—
because you, the buyer, will have lifetime access to all the updates.

I also have to mention that if you have pre-ordered this book, you will have
access to a free composition course that teaches a few of the things I
mention in this book, as well as a few other resources that it was better to
leave out of the course. So, if you have pre-ordered this book, it means
you can access the composition course for free! You can email me at
support@selfmadecoders.com to get access to your free course once it
is available (we are currently in the recording process).

Self-Taught Developers Handbook 12


INTRODUCTION

How to use this book

This book contains 11 chapters. Each chapter starts by listing the key
topics that you will learn, and at the end, you’ll be instructed to complete
a few tasks based on what you learned in the chapter.

Self-Taught Developers Handbook 13


INTRODUCTION

Chapter One

To live is to suffer, to survive is to find some meaning in the


suffering. (Friedrich Nietzsche)

Self-Taught Developers Handbook 14


SELF-TAUGHT DEVELOPER’S JOURNEY

Chapter One:

SELF-TAUGHT
DEVELOPER’S
JOURNEY

- If coding is your passion

- Secret formula to success

- How to make coding a habit

- New Developer Mistakes

- Your future as a coder

Self-Taught Developers Handbook 15


SELF-TAUGHT DEVELOPER’S JOURNEY

Is coding your passion?

When I was in high school, I was in love with medicine. I used to daydream
about wearing a white coat and standing in the operating room, saving
lives with my scalpel.

I had subscribed to every medical YouTube channel, and I was obsessed


with the Grey’s Anatomy TV show. (If you’re not familiar with it, Grey’s
Anatomy is a TV show about the personal and professional lives of
surgical interns and their mentors.)

I was sure that THIS was my passion. I was meant to become a medical
doctor and serve humanity! I was sure that I had what it takes to get into

Self-Taught Developers Handbook 16


SELF-TAUGHT DEVELOPER’S JOURNEY

medical school. I had signed up for all the medical-related programs in my


high school, which included doing surgery on lab rats.

Getting ready for the first surgery

Finally, the big day came. I was excited to look up the results, but . . . I
couldn't believe it! I didn’t get in! I was behind by not a few hundred, but
by a factor of thousands! I was confused, and my life was crumbling in
front of my eyes. I thought my life was over, and that I would never be
happy again.

After experiencing mild depression and staying in bed for few days, I
decided that I wasn't going to let this stop me, so I chose a major that
would take the least amount of time and was in my hometown so I would
have time to study again for medical school. (If I didn't go to college, I
would have to join the military for two years.)

Self-Taught Developers Handbook 17


SELF-TAUGHT DEVELOPER’S JOURNEY

Well, as you know, I never became a medical doctor (I became a happy


programmer instead) but I couldn't figure out why! I was sure that I had
what it took to get into medical school. I was smart, and it was my passion;
isn’t that enough to succeed?!

How do you want to suffer?

A few years ago, I came across an article by Mark Manson that changed
my career choices forever. But most importantly, I understood why I
couldn't get into medical school.

I failed to get in for one simple reason: I couldn't get myself to sit down
and study. It was as simple as that.

Why? Because I wasn't in love with medicine—I was in love with wearing
the white coat, and with telling people I was a medical student so they
would think I was smart (!!) and so I would gain a higher value. I wasn't in
love with the process—I was in love with the result.

Results without the pain

If you ask anyone, “What do you want out of life?” they will give you similar
responses:

- I want to become financially independent (who doesn't?),

- I want to be fit (again!),

Self-Taught Developers Handbook 18


SELF-TAUGHT DEVELOPER’S JOURNEY

- And I want to be in a happy relationship.

We all want those things! The problem is that you won't get those results
unless you go through the suffering, the uncertainty, and the emotional
and physical pain.

I sure would love to have a six-pack, but I'm not willing to count my calorie
intake every day and go to the gym five times a week. I also love to have
that extra cheese on my burger.

It's great to be a developer; you can build anything you want! There is
always a high demand, which means you can make good money, and you
get to work in a super fun environment.

But all that is the result. Even those who don’t like coding would like to
have that. Don’t believe me? Next time you see a friend, ask them the
following questions:

- Would you like to have a job that is in high demand?

- Would you like to make an above-average income?

- Would you like to be able to turn your ideas into an app or a website?

Of course, they are going to say yes! But you can follow up your
question with the following questions:

- Would you like to apply for a job and get rejected 100 times?

- Would you like to wonder if you are ever going to find a job?

Self-Taught Developers Handbook 19


SELF-TAUGHT DEVELOPER’S JOURNEY

- Would you like to get stuck and not be able to find a way out?

- Would you like to spend hours trying to find a solution that might not
exist?

- Would you like to feel like you aren’t good enough? Like you aren’t
smart enough?

The truth is, you won’t get those results without going through that pain
first. If the only thing you want is the result, and you don’t care for the
process, you won’t be successful. But if you fall in love with . . .

The joy of fixing a bug that you were stuck on for weeks . . .

The joy of installing an app that you created from the ground up . . .

The joy of turning your idea into reality . . .

Then being a developer might be for you.

How can I know if coding is really for me?

That’s a fair question, and coding most certainly is not for everyone! I do
believe that everyone can code, and that they should learn how to code,
but choosing to code as a career is not for everyone.

The only way you will be able to know is by trying! Try for at least six
months, and see if you like solving problems (fixing bugs), if you are

Self-Taught Developers Handbook 20


SELF-TAUGHT DEVELOPER’S JOURNEY

patient (getting stuck for days) and if you like digging deep into topics and
knowing more.

If these things are enjoyable for you, there is a good chance that coding
is for you. But if you don’t enjoy them or don’t like constant learning, then
coding is probably not going to be much fun! Either way, after six months,
you will have gained an amazing experience—experience that can help
you in your future career, even if you decide that you don’t want to become
a coder!

The Secret Formula

What’s the secret to becoming a successful developer?

What’s the secret to becoming a great chef?

What’s the secret to losing weight?

Self-Taught Developers Handbook 21


SELF-TAUGHT DEVELOPER’S JOURNEY

I always wondered why we are looking for the "secret formula" for
everything.

I have been asked for the “secret to becoming a successful developer” so


many times in my DMs, and when I share that “secret,” they aren’t
satisfied. They don't like it!

The truth is that there is no secret. It's pretty straightforward:

Do you want to lose weight? Burn more calories than you eat.

Do you want to become a developer? Code every day!

You just need to develop the habit of coding every day. How? Keep
reading!

Self-Taught Developers Handbook 22


SELF-TAUGHT DEVELOPER’S JOURNEY

Develop the habit of coding

This is the exact method I used to turn coding into a habit for myself. This
method works for learning other subjects as well.

Originally this method had a few more steps when I started using it, but
after lots of trial and error, I eliminated the steps that didn’t work and
kept the ones that gave me the most results.

Step 1: Set a commitment

Regardless of your free time, I want you to set a goal to study coding for
30 minutes a day. That's it!

You might be a student, working full-time, or have a spouse and kids, but
I’m sure you can manage to find 30 minutes to yourself.

Step 2: Start tracking—physical

Now I want you to pick a calendar—a physical one, not a digital one (this
step is really important, I’ll explain why in a second)—and put it on your
desk where you practice coding every day.

Self-Taught Developers Handbook 23


SELF-TAUGHT DEVELOPER’S JOURNEY

It's also important for the calendar to be visible and not kept in a drawer.
If you don't have a calendar (and don't want to buy one), pick 12 sheets
of A4 paper (one for each month) and draw the 30 days of that month.
You can also print this paper calendar that I made for you! (66 days
format)

https://selfmadecoders.com/habit_calendar

Now, I want you to have markers in hand—a blue one and a red one.
Every day you practice, put a blue X on that day, and if you happen to not
practice, put a red X.

Self-Taught Developers Handbook 24


SELF-TAUGHT DEVELOPER’S JOURNEY

Step 3: Start tracking—digital

You can also keep track of your progress in a digital calendar, but whether
you decide to use a digital calendar or not, it's important to have a physical
one.

The reason is to make sure it's always in your sight! Trust me, I'm a fan of
everything digital, but my mentor changed my mind about the benefit of a
physical item. In truth, they both do half the job. If you are looking for
maximum results (which you should), you may want to use them both!

Step 4: Don't break the chain

The "secret formula" happens here! Don't break the chain! And I can
promise you that you WILL get the results!

Why 30 minutes?

You might think, Thirty minutes is not enough! What can you do in 30
minutes? Well, quite a lot! Of course, not with only one session of 30
minutes, but with 365 of them! By practicing 30 minutes every day, you
gain the most valuable asset—which is to turn coding into a habit.

Thirty minutes is short enough for any person—no matter how busy you
are—to complete each day. But you don't have to stop at the 30-minute
mark; you can keep going to complete another 30 minutes, and then
another, but you are off the hook by completing the first 30 minutes!

Self-Taught Developers Handbook 25


SELF-TAUGHT DEVELOPER’S JOURNEY

You can cross off that day, as you have completed the challenge.

The secret to a 30-minute rule is that after 30 minutes, you are most likely
not going to stop! When you think about doing something, you think of
how much work it needs and the energy it takes to complete, and thus
procrastinate on it. By eliminating that excuse, you get to START every
day, and with the help of the snowball effect, you keep practicing.

Now, before we move on to the next chapter, I want to mention a few of


the most common mistakes that new developers make. By avoiding these
mistakes, you will save yourself a lot of time and build a stronger and more
robust foundation for your professional career.

New developers’ mistakes

Copy-pasting

There is no shame in using someone else’s code, but when you are trying
to do so, make sure to rewrite it yourself and don’t copy-paste it.

But why? Isn’t it easier to just copy-paste it? It would save you time, and
you can get more things done.

Yes, it’s easier to just copy-paste it, but when you are just starting, you
aren’t used to typing code, and the way you can become used to it is by
writing more code!

Write the code yourself. It makes a huge difference.

Self-Taught Developers Handbook 26


SELF-TAUGHT DEVELOPER’S JOURNEY

Not caring about the details

Nothing is worse than reading someone else’s code and seeing that they
don’t use any file structure and they don’t obey any naming convention.

Without having a proper name and leaving your code in one file, it will still
work, but it’s going to be much harder to manage and maintain.

If your project has less than 50 lines of code (real applications have way
more!) then the importance wouldn’t be visible, but when you work with
real-life projects which have over 1,000 lines of code, it makes a big
difference.

I don’t need to learn Git

Git is source management, and although it might sound intimidating, it's


not that big of a deal! Either way, you will need it in your day-to-day job.

Of course, Git itself has lots of topics that can be learned, but you won't
need them. There are a few commands that you will need, and the rest
you'll learn on your job. (You can find the Git cheat sheet in the extra
resources chapter.)

Giving up too soon

As a developer (especially when you are just a beginner) you will struggle
with bugs every day. Everyone does. That's what programming is really
about; struggling with a problem and finding a solution.

Don’t try to avoid a struggle—fight it until you find a solution for it!

Self-Taught Developers Handbook 27


SELF-TAUGHT DEVELOPER’S JOURNEY

Memorizing syntax

Never memorize a syntax or a concept. Instead, try to understand it. Learn


about why we use it, where we use it, and how it helps.

When learning a concept like OOP, try to look at other projects and how
they implement them.

We are going to finish this chapter by looking at all the things that will
happen in the future! Think of this as the light in your road.

I can predict your future!

Yes, that's right! I can even bet on what will happen in your journey, and
no, I’m not a fortune teller—I have just been in the same place that you
are right now.

I have had the same struggles, asked the same questions, and that's why
I want to share a few tips that will help you to get over the hump.

The ups and downs

Some days, everything will go so smoothly that you think that you are the
best programmer ever, and sometimes you will get stuck on a bug for
weeks, leaving you thinking you are not as smart as you thought.

Self-Taught Developers Handbook 28


SELF-TAUGHT DEVELOPER’S JOURNEY

The truth is that this feeling, the ups and downs, happens to everyone! It’s
the nature of programming, the nature of problem-solving.

They are smarter

If you happen to have a mentor or a senior developer and go to them for


a guidance like asking for help to solve a bug in your project, they will
probably fix it in a few minutes—the same bug that you have been stuck
on for weeks!

It’s not because they are smarter than you; they probably spent the same
amount of time on it when they first encountered that bug, but once they
fixed it, it became easy.

Senior developers have faced more challenges than you have. That's why
they can solve them much faster than you.

I'm the best programmer ever!

After a few months of coding, you will feel like you have completed the
programming and you’ll wonder, was that it? That was easy! I have
mastered coding!

The reason you feel this way can be described by the Dunning–Kruger
effect, which shows that people with low ability in a task tend to
overestimate their power, but with time, they realize that there is an ocean
of knowledge that they don't know about.

And that's when real learning begins.

Self-Taught Developers Handbook 29


SELF-TAUGHT DEVELOPER’S JOURNEY

I'm a fraud!

Another thing that will happen is when you land your first job. At this time,
you may feel like you aren’t a real programmer. You may even feel like
they made a mistake picking you! But trust me, you are not alone—
EVERYONE feels the same way. It's called imposter syndrome.

Self-Taught Developers Handbook 30


SELF-TAUGHT DEVELOPER’S JOURNEY

Googling

You might feel that you are not a real programmer because you Google
everything. Well, the good news is that EVERYONE uses Google in their
everyday work, from a junior developer in a small company to the senior
developer in a big tech company.

It’s just important to understand the concept and its use case. You won't
need to remember the syntax, as you can always use Google for that!

Shiny object syndrome

This is very common among developers, especially those who are just
starting out. You purchase a course or a book, and you feel amazing; you
have taken your first step, you have so much motivation, and you can't
wait to start learning.

But a few days (or maybe weeks) later, you feel like you aren’t as
interested in the product as you used to be. You question the quality of
the product, thinking that maybe there is a better one out there, and you
leave it unfinished and go buy another product.

Why does this happen? When you purchase a product, it's easy—you
don't have to spend time or energy like you do when you are learning.
Plus, you can feel good about yourself by taking an action—purchasing a
product—and when you fail to complete the program, you blame the
product and look for another one.

Self-Taught Developers Handbook 31


SELF-TAUGHT DEVELOPER’S JOURNEY

This phenomenon is called a shiny object syndrome, and it has only one
solution: NEVER BUY A NEW PRODUCT UNTIL YOU FINISH THE ONE
YOU ALREADY HAVE. Even if it's not working; even if you think the
product isn’t good enough.

By leaving the program half-finished, you'll make a habit of quitting.

- Find 3 reasons that you want to become a programmer

- prepare your physical and digital calendar for tracking your


progress
- have you made any of the common developers mistakes before?
Think about how you can fix them

Self-Taught Developers Handbook 32


Chapter Two

Shoot for the moon. Even if you miss, you’ll land among the stars

(Les Brown)
SET YOUR

Chapter Two:

SET YOUR
KILLER GOAL

- Setting your long term goal

- Fix your limiting belief


- Set SMART goals

Self-Taught Developers Handbook 34


KILLER GOAL

I love coding for many reasons. One is that you don't have to work in
an office—you can start your own small company, you can start
freelancing, or you can become an indie developer.

When I started out, I thought working in an office was my only option, but
the other options are just as good.

Start Dreaming

Here, I want you to think about your future self. I want you to think about
the life you want to be living.

Do you see yourself living in a big city and working in a big tech company?
Do you see yourself living in the suburbs and working from home as a full-
time freelancer?

You might be thinking that it's premature to think about freelancing full-
time or working in a big tech company when you are JUST starting out.

I thought that too! I always tried to stay in the present and not dream about
my future. I would just do things based on short-term goals, and wondered
what should I do in the future. But it turned out that I was always struggling
to find motivation because I didn't know what the end result was going to
be. I wasn't as excited as I should have been to start my journey.

Self-Taught Developers Handbook 35


KILLER GOAL

Start with an end in mind

One of the best books that I have ever read is called The 7 Habits of
Highly Effective People by Stephen Covey, and in that book the author
talked about a concept called "Start with the end in mind." It suggests
that you envision yourself at the end of the road. Literally the end—your
funeral!

As creepy as that sounds, having a mental image of what you want in the
future will help you in your life as well as your career.

But why?

Would you start building a house without first having a blueprint? Probably
not, unless you want to waste lots of money and time and end up with a
result that you hate.

The same goes for building your career; you need to have an idea of what
you want to achieve.

One of the problems that I have seen many people face when it comes to
dreaming is that they limit themselves. They don't believe in themselves,
so they don't even let themselves dream about it!

There is always a little voice in their head that keeps them down with
negative thoughts:

You can't do it!

Self-Taught Developers Handbook 36


KILLER GOAL

Who do you think you are?

You don't have what it takes!

We are all guilty of having these negative thoughts in our head. The bad
news is that you can't build a blueprint of your future if you don't fix these
limiting beliefs, but the good news is that I'm going to tell you how you can
fix it!

Limiting beliefs

Self-Taught Developers Handbook 37


KILLER GOAL

I have a three-year-old niece who is out of control. We have to always


keep an eye on her so she doesn’t jump from the stairs or fall down while
running. She doesn't know what will happen if she falls down the stairs.
She has never experienced such pain, and as a result, she thinks it's not
a big deal.

We all used to be like that when we were kids. We were fearless, whether
it was jumping four stairs all at once or talking about what we wanted to
be in the future.

It's normal for a kid to say, “I want to be an astronaut when I grow up! I
want to become a surgeon, a lawyer . . .”

But as we grow up, we experience life. We get to know the pain. We have
listened to our parents and our role models as kids, and all of them come
together as a voice in our head that prevents us from doing.

When we are about to jump from the stairs, a little voice makes us think
twice about it. What if we fell?

That voice has one job—to keep us safe! It prevents us from jumping off
a cliff. It also is responsible for protecting us from emotional pains, as well:

- You can't start your own business; you don't have what it takes!

- You'll get hurt! You can't become a developer! You aren’t good at
math!

Self-Taught Developers Handbook 38


KILLER GOAL

- Working at Google?! It's impossible! Who do you think you are to be


working in a top tech company?

If you wonder why our brains are trying to protect us from emotional
trauma just as they do for physical injuries, read this article:

https://www.forbes.com/sites/nicolefisher/2020/02/14/emotional--
physical-pain-are-almost-the-sameto-your-brain/

Having that little voice in our heads is essential for our survival, but
sometimes it is also responsible for our inaction. It doesn’t allow us to
dream big; it is afraid that we won't achieve it. But if don't take the risk and
leave our comfort zone, we won't grow.

To fix this little bug, you need to know where these limiting beliefs are
coming from to begin with.

As children, we went to our parents for guidance because we thought


they had all the answers. When they told us to not drink a beverage
because it was too hot, we wouldn’t listen to them at first, but once we
disobeyed their orders, we would consider them to be an authority. They
knew everything that we didn’t know, so it was only logical to listen to
everything they said.

The same went for our teachers. They would teach us things we didn't
know, so they were the authorities in our lives.

Self-Taught Developers Handbook 39


KILLER GOAL

All of the things we learned from our parents, guardians, and teachers
have shaped our adult lives. The way we think about certain things and
the way we behave stems from those people.

But the problem is, their limiting beliefs are inherited too.

So, without wanting to, those people have shaped some limiting beliefs in
us. You can't start your own business. You need to have a steady job. Our
parents probably inherited these limiting beliefs from their parents, and so
on!

How you can fix it

About two years ago, I experienced severe depression and anxiety. I


couldn't get out of bed. I stopped going to the gym, posting on social
media, and accepting new projects. I knew I needed help, so I started
going to therapy regularly. While the therapy was helpful to make me
come out of depression, I also became interested in psychology and
knowing myself. The more I studied, the more I realized how much I
didn’t know myself. In particular, I found out the reasons why I couldn't
set big goals as I wanted to. I found several techniques that were helpful
in overcoming that little voice inside of my head, and I'm going to share
them with you here.

Self-Taught Developers Handbook 40


KILLER GOAL

1. Toxic people

I remember my first job as a developer. I had already had experience as


a freelancer, but had never worked for a company full-time. I got a job as
a mid-level iOS developer. My friend, who was also an iOS developer, got
the job too! He had 1.5 years more experience than I had.

For the first day, I was scared. I didn't know what to expect. I thought they
had made a mistake in picking me. The other candidates were much more
qualified (even though I hadn’t met them). I thought I couldn’t handle the
job (even though I passed the interview)!

While I was struggling with my own limiting beliefs and imposter


syndrome, the friend I mentioned earlier added to my overwhelming
feeling by constantly saying things like:

"Wow, you got lucky to get this job! I know tons of more experienced
developers." Even after I completed the demo project, he said, "Well, they
went easy on you, the real job is more complicated."

I knew that this "friend" of mine was toxic and not good for my mental
health, but I thought I could handle it. I thought I could just ignore what he
said, but boy, was I wrong! If you have negative people in your life, cut
them out ASAP. If cutting them off completely is not an option for you,
then at least try to limit your interaction with them as much as possible.

How can you spot a toxic person? Every time you talk to them you feel
bad about yourself. You feel like you are not good enough!

Self-Taught Developers Handbook 41


KILLER GOAL

2. Find the roots

Start by writing down your limiting beliefs and challenge them. Find
evidence of why each belief might not be true. Here's an example of how
you can do that:

Let's say you are in your late thirties, and you want to change your career
to become a developer. You think you are too old to start something new,
especially something as complicated as programming.

Now that you have written it down, start looking for evidence of why that
limiting belief is not true.

Here are some possible pieces of evidence:

- Over 30% of developers are above the age of thirty!

- The oldest programmer in the world is eighty years old.

- You have skills in other industries that you could transfer to coding.

As humans, we are logical. If we find evidence, we will change our beliefs.


But of course, I have to mention that change is never easy! It requires
constant practice and dedication.

3. You are awesome!

One of the exercises that my therapist gave me was called positive


affirmation.

Self-Taught Developers Handbook 42


KILLER GOAL

You would basically stand in front of the mirror and start saying the
opposite of your limiting belief. Here's an example:

Let's say your limiting belief is that you are not smart enough. For the
positive affirmation, you would stand in front of mirror every day for few
minutes and say loudly, “I am smart! I am smart I am smart . . .”

As cheesy as that sounds, it's a helpful practice! Try it for few weeks and
see the magical results! :)

Self-Taught Developers Handbook 43


KILLER GOAL

Start dreaming

Now that you know about limiting beliefs and how they impact your brain,
I want to give you an exercise to imagine your best future self without your
inner voice intervening. You ready? Here it goes:

I want you to pick up a piece of paper and split it into two sections, just
like the picture below.

On the left side, I want you to write the current year, and on the right side
I want you to write the year ten years from now.

Now on the left side (we’ll use this year, 2021), I want you to write down
everything you have accomplished on your journey. Here’s an example

2021

Self-Taught Developers Handbook 44


KILLER GOAL

I am working full-time as a salesman.

I am learning to code every day.

I have $20,000 credit card debt.

I am living in a small apartment

2031

I have quit my job as a salesman

I have moved to California.

I am working at Amazon as a front-end engineer.

I have bought a condo.

It's stupid!

But why would you DREAM about your future? Why should you think
about buying a condo when you want to learn coding? What does it have
to do with coding? Isn't this book about coding?!

If there is one thing I can assure you will happen in your journey, it is that
you will lose interest. You will feel like quitting. You will start questioning
your decisions.

Self-Taught Developers Handbook 45


KILLER GOAL

Why am I doing this? This isn't for me! I don't want to do it!

Trust me—I've been there. I have had the same feeling that you are
having right now, or that you will in the future. In fact, I HAVE quit coding
for a while! For one reason:

I didn't have a strong “why”!

When you are just starting out, everything is new and fun. You write your
first line of code, or maybe create your first app or website with the help
of the course you took, and it's all great.

But once the course is over, you are on your own. You'll face challenges
that you have never faced before, bugs that seem impossible to solve,
and not to mention the constant rejection from companies you send your
resume to.

That's when you will need to have a strong “why” more than ever! In this
section, I'm going to help you to develop a strong “why” and talk about
a few of the common reasons why people choose coding as a career.

The novelty is going to wear off; the one thing you need is purpose.

Is it SMART?

Now that you have set your end goal, it's time to break it down to short-
term goals to make sure you are heading in the right direction. But just

Self-Taught Developers Handbook 46


KILLER GOAL

setting a short-term goal might not be enough; you also need to make
sure that it's SMART!

You have probably heard of this acronym many times before. It's been
around for a long time, and most importantly, it works!

Let's say your dream (long-term goal) is to work for a big tech company.

Now, your first step would be to learn coding. But "learn coding" is not
smart enough! Let’s use this framework to make it smarter.

Specific

Your goal should be specific. Narrow your goal as much as possible to get
specific. Let's see how we can make our goal specific:

If your goal is specific enough, it should be able to answer the 6W


question: Who, what, where, when, which, and why?

Bad:

I want to work as a developer.

I want to become a freelancer.

Good

I want to work as an iOS developer for a local startup, or

I want to land an internship as a front-end developer, or

Self-Taught Developers Handbook 47


KILLER GOAL

I want to land my first client as a web developer.

Now it's much better, but we aren’t quite there! You need to make sure
you are moving in the right direction, which brings us to the second item:

Measurable

You need to make sure you are moving in the right direction, and for that
reason, you want to pick something measurable that relates to your
success in achieving your goal.

How can you measure success in becoming a developer?

Bad:

I want to improve my interviewing skills.

Good:

I want to go to 50 interviews.

Achievable

Your goal should also be achievable. If it seems far-fetched or could only


be achieved in the next 5 to 10 years, then you might need to put it in the
vison section.

Bad

I want to land a six-figure freelancer client.

Self-Taught Developers Handbook 48


KILLER GOAL

It's a good goal, but you need to land your first client before you can think
about landing a six-figure one.

I want to land a job as a senior developer at Apple.

That’s great! But you first need to put in the time and effort and work as a
junior developer, mid developer, and then a senior developer.

Good

I want to land an internship at a local startup.

This goal is great, as it is totally achievable—you are learning to code and


you can land an internship.

I want to land my first client.

Relevant

While you are setting your short-term goals, you need to keep your vison
(long-term goal) in mind.

For example, if your dream is to work for a tech company, then this goal
might not be relevant:

I want to land a freelance project.

Self-Taught Developers Handbook 49


KILLER GOAL

Time-bound

And the final item, which can determine if you are going to achieve your
goal or if you are going to procrastinate, is whether your goal is time-
bound.

You need to set a deadline for yourself.

Let's try to modify our previous goals:

I want land an internship in a tech startup within one year.

I want to land my first client by the end of the fall.

- think about your long term goal

- identify your limiting belief and what causes them

- write down your goals and make it SMART with the formula that
you have learned

Self-Taught Developers Handbook 50


Chapter Three

A goal without a plan is just a wish. – (Antoine de Saint-Exupéry)


DESIGN YOUR ROADMAP

Chapter Three:

DESIGN YOUR
ROADMAP

- type of developer you want to be

- where you want to work


- create a roadmap to success

Self-Taught Developers Handbook 52


DESIGN YOUR ROADMAP

Now that you know what you want your future to look like, it’s time to
create your own roadmap—the compass that will lead you to your killer
goal (Chapter 2).

We are going to take a look at the seven steps of going from knowing
absolutely nothing about coding to landing your first job.

We’ll also explore different paths and a few suggestions to focus on.

Self-Taught Developers Handbook 53


DESIGN YOUR ROADMAP

STEP ONE: Where do you want to work?

At a big company

Working at a big tech company is a lot of developers’ dream.

Facebook, Amazon, Apple, Netflix, and Google are the top five
companies, also known as the FAANG companies (initial of each
company name).

These companies usually have much higher competition for getting in


because of the benefits they offer and the programming challenges that
are available for developers. (They have millions of users, and with that
comes a type of challenge that small companies won't experience!)

But why is there so much competition for big companies?

1. Name recognition

Having a big tech company on your resume can accelerate the time it
takes to reach your goals down the road. I personally have seen
developers who worked three months at one of the FAANG companies
and then quit their job and started teaching other people how to get in!

2. Stability

While financial crises can happen to any company, big tech companies
are usually safer for their employees, and if there is downsizing, the

Self-Taught Developers Handbook 54


DESIGN YOUR ROADMAP

employees would likely get a severance package that can cover their
expenses until they find another job.

3. Challenge

Another reason why developers love to work for these companies is that
their products have millions of users, and with that comes a challenge that
you won't experience when working in smaller companies.

This also means that you could have an impact on millions of people!

4. Salary

These companies offer a competitive salary and benefits to their


employees, which appeals to many developers.

While you can make over 200K a year as a developer working for a big
tech company, you should know that these companies are mostly located
in the Bay Area, which is known for having a high cost of living.

At a startup

Landing a job as a developer in a startup is easier than landing a job in


FAANG companies. And just like the previous option, this one comes with
its own pros and cons!

Self-Taught Developers Handbook 55


DESIGN YOUR ROADMAP

1. Career growth

If you are looking to grow your career, startups are much easier to get
promotions or gain a “C” title like CTO (Chief Technical Officer) compared
to big companies.

2. Learning business

If your future goal (Chapter 3) is to start a business or to freelance full-


time, then startups are a great opportunity for you to learn how a business
works.

In an early-stage startup, you are usually closer to founders, so you get to


see how they operate their business—which is something you won't have
working in a big tech company.

3. High risk, high reward

Most startups will offer part of your compensation as equality, which


means if the company succeeds (if they get sold, or better, go IPO, which
means people can buy and sell their share of the company) you could be
making lots of money!

But of course, that comes with a lot of risks, since not all companies
succeed. (Nine out of ten companies will fail within five years of starting
their business.)

Self-Taught Developers Handbook 56


DESIGN YOUR ROADMAP

Freelancing

What if you don't like corporate jobs? Is it possible to not work for any
company and go straight to freelancing full-time?

Yes! For the first few years of my career, I was freelancing on the side
and studying at college.

It's totally a viable option, but you need to consider your situation before
deciding to freelance full-time.

Freelancing works best for those who have a job, but want to transition
into a new one. Freelancing allows them to practice their skills and work
with their clients at night, and after they made enough income from their
part-time freelancing, they can quit their nine to five and start freelancing
full-time!

1. Flexibility

As a freelancer, you don't have any fixed schedule, which could be a good
or a bad thing; a good thing because you can choose when you can work
and when you can rest, and a bad thing because if you don't manage it
well, you might overwork, or procrastinate, since there is no boss to force
you to work!

Self-Taught Developers Handbook 57


DESIGN YOUR ROADMAP

2. High risk, high reward

Just like working at a startup this option is considered a high risk, high
reward option, but in a different way. How? Let me give you a personal
example. Through my freelancing career, I have had times when I made
one year’s worth of income in one month, and I also had times when I
didn’t have any clients for six months! If you are a risk-taker, you could be
making more money as a freelancer.

3. Start a business

If you have an entrepreneur mindset, working as a freelancer is a great


way to learn the business. You get to develop your soft skills, talk to
clients, and learn about financial management.

Indie Developer

An independent developer, or indie developer, is a solo developer (or a


small group of developers that work together) who creates apps and
games and publishes them on a store as a freemium or paid version.

Indie developers don’t have any investment or funding. As crazy as it


seems, some developers are doing this full-time. The first money I ever
made as a developer was through publishing an app on Google Play! (I
didn't know it was called being an indie developer at the time.)

Self-Taught Developers Handbook 58


DESIGN YOUR ROADMAP

The best option

So, which path should you choose? Which one is the best?

This is one of the most common questions that beginners ask, and I
always answer with one word: neither! There is no best option. They all
have their pros and cons. You need to consider your future goals (Chapter
2), your personality, and make the decision based on them. To better
understand the process, think about these features and think about which
appeal to you the most:

Big Challenges

Payments and benefits

Teamwork

Remote work

Flexibility

Creativity

Bigger impact

Risk tolerance

Hopefully, by thinking about these features, you get a clearer idea of which
path is right for you. And don’t worry—if you choose a path and end up

Self-Taught Developers Handbook 59


DESIGN YOUR ROADMAP

not liking it in the future, you can change it. What’s important is that you
have a specific path in mind when you start!

STEP TWO: What do you want to do?

Now that you have an idea of where you want to work, let's take a look at
different types of developer roles and what each does!

Front-end developer

To quickly understand front-end development, consider a calculator.

Self-Taught Developers Handbook 60


DESIGN YOUR ROADMAP

What you can see is considered the front-end: the buttons, the screen, the
colors.

Similarly, in a website, everything you see, like the animations, the design,
etc., is done by a front-end developer. Think about the login page of a
website; all the designs and colors are considered the front end.

Back-end developer

Now think about the same calculator from above. When you press 2 + 2,
the calculator would tell you the answer is 4. You don't know how it came
up with 4; that's the logic behind the buttons and screens, which is
considered the back end.

In the web development world, a back-end developer is the one who


writes the logic behind a website. When you try to log in to a website, a
back-end developer is the one who checks your information through the
database to see if the username and password matches, and if so, it will
let you log in.

Full-stack developer

A full-stack developer does both the front and the back-end development!

To better understand front-end and back-end development, look at this


picture:

Self-Taught Developers Handbook 61


DESIGN YOUR ROADMAP

iOS developer

If you are an iPhone user, look at the apps on your phone. Those are
created by iOS developers.

Android Developer

The same goes for Android developers, who create Android apps.

Game Developers

Games like Clash of Clans and Call of Duty are created by game
developers (of course, these games have huge teams behind them).

DevOps

Development operations, or for short, DevOps, are the ones who make
sure that software updates get out there faster and more efficiently.

Self-Taught Developers Handbook 62


DESIGN YOUR ROADMAP

They use agile methodology to shorten the process of developing


software development. You could say that DevOps is a field between
software engineering and management.

STEP THREE: Choose your programming language

The next step is to determine which programming languages you should


learn. Remember that the point of this step is to learn the BASICS of that
language. You don't need to spend lots of time going into details. For this
step, I suggest spending 2-3 weeks.

Self-Taught Developers Handbook 63


DESIGN YOUR ROADMAP

Front-end language

For front-end developers, there is one language and two markup


languages.

Start with HTML and CSS. They are not programming languages, so
learning the basics should not take too long. Then, start with JavaScript
(JS).

Back-end language

There are many programming languages available for back-end


developers, and they all have their pros and cons. The good news is that
you don't need to worry too much about picking the "right language," as
once you master one programming language, it's going to be much easier
to learn another one.

Here’s a list of popular languages and their best use cases:

Node.js → Great for API development.

PHP → If you are thinking of working with WordPress, PHP is the


language you should go with.

Python → A powerful language with many use cases, from AI and


machine learning to web development.

Java, Go, Rust → These languages are also great choices for back-end
developers.

Self-Taught Developers Handbook 64


DESIGN YOUR ROADMAP

STEP FOUR: Learn how to build

At this point, you can start to take video courses, online boot camps, or
watch tutorials on YouTube. Check out Chapter 8 for suggestion
resources.

My personal suggestion is to take at least one course to feel more


comfortable with building on your own. After you finish your first courses,
these are few projects you can work on to challenge yourself:

Front-end developer

Personal website

Simple CMS

Different quiz

Back-end developer

Movie API

Admin dashboard

OAuth login

Weather logger

Scraper

Payment API

Self-Taught Developers Handbook 65


DESIGN YOUR ROADMAP

YouTube downloader

Mobile developer (Android & iOS)

Expense tracker

Weather app

Chat app

Instagram demo

To-do list

Commerce app

You can (and should!) add any apps and websites you build to your
portfolio and resume. You can also make the codebase public.

Also, don’t forget to document your process (see Chapter 5: Build Your
Online Presence).

Congratulations!

By now, you can call yourself a developer! You know the basics of
software development, and you can create apps and websites. That's
amazing! But your journey isn’t over—you need to keep going.

Self-Taught Developers Handbook 66


DESIGN YOUR ROADMAP

STEP FIVE: Send out your resume

Yes, now is the time! I know you don’t yet feel comfortable with coding,
but the purpose of this step is not to land a job (although, if you happen to
land a job in this stage, that’s great—a cherry on top!). But The main
reason is to get used to going to interviews (because you will be going to
lots of them) and practice the art of interviewing. (Yes, that’s a skill you
can learn.)

STEP SIX: Choose a framework

By now, you probably have worked with a framework or at least have


heard of one. In order to go deeper, you need to choose one framework
and start mastering it! Here are some suggestions:

Front end

Vue.js

React.js

Next.js

Back end

Java → Spring

Python → Django

Self-Taught Developers Handbook 67


DESIGN YOUR ROADMAP

PHP→ Laravel

Ruby → Rails

JS → Node.js

Note that all of these languages have many other frameworks that have
their pros and cons, but just like choosing a language, choosing a
framework should not be an agonizing decision for you. Just choose one,
as you can change it later. The frameworks that have been mentioned
here are best for web development.

STEP SEVEN: Find a job!

Now it’s time to get serious about landing your first job. Your first job can
be in a startup or working for a client as a freelancer. It doesn’t matter! As
a self-taught developer, landing your first job is going to be the hardest
part, so just focus on getting your first experience.

STEP EIGHT: Topics and skills to explore

Here’s my list of suggested topics you should be learning. Some of these


topics are for specific developers, and some are the same for all
developers.

Self-Taught Developers Handbook 68


DESIGN YOUR ROADMAP

Command-line

Git basics

web basics

What is a domain?

HTTP vs. HTTPS

How internet works

what is a host

what is a DNS

What is an API

what is ReST API

Self-Taught Developers Handbook 69


DESIGN YOUR ROADMAP

Languages and markups you need to learn

HTML

CSS

JavaScript

IDE

Visual Studio Code

Bracket

Atom

Java script

Operators

Variables

Self-Taught Developers Handbook 70


DESIGN YOUR ROADMAP

Objects

Data types

Functions

Version control

Git

Framework

(Choose one)

Vue.js

Angular

React

Self-Taught Developers Handbook 71


DESIGN YOUR ROADMAP

Testing

Unit test

Integration test

functional test

Package manager

NPM

Yarn

Pick one language to learn

Python

java

Self-Taught Developers Handbook 72


DESIGN YOUR ROADMAP

PHP

C#

Ruby

JS

Pick one framework to learn

Python → Django

java → Spring

PHP → Laravel

C# → .Net

Ruby → Rails

JS → Node.js

Frontend basics

HTML

CSS

Self-Taught Developers Handbook 73


DESIGN YOUR ROADMAP

JS

servers

Nginx

Apache

Coddy

Design patterns and principles

SOLID

YAGNI

KISS

DRY

Self-Taught Developers Handbook 74


DESIGN YOUR ROADMAP

IDE

VSCode

Bracket

Atom

Database

MySQL

Oracle

MS SQL

MongoDB

API

ReST

SOAP

Self-Taught Developers Handbook 75


DESIGN YOUR ROADMAP

GraphQL

Webhooks

Testing

Unit test

Integration test

functional test

Languages you need to learn

Swift

Objective C

IDE

Xcode

Self-Taught Developers Handbook 76


DESIGN YOUR ROADMAP

Swift Language

operators

initializers

classes

structures

functions

Enumeration

Closure

Software architecture

MVC

MVVM

Self-Taught Developers Handbook 77


DESIGN YOUR ROADMAP

Principles

SOLID

UI

UIKit

Layouts

Animations

Transformations

User notifications

UIViewController

UIApplication

Swift UI

Foundation

Delegation

Notification

Self-Taught Developers Handbook 78


DESIGN YOUR ROADMAP

Observers

Networking

Memory management

Value type

reference type

ARC

memory leaks

Dependency management

Version Control

Git

Database

Coredata

Realm

Self-Taught Developers Handbook 79


DESIGN YOUR ROADMAP

SQLite

Testing

unit test

TDD

Computer science basics

Data structure

Programming paradigm

OOP

POP

Languages you need to learn

java

Self-Taught Developers Handbook 80


DESIGN YOUR ROADMAP

Kotlin

IDE to install

Android Studio

App components

Broadcast receiver

service

intent

Activity life cycle

UI

Input field

clickable components

Data Views

app bar

multimedia components

Layouts

Fragments

Self-Taught Developers Handbook 81


DESIGN YOUR ROADMAP

Resources

Database

SQLite

Realm

Software Architecture

MVP

MVVM

MVI

Test

Unite test

integration test

UI test

Self-Taught Developers Handbook 82


DESIGN YOUR ROADMAP

Build

Gradle

Sensors

position

environment

motion

camera

Networking

Threading

Async tasks

handlers

coroutine

Version Control

Git

Memory Leaks

Self-Taught Developers Handbook 83


DESIGN YOUR ROADMAP

Cause of memory leaks

Detecting and fixing memory leaks

Context

- Decide on where you want to work

- Decide on the programming language and the framework you


need to learn
- Check out 20 job description with the job title you want to apply in
the future

Self-Taught Developers Handbook 84


DESIGN YOUR ROADMAP

Chapter Four

Do what you love and the necessary resources will follow.

(Peter McWilliams)

Self-Taught Developers Handbook 85


GATHER THE BEST RESOURCES

Chapter Four:

GATHER THE BEST


RESOURCES

- Free and paid resources

- Best format for learning


- Top resources suggestions
- How to study effectively

Self-Taught Developers Handbook 86


GATHER THE BEST RESOURCES

Intro

There are tons of resources out there, from free tutorials on YouTube to
paid online courses. When I started my journey, I had no idea how to pick
the right resources. I would start reading an article on the web, and once
I had finished and was affected by its marketing, I would purchase a
course without doing any evaluation, only to leave it half-finished and then
jump on to the next course.

I was always looking for the "best," but I had no idea what the "best"
meant to me. I was just jumping from one course to another, and even
when I was taking a course, I didn't know how to use it! I thought to myself:

Should I play the video like a movie and keep watching? Should I
take notes? Should I code with the instructor?

I had to do lots of trial and error to find the resources that would work for
me and how to use them. And with those trials and errors, I would waste
so much time and money!

That's why I added this chapter on gathering resources to this book—to


help you save time, money, and energy in finding the right resources and
using them the right way.

Self-Taught Developers Handbook 87


GATHER THE BEST RESOURCES

Free vs. Paid

There are so many free resources, so why would you pay for one? That's
a fair question. If you can learn for free, why would you pay?

Here are few reasons why free resources might not be the best option for
you.

1
2
3

Self-Taught Developers Handbook 88


GATHER THE BEST RESOURCES

No skin in the game

I share everything I know on social media. It's all for free! Yet, I get tons
of DMs and emails asking the same questions that I have already
answered through the content I publish. Why?

When you are not invested in a program, you don't feel committed to
finishing it. You won't put that advice into practice. Imagine, however, that
there is a 10,000-page book about how to master coding; just read this
one book, and you won't need any other resources. They sell this book for
10k USD, and you use all your savings and borrow money from family and
friends to purchase it.

Then, a few months later, the author decided to publish the same book for
free. People are super excited, and they all sign up to download it at no
cost.

Now, what percentage of people who downloaded the book are going to
finish it? What about the people who paid $10k? What percentage are
going to finish it?

Based on a study published on katyjourdan.com, only 5 to 15% of the


students who use free resources finish what they started.

It doesn't matter how good a book, course, or any resource is; if you don't
apply it and put it into practice, you won’t get any results. The more you
are invested in a program, the more you are likely to finish what you
started and put it into practice.

Self-Taught Developers Handbook 89


GATHER THE BEST RESOURCES

But what if you can't afford any paid resources? Does it mean you are
doomed to leave them unfinished and procrastinate? Of course not!
Financial investment is one form of commitment. Find other ways to hold
yourself accountable for the resources you use.

Quality

Generally speaking, free courses are not as high in quality as paid


resources. Anyone can create a tutorial and share it on different platforms
like YouTube, and some of the instructors might not be experienced and,
as a result, teach the wrong material which will lead you in the wrong
direction. (I have seen one case in which the instructor was saying java
and JavaScript are the same, but that JS is just optimized for browsers. If
you know a thing or two about programming, you know how ridiculous that
statement is!)

There are certainly some amazing free resources out there, but you need
to be careful about the resources you choose.

Support

Most paid resources have a support team or a closed group where you
can connect with other developers and ask questions. When you have
trouble, they will help you to get unstuck. But for the free courses, the best
you can do is to comment your question and hope the instructor will
answer.

Self-Taught Developers Handbook 90


GATHER THE BEST RESOURCES

What you need to do is utilize all the formats—both free and paid
resources!

Which format you should pick

Videos, books, or short articles—which one is the best? Well, like most
things in life, there is no best option. It just depends on how you learn
the best, and which stage of your learning process you are in.

For the maximum impact, you need to leverage all the learning formats.
Watch a video tutorial, read a book, listen to podcasts, read short articles,
and check out short infographics on Instagram during your breaks.

My method of choosing resources

This is the way I approach learning new subjects that I have no clue about.
Let's say I want to learn Python programming language and Django
framework, and I have no clue how to use them.

1. Free resources

I would start by searching YouTube for "python for beginners," "python in


one video," and "python basics." Based on how familiar I am with the topic,
I would spend 2 to 8 hours going through free resources on YouTube.

Self-Taught Developers Handbook 91


GATHER THE BEST RESOURCES

2. Paid course

Now that I have a basic understanding of the technology that I want to


learn (language, framework, database, etc.), I would go ahead and
purchase a course based on my criteria (I'll talk about this later in this
chapter) and start the process!

3. Start building

This step is super crucial! By the end of the courses, I should know enough
to start building stuff. So, the next step is to put everything I have learned
into a project.

At this stage, I would recreate the portfolio project that I have built in the
course and try to tweak it a bit and add more features.

4. Articles

By now, I'm comfortable with the language and the framework, and it's
time to get more in-depth!

I would choose one topic and start searching for articles. (I would first
check out my favorite authors, and then move on to other authors.)

5. Reading books

Now it's time to go deeper and see what happens under the hood!

Self-Taught Developers Handbook 92


GATHER THE BEST RESOURCES

To get in-depth knowledge, I would always choose books. They add the
most amount of value, and the authors are usually more experienced in
their field.

How to choose a paid course

Every time I want to pay for a course, a book, or any resources, I try to
find out about the materials that I would learn and its structure.

Most resources offer a few chapters for free so you can evaluate them.
Don't enroll in a course without first using the free stuff! Here are the
criteria I use to decide whether I should enroll or not:

Price

Price is not an indicator, but I would expect to get more value from a $1000
course compared to a $100 course.

Topic/project base

I would see if the course is project-based or topic-based (e.g.: Software


Architecture 101). for the starting stage I would choose a project based
course so I can add the projects to my portfolio and also see the results
in action.

Self-Taught Developers Handbook 93


GATHER THE BEST RESOURCES

Certificate

The certificate is not as important as other criteria, but it's nice to have
something that shows you have completed a course. Most platforms like
Udemy and Coursera offer certificates. There are also other individual
creators who have their own certificates.

What you need to know about these certificates is that the more a platform
is recognized by the community, the more valuable it is going to be.

For instance, the Google certificate is worth more than a Udemy course.

Self-Taught Developers Handbook 94


GATHER THE BEST RESOURCES

Level

How advanced are the materials going to be? Is it for beginners or mid-
range developers? Most courses will say that anyone with any experience
can join the program, but the truth is that you can't create learning material
for both advanced developers and beginners. It's better to check out the
outlines to see the topic that is going to be taught.

If you have a good understanding of Python, you will feel bored taking a
course that talks about if/else statements in Python, and as a result, leave
the course unfinished. So make sure to find out about the material level
before you enroll.

Feedback

It's always a good idea to check out the feedback for the course you want
to enroll in. Most resources use a 5-star-based rating system with a
comment section.

What you need to do is to check out the 4 and 3-star reviews. The 5-star
reviews might be from a fan or genuine supporter who just wants to
support the creator. The 1-star reviews are also not great, since they
either hate the program or the creator and they don't provide useful
feedback!

Self-Taught Developers Handbook 95


GATHER THE BEST RESOURCES

The 3 and 4-star reviews often mention what is missing from the course.
Use these reviews to find out what you are going to get out of the materials
and if they are right for you!

How to watch tutorials: Deep Practice

For a Effective learning, You need to set a time each day to study. Choose
a time that would work best for you and lock it in your calendar. Treat it
like a real school class, where you HAVE to show up!

Don't try to find a perfect time; instead, just choose one and add it to the
calendar. If it doesn't work, you can always change it at the end of the
week (not right away)!

Step One: Environment

Choose one place that you would be studying every day. It could be a
corner of your bedroom or a quiet cafe.

Keep in mind that you shouldn't be doing any other takes unless it's
coding-related. Like gaming or watching a movie. Why? Because you
want to train your mind to go into a learning mood every time you go to
your spot to study!

Step Two: Decluttering

Self-Taught Developers Handbook 96


GATHER THE BEST RESOURCES

Start by decluttering your desk. Remove anything that might distract you.
The cleaner the desk, the better. Trust me, the fewer items you have on
your desk, the less excuse your brain has for getting distracted.

Step Three: No Distractions

Let your family know that you are studying so they don't disturb you. They
should only bother you if it's a matter of life and death! Otherwise, they
can wait until you are done.

If you have a kid, and having a privacy is not an option for you, you might
want to study at night when your kids are asleep! :)

Also, make sure to silence notifications on your phone and put it on the
other side of the room. If you need your phone beside you, then turn it
over and put it on your desk.

Step Four: Music

Wearing headphones (preferably with a noise-canceling feature) and


playing soft piano music can fill out the emptiness in your mind and make
you focus on studying.

Step Five: Pomodoro Technique

If you are not already familiar with the Pomodoro Technique, it’s a method
that helps you to stay focused on a task, like studying or coding. You
would work on the task for twenty-five minutes, and then rest for five
minutes.

Self-Taught Developers Handbook 97


GATHER THE BEST RESOURCES

You can use those five minutes to check your phone or just lay down and
give yourself a rest!

Use this technique, and make sure to track the number of Pomodoro you
do every day.

Pen and Paper

Clear your desk and have the things you absolutely need. You should also
have a pen and paper next to you to write down every distracting thought
that comes to your mind. E.g.: pay the bills, call Mom, search about how
long penguins live. (If you are going to use a digital note, make sure to
turn off the internet, because you might get distracted by notifications as
you add notes.)

That's it! Now you are ready to learn at your highest level.

You might ask yourself, Is all this necessary? What if I can't do it?

These steps aren’t necessary for learning, but if you want to make the
most of your time, you need to follow them.

Now that you have set up the basics, it’s time to start watching some
tutorials! I’ll explain how to pick resources in later chapters, but for now,
let’s say you have purchased one or downloaded a free YouTube video.

Watching a tutorial

Now that you have everything set up, you are ready to start learning!

Self-Taught Developers Handbook 98


GATHER THE BEST RESOURCES

Most of the courses have the same structure. They start with the
fundamentals of the language and then start teaching subjects through
building a sample project.

One thing you should realize is that you might not need to watch all the
chapters. The reason for that is that some subjects are fun to learn, but
you don’t need them for your goal (see Chapter 3, Set Your Killer Goal).
Let’s say your goal is to land your first job as an iOS developer. In that
case, you won’t need to study subjects like machine learning and AI,
which are included in most online programming courses.

If it’s not necessary to learn, why do they include it in the first place? Well,
the goal of these courses is to sell more, and by containing popular
subjects like machine learning, they will seem more eligible and sell more
courses.

How to watch a tutorial

Let’s say you have enrolled in a program and you are ready to start
watching. But how?

The worst way to watch a tutorial is to play it and just sit there. Our brains
are designed to do something, and if you don't, yours will find things or
thoughts to get distracted with.

Take a piece of paper, or a digital one if you prefer, and start writing down
a summary of the tutorial.

Self-Taught Developers Handbook 99


GATHER THE BEST RESOURCES

Remember that you don't need to write down everything that the instructor
says; you only need enough so that after watching, you can code what the
instructor has taught you and use your notes as a reminder.

You might need to do some trial and error to find out how much and what
you should write down. My suggested method for watching a tutorial is
this:

Start by watching 30-40 minutes’ worth of material.

Take note of the important subjects.

Then close the video, open the IDE, and try to write what you learned. Did
the instructor create an app? Start coding it without looking at the sample
project.

You will encounter bugs while you are doing this, and that’s okay! Don't
check the answer immediately. Remember that programming is about
problem-solving, not writing code.

Try to find the answer by looking at your notes or doing a Google search.
If you couldn't figure it out, then you can look at the answer and think about
why you were wrong.

Suggestions

Disclaimer 1: All the resources mentioned here have been tested either
by me or by Self Made Coder’s dev partners.

Self-Taught Developers Handbook 100


GATHER THE BEST RESOURCES

Disclaimer 2: These are affiliate links, which means if you decide to


purchase these products, I would get a percentage of your purchase
without any extra cost for you!

iOS development

The Complete iOS App Development Bootcamp

SwiftUI Masterclass 2021

Android Development

Front-end Development

Back-end Development

The Complete Python Pro Bootcamp for 2021

REST APIs with Flask and Python

Advanced REST API with Flask and python

Python Django - The Practical Guide

2021 Complete Python Bootcamp From Zero to Hero in Python

Self-Taught Developers Handbook 101


GATHER THE BEST RESOURCES

Python Complete Masterclass for Beginners

Python Network Programming Complete Masterclass

The Complete Guide to Django REST Framework and Vue JS

Python and Django Full Stack Web Developer Bootcamp

Build a Backend REST API with Python & Django - Advanced

Django A-Z: Build & Deploy Web Project With Python & Django

The Complete Node.js Developer Course (3rd Edition)

Learn and Understand NodeJS

Angular & NodeJS - The MEAN Stack Guide [2021 Edition]

Node with React: Fullstack Web Development

The Complete Guide to Build RESTful APIs (2018)

Node js master class with express and mongo DB

The Modern GraphQL Bootcamp (with Node.js and Apollo)

Node JS: Advanced Concepts

JavaScript Basics for Beginners

Self-Taught Developers Handbook 102


GATHER THE BEST RESOURCES

PHP for Beginners - Become a PHP Master - CMS Project

PHP with Laravel for beginners - Become a Master in Laravel

PHP OOP: Object Oriented Programming for beginners + Project

Object Oriented PHP & MVC

PHP for Beginners: How to Build an Ecommerce Store

Angular - The Complete Guide (2021 Edition)

Build an app with ASPNET Core and Angular from scratch

Angular Styling & Animations (for Angular 2+)

JavaScript - The Complete Guide 2021 (Beginner + Advanced)

The Complete JavaScript Course 2021: From Zero to Expert!

The Complete Android Oreo Developer Course - Build 23 Apps!

Android Java Masterclass - Become an App Developer

The Complete Android 10 & Kotlin Development Masterclass

The Complete Android 11 Jetpack Masterclass 2021

Self-Taught Developers Handbook 103


GATHER THE BEST RESOURCES

Build Responsive Real World Websites with HTML5 and CSS3

Web Design for Beginners: Real World Coding in HTML & CSS

Advanced CSS and Sass: Flexbox, Grid, Animations and More!

CSS - The Complete Guide 2021 (incl. Flexbox, Grid & Sass)

Modern HTML & CSS From The Beginning (Including Sass)

Understanding Swift

Testing Swift

SwiftUI by Example

Swift Design Patterns

Pro Swift

Advanced iOS 2

advanced ios 3

advanced ios 1

swift UI by tutorials

core data by tutorials

combine asynchronous programming with swift

Self-Taught Developers Handbook 104


GATHER THE BEST RESOURCES

advanced ios app architecture

data structures algorithms in swift

design patterns by tutorials

ios test driven development by tutorials

- Create a list of resources you want to use

- Set a budget for paid resources


- Take one course with the instruction for effective study
- Follow 10 coding instructors on social media that you want to learn
from

Self-Taught Developers Handbook 105


Chapter Five

If you aren’t online, it’s like you don’t exist!


BUILD YOUR ONLINE PRESENCE

Chapter Five:

BUILD YOUR
ONLINE PRESENCE

- Why social media is important

- How to set up your LinkedIn account

- How to set up your Instagram account

- How to set up your twitter account

Self-Taught Developers Handbook 107


BUILD YOUR ONLINE PRESENCE

Being a developer is about solving problems. It's about writing code. So


why should developers bother staying active on social media?

Well, that's right—being a developer is about being great at problem


solving and having a deep and strong understanding of the concepts. But
here's the thing: Back when I was looking for my first job, I had a good
amount of knowledge. I knew more than a mid-range developer (I'll
explain why later in this book), but I constantly got rejection letters!

Dear Sourena:

We appreciate your interest in Company X and the position of iOS


Developer for which you applied. After reviewing the applications
received by the deadline, yours was not selected for further
consideration.

The selection committee appreciates the time you invested in your


application. We encourage you to apply for posted and advertised
positions in our company, for which you qualify, in the future.

Regards,

Why? Because they didn't know how much I knew! And how could they,
from my one-page resume that showed no real-life job experience?

Self-Taught Developers Handbook 108


BUILD YOUR ONLINE PRESENCE

By being active on social media, I started to build authority and trust and
gave more information to the employers about what I’m capable of. That’s
why in this chapter, I want to tell you about the power of being active on
social media and getting started with few of the top social media networks.

The power of trust

There is a famous saying that says:

People do business with people they know, like, and trust.

After being active online for the past couple of years, I can assure you that
this is the case wherever you want to find freelance clients or get hired in
a company.

Hiring a developer costs more than the developer’s salary for the
company. If they hire someone that turns out not to be a good fit, it would
cost them a lot of money to do the recruiting process all over again.

That's why companies want to make sure that the person they hire fits the
job perfectly, and the way they do that is by trying to find out as much
about the candidate as they can.

Self-Taught Developers Handbook 109


BUILD YOUR ONLINE PRESENCE

To understand the power of social media, imagine that you are the owner
of a business and you want to hire a developer. Two people send you their
resumes; one of the people can't be found on internet, while the other is
active on social media and posts regularly about their learning process.
Their social media page shows passion and shares what they learned,
which builds authority, and they use their own picture on their profile (and
not a graphic element), which builds trust.

Which of these candidates would you be eager to interview for the job?
There isn't much data about the first person, except what he wrote on his

Self-Taught Developers Handbook 110


BUILD YOUR ONLINE PRESENCE

resume. But you already know so much about the second person. She
has sold her skill before she comes to the interview.

Networking

Another reason to be active on social media is the power of community


and social networking! If you are like me back when I started my journey,
I didn't know anyone in the community, but if I did I could reach out to
them for referrals and possible job opportunities.

Finding your first job is much easier when you have a strong network.

Still not convinced?

When I first started sharing content on my Instagram, I had no intention of


growing my account. I was getting ready for interviews, and I would just
share what I learned in the form of an interview question.

Self-Taught Developers Handbook 111


BUILD YOUR ONLINE PRESENCE

My old Instagram feed

While most blog posts would say that adding an Instagram account link to
your resume can actually hurt your credibility, when I added mine, I got
more interview invitations! But did it have anything to do with Instagram?
Well, I wasn't sure till I got a call from a company's recruiter, who said,
“. . . And we saw your Instagram account, it was impressive! Would be
able to come in for an interview?”

Self-Taught Developers Handbook 112


BUILD YOUR ONLINE PRESENCE

As it turned out, having an Instagram account doesn't hurt your credibility;


in fact, it improves it—if you share “coding-related content.”

That is just one example. In addition, I had so many leads and clients
reaching out to me for freelance work! Believe it or not, by being active on
social media, I got enough leads that I started freelancing full-time.

And now, the big question . . .

Should you be active on social media and add their links to your resume?

Not being active on social media doesn't mean you can't get a job or be a
freelancer, but it's a great tool you can leverage to strengthen your
resume. And as a self-taught developer, you need to leverage any
opportunity possible!

Before adding a social media link to your resume, ask yourself this
question: Does this give more information to my potential employer
about why they should hire me? If the answer is yes, go ahead and add
it to your resume.

That being said, you don't want to include a social media account that is
empty or adds nothing to show why you are right for the job.

Self-Taught Developers Handbook 113


BUILD YOUR ONLINE PRESENCE

Adding this Instagram not only won’t help you, it reduces your credibility

Now let’s take a look at some of the best social media for developers
and see how we can optimize it so it would work in our favor.

LinkedIn

Instagram and Twitter are great places to build your brand and create a
sense of trust with your future client or employer, but they don't have a

Self-Taught Developers Handbook 114


BUILD YOUR ONLINE PRESENCE

strong search engine. On these networks, it's hard to be found—and that’s


why LinkedIn is a must for you as a developer.

One of the great features that I love about LinkedIn is its similarity to
Google; it's a location-based search engine for finding talents like you! A
recruiter can specify the location and the skill they are looking for and find
potential candidates for the job. But just like having a website doesn't
mean you are going to appear in a Google search, having a LinkedIn
profile doesn’t mean you will appear in a LinkedIn search. You need to
spend some time optimizing your LinkedIn profile so when someone uses
the LinkedIn search engine, you appear as the top result!

Before we get to how you can optimize your LinkedIn profile, you need to
know how LinkedIn works to be able to use it to the maximum level. Let’s
say a recruiter in Paris is looking for a front-end developer to hire. This
recruiter goes to LinkedIn’s advanced search and types the keyword he
is looking for, like “JavaScript” or “front end,” and the search would show
the most relevant result. Thus, you need to make sure every word you put
in your profile serves a purpose, which is being found.

In this section, we are going to take a look at different parts of a LinkedIn


profile, best practices, and some common mistakes you need to avoid.

Step One: Banner

Starting from the top of your LinkedIn page, the first section is the banner.
When you sign up, you get a default blue cover which looks like this

Self-Taught Developers Handbook 115


BUILD YOUR ONLINE PRESENCE

Default LinkedIn banner

Step one is to change this picture. Remember, you need to use every
section of your profile in a way that sells you to the recruiters. How can
you use this section? Easy! Tell recruiters what you do in few words.

Here are some examples:

Self-Taught Developers Handbook 116


BUILD YOUR ONLINE PRESENCE

Common Mistakes to avoid

Put some effort into creating a nice-looking banner for your profile. Keep
it simple and clean.

Don’t add wallpaper

Don’t add any wallpaper unless it clearly shows what you do.

Self-Taught Developers Handbook 117


BUILD YOUR ONLINE PRESENCE

Bad example

Don’t write an essay!

No one has time to read all that! Keep it super simple; just tell them what
you do.

Step Two: Profile picture

This goes without saying, but use your own picture—don't use a logo
(unless you are an agency!) or an animation picture.

Using your own images creates trust.

Good vs bad picture:

Self-Taught Developers Handbook 118


BUILD YOUR ONLINE PRESENCE

Also, make sure to capture your face and not a wide angle.

Example:

Pro tip: It’s a good practice to keep your profile picture consistent
across all social media.

Step Three: Your name and headline

Use your full name (first name + last name).

Don’t use any emojis in your name. It makes it harder to be found.

Self-Taught Developers Handbook 119


BUILD YOUR ONLINE PRESENCE

For your headline, get specific about what you do and keep it short.

Instead of “web developer,” say “front-end developer” or “full-stack


developer.”

Also, don’t use phrases like “student,” “aspiring,” or “junior” in your


headline. The first reason is that adding extra items to your headline
makes it harder to find you, and the second reason is that phrases like
“junior” diminish your work! You have taken a course (Chapter 3) and
you have a great portfolio (Chapter 5), not to mention you have an
amazing resume (Chapter 6). You need to be confident in your skills. If
you don’t trust yourself, how can a recruiter trust you?

Step Four: Summary

This is where you can talk about yourself and say why you are a great
candidate, but make sure to not overwrite. Keep it short and consistent.

Imagine you get into an elevator with the recruiter of a company that you
want to work in. You have two minutes before the recruiter gets to their
own floor and leaves. You need to use that two minutes to tell them what
you do and why you are the right candidate for the job. This technique is
called an elevator pitch!

Self-Taught Developers Handbook 120


BUILD YOUR ONLINE PRESENCE

If you aren’t sure about your summary, email me to get feedback! :)

(sourena@selfmadecoders.com)

Step Five: Experience

This is where you can show what you have done so far. You can talk about
your previous job experience, what you have done and the value you
brought to the company. But what if you don’t have any job experience,
or your previous job experience isn’t tech-related? Should you still
mention it?

To answer this, you need to ask yourself one question: Has your previous
job prepared you for a job in tech? If yes, then include it in your profile.
Here are few transferable skills that you can bring from job experiences
other than tech:

Teamwork

Have you worked with a team and learned how to be a team player?
Great! One of the key responsibly of a developer is to work with other
team members.

Communication skills

Have you had experience in communication skills? You might have


worked as an accountant and communicated with your boss or your
team members.

Self-Taught Developers Handbook 121


BUILD YOUR ONLINE PRESENCE

Problem-Solving

Did you have to come up with a new solution and solve a problem?

These are the transferable skills that can help you in the tech industry, so
if you have any of the above skills, make sure to mention them.

Step Six: Education and certificate

Do you have a college degree? If yes, here's where you can add it. But
wait! What if you don’t have a CS degree? What if you have a non-
technical degree, should you still add it? The answer is, YES! You have a
college degree, and it shows you started a program and finished it. It
shows commitment.

Also, if you have completed any course from Udemy or Coursera, it would
be a good idea to add them under this section.

Self-Taught Developers Handbook 122


BUILD YOUR ONLINE PRESENCE

Step Seven: Recommendations

This is a great place to show that you can be trustworthy and passionate
about your job, and that you are good at what you do! Reach out to people
you have previously worked with, like your previous boss, a client, or
maybe a senior developer who has mentored you, and ask them to give
you a recommendation letter.

Recommendation sample

Pro Tips

When you go to your profile, you will see a progress bar that indicates the
percentage that your profile is completed. Complete the entire progress
bar, as you’ll have a higher chance of being found on a LinkedIn search.

Self-Taught Developers Handbook 123


BUILD YOUR ONLINE PRESENCE

Here’s what you’ll need to make it all start:

Industry

Photo

Skills (+5)

Education

Position

Location

Summary

Endorsements

Endorse your friends’ skills and ask them to do the same for you! You
might think that endorsements aren’t that important, since anyone can
endorse someone else's experience. Well, yes, but it’s better to have it
than not have it! It can help you to be found easily on LinkedIn’s search
engine.

Instagram

If you are reading this book, there is a good chance that you found me
through Instagram! In the early days of Instagram, it was all about picture
of cats, selfies, cars, etc., but now it's way more than that.

Self-Taught Developers Handbook 124


BUILD YOUR ONLINE PRESENCE

By sharing content on my Instagram, I have found clients and even job


offers. As I mentioned before, you need to use the full power of social
media to increase your chances of landing a job or a client.

The more hooks you use, the better chance you have to land a job

Note that using Instagram for the purpose of finding a job is different from
using LinkedIn. You can optimize your profile on LinkedIn, and you’ll be
good to go! (However, creating content on LinkedIn does increase your
probability of being found.) But on Instagram, you need to create content.
Before you start creating content, you need to optimize your profile.

Self-Taught Developers Handbook 125


BUILD YOUR ONLINE PRESENCE

Profile picture

The first thing people see when they go to your account is your profile
picture. It's important to use your own picture, and you can use the same
profile picture that you created for your LinkedIn profile.

Name and handle

The second part is your handle. Make sure to use your own name. The
best combination would be your first name + your last name. Do not use
other sorts of names, like @hacker100, @bestcoder, or @codercoder. It
looks unprofessional, and besides, you want to make sure you are easy
to find on the internet.

If your full name is too long for the handle, you can use your first name
and add Dev or Code at the end.

Bio

The next step is writing your bio. Your bio is the third thing someone sees
when they first visit your profile. If you want to gain followers, you need to
tell them exactly what you do and what's in it for them. Here are some
examples you can use:

Your name here | JS Developer

I share my journey as a front-end developer.

Check out my portfolio here!

Self-Taught Developers Handbook 126


BUILD YOUR ONLINE PRESENCE

URL

The URL is a chance for you to direct people who are interested in your
work to learn more about you. This could be your portfolio, your GitHub
account, your contact page, or all of it!

Instead of linking to one website, you can use the one link strategically so
you can share one than one link. To do this, you can either use websites
like linktree.com, or if you can create your own page with your own
personal domain, I highly suggest you do that.

Here's an example of what that might look like:

Self-Taught Developers Handbook 127


BUILD YOUR ONLINE PRESENCE

What to create

Now that you have optimized your profile, it's time to start creating some
content! But what type of content should you be creating? Coding tutorials,
setup pictures, a day in a life, or a little bit of both?

Before you decide on the content you want to create, you need to think
about the result you hope to achieve. Are you planning on finding a client,
building trust, or connecting with coders in the community?

One of the great ways to create content that will serve most of the above
results is to share your journey.

For instance, you can do the #100daysofcoding challenge (a 100-day


challenge in which you need to code every day. You can search this
hashtag on Instagram to see how people are using it).

Share what you have learned each day, what problems you faced, and
how you solved them! It shows that you are passionate about your job and
builds authority.

I would highly recommend showing your face in your pictures (to build
trust), but if you aren’t comfortable doing so, you can just use a screenshot
of a code or your setup.Twitter

Twitter is a great space for developers. If I wanted to choose one social


media platform to connect with developers, I would go with Twitter. It has
a strong developer community where you can learn and build a network.

Self-Taught Developers Handbook 128


BUILD YOUR ONLINE PRESENCE

Name, bio, picture

This part is pretty much like how you set up your Instagram account. One
thing to remember is that you need to be consistent across all social media
platforms. Meaning, use the same profile picture, name, and handle. This
way you'll be easier to find.

As for your Twitter URL, you can use the same URL you created for your
Instagram page.

What to tweet

The type of content you create for Instagram and Twitter is a bit different.
Instagram is mostly visual, so it works better if you write what you want to
tell people on the post itself instead of in the caption, but on Twitter you
can post text without a picture.

Still, the idea for content creation on Twitter is pretty much the same as
Instagram. You can also tweet about the “100 days of code” challenge.
Here's a sample:

Self-Taught Developers Handbook 129


BUILD YOUR ONLINE PRESENCE

You can talk about the challenges you faced during a day . . .

Self-Taught Developers Handbook 130


BUILD YOUR ONLINE PRESENCE

You can ask question . . .

And make sure to engage with other people, too!

Self-Taught Developers Handbook 131


BUILD YOUR ONLINE PRESENCE

- Create a new account on Instagram, twitter and LinkedIn

- Optimize your LinkedIn profile


- Optimize your Instagram profile
- Optimize your Twitter profile
- Think about the content you want to create

Self-Taught Developers Handbook 132


Chapter Seven

“If you're waiting until you feel talented enough to make it, you'll
never make it.” (Criss Jami)
WRITE YOUR FIRST RESUME

Chapter Seven:

WRITE YOUR FIRST


RESUME

- Best resume format for self-taught developers

- Chronological vs functional resume format


- ATS format
- Common resume mistakes

Self-Taught Developers Handbook 134


WRITE YOUR FIRST RESUME

So, now you can call yourself a developer! You know all about coding,
you have set your killer goal (Chapter 3), you gathered the resources
you need (Chapter 5), you have built awesome portfolio projects, and
now it's time to start applying for your first job!

But before you can do that, you need to write a killer resume—one that
gets you an interview. In this chapter, we are going to take a look at
different resume layouts and some dos and don’ts when it comes to
writing your first resume. But first, let me tell you about what I used to
get every time I send my resume to a company: a rejection letter! Often,
one much like this one:

Dear Sourena:

We appreciate your interest in Company X and the position of iOS


for which you applied. After reviewing the applications received by
the deadline, yours was not selected for further consideration.

The selection committee appreciates the time you invested in your


application. We encourage you to apply for posted and advertised
positions in our company, for which you qualify, in the future.

Regards,

Self-Taught Developers Handbook 135


WRITE YOUR FIRST RESUME

Ugh! It’s the worst feeling ever when you send your resume and hope to
at least get an interview call, but instead they send you a rejection letter.

I got this letter so many times, The problem was that I didn't understand
the purpose of the resume and how important it was. You might be a
very qualified candidate, but if your resume doesn’t show that, you won’t
get a chance to prove yourself. A resume is the first gatekeeper that
stands between you and your first job.

My perfect resume

I used to think my resume was perfect. I was eager to show how creative
I am and make myself stand out from the crowd, so I designed my own
resume with lots of colors and graphic elements.

I had a section about my portfolio which was three pages long, where I
went into details of what I did, and the overall resume was six pages
long! I thought it showed how much I care about the position by putting
hours into it.

Well, as it turns out, recruiters and hiring managers don’t have time to
read six pages just to decide if they should call you for an interview. I
realized this when I started my own startup.

As a small startup with only six people, I was looking for a front-end
developer intern to hire and I got roughly twenty applications every day
on average! I didn’t have time to read them all. I just looked for important

Self-Taught Developers Handbook 136


WRITE YOUR FIRST RESUME

parts to see if they had the bare minimum and if they mentioned the
skills that I was looking for in an intern, and if so, I would give them a call
and schedule an interview.

Why a Resume?

It’s important to understand the propose of a resume. If your resume


gets you an interview, it has done the job. When you go to the interview,
you can talk about your work experience in detail, but in a resume you
need to keep it short and to the point.

The resume is the first thing the hiring manager sees, so it’s kind of like
the first impression. You need to make sure to plan every word, and
most importantly, how you lay them out.

There are three common layouts that you can use for your resume. All
three have their ups and downs, and they work best for certain
situations. Let’s see which one works best for you!

Chronological

This is the most common resume type, and most recruiters are looking
for this exact type. It starts with your name, contact information, and
maybe a summary (optional) and then it lists your previous job
experience in reverse order (with your most recent job experience at the
top).

Self-Taught Developers Handbook 137


WRITE YOUR FIRST RESUME

Sample of a chronological resume

This format works best if you already have relevant job experience, or
you have interned for a big company.

But what if you don’t have actual job experience? Should you put the job
description first? Absolutely not!

Self-Taught Developers Handbook 138


WRITE YOUR FIRST RESUME

This is one of the worst mistakes I made when I first started out, which
resulted in me getting a rejection letter. I was coming from a non-
technical background and didn’t have any full-time experience as a
developer, so I listed two non-related experiences without mentioning
any details. (I’ll show you how to use your irrelevant job experience in
your resume in a second.)

Well, you can imagine that the hiring manager wouldn’t bother reading
about my skills and portfolio when they saw my job experience first!

I screwed up my first impression, and it would be really tough to


convince them that I was what they were looking for after that.

So, how should you organize your resume if your job experience is not
the star of your resume?

Functional and combination format

Unlike the chronological format, which puts the focus on your job
experience, the functional and combination format puts the focus on
your skillset.

You start with your name and contact info, and then instead of
mentioning your job experience, you would mention your skillset or your
education (if you have recently graduated with a CS degree).

Self-Taught Developers Handbook 139


WRITE YOUR FIRST RESUME

Sample of Combination Resume

Even though some recruiters don’t like this format, it’s still the best
option if your job experience is not strong.

What to include

Now that you know about the ways you can lay out your resume, let’s
talk about what information you should put in your resume.

Self-Taught Developers Handbook 140


WRITE YOUR FIRST RESUME

Basic info

Regardless of the format you chose for your resume, your contact
information will be pretty much the same. You start by mentioning your
full name and the position you are applying for, then give your contact
info including your phone number, your email address, and your portfolio
website. Here, you also can add your mailing address , but you shouldn’t
give the full address, as it might cause privacy issues.

Social media

We talked about the importance of social media in Chapter 5 and how


you can start an account. Here is where you should mention your social
media address in case your hiring manager wants to know more about
you. But which social media account should you include? If you aren’t
sure whether to include your social media or not, then ask yourself this
question: Does this social media help to show me as an expert (a blog)
or show my enthusiasm (100 days of code on Instagram) or show my
portfolio? If the answer is yes, add it to your resume! But don’t forget to
list the social media page you think has the most value first. I also need
to mention to not include a social media page that is empty. For
instance, adding your Stack Overflow account won’t help if you haven’t
made any contributions.

Self-Taught Developers Handbook 141


WRITE YOUR FIRST RESUME

Job experience

This is where you get to talk about your previous job experience and
about the impact you had on the company.

Here’s how you should mention your job experience:

Your position in the company + the name of the company + the duration
you worked for the company.(ex: 2020- present)

In the description, talk about the impact instead of what you were
responsible for.

Here’s a simple formula to talk about your impact:

Action verb + what you worked on + metrics ( if possible)

Sample of job description

Keep it to a maximum of three bullet points.

But what if you have unrelated job experience—should you mention


them? Yes! It’s totally fine to change your career. However, you need to
find similarities to your last job and talk about how it prepared you for a
role in a tech company. Have you had to communicate with a team in

Self-Taught Developers Handbook 142


WRITE YOUR FIRST RESUME

your past job? Great! Add it to your resume. A good developer needs to
know how to work as part of a team.

Were you responsible for solving a problem and coming up with creative
solutions? Awesome—programming is all about solving problems, and
the process you take to create that solution.

Here’s an example of how you might mention your unrelated job


experience:

Sample of non tech job experience

Your education and certificates

Do you have a college degree? Add it here! But what if you didn’t study
CS? What if you studied something totally irrelevant, like me?

I used to not mention my educational background. I thought it would hurt


my credibility, but after I talked to a couple of hiring managers, I decided
to let them be. You have attended a college and were consistent enough
to finish it, so why don’t you want to show it?

Also, if you have completed any course on Coursera or Udemy, you can
add them here. If you have joined too many courses, just mention the

Self-Taught Developers Handbook 143


WRITE YOUR FIRST RESUME

three most important ones and mention the others in your LinkedIn
profile.

Skillset

This is where you can talk about the skills that are mentioned in the job
description and tell the company how comfortable you are with
technologies. Just a tip—don’t use a star or percentage.

Instead of Star-based rating, use 2 adjectives.

If you want to show how comfortable you are with the tech, just use two
adjectives: fluent and familiar.

Summary

Including a summary is usually optional, but if you decide to use it, make
sure to keep it short and to the point.

Self-Taught Developers Handbook 144


WRITE YOUR FIRST RESUME

Think of your summary as an elevator pitch, as we talked about in


Chapter 5 (Build Your Online Presence).

The other day, I was talking to a couple of engineers and recruiters from
Netflix, Google, and Amazon about how to stand out in tech, and in our
conversation we had an amazing talk about dos and don'ts when it
comes to writing a resume.

One thing we could all agree on was that the way you write your resume
depends on which company you want to send your resume to. A resume
you send to a small startup through email is different from a resume you
send to a FAANG company. But regardless of which company you are
aiming for, your resume has one goal: To get you an interview.

In this section, we are going to look at some common mistakes that


developers make when they write their resumes, so you can avoid them
and save yourself some time and energy and build confidence.

Should you have a one-page or ten-page resume?

I had a three-page resume ,and I thought it showed that I was


passionate and cared about the job by explaining every project I did in
detail. But here's the thing: as a small startup founder who received over
twenty resumes per day, I didn't have time to check out every detail of
the resumes. Instead, I would just quickly scan through each one to see
if they had mentioned the skills that I was looking for, and they would, I
put their resume aside to schedule an interview call.

Self-Taught Developers Handbook 145


WRITE YOUR FIRST RESUME

So, please make sure to keep it at one page max and cut down
everything that is unnecessary for your employer to know when he is
deciding whether to give you an interview. Remember that the point of a
resume is to get an interview. You will have a chance to talk about your
projects and accomplishments in detail when you are in the actual
interview.

Should you use color?

You might think, "pre-made resume templates? No way, I’m going to


design my own!"

Well, I used to design my own resume and not use any ready templates.
I was eager to add as much creativity as I could, Well, it might be a good
idea to use a little bit of color in your resume if you are sending your
resume to a small startup, and if you are sure that a human is going to
read it, not an ATS (I’ll explain this in a second). In this case, colors
could make your resume more memorable and help it stand out in the
pile of the resumes your employer receives. But make sure to not
overuse it. I have shared some templates in the index section that you
can use or get an idea of if you want to design your own resume.

The ATS format

If you are sending your resume to a big company, there is a good


chance that your resume is going to be analyzed in an ATS format.

Self-Taught Developers Handbook 146


WRITE YOUR FIRST RESUME

ATS is short for Application Tracking System, and it’s used to scan your
resume to find out if you have mentioned the required skillset in the job
description, and if you have, it will pass the resume to a human to read.

If you don’t mention the necessary keywords or if you create a resume


that ATS can’t read, you will get rejected without a human ever seeing
your resume.

To make sure your resume is compatible with the ATS format, use a free
ATS checker. Here’s a one you can use:
https://resumeworded.com/resume-scanner

One resume to rule them all

One of the worst mistakes I made in my early career when I was looking
to land my first job was to create one resume and send it to all
companies.

This is also called the “shotgun method,” and it’s the quickest way to get
rejected! Instead, you should pay attention to the job description and
customize it for that company.

But does it mean you should upload ten resumes to your website or
LinkedIn page? Of course not. You need to create one general resume
to use in situations where you don't know about the job posting and
situations like your website or your LinkedIn profile, but you need to

Self-Taught Developers Handbook 147


WRITE YOUR FIRST RESUME

customize it based on the description of the job post you are sending
your resume to.

- Decide on information you want to include on your resume


- Create your first resume
- Check for common mistakes
- Check for the ATS format compatibility

Self-Taught Developers Handbook 148


Chapter Eight

Choose a job you love, and you will never have to work a day in
your life. (Confucius)
GET READY FOR YOUR FIRST INTERVIEW

Chapter Eight:

GET READY FOR


YOUR FIRST
INTERVIEW

- Different interview types

- what to do before an interview


- what to do during an interview
- what to do after an interview
- common interview mistakes

Self-Taught Developers Handbook 150


GET READY FOR YOUR FIRST INTERVIEW

My bad experience

I will never forget the first time I went to an interview. I was so stressed
and confused. I didn't know what to expect!

I wondered, Should I bring my laptop? What if I don't know the answer to


a question? Do I need to study for an algorithm before my interview? And
so many other unanswered questions!

I was so excited that a company finally liked my resume and asked me for
an interview, I didn't care if I got the job. But my experience wasn't as good
as I imagined it would be.

Here's an email I got for my first interview:

Hi, we saw your resume and we would like to ask you for an on-site
interview! Below you'll find the exact date and time.

The date of the interview came, and I was really nervous! As I was going
to the interview, I got a flat tire. Could this day get any worse? Long story
short, I got to the interview with a one-hour delay and with greasy hands.

Not off to a great start! Anyway, after waiting in the lobby for twenty
minutes, the secretary guided me to the CTO’s office. He started off easy
by just asking me about simple stuff, and then got to more technical
questions.

The first question was pretty easy; I thought, Hey I’m nailing this! But then
a second question was asked, and I was hooked. I didn't know the answer!

Self-Taught Developers Handbook 151


GET READY FOR YOUR FIRST INTERVIEW

As an inexperienced person in the interview, I didn't want to show any


weakness, so I gave some answer which wasn't correct and even
irrelevant to the question. I could see in his eyes that I had messed up.
After screwing up the second question, I lost my confidence, and after
that, it was a road down to hell. I was so embarrassed! Fortunately, the
interviewer was easy on me and talked about the product they were
building, and asked me if I could do a simple version of it as a take-home
project.

Me: YES, of course, I’ll send it to you in two days!

Interviewer: You sure? It's going to take a bit longer than two
days . . . Anyway! Take your time!

Me: Sure! (Thinking to myself, what the hell is this! I don't know
anything about it.)

My qualifications

After that embarrassing interview experience, I have had interviews with


lots of tech companies, from a five-team-member startup to a big company
with over 100 staff. I have also interviewed for some remote positions
where all of the process was online (no on-site interview). I have been on
the other side of the table, too! When I was running my own startup, I got
to interview people for intern and junior developer positions. Now that
years have passed, and after participating in over 100 interviews as either

Self-Taught Developers Handbook 152


GET READY FOR YOUR FIRST INTERVIEW

the interviewer or the interviewee, I have gotten to know a thing or two


about how to nail your interview.

It's a skill

One thing you should know is that interviewing is a skill. In other words,
it's something you can learn and improve over time. I have spent years
doing trial and error to see what works and what doesn't, but fortunately,
you don't have to—because I’m going to tell you all about it! I have divided
this chapter into three important parts, including everything you need to
know before, during, and after an interview.

Self-Taught Developers Handbook 153


GET READY FOR YOUR FIRST INTERVIEW

What to expect

Interview process

When it comes to finding a team member and conducting an interview,


every company has a different approach based on its size and strategy. It
might be a simple on-site interview, or it might include multiple rounds.
The bigger the company and the higher the role you are applying for, the
longer the interview is going to be. Either way, I'm going to tell you about
the most common interview process and what to expect in each section.

Resume

After you send your resume, two possible things will happen: they will like
your resume and ask you in for an interview, or they won’t think you are a
good fit and will send you a rejection letter.

Note that some companies won’t even send a rejection letter if the
application doesn't get through. But if they think you are a good fit, you'll
get an email much like this one:

Self-Taught Developers Handbook 154


GET READY FOR YOUR FIRST INTERVIEW

Phone Interview—with HR

Regardless of the size of the company, the phone screening is the first
step of the interview. Most companies will try to find out more about the
person before they ask them for an on-site interview.

This step will likely be with a member of the company’s Human Resources
department (HR), who will ask you about your previous job experience,
what you do now, and why you think you'd be a good fit for the company.

Phone interview—technical

You might also have a call with a technical team member who will ask you
basic questions, mostly about the topics that you have mentioned on your
resume.

Self-Taught Developers Handbook 155


GET READY FOR YOUR FIRST INTERVIEW

On-site interview

After a phone interview, you might be asked to visit the office for an on-
site interview. This part can be as quick as a one-hour interview, or it could
take a whole day.

You might be asked general questions that are relevant to your role, or
you might go through a series of different interviews such as a technical
interview, whiteboard interview, etc.

Whiteboard interview

As a junior developer who is looking to land your first job, you are most
likely not going to be asked to do a whiteboard interview, but it’s still good
to know about it.

In a whiteboard interview, the interviewer gives you a problem and asks


you to solve it on a whiteboard or a piece of paper.

Here’s an example of a whiteboard question:

Write a function that prints the first "n" prime numbers and then
explain how it works.

Self-Taught Developers Handbook 156


GET READY FOR YOUR FIRST INTERVIEW

For these types of questions, the interviewer wants to know about the
process you take to solve the problem, so it’s important to explain your
strategy while you are solving it.

It’s okay if you can’t solve it, as long as you can communicate your
process of problem solving.

Take-home project

Some companies might give you a project assignment that you can do at
home.

They might ask you to do a simple version of the company’s product, or


add a feature to an existing project.

Screen sharing

If you apply for a remote position, you might be asked to do a screening


interview where the interviewer gives you an assignment and observes
your coding through the screen you share with them.

Self-Taught Developers Handbook 157


GET READY FOR YOUR FIRST INTERVIEW

Before the interview

Get ready

Now that you know about the different stages of an interview, it's time to
get ready for what might come your way! Getting ready for an interview
takes time, so you need to start preparing before you go to the interview.
Here, I'm going to show you what you should practice and how to nail
each section!

Common developer question poll

The first type of the questions would be like:

Explain the difference between x and y.

Why would you use x over y?

To prepare for this stage, you need to have a list of common interview
questions for the job you are applying for (e.g., interview questions for
front-end developers).

Study these questions, but don't memorize the answers. Instead, dig
deeper and try to understand them. If possible, use them on sample
projects.

You need to keep this list updated. Every time you go to an interview, you
might be asked a new question, so add them to your list after the interview
is over!

Self-Taught Developers Handbook 158


GET READY FOR YOUR FIRST INTERVIEW

Get there early

Do you want to reduce the stress and pressure you are feeling? Get there
early. You don't know what's going to happen; the traffic might be heavier
than usual, or you could get a flat tire like me! Leave thirty minutes earlier
than usual. This way, if something comes up, you won’t have to worry
about getting there late because you have an extra thirty minutes. If
everything goes according to plan and you get there thirty minutes early,
you can either, go for a walk, stay in your car, or just relax before your
interview.

Getting there early is better than getting there late!

Self-Taught Developers Handbook 159


GET READY FOR YOUR FIRST INTERVIEW

Dress up

It goes without saying that you need to be well dressed for the interview,
but since I have seen people who neglect this point, I have mentioned it
here.

Case in point: When I was interviewing for my startup, someone showed


up wearing sandals and stinky pants, and before I even talked to him, he
lost his chance for a good first impression. You don't need to go
overboard—just wear clean, office-appropriate clothing.

Check out their products

Nothing is more embarrassing than the interviewer asking about the


product of their company, and you don't know what it is (other than getting
asked about the topics you have mentioned in your resume, and having
no clue about them!).

Spend some time to go over their website and app (if they have any) and
see what they are doing and how they are doing it. You might be asked
what you like about the app and what you don't like.

If you don't have any clue about their product, it shows that you don't care
about the company. No hiring manager is going to hire you if you don't
care about their product, no matter how skillful you are!

Self-Taught Developers Handbook 160


GET READY FOR YOUR FIRST INTERVIEW

During the interview

Intro

Your interview might be over the phone, on Skype, or in person. Either


way, you need to know the rookie mistakes that inexperienced developers
make so you can avoid them.

Common mistakes in answering questions

Yes or no answers

- Interviewer: So I see that you mentioned you have been working in


X company as a front-end developer, and you were responsible for
the company's website. Is that true?

- Yes. (Next question please!)

Your interview is your chance to show that you are qualified for the job.
Show it! Use every opportunity to show them how great you are by talking
about your accomplishment and the result you got.

Here's how you can answer the previous question:

- Yes. I was solely responsible for the company's website and I


reduced their loading time by fifteen percent!

Interviewer: Wow! Impressive!

Self-Taught Developers Handbook 161


GET READY FOR YOUR FIRST INTERVIEW

Speaking ill of your boss

- Interviewer: I see that you have left your job at Y company, any
reason why?

Yes! I had a terrible boss and all my team members were useless.
They didn't help me, and I didn’t care about them. The worst
company I have ever worked for!

This might be true! But even if you didn’t have such a pleasant experience
with your previous employer, talking about it makes the interviewer
wonder if your last employer was the problem or if you were the problem.
Instead of complaining about your former boss, talk about other reasons.

It’s also important to be honest. If you were laid off, don’t say that you
needed more challenge.

Answering every question

Nothing is more painful than to see an interviewee answering a question


with irrelevant information when it's obvious that they don’t have a clue!

You aren’t supposed to know everything, and that's okay. The world of
software development is so vast that no one can know it all, especially a
junior developer who is looking for his first job. The interviewers know this,
and just want to see how you would handle questions that you don't have
the answer to.

Self-Taught Developers Handbook 162


GET READY FOR YOUR FIRST INTERVIEW

So, don't be afraid to say that you don't know the answer if you don't have
any clue about the topic, if you have studied the subject but haven't yet
used it in the real world project, you can talk about the theory and how it
is used. Tell them that you have studied the topic, but haven't used it in a
project yet. Provide them with a summary of what you know about the
topic!

Not asking questions

Interviewer: So, do you have any questions for me?

- No!

- O . . . kay . . .

At the end of your interview, your interviewer will ask you if you have any
questions for them or the company. Use this to show how passionate you
are about the job! What can you ask them about?

Here are few questions to consider. Pick those you really want to know
the answer to, and that are relevant to your situation:

- What will I be responsible for in the company?

- Will I have any teammates?

- Are there any senior developers in the company?

Self-Taught Developers Handbook 163


GET READY FOR YOUR FIRST INTERVIEW

- Who would I be reporting to?


- Can you tell me more about the day-to-day responsibilities of this
position?

Don't lie

- Interviewer: I see that you’ve mentioned that you’ve worked at


Uber . . .

- I was working at Uber, but they couldn't give me enough


compensation, so I’m looking for a new position!

Most likely, they are going to fact check about your previous experience
and things you have done. It's not hard to find out if you have had an
experience or not, so don’t ever lie!

After the interview

Now that you have finished your interview, your job is not over! You still
need to take a few more steps to make sure you are going in the right
direction. In this section, we are going to talk about everything you need
to do after your interview.

Evaluate the interviewers

When you go to an interview, you are not the only one who is being
interviewed—you also need to evaluate the interviewer and the company.
Trust me, I've been there! When you are interviewing, you will face some

Self-Taught Developers Handbook 164


GET READY FOR YOUR FIRST INTERVIEW

interviewers that you certainly don't want to work with no matter how much
they offer you. Here are few things to look for when you are in an interview.

Irrelevant questions

There is certain personal information that your hiring manager may need
to make a better decision, but some topics are off limits. One time, I went
to an interview and the first thing they did was give me a form to fill out
which included the names of my parents, where they lived, and believe it
or not, their social security numbers!

Needless to say, I didn't fill out that form, and I told the interviewers they
didn’t need this information to decide whether to hire me. They weren't
happy about my answer, but I didn’t want to work with them, either.

Trying to show you up instead of helping

A good interviewer is on your side, not against you. They will help you!
Some interviewers will try to show you up by asking unimportant questions
and by telling you that you are not knowledgeable, which may help them
to give you a lower salary. Keep an eye out for these behaviors!

Keep track of your progress

"What gets measured gets managed."

You need to keep track of your interview if you don't want to make the
same mistakes again! Here's what you need to track:

Self-Taught Developers Handbook 165


GET READY FOR YOUR FIRST INTERVIEW

- Name of the company

- Date of the interview

- The process you went through

- Their answer or offer

- Three things you could do better

- Any new questions that can be added to your question poll!

Lucky for you, I have created a notion template that you can use to track
your progress! You can find the link here:

https://selfmadecoders.com/interview_template

Evaluate your offer

After going to lots of interviews, sooner or later, you will get an offer! You
need to pat yourself on the back and celebrate having come this far, but
before you take their offer, there are few things to consider.

Just because a company gave you an offer doesn't mean you should take
it. Or, you might be lucky and receive a couple of offers. Either way, you
need to evaluate them. Here, I’m going to help you evaluate the offer and
decide which one is best for your career.

Self-Taught Developers Handbook 166


GET READY FOR YOUR FIRST INTERVIEW

Learning opportunity—is any senior developer onboard?

Your first job should be in a place where you can learn the most and
grow, not where you’ll simply make the most money. So, make sure to
find out if there will be senior developers in the company and if they will
be willing to coach you.

Your responsibility

What is your responsibility? Will you be working with a team, or by


yourself? You will generally want to choose an offer that gives you an
opportunity to work with a team, and not be all by yourself.

How much are you getting paid?

For your first job, the amount you are going to get compensated won’t be
the key factor in choosing a job, but if you have two job offers which are
identical in terms of the opportunities mentioned above, but one pays
more than the other, then you will want to choose the one that pays more!
:)

Self-Taught Developers Handbook 167


Chapter Nine

Judge a man by his questions rather than by his answers.


(Voltaire)
COMMON DEVELOPER QUESTIONS

Chapter Nine:

COMMON
DEVELOPER
QUESTIONS

- Common Developers questions

Self-Taught Developers Handbook 169


COMMON DEVELOPER QUESTIONS

Over the years that I have been helping developers to start their career, I
have been asked the same set of questions. As a self-taught developer, I
had these questions in the beginning of my journey, too. That's why I
dedicated this chapter to answering some of most common questions of
self-thought developers. (This chapter is also going to be updated for the
next version of this book.)

Age

I’m thirty-five years old. Is it too late for me to start learning how to
code?

Absolutely not! One of the good things about being a developer is that it
knows no age. You are never too old or too young to start your coding
career. Some people start in their eighties! You don’t believe me? Check
out this article to find out about, “Masako Wakamiya” who is eighty years
old and an iOS developer. Sure, she might not have much chance of
getting hired by a company, but she still can code and make a living!

That’s one good thing about being a developer: you don’t have to work in
an office! You have lots of opportunities. You can be a freelancer or an
indie developer or you can create your own software company. (Note that
I didn’t say it would be easy. Regardless of the path you choose, you’ll
face unique challenges.)

Self-Taught Developers Handbook 170


COMMON DEVELOPER QUESTIONS

Programming language

I’m confused about which programming language I should choose.


I don’t know if I want to be a web developer or mobile or ai or . . .

Well, this is very common. You can’t make a decision when you don’t have
any data! You need to try different things and see which type you like. I
myself might have chosen a different path if I had started with web
development, instead of starting with mobile development because I’m
passionate about mobile applications.

Think about it this way: What will excite you the most after taking your
course? Having your own website that everyone can visit on their browser,
or maybe having an android or iOS app that you install on your phone?

You can always change your field, but I would recommend spending at
least six months before moving to another language or platform.

Self-Taught Developers Handbook 171


COMMON DEVELOPER QUESTIONS

College degree

Does a college degree really matter?

Yes, it does! If you don’t have any working experience and you are new
to the market, a college degree can be a plus. But over time, as you gain
more experience, the importance of it lowers down.

However, should you go to college because of this? Well, it depends on


you and your particular situation.

How much is the tuition fee for the college you want to go to? How easy
is it to get in? How credible is the college? Would you have an opportunity
to network with the professors, and would it be worth four years of your
life?

These are a few of the things to consider before going forward and
applying for college. You certainly don’t need a degree to get a job, but
having one would be a plus. So, the question is, would it be worth it for
you?

Big vs. small company

Should I work in a big or small company as a new developer?

To answer this question, you need to consider your future goal. If you want
to have your own business or start freelancing, then working for a small

Self-Taught Developers Handbook 172


COMMON DEVELOPER QUESTIONS

company would be the best option, as you would have the chance to work
on a wider range of tasks and gain more knowledge about how a small
business runs.

But if you are thinking of working in big tech companies like Netflix,
Google, or any other FAANG company, then working in a big company
would make more sense, as you would be responsible for specific tasks
and you’ll gain experience in that area.

So at the end, the question is, do you want to be a generalist or specialist?


To start a business, you need to know little bit of everything, but to work
with big companies, you would need to work in a big company.

Math

Do I need to be good at math to become a developer?

If you Google this question, 99% of the articles and web posts will tell you
no. You don’t need math, but I’m going to tell you the truth. While you
won’t be using integrals or differentials in programming (except in very
rare cases) you will still need to approach the challenges you face in
coding the same way you approach a mathematical problem. Coding is
all about solving problems. There are tons of developers who hate math
and don’t like problem solving and are still doing programming, but you
won’t be able to take it far enough if you don’t enjoy it.

Self-Taught Developers Handbook 173


COMMON DEVELOPER QUESTIONS

When to stop learning

When should I move on to a new topic after I have learned a topic?

Well, to answer this question, you need to think about why you are
learning this topic in the first place. Are you trying to learn this topic to
have a basic understanding, are you trying to use it in a project, or are you
trying to get ready for an interview? After you decide on the goal, you can
use the 5, 10, 20 hours technique. Based on how important and broad the
topic is and how much you need to know about it, you can choose whether
to study for five, ten, or twenty hours. (Keep in mind that these numbers
are arbitrary; the point is to keep you organized.)

Let’s say you want to learn OOP for an interview. Start with ten hours and
then evaluate your understanding at the end of this period. Are you able
to answer 70% of the interview questions about OOP? If yes, then move
on to another topic.

Or, let’s say you want to learn functional programming because a project
requires you to learn and use it. Spend twenty hours. Feel comfortable
using it in your project? Probably not (functional programming is a broad
subject), so spend ten more hours. And always remember that you will
never feel 100% content on the topic, so aim for 70%!

Self-Taught Developers Handbook 174


COMMON DEVELOPER QUESTIONS

Data structure and algorithm

Should I study data structure and algorithm?

Yes, you should!

Will I use data structure and algorithm in my day-to-day work?

No! You won’t!

Then why should I learn it?

There are two reasons to learn data structure and algorithms. The first
one is to get ready for an interview in a big tech company, and the second
is to have a better understanding of the underlying technologies you use.
The better you understand the tools you use, the better you’ll be able to
come up with a solution.

When should I start learning data structure and algorithms?

I recommend learning DS and Algo, but you don’t have to learn it on the
first day of coding! I see so many developers that feel hung up on this
subject when they are just starting out. Focus on learning the
programming language first.

The best time to start learning would be when you are comfortable with
the programming language that you are using and you can build small to
medium-sized projects. I started learning DS and Algorithm about six
months into my coding career!

Self-Taught Developers Handbook 175


COMMON DEVELOPER QUESTIONS

What resources should I use for learning?

Check out the resources section. I have mentioned a few free and paid
subjects that I used myself and loved!

Job security

Will AI take my job? Will programming jobs ever go away?

No one knows what will happen in the future, but I can promise you one
thing: If you are a problem solver, you will never have to worry about losing
a job. A real problem solver doesn’t care about specific programming
language or framework. They are a lifelong learner and try to find the most
efficient solution for the problem. So be a problem solver, not a coder!

Time

How long does it take to learn coding?

This is one of the most-asked questions among self-taught developers.


The answer is that it depends! Here’s why:

It took me two months from writing my first line of Swift (iOS development)
to landing my first project, but before I started my journey as an iOS
developer, I was doing Android development for about a year and half.
So, did it really take me two months, or did it take me a year and seven
months to learn programming?

Self-Taught Developers Handbook 176


COMMON DEVELOPER QUESTIONS

The truth is that it may take anywhere from two month to two years from
writing your “hello world” to landing your first job. It depends on where you
live, what language you use, and how you market yourself. But here’s a
piece of advice: Focus on the process instead of the end goal. Otherwise,
you won’t enjoy what you are doing and it will be exhausting!

Different path

Which should I choose—college, bootcamp, or self-learning?

Like most questions, the answer depends on your situation. You need to
evaluate what you would put into each of these paths (time + energy +
money) and what you would get in return. These three are all viable
options and each can lead to a successful future as a developer.

Mentorship

Should I get a mentor?

Having the right mentor can save you so much time and energy. If you
can afford it, I highly recommend getting one, and finding the right mentor
can be taught. Even though talking about how to choose a mentor could
be a section on its own, I’ll share few tips here to help you find the right
mentor for you!

Self-Taught Developers Handbook 177


COMMON DEVELOPER QUESTIONS

First, you need to set your killer goal (Chapter 2). Then, look for mentors
who had the same journey and now are in the place you would like to be
in the future.

By using this criteria, you’ll find a few mentors who seem to be the right
fit. However, just because they checked the first box doesn’t mean they
are a good fit yet.

The second step is to look for the people your potential mentors have
worked with before. Mostly, look for the result. You can reach out to their
students and ask about their performance. Then, do one session with a
mentor who you think might be a good fit and then evaluate their method
of teaching. (Important: make sure to do at least few sessions before
signing a long-term contract.)

Applying for a job

When should I start applying for my first job?

Short answer: after finishing your first programming course and having at
least three projects on your portfolio.

Long answer: Here’s what you do—finish this book, then take the
programming course and finish it! Build at least three portfolio projects.
Keep posting on social media, and then apply for your first job. But before
you start applying, you should know that the point of applying at this stage
is not to get the job—the purpose is to get used to interviewing and find

Self-Taught Developers Handbook 178


COMMON DEVELOPER QUESTIONS

the gaps in your knowledge. The more you go to interviews, the better
you’ll get at it. Pro tip: send your resume to smaller companies and go to
interviews any time you get a chance, even if you know you don’t want to
take a job there if they offer it to you!

- Do you have any unanswered Questions? Email it to


Sourena@selfmadecoders.com

Self-Taught Developers Handbook 179


COMMON DEVELOPER QUESTIONS

Chapter Ten

Never forget the three powerful resources you always have


available to you: love, prayer, and forgiveness.
—H. Jackson Brown, Jr.

Self-Taught Developers Handbook 180


EXTRA RESOURCES

Chapter Ten:

EXTRA
RESOURCES
In this chapter I will share my top favorite resources and links as a
developer. I would also share some good alternatives. (this list will be
updated in the next version of this e-book)

Adobe XD

Primary usage: UI Design

Link: https://www.adobe.com/products/xd.html

It’s a free design tool that lets you design User interfaces for web and
mobile applications. I recommend learning the basics of this app for
designing your portfolio. Adobe XD is my first Go to app for Designing UI.
I also use it to Design my nstagram posts.

Self-Taught Developers Handbook 181


EXTRA RESOURCES

Sketch

Primary usage: UI Design

link: https://www.sketch.com/](https://www.sketch.com

it's another great app for Designing. it's only available for Mac and it costs
99 USD. sketch is my second go to app for design UI.

Figma

Primary usage: UI Design

link: https://www.figma.com

Figma is a great Design tool for collaborating with team. I personally don't
use it but lot of people love it! it has a free and a paid plan.

Self-Taught Developers Handbook 182


EXTRA RESOURCES

Visual Studio

Primary usage: web development

link: https://visualstudio.microsoft.com

VS code is my go to IDE for web development. it has tons of amazing


expansions and works with any language! and it's Free!

IntelliJ IDEA

Primary usage: web and mobile development

link: https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea

it's super powerful IDE with tons of useful feature. IntelliJ has lots of great
sub IDE for each language which uses the core of IntelliJ IDEA with
customized features for that language. like PyCharm for Python or PHP
storm for PHP.

Self-Taught Developers Handbook 183


EXTRA RESOURCES

it's paid software and the price depends on the plan you choose

Atom

Primary usage: web development

link: https://atom.io

I love atom for doing quick changes to a project or editing a file. it's fast
and I like its user experience!

XCode (iOS developer

Primary usage: iOS, MacOS, Watch OS development

link: https://developer.apple.com/xcode

and of course XCode! it’s the only IDE you can use to develop apps for
OS platforms. even though it's not as powerful as other IDEs but its the
only option so...! :)

Self-Taught Developers Handbook 184


EXTRA RESOURCES

it's free and you would need a Mac OS to install it!

Android Studio (Android Developers)

Primary usage: Android development

link: https://developer.android.com

unlike iOS developers, android developers have more than one option for
choosing an IDE of their choice but they won't need any IDE other than
Android studio.

it has been developed by google on the jet brains IntelliJ IDEA which i
mentioned earlier.

and it's Free!

GitHub

Primary usage: hosting projects.

link: http://github.com

Self-Taught Developers Handbook 185


EXTRA RESOURCES

It’s a hosting platform for codes. It allows you to work with other
developers on the same code base with the help of code versioning (Git).

I highly create an account on this platform and share your portfolio.

Bitbucket

Primary usage: GitHub alternative

link: http://github.com

Bitbucket is just like GitHub and it's send most famous platform for hosting
codes. it lets you to have 3 private project for free and after that it charges
you for extra projects.

Stack over flow

Primary usage: asking for help in coding challenges.

link: https://stackoverflow.com

it's the biggest community of developer that help each other out!

Self-Taught Developers Handbook 186


EXTRA RESOURCES

if you get stuck on a bug or need a help to solve a problem, Stack over
flow is a website to go to!

Oh my Zsh

Primary usage: Terminal

link: https://ohmyz.sh

if you are using terminal (which you should) you must install oh my Zsh.
it's an amazing extension that gives extra power to your terminal!

Dev Docs

Primary usage: Documentation

link: https://devdocs.io

it's one page website that lets you to quickly search for a documentation.

Self-Taught Developers Handbook 187


EXTRA RESOURCES

Free for Dev

Primary usage: Free Services

link: https://free-for.dev

this is a list of services that are free for developers! you can find lots of
amazing products!

Bluehost

Primary usage: hosting website

link: https://www.bluehost.com

Bluehost is an hosting service that i personally use for my own and my


clients websites. you can pay as low as 2.99$ a month and they have an
amazing support team.

Self-Taught Developers Handbook 188


EXTRA RESOURCES

Go Daddy

Primary usage: Domain Register

link : http://godday.com

go daddy is the most famous website for purchasing domain. they support
almost all top level domains.

Heroku

Primary usage: hosting website

link : https://www.heroku.com

Heroku is probably one of the first cloud services out there. if you need a
cloud based hosting service for building applications, i would suggest to
take a look at this website.

Self-Taught Developers Handbook 189


EXTRA RESOURCES

Notion

Primary usage: note taking

link: https://notion.so

I’ve been using notion for less than 6 month but it's by far my most favorite
app for note taking, scheduling and tracking. it has free and paid version
but the free version is more than enough for individuals.

I have built lots of great templates that you can use. you can find it in the
resources chapter.

Evernote

Primary usage: note taking

link: https://evernote.com

before notion i used to use Evernote for note taking and keep track of my
learning. it's still great for lot of features.

Self-Taught Developers Handbook 190


EXTRA RESOURCES

Jira

Primary usage: Team Collaboration

link: https://www.atlassian.com/software/jira

if you work in an agile team, there is a good chance that they would be
using Jira to manage the project. it has a free and paid version. i would
suggest to download the free version and take a look at how things work!
:)

Trello

Primary usage: Collaboration

Link: https://trello.com

Trello is a great collaboration tool for teams. I have used it as team and
as a freelancer with my clients. it can be as simple as to do list or more
complicated like Kanban workflow.

Self-Taught Developers Handbook 191


EXTRA RESOURCES

Slack

Primary usage: messaging

link: https://slack.com/

think of slack as a messaging tool for businesses and teams! it has lots
of feature and most management tools like Jira and Trello connects with
it to send update.

Acronyms
Here is the list of most important acronyms that a developer should know
about (this list will be updated)

UI

User Interface

UX

User experience

Self-Taught Developers Handbook 192


EXTRA RESOURCES

API

Application interface

CMS

Content Management system that gives you the ability to work with
content on the web. EX: WordPress, Joomla

CRUD

or CRUD operation is the referred to 4 function of persisting data on a


data base. Create Read Update and Delete

IDE

integrated Design Environment - software that gives you the tools you
need to develop software. Like VS Code, XCode, Android studio

HTTP

Hypertext Transfer Protocol - it's simply a set of rules that your browser
ureses to send and resave data

Self-Taught Developers Handbook 193


EXTRA RESOURCES

HTTPS

Hypertext Transfer Protocol Secure - it's same as HTTP but more Secure!

DNS

Domain Name System

Stock Photos

if you are looking to use some photos as a mockup for your web or mobile
development you can check out these resources.

http://freepic.com

http://unsplash.com

Self-Taught Developers Handbook 194


EXTRA RESOURCES

Learn coding (Free & Paid)

these are my favorite learning websites.

https://www.w3schools.com (Free)

https://raywenderlich.com (Free and Paid)

https://coursera.com (Free and Paid)

https://udemy.com (Paid)

https://udacity.com (Free)

FreeCodeCamp.org (Free)

Self-Taught Developers Handbook 195


EXTRA RESOURCES

Chapter Eleven

The journey of a thousand miles begins with one step.


(Lao Tzu)

Self-Taught Developers Handbook 196


WHERE TO NEXT?

Chapter Eleven:

WHERE TO NEXT?
This is just a start!

As a developer, your learning process will never be over! You get to


constantly learn and try lots of new things.

In this book, I tried to guide you to start your coding career the right way
by giving you a roadmap and sharing tips that will save you months or
years.

I also wanted to mention the ups and downs that you will feel in your
journey.

Self-Taught Developers Handbook 197


WHERE TO NEXT?

This book won't do shit!

This book won't help you to become a developer, just like the best book
on productivity won't help you to be productive.

You can have all the BEST resources for cooking, but that doesn't make
you a chef!

All the available resources, including this book, are merely a guide for
doing things the right way. You can do lots of experiments to find out which
ingredients can be mixed, create a great test, and with that, waste a lot of
time and energy; or, you can simply learn from the experience of others
and save yourself the trouble.

To make sure you get the most out of this book (in fact, any book!) just
take one idea and put it into practice!

Always strive to learn—not just for the sake of learning, but for the sake
of doing and improving!

I wish you the best, and don't hesitate to reach out to me if you have any
questions. I'd be happy to help! :)

Also, don't forget to follow me on social media—I share content every day!

Instagram: https://selfmadecoders.com/instagram

YouTube: https://selfmadecoders.com/youtube

Self-Taught Developers Handbook 198


WHERE TO NEXT?

Email: sourena@selfmadecoders.com

Self-Taught Developers Handbook 199

You might also like