You are on page 1of 19

ZERO TO FULL-TIME

PROGRAMMER IN 5 STEPS

KENNY GUNDERMAN
WELCOME
Before we begin, I just want to say congratulations. Seriously, hats off to you for taking the
first step (or one of the first steps) into the realm of learning how to code. I am thrilled that
you’ve downloaded this eBook.

There is a reason why you’re here. Maybe that’s because you see programming as a lucra-
tive career path (it is). Or maybe it’s because you’re sick of your current life circumstances
and you’re looking for work that is more rewarding. Or perhaps it’s both.

Whatever your reasoning may be, I hope this book provides you with valuable insights and
actionable steps to go from Zero To Full-Time Programmer.

Learning how to code may be one of the toughest obstacles you tackle in your life. Any-
thing worth having will require much sacrifice. Nevertheless, If you see this through it will
be one of the most rewarding things you ever accomplish. To quote an author from one of
my favorite books, The Obstacle Is The Way:

“The obstacle in the path becomes the path” - Ryan Holiday

I’ll never forget the day I got my first full-time Software Development job offer. Since then
I’ve gotten many more software job offers with much higher salaries, but nothing com-
pares to the feeling of hearing a recruiter say “They want to hire you” for the very first time.

Alright, let’s begin shall we?


1. PICK YOUR STARTING POINT
Many people get hung up on choosing the “best” or “most effective” programming lan-
guage/tech stack to learn from the git-go.

This is understandable because of the overwhelming amount of information available on


where to begin. However, I promise you becoming fixated on this is pointless.

The reality is, your first programming language will never be your last, and depend-
ing on who you ask, certain programming languages or tech stacks are considered more
“in-demand” than others. But if you worry about this, you’ll quickly find yourself in analysis
paralysis and wind up taking no action. Any action beats no action, every time.

“It’s better to do less than you hoped for than nothing at all” - James clear

I am programming language agnostic; I don’t have a favorite programming language.


Whatever language the job requires, I’ll use. This is because the concepts and principles
of programming aren’t baked into programming languages. Once you learn one lan-
guage, those principles will transfer to most other languages. You’ll just have to learn the
new syntax, which is mostly trivial.

Python is a phenomenal starting point due to its shorter syntax (requiring fewer lines of
code to run a program than a typical language), its Object-Oriented nature, and its wide-
spread support, meaning that almost all beginner-level questions related to Python can be
found through a quick and simple Google search.

One of the first programming languages I started with was Java. While Java is more ver-
bose than Python (this isn’t a bad thing, it just means more lines of code, which will further
your understanding), it is also widely supported.
Now I wish I could tell you that the reason I started with Java was for practical reasons…
It wasn’t. I was addicted to Minecraft and I simply wanted to make my own custom mods/
plugins for the game.

Sometimes doing whatever sounds the most exciting to you is the best option. Maybe
you want to make video games? Cool start with C#; that’s what’s used in the Unity Engine.
Maybe you want to make a funny soundboard for your iPhone to make your friends laugh?
Then start with Swift; the native language for iOS app development. Regardless of what
sounds exciting, any of the high-level languages mentioned above will be a good starting
point.

To make any practical piece of software, you’ll usually need more than one programming
language or tool. You’ll need what is known as a tech stack. A tech stack is a collection of
programming languages, frameworks, databases, libraries, and tools used to develop a
practical application. (we’ll dive into this further in the next section)

However, it’s important you don’t get hung up on this at first. Worrying about a tech stack
when your first learning will be extremely overwhelming. When you are just starting out,
pick one high-level language and get familiar with the basics.

Here is what I’d recommend to start with:


- Variables (primitive and non-primitive)
- Operators (+, -, <, >, &&, ||, ==)
- Flow control (if/else statements)
- Loops

This quadfecta is what makes up a large portion of most code bases. With just these con-
cepts, you’ll be able to make some (albeit very crappy, but that’s okay when starting out)
rudimentary applications.

