How I learned to code and got a job in 7 months (No CS degree)
Tags: beginners, codenewbie, webdev, programming
Published: 2022-12-22 20:41:37


I don't have a computer science degree. 
I didn't go to a BootCamp.  
It only cost me $65.
I'm in my thirties and have a 2-year-old daughter

If I did it, you can do it too. 

Knowledge is cheap these days (a 40hrs coding course cost $15 on udemy). 

The actual cost of becoming a self-taught software developer is discipline and effort.

Show up every day, be consistent and rip the results.

This is how I did it.


# From a struggling carpenter to a self-taught software developer

When I made the switch, I was carpenter. 
I was at stage where I dreaded going to work every morning. 
I'd stop my car in front of the jobsite counting the minutes I had left before getting started.

I was in an all-time-low professionally.

The pressure of the responsabilities were high, making it harder to take the risk of changing career.

But it is usually like this, isn't it? 
Being responsable sometimes means to keep doing something that is slowly killing you. 

It's fair and reasonable, until a certain point. 
I was past that point.

I let that job take my confidence away from me, treat me in a way I didn't deserve, but I was too reponsable to quit.

Don't let that happen to you. 
You can always find a better job. 
You always have a choice. 
No matter what.


**I quit**  
One day after working all day and having taken too much crap, I decided that was going to be my last day. 

Make no mistake, it wasn't bravery or any of that, I just had no strenght left.

I started working 15 hours a week for a friend (just enough to pay the rent, while my wife paid the rest of the bills). 

It was healing time. It took me a few months and several self-help books to rebuild my confidence, so I could feel I was capable of doing more.
 


# The begining of the jorney

12 yeas ago I worked as an IT Support guy and studied IT in college(I quit one and a half years into it)

I did a little coding back them, but fast forward 12 years, I dind't remember how to declare a variable. I was back to the drawing board.

Because of my friend Jorge, who's been a software developer most of his life, the itch for coding reappeard.

He pointed me towards a [roadmap](https://roadmap.sh/frontend), and that, plus the internet, was all I needed to get started.



## Bootcamp or self-taught?

I usually spend too much time researching and not enough time doing what I am suppose to do. Can you relate? 

I went down the paradox of choice rabbit hole, trying to find the "right" resource to get started. A few days later I was sick of searching and eager to learn something at once.

I considered taking a bootcamp to speed things up, due to a few things:
* Structured curriculum 
* Networking
* Job placement at the end
* Stop my misery of trying to find the "right" resource

But I had to rule them out due to their cost and schedules. 

Then I found out that there are FREE bootcamps online with: 
* Structured curriculum.
* Networking (online community)
* No more searching to find what to study!
* FREE

The FREE + Structured curriculum got me. I started on [freeCodeCamp](https://www.freecodecamp.org/). 

Note: The [theOdinProject](https://www.theodinproject.com/) a great alternative.

The plan was:
* Study as much as I can. 
* Do it every single day. (consistency) 
* Be job ready as soon as possible.

Here's the exact resources I used from day 1 til I god a job => [All resources I used to teach myself how to code. (From day 1 til I got a job)](https://dev.to/gustavupp/all-resources-i-used-to-teach-myself-how-to-code-from-day-1-til-i-got-a-job-bd4) post.


## The key factor

Once you have figured out what you have to study, it's just a matter of putting in the work.

You don't have to:
* Worry about deciding what to study. 
* Search the internet for directions.

There is no confusion. Everything is clear. 
And this is what you want. 
Get rid of the distractions so you can clock in code time.

I'd never been consistent my whole life. This time, given my circunstances I had no choice. I had to learn to be.


## The "Seinfeld Stretegy"
Somebody once asked Jerry Seinfeld, how he became good at telling jokes. He said something along these lines:
* Get a calendar and write jokes every day. 
* Every day you write a joke you cross that day off the calendar. * Your goal is not to break the streak.

I took Jerry Seinfeld's advice as my rule. Instead of a physical calendar I used github's green tiles.

![github activity tracker](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zjrpge36ntt2arzohd1o.png)

Obs: Invariably you are going to miss a day. Just don't miss two in a row.

When you are consistent, you let the compound effect work in your favor. On day 100 it's hard tp tell how the heck you put it so much information in your brain.


# Getting a job

At around the 6 month mark, Jorge's company opened a software developer position. I found it on linkedin an applied.

The problem was that their stack dind't have anything I had learned, aside from JavaScript and a little SQL.

Their stack was: JavaScript, Vue.js, .NET MVC, C#, SQL
My stack: JavaScript, React.js, Node(a little), SQL (a little)

I was certain this job wasn't for me. But the CTO called me for an interview because of Jorge's referral.

At the end of the interview he said he had no concern about me picking up Vue.js, his concern was with .NET MVC and it's frameworks and the design patterns they used (Inversion Of Control, dependency injection).

It was a fair point. He told me to get familiar as much as I could with .NET/ C# and scheduled another interview for 10 days later. 

That was when the possibility of getting hired actually struct me as true. 
If I managed to learn enough to show that I can learn fast. 
I'd be hired.

As there is no better way to learn than by doing, my plan was to create a simple .NET MVC project with SQL Server using dependency injection.

The thing was, I didn't know any of it!

I basically had 10 days to learn:
- A programming language C#
- A few Frameworks (.NET MVC / autofac / entity framework)
- A design pattern (dependency injection)

I had no time to waste. I bought Mosh's C# Mastery and .NET MVC Course and dived right in.

The truth is that you can't learn all of those in 10 days. 
What you can do is learn just enough to build what you want to build. 
It has to be task driven learning (what I apply to my everyday life)

After 10 days studying, coding, YT tutorials and counseling with Jorge, I had a simple yet working project to show.

And above all, I had learned so much and was so exited about learning more C# and .NET that my enthusiasm was apperant on my second interview. 

I was genuinely glad that it forced me to learned that much in a short time. On the next day, they sent me a job offer.

I had done it. I was happy and proud of myself. I hope you can experience the same hapiness soon.



# The most important lesson

For the first time in my life I could rip the benefits of consistency. 

If a person can achieve this in just 7 months, what can he or she achieve in 2, 3 or 5 years? I knew the future was promising and it was only up to me to continue.

Nowadays before bed, I tell my daughter that consistency is the key to achieving her dreams.

I hope I could inspire or at least give you an extra dose of motivation with my story.

You can follow me on twitter [@gus_ppereira](https://twitter.com/gus_ppereira) for more content.

Catch you later,

Gus.