Once you start gaining an understand of these concepts move on to:


- Arrays
- Functions
- Basic Object Oriented Programming (OOP) concepts

Here is a great free resource from freeCodeCamp.org that will go over all the basics I’ve
mentioned here plus more with Java: https://youtu.be/A74TOX803D0?si=hA95O6bL8pKScFgy

I’d recommend following along with this course (or one like it), taking notes, and then
using that knowledge to make some simple applications. Something like a simple input/
output questionnaire, or perhaps dive into the GUI API that Java provides and make a ba-
sic clicking game. Remember - the best way to learn is by doing. Following along with
explanations will only get you so far. You need to get your hands dirty and make your own
projects.

Once you’ve gotten a decent understanding of basic programming concepts and you’ve
made a couple simple projects, you should be good to start learning point #2 - a practical
tech stack.
Important Note I - When learning, especially at first, don’t get discouraged if concepts
aren’t clicking right away. For example, you may need to re-watch/re-study loops 5x times
before you start to get the hang of it. Even then it still may not fully click until you put it into
practice a few times.

Important Note II - You will get stuck and run into issues when making your own pro-
grams. That’s okay. Google is your friend. It’s every Software Developer’s friend. Googling
and finding credible resources to help you solve coding problems is a skill. It’s one you’ll
use for the entirety of your career, so it’s best to start cultivating that skill ASAP.
2. THE PRACTICAL TECH STACK
Learning one high-level language certainly won’t make you job-ready. As I mentioned in
the previous point, any real-world software is built using a tech stack. Learning a decent
and in-demand tech stack will equip you with the skills necessary for building real-world
applications. This is what employers will be looking for.

Think of the software you use in your everyday life. Typically, it will be something that:
1. Fetches data from some server.
2. Displays that data on your web browser or mobile device.
3. Allows you to interact with that data (like, comment, message, etc).

This is what is known as a CRUD app, and this is what 90% of software systems do. CRUD
stands for:
- Create
- Read
- Update
- Delete

Not every piece of software is a CRUD app; however, most product or service-driven com-
panies will build this type of software, and they need developers to create and maintain it.

Because of this I highly recommend every new developer start with learning a tech stack
that is congruent with them becoming a full-stack web developer.
Not only is full-stack a highly sought after skillset, but as a full-stack web developer you’ll
learn how to create and utilize the back-end and front-end.

On the back-end you’ll learn how to:


- Store / fetch data using databases.
- Create API’s for packaging up that data and sending to clients.
- Transmitting data over the web.
- Server logic.

On the front-end you’ll learn how to:


- Fetch data from API’s.
- Use that data and present it to the user.
- Update/delete data using API’s.
- Create UI modules.

On both you’ll:
- Gain a deeper understanding of programming principles and concepts.
- How to architect your code in a reusable and efficient way.

Even if you don’t see yourself being a full-stack web developer long-term, I still think start-
ing here is your best bet as you’ll learn the full spectrum of how modern software is built
and how data is transmitted over the web.

I started with learning full-stack before transitioning full time into native mobile develop-
ment. Even though I eventually transitioned out of full-stack web development, learning it
considerably helped me further my programming expertise.

So what tech stack should you learn? Well, there are a bunch to choose from, but I’m
going to keep it simple. I’ll recommend something that will expose you to the world of full-
stack development and is, as of writing this (September 2023), a very valuable tech stack in
the current market. The MERN Stack.

MERN stands for:


MongoDB -
This will be your database. MongoDB is a document-oriented database, which is one of
many types of databases. Databases can be a beast to tackle. Matter of fact some people
make databases their sole career. Because of this, I would highly recommend that you
delve into the world of databases by first learning relational databases and then non-re-
lational databases. MongoDB falls into the category of non-relational databases. Here is a
good overview of the differences between the two from Mongo themselves:
https://www.mongodb.com/compare/relational-vs-non-relational-databases

Express.js -
Express is a backend framework for building API’s using Node.js (4th in this list)

React -
React is an open-source JavaScript library built by Meta for constructing front-end user
interfaces using building blocks known as Components.
Node.js -
Node is a back-end Javascript runtime environment that allows you to execute JavaScript
outside of a web browser.
If you haven’t put it together already the language you’ll be using to accompany this tech
stack is JavaScript.

JavaScript is a great language to learn as it is one of the most popular programming lan-
guages in the world. Even if you never learn JavaScript you’ll likely come in contact with it
at some point in your career.

Javascript is also loosely typed, meaning the code you write doesn’t have to be as explicit
as in other high-level languages. You can certainly start with JavaScript as your first lan-
guage, but I personally believe programming principles are easier to learn if you start with
a strongly typed language like Java or Python - which is why I recommended starting
with either of them in Point #1.

An alternative to JavaScript with the MERN stack is TypeScript, which is essentially a


strongly typed programming language that builds upon JavaScript. I prefer TypeScript
over JavaScript because I think TypeScript is more readable and maintainable than JavaS-
cript. Nonetheless, this is just personal preference and both are a great option. If you were
to learn TypeScript then establishing a foundation in JavaScript would be beneficial.
3. LEARNING
As long as you have a reliable computer and a stable internet connection, you have the
opportunity to learn how to code online at no cost. However, due to the vast amount of in-
formation available, you may need to navigate through a sizable amount of resources until
you discover what best suits your learning needs.

Here are a couple of excellent free starting points:

The Odin Project


https://www.theodinproject.com/paths/full-stack-javascript/

The Full Stack JavaScript course is packed with 100’s of hours of content where you’ll
learn how to code using the MERN stack I’ve mentioned in the previous point. If you take
this course in the recommended order, you will undoubtedly come out the other side with
a very solid entry-level understanding of full-stack development. This course stands out for
its beginner-friendly structure, making it an excellent choice for learners at any level.

freeCodeCamp
https://www.freecodecamp.org/learn/

freeCodeCamp is an interactive learning platform where you’ll actively write code as you’re
learning. This hands-on approach is a phenomenal way to grasp programming concepts. I
would recommend the following order for tackling their modules: Responsive Web De-
sign -> JavaScript Algorithms and Data Structures -> Front End Development Librar-
ies -> Relational Database -> Back End Development and APIs. Following this path will
give you a very solid understanding of full-stack development.
While free resources are a great place to start, it might make sense to explore paid con-
tent. When I was first starting out, I was a big fan of video tutorials that I could follow
along with. These felt more like the “lectured” type of learning I’d get in highschool and
college by offering a more hands-on approach. While you can certainly find hands-on,
lecture-styled video for free on YouTube, it could be worthwhile to invest $10-30 for a
high-quality packaged course on a website like Udemy.

Good paid courses can feel more structured than free content. And at some level, when
you pay for a course, it holds you a bit more accountable because you want to get your
money’s worth.

Now as much as I would love to support smaller course/content-creators vs. Udemy gi-
ants… For the sake of learning experience make sure to find a vetted, well reviewed course
that aligns with your goals. For example, here is an excellent course on Udemy where you’ll
learn full-stack web development using the MERN stack:

The Web Developer Bootcamp


https://www.udemy.com/course/the-web-developer-bootcamp/

For full transparency, I have partnered with Udemy multiple times. I still have an affiliate
deal with them. Regardless, the course linked above isn’t tied to my affiliate link because I
do not think that would be appropriate here. The fact is, I just really like Udemy as courses
on their platform were key in helping me learn web-development when I was first starting
out. Never buy a course on Udemy for the full price (unless you really want to) as they are
constantly running deals where you can get courses for 80-90% off.

I totally understand that this can feel extremely overwhelming at first. I mean, I just recom-
mended content that will take 100’s of hours of your time. But please, take it one day at a
time. Pick a starting point with either one of the recommendations above, or something
you’ve found yourself, and just get started.

Studying isn’t a one-size-fits-all solution. If you’re struggling with the path you’re currently
on, consider dropping it and trying a new one. Discover what works best for you. I exper-
imented with numerous approaches when I was first learning before finally finding some-
thing that clicked. Don’t hesitate to experiment; learning is rarely a linear process.

Computer Science
By now, if you’ve been following along with the resources I’ve recommended, you should
possess a solid grasp of high-level programming and some fundamental knowledge of
computer science. If you were to deepen your knowledge on the above topics, you could
certainly find a job and make a living.

However, it’s important to know that there are multiple layers of abstraction going on
under the “hood” of a computer that enable you to translate high-level code into machine
code (1’s and 0’s).
While it is likely you’ll rarely (if at all) work with lower-level concepts as a modern-day pro-
grammer, In order to realize your full potential and become the best possible developer
you can be, I think learning base level computer science principles is important.

The Harvard CS50 Introduction to Computer Science lecture series is an exceptional


blend of computer science fundamentals and beginner programming techniques. Given
its introductory nature, this course is highly recommended for individuals brand new to
Software Development. The 24 hour lecture series can be found here:
https://youtu.be/8mAITcNt710?si=-hUvrH5KRi98YByw

A great resource that will help you learn the fundamentals of computer organization & ar-
chitecture, assembly languages, virtual machines, and compilation is The NAND to Tetris
course found at: https://www.nand2tetris.org/

In this 12-week course, you’ll virtually build a 16-bit computer, capable of running Tetris,
from the ground up starting with basic logic gates.

While the concepts covered in the NAND to Tetris course may not be essential for securing
an entry-level programming job, they constitute fundamental computer science principles
commonly taught in most college computer science curriculums. Gaining even a mild un-
derstanding of these concepts will significantly enhance your competence as a developer.
And honestly, it’s quite remarkable to understand the inner workings of a computer. Here’s
one of my favorite quotes found in this book:

“Any sufficiently advanced technology is indistinguishable from magic”


- Aurther C. Clarke
4. PORTFOLIO
Once you’ve learned a solid tech stack and have a basic understanding of computer sci-
ence principles you should focus your energy on building a portfolio. Ideally, you’ll be
chipping away at this as you learn.

What is a portfolio?
A developer portfolio is a collection of software applications you’ve built, typically show-
cased on GitHub (or similar software), a personal website, or both.

When an employer is vetting a new hire, they will often have a developer review the candi-
date’s resume, previous employment history, and body of work. Because of this, portfolios
are absolutely crucial, especially if you have no working experience. As someone who
has been involved in the vetting process, I can tell within a matter of ~5 minutes if some-
one will get called in for an interview, simply by looking at the code they’ve written and
projects they’ve worked on. This is why having a good portfolio as an entry-level developer
is key.

Another reason why making a portfolio is important is that it will actually be the time you
learn the most as a new developer.

As we’ll discuss in a moment, a portfolio will be a set of unique projects you’ve built. Be-
cause of this you won’t have the crutch of a tutorial to lean on when building portfolio proj-
ects. Meaning, you’ll struggle a lot, and you’ll be forced to write code and find solutions on
your own. The struggle is where you’ll gain the most knowledge. You must force yourself
out of the nest, so to speak, and either fall or fly.
Now that you understand the importance of a portfolio, let’s talk about the do’s and don’ts
of building a portfolio starting with the don’ts.

Don’ts
To kick things off, you absolutely shouldn’t put anything that has taken you less than a
couple days to code on your portfolio. Small projects don’t really showcase your ability.

I see it all the time. New developers creating portfolios with projects that took them a few
hours to make. While I critique, I was certainly no exception to this. My very first portfolio
included ~2 hour projects like a Javascript Reaction Tester Project that I straight up copied
from a Udemy tutorial.

Speaking of tutorial projects, while it may be tempting, you really shouldn’t put them on
your resume or portfolio. Especially if they were made in less than a day or so.

The reality is, if an employer is reviewing a resume/portfolio for a new hire, and they only
see tutorials that they recognize such as an “instagram clone” or small one day projects,
they may just immediately assume that candidate is lacking in knowledge and pass up on
inviting them for an interview altogether. So please, steer clear of small one-day projects
and tutorials that you’ve copied verbatim. Now there are certainly exceptions to this rule.
For example, if you followed a tutorial to get the base idea of your project and then signifi-
cantly modified it, you would certainly get a pass.

Do’s
A portfolio with 2 to 3 thoroughly developed projects will shine significantly brighter than
a portfolio with 10 small one-week projects.

You should build a somewhat unique idea that you can really sink your teeth into. When
I say “unique” I don’t mean the next big startup idea. If you’re struggling to come up with
your own ideas, then take a popular piece of software and iterate on top of it. In fact, this
is how most good ideas start: by taking something that already exists, rebuilding it from
the ground up, optimizing the pain points, adding new features, and rebranding it as
your own. The goal is to build something that would simulate a real world application
you’d be working on for a company. As long as you follow the CRUD principles laid out
in point #2 you should achieve this.

Now, CRUD apps aren’t the end-all-be-all and you should have fun with your portfolio. A
couple other killer portfolio items could be:

A thoroughly thought out/designed game -


A previous company of mine hired an entry-level developer because he made a game
closely tied to that company’s services. This particular company was involved in trucking,
and he made a 2D mobile game similar to Hill Climb Racing that used that company’s
logos and branding. The executives at this company could not stop talking about this and
hired him immediately after he graduated college.
Developing your own programming language -
If you were to develop a simple programming language and build something like Pac-Mac
with that language, that would unquestionably showcase your competency as a program-
mer. Developing a programming language requires a solid understanding of lower-level
concepts such as compilation/interpretation. Admittingly, this would be a challenge even
for me, but If you have the determination to do something like this then completing the
entirety of the NAND to Tetris course mentioned earlier in this eBook would be an excel-
lent starting point.

When it comes to creating your portfolio, I would recommend starting with two projects.
One CRUD app, and a more interesting one like the game idea I’ve mentioned. You should
spend 1-3 months working on each of these projects.

Showcasing Your Portfolio


GitHub is a great place for showcasing the projects you’ve built. At the heart of GitHub is
Git, which is a Version Control System (VCS) used to manage the state of your code. In
very simple terms, think of Git as a memory card for your project. You can save changes,
revert changes, load previous saves, and much more.

Every company will use a Version Control System and Git is the standard for the majority
of companies. Because of this, now is a great time to learn while you’re working on your
portfolio.

GitHub has some great documentation on how to use their software, and Git:
https://docs.github.com/get-started

If this documentation seems intimidating to you I’d recommend starting with something
a bit more simple. Here is a 1 hour crash course from freeCodeCamp.org going over the
basics of Git and GitHub: https://www.youtube.com/watch?v=RGOj5yH7evk

A couple GitHub repositories, with a solid GitHub profile README.md is pretty much all
you need in terms of a portfolio. If you need some inspiration on making a cool GitHub
profile check out this repository:
https://github.com/abhisheknaiidu/awesome-github-profile-readme

If you feel inclined to do so, you can make your own website to showcase your projects.
This is a popular approach for making a portfolio as this can be a portfolio project itself. If
you decide to go down this path and build a personal website:

1. Make sure it’s designed well.


2. Showcase your projects in an interesting way. Link the project to your GitHub if possible.
3. Don’t clutter it with a bunch of stuff that’s totally unrelated to programming. An “About
Me” page is good enough.
4. Make sure it’s mobile responsive.

The bottom line is, if you’re going to make a website to showcase your portfolio, make sure
it’s well made. It’s honestly better to not have a website at all then to slap something to-
gether just because you feel like you need one.
5. NETWORKING
After you’ve completed a few portfolio projects, the next step is to craft your resume and
begin the job application process. While you can certainly discover job posting on web-
sites like Indeed or LinkedIn, relying solely on online applications and hoping for the
best will likely result in no responses. This is where the power of networking comes into
play.

Without networking I would’ve had a significantly harder time finding my first job, period.
I attended coding meetup groups, multiple career-building events and jobs fairs before
getting my first part-time coding job. When at events and job fairs I would make it a point
to go up to every booth, shake the person operating that booth’s hand (usually a recruiter),
introduce myself, chit-chat for a bit, and then grab a business card so I could email them a
follow-up later.

I was actually able to secure my first part-time programming job off interaction alone. No
coding interview and no review of a portfolio. Albeit, this was pretty lucky, which is why I
highly recommend building a portfolio before applying to jobs, but this goes to show how
important networking is.

Here’s how you can network as a new developer:

LinkedIn - Create a professional LinkedIn profile with a nice headshot, a killer “about” sec-
tion, and a link to your portfolio projects. Connect with other developers and most impor-
tantly recruiters.

Leverage Recruiters - People like to crap on recruiters and I’ll never understand why.
Using recruiters, even third party recruiters can be huge. It’s how I got my first full-time
programming job. You can set your preference in LinkedIn to “open to finding work” which
will expose you to the recruiter algorithm. You can oftentimes bypass the whole vetting
process when applying for jobs, which can take weeks, by directly messaging the re-
cruiter for that company and letting them know you’ve applied and why you’d be a good
fit. Don’t be afraid to sell yourself to recruiters.
Attend tech meetups - Tech meetups are frequently sponsored by other tech companies
for the purpose of brand exposure and recruiting. Sponsors typically set up booths with
employees and recruiters to interact with, providing an excellent opportunity for network-
ing. Talk to these employees about their company, let them know you’re a new developer
equipped with the skillset to solve their problems, hand them your resume, get their busi-
ness card, and email them with a follow-up the next day.

Find a group of likeminded people - This can be done online, via discord communities,
twitter or in real life. Finding a group of likeminded people may not expose you to as many
job opportunities as going to in-person events, or using LinkedIn, but it will hold you ac-
countable and may make the job search experience less demotivating.

The bottom line is you need to put yourself out there and learn how to sell yourself. If a
company’s job posting doesn’t require the tech stack you’re looking for, then listen to their
needs. Put yourself in their shoes. Sell yourself by offering a solution to their problems:

“Hey I don’t have experience in this tech stack, but I understand the various para-
digms of and concepts of programming. I am 100% confident in my ability to ramp
up into this new tech stack and be committing effective code in no time. I’ll even take
a course during the 2 week down time before my first day.”

Don’t get hung up on only applying for jobs that are specific to the tech-stack you’ve
learned. Apply to everything and tailor your resume/cover letter around that job descrip-
tion.

If you’re networking effectively but you’re still struggling with finding that first job you may
want to consider working for low-pay or even free. Yes it’s not ideal, but that real-world
experience is invaluable.

My first part-time programming job paid me $12/hr. But the reality is, they could’ve paid
me minimum wage and I wouldn’t have cared. I knew that the experience was the most
important thing. After ~6 months, you’ll have extracted significantly more knowledge
working on real products for real companies than you did learning on your own. Having
this experience on your resume will greatly improve your chances in finding work that pays
you what you’re looking for.

The Coding Interview

This should go without saying, but the purpose of networking is to secure interviews. Typ-
ically, companies will conduct a behavioral interview to ensure that you are likable, agree-
able, competent, and easy to work with. Following that, they will proceed with a more
technically-focused interview to make sure that you’re equipped with the necessary skillset
to handle the job.

Now, you might have heard of the dreaded coding interview before. Depending on the
type of company you apply to, the difficulty level of this portion of the interview will greatly
vary.
If you want to pass the interview for a big tech company, such as Google, for example, you
will need to learn Data Structures and Algorithms and solve hundreds upon hundreds of
LeetCode problems effectively before even being prepared to start the coding interview
at Google. This can take months, if not years, to master.

If you’re up for the challenge, I say go for it! However, this book is more geared towards
people who are just starting out, don’t have immediate aspirations to work in big tech, and
would be happy to secure a regular programming job at first. In such a case, there isn’t
much need to master DSA and LeetCode.

Tips for interviewing

Read a book on influence - Something like: How to Win Friends and Influence Peo-
ple. Let’s face it; while merit plays a role in interviewing, many hiring decisions are based
on whether the interviewer likes you. Being charismatic, confident, humble, funny (when
appropriate), and enthusiastic will make you shine brightly. Someone with average pro-
gramming skills and exceptional people skills will advance significantly further in
their career than a great programmer with poor people skills.

Study the Amazon interview - Although you probably aren’t interviewing at Amazon, they
provide an excellent resource for interview preparation that can be used anywhere. Study
the STAR method they layout for behavioral questions and read their Tips for great an-
swers sections from here:
https://www.amazon.jobs/en/landing_pages/in-person-interview

Research the company - Make sure you’re well-prepared before stepping into an inter-
view by thoroughly researching the company. Taking the time to do your due diligence
will not only showcase your commitment but also provide you with insightful questions to
engage the interviewer in discussions about their company’s product, mission, and how
your role aligns with their goals.

The only way to truly get good at interviewing is by doing it multiple times. Approach each
interview with the expectation that you probably won’t get the job and view it as a valuable
learning experience. Ironically, this mindset will likely lead to improved performance, as
you’ll experience less nervousness when you’re genuinely not expecting a callback.

If you face rejection, be sure to study the parts of the coding interview where you encoun-
tered difficulties and thoroughly reflect on how you could have performed better in the
behavioral portion. Always request feedback from the recruiter, as it can sometimes be
beneficial. However, be prepared for the possibility of either receiving no response or re-
ceiving a non-specific answer.

Good luck interviewing!


WRAP UP
Although I have thrown a ton of information at you all at once, I hope this book gets you
excited about embarking on a new journey!

The time it takes to go from Zero to Full-Time Programmer will vary from individual to
individual. However, I would say on average, it would take ~1000 hours of dedicated learn-
ing and project creation. Broken down at 40 hours a week this comes out to ~6 months
which is a little more than the average coding bootcamp. At the bottom of this section I’ve
provided a rough week-by-week study outline to accompany the contents of this eB-
ook. But please understand this is an extremely rough outline and was made only to give
you some perspective.

To make things less overwhelming, I’d recommend starting with step number #1 and
reference this eBook as you see fit. Take things one day at a time and use this eBook as a
stepping stone. Even if you ignored all the advice I have laid out, as long as you just get
started, I would be happy. Remember - one line of code at a time.
LEARNING OUTLINE
This outline assumes ~20 hours per week.

WEEKS TASK NOTES


0 - 1 (1 week) Java fundamentals https://youtu.be/A74TOX-
803D0?si=hA95O6bL8pKScFgy
1 - 2 (1 week) Make 2 basic Java projects
2 - 10 (8 weeks) Udemy MERN stack course and https://www.udemy.com/
accompanying tutorial projects course/the-web-develop-
er-bootcamp/
10 - 13 (3 weeks) Make a personal project using
the MERN stack. This will be
Portfolio Project #1
13 - 16 (3 weeks) Harvard CS50 lectures 0-5 and https://youtu.be/8mAI-
Lecture 7 TcNt710?si=-hUvrH5KRi98YByw
16 - 17 (1 week) Object-Oriented Programming Follow along with an OOP
deep dive course, or read a book on the
topic.
17 - 25 (8 weeks) Portfolio Project #2 Use Git while building this
project.

25 - 37 (12 weeks) NAND to Tetris This is optional, but recom-


mended. This could wait until
after getting your first job.
https://www.nand2tetris.org/
37 - 45 (8 weeks) Portfolio Project #3

45 - 52 (7 weeks) Networking / Interviewing Ideally this should be done


starting at week ~26.

You might also like