0% found this document useful (0 votes)
132 views12 pages

Fast-Track to Intermediate Developer

This document discusses how to progress your career from a junior to intermediate software developer in 7 months. It provides 7 key steps: 1) leverage previous experiences and skills from before your first developer job; 2) choose jobs that challenge you and where you can learn; 3) master one or two programming languages rather than learning many at a basic level; 4) build stacks of related technical knowledge across frontend, backend, and devops areas; 5) build personal projects to demonstrate passion and coding skills; 6) continually learn new skills through online courses and practice; 7) develop soft skills like communication and problem solving. Following these steps helped the author advance to an intermediate role after only 7 months as a developer.

Uploaded by

Jackie Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
132 views12 pages

Fast-Track to Intermediate Developer

This document discusses how to progress your career from a junior to intermediate software developer in 7 months. It provides 7 key steps: 1) leverage previous experiences and skills from before your first developer job; 2) choose jobs that challenge you and where you can learn; 3) master one or two programming languages rather than learning many at a basic level; 4) build stacks of related technical knowledge across frontend, backend, and devops areas; 5) build personal projects to demonstrate passion and coding skills; 6) continually learn new skills through online courses and practice; 7) develop soft skills like communication and problem solving. Following these steps helped the author advance to an intermediate role after only 7 months as a developer.

Uploaded by

Jackie Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Junior to Intermediate

Developer in 7 Months
Razvan Cirlugea

March 17th, 2020 · 18 min read

There are so many articles about how to get your first job as a
software developer, but once you’re there, what do you do next?
Everyone dreams about a successful career, but how can you
progress?

Recently I heard about a person that worked as a Junior Software


Developer for 7 years. Then, he gave up this career. In the
meantime, I managed to get a job as an Intermediate Software
Developer, despite having a full-time job for only 7 months. So I
thought about what I have done to be in this position and decided to
share with you the most important 7 parts of this process.
The information I will share with you is relatable for any Software
Development position, but I will give concrete examples about
Frontend Development, because… I am a Frontend Developer.
Makes sense, right?

1. Before Your First Job


Now you might be asking: “Oh-oh, what are you doing here? I
thought it was an article about how to get a great second job, I can’t
turn time around.” You can’t, but you can reflect on the skills you
had when you got your first job. Maybe you were already halfway to
being an intermediate developer!

One thing people tend to underestimate is their previous


background and how it can improve their value. Sure, employers
look first at job experience in the current working field. But
they DO look for your other experiences. Just because you are
working as a full-time frontend developer for 7 months, this doesn’t
mean that you only have 7 months of experience.

So, when you start your first job in a domain, you certainly have
some other qualities you should know how to value. Let me give
you an example: I recently spoke with an HR person that was
recruiting a Frontend Developer for a warehouse related project.
She showed me a candidate profile and told me that she also
noticed that the candidate had previously worked in a warehouse
and thought he would understand the business better. So if you
make a professional reconversion, don’t just throw away all
your past experience. Think about how to get the best out of it for
your future job!

As a personal example, when I got my first job as a Frontend


Developer, I had already worked as an SQL Instructor for a year
and participated in a 6-month internship in a Business Intelligence
Department. Were they frontend specific? No, but the fact that I
already had some work experience and I had the ability to teach
others surely had an importance on the final offer. Also, I had a
Computer Science Degree, with a diploma project consisting of a
Full Stack Web App, so obviously, I turned this into my advantage.

The projects you build during college increase your value for the
job, but they aren’t the only ones. Maybe you have taken online
courses or coding boot camps, those are experiences that add to
your knowledge, and knowledge adds to your salary. For
me, Complete Web Developer in 2020: Zero to Mastery was even
more important for getting my first frontend job than my college
degree, and I am pretty sure I had more knowledge than most junior
frontend developers, even before starting a job.

The takeaway from this section is the following: think about


what experiences you had before your first job in your current
domain. Do not underestimate them, they add to your value!

2. Choose Your Job Wisely


No matter if it’s the first or the fifth one, you will work for this job
tens of hours a week. That’s a lot of time, so you definitely want to
use it wisely. A colleague told me a great question he was asked
once by a manager:

“Do you have 5 years of experience, or the


same year of experience, repeated 5 times?”

Think about it. For example: in your first year, you work on building
an e-commerce platform. Then you change your job, and for the
next two years, you build a similar e-commerce platform, with the
same technology. Is this a good career choice? Sure, you feel very
comfortable doing the same thing, because you have experience
with it. But the situations that move us out of the comfort zone
make us progress, and to learn more, you have to work on
different scenarios.

Choose jobs that challenge you. Apply to jobs for which you have
solid knowledge, but you still find something new to learn. For
example, I chose my second job not only because the main
technologies were React and Redux, which I had good knowledge
of, but also because the company used automated testing,
Typescript, CSS-in-JSS and some other topics I barely touched but
had great interest to learn.

Also, do not go JUST for the money. Choose jobs where you
have people who you can learn from, where you have a good
development environment. Search for companies that care about
their code, have code reviews, refactoring and other things that will
make you a better developer.

3. Master Few Topics


When I finished my 3rd college year I had to apply to jobs as I was
forced to practice my computer science skills for at least 3 months.
It was a nightmare. I realized that I didn’t know too much about
anything. I knew some C, some Java, some Python… but there
were so many students out there way better than me! How could
any employer want me? When I got my first offer I accepted it
immediately, despite the salary being less than attractive.

After a couple of months, I realized that I was doing it wrong. Why


should I use my limited resources to learn 10 programming
languages at a decent level, when I can master 1–2 and use those
for my job? So I began learning JavaScript and its whole ecosystem
and results started to appear.

Fundamentals of a language are not that hard to learn and


sometimes they are enough to get the first job. But then? How do
you stand out from the other developers? The answer is to not stop
learning! Go a layer deeper into learning a programming
language, its best practices, and its ecosystem. Do not continue
just with your day-to-day uses, go more in-depth. Do you know all
the syntaxes and functionalities your programming language offers?
Is your coding style appropriate?

During my first job, I realized that my level could be significantly


improved, so I allocated a few hours weekly to practice. Advanced
JavaScript Concepts was the course I’ve taken to better understand
the inner workings of JavaScript. And because almost every
programming language comes with frameworks, I have
followed Complete React Developer in 2020 (w/ Redux, Hooks,
GraphQL) to strengthen my React knowledge.

JS: First function call returns ‘obj1’, the second returns undefined. Can you explain
why?

What is the benefit of mastering a programming language? Not


only that you’ll rock your interviews, but you’ll also be more
productive at work because you’ll have a better understanding
of the code written by others.

4. Build Stacks Of Knowledge


Let’s take into consideration this scenario: 2 people apply to the
same job — Frontend Developer. One person knows JavaScript at
a good level, Python at a good level and Java at a good level.
Another person knows JavaScript at an excellent level but has no
idea about Python and Java. Who do you think will get the job,
taking into consideration that JavaScript is the only frontend related
programming language out of the three? If you guessed the second
person, you're right.

But hey, the more you know, the more valuable you are, right? It is
true, but it depends on how your knowledge can help the business
you’re working on. I have already mentioned above that you should
master one programming language. But then what? How do you
continue to add more value?

In web development, there are 3 major parts: Frontend, Backend,


and DevOps. For the frontend, we use technologies like HTML,
CSS, JavaScript, React, etc. You have mastered HTML and CSS?
Nice, now master JavaScript! Done with JavaScript? Master React!
Once you master all the Frontend stuff, go to Backend, there is a lot
of knowledge out there. Finished backend? Go to DevOps!

To be even more explicit: learn technologies that link to each


other. Do not learn 5 different frameworks that do exactly the same
thing. Use your time efficiently and match your learning to what you
want the next step in your career to be. Luckily for you, if you are
interested in web development, there is an amazing GitHub
repo: developer-roadmap, which presents you the whole Web
Developer Roadmap, in a nice graphic way.

*Starting image from Kamran Ahmed’s GitHub repo: developer-roadmap*

Also, another reason why I have chosen to follow Complete Web


Developer in 2020: Zero to Mastery at the beginning of my Web
Developer career was that it had a continuation: The Complete
Junior to Senior Web Developer Roadmap. Short terms objectives
are great but having a long-term vision is even more important. You
should continually ask yourself questions like “What am I planning
to learn this year?” and “Where do I want to be with my career
in 2 years?”. Once you figure out the answers, find the best
learning resources and start working in that direction.

5. Build Personal Projects


I remember when one of my top college classmates told me he
received some interview rejections because he had no personal
projects. He had always done all the assigned homework and was
skillful in a lot of programming languages. Were personal projects
that important?
Let’s analyze this a bit further. Two developers with the same years
of experience go to an interview and they both answer all the
questions. How do you decide between them? Sure, attitude is
extremely important, and we’ll talk about it at point 7, but there is
another important part (you probably guessed again): personal
projects.

Why are personal projects so important? First, they show that you


have passion and desire for improvement. Everybody wants a
developer that is continually learning and evolving. Second, how
can you show an employer that you can write quality code and you
know the technologies you list in your resume? Sure, they can ask
you at the interview to write a mini-project, or ask you a lot of
theoretical questions. But having a decent GitHub account where
people can see the projects you've built and the code you write can
make things more clear.

But what personal projects can you build? How to be relevant? A


good start would be to choose online courses that teach you
concepts while also building real projects. For example,
in Complete React Developer in 2020 (w/ Redux, Hooks,
GraphQL) you learn how to build a complex e-commerce platform
from scratch. But wait, is it ok to put the projects built by others in
your personal portfolio? As long as you were able to completely
write them by yourself, you fully understand your code and you are
able to explain it, it is totally fine. Never put things in your
resume/portfolio that you do not really know!

Complete React Developer in 2020 main project — a complete e-commerce platform

When you feel comfortable enough, start building projects that


could be used by real people, like a simple presentation site for a
business, or a portfolio template to help the community. If you can
get paid for your personal projects, that's great, but if not, try to help
others. The main goal is to build things that challenge you and
improve your skills and value. You might not be paid
immediately, but if these projects increase your knowledge, be
sure that the next employer will increase your salary!
Oh, and one last thing. Personal projects do not mean only writing
code on GitHub. For example, during the last year, I have been a
JavaScript Instructor, teaching more than 70 people the
fundamentals. In the last 4 months, I have actively worked to
develop a React course from scratch, to help my students find their
first job. When I applied to my current job, I was called in to
interview for a junior role. But after the interviews, they told me that,
despite my little experience, I seem to know a lot more due to my
teaching experience and personal projects. After one more good
interview and I was offered an intermediate position!

6. Learn Algorithms and Data


Structures
Oh boy, my college nightmare… I failed my algorithms exam 4
times. Without the help of my classmates, I wouldn’t have even
made the exam! If I hated something during college, it was
algorithms.

But hey, you said you are a Frontend Developer, do you need
algorithms and data structures in those jobs? To be 100% honest,
during my junior developer interviews I didn’t encounter them. At my
first job, I didn’t use them. However, at intermediate/senior
interviews, chances are very high you'll encounter them. Especially
when we talk about companies with smart developers, good
development environments and high salaries. Also, algorithms and
data structures apply to all software developer positions, so if you
want to be a top developer, you have to learn them! Why are they
important? When we talk about algorithms and data structures,
we're talking about complexity and the efficiency of the code
we write. Big companies want their code to be fast, to be
performant. They are also great for testing your problem-solving
skills, which are essential in your day to day activity, especially
when becoming an intermediate and senior developer.
Yihua Zhang, the instructor of Complete React Developer in
2020 did an AMA on YouTube from the most upvoted questions
from Zero To Mastery students about getting hired and succeeding
in your first year where he talks about this topic as well.

Now the big question: how do you learn them? One big difficulty I
had during my learning time in college was that I didn’t know the
inner workings of the programming language I was using well
enough. While coding data structures I was using C and for
algorithms, Java was my choice. I still have nightmares about those
pointers in C. The first thing is to choose the programming
language you want to master. For me, 6 months ago, when I
started learning data structures and algorithms again, the choice
was obvious: JavaScript. Next, pick a high-rated course that
presents the big 3 topics in your programming language of choice:
complexity, data structures and how you build them for scratch,
algorithms and their usage. For me, the best fit was Master the
Coding Interview: Data Structures + Algorithms.

After you have all the knowledge, you need more practice. There
are so many coding interview videos on youtube, challenge
yourself: can you solve them? Another good way to test yourself is
by solving challenges on algorithm platforms. Leetcode is a great
example. You can code in whatever programming languages you
like, they provide test cases and you can compare your time and
space complexity to others.

*LeetCode’s interface for its most popular problem: Two Sum*

I might have failed my college exam 4 times but I’ve passed my


most important algorithm exam by now: the interview. You can do it
too!

7. Behavior and Mentality


This is my favorite one. So underrated by many developers, but so
important to many team leads and managers.
I know managers that sometimes end their interview after only 5
minutes. Do you know why they do that? Because an interviewee
didn’t know how to answer a technical question? No, because the
interviewee is arrogant or disrespectful.

Recently, I was chatting with a friend about an interview and he told


me he was being asked the “classical stupid behavioral questions”.
Do not underestimate the importance of those questions. For my
new position, I received one hour and a half of behavioral
questions, not from HR people, but from my future colleagues. And
you know why this happens? Developers with good behavior and
mentality are really hard to find! Master the Coding Interview:
Data Structures + Algorithms has a dedicated section for non-
technical questions and how to tackle them. I suggest preparing
behavioral questions before the interview, introspecting yourself a
bit to realize your biggest achievements and weaknesses, it will
certainly boost your confidence.

I once saw a post on Facebook by a developer: “I hate working in a


team, the others just slow me down. Leave me alone and I can do
my job better”. Another friend recently told me about a work
colleague that refuses to help him when he has a problem. Do not
be that type of person! Do you think Facebook, Youtube or Amazon
could be built by only one person? Software development is about
teamwork, collaboration, and information sharing. Do not forget
that there was a time when you had no idea how to code
either. If others had not shared their knowledge, how would you
have learned?

There is another terrible mentality that I keep seeing by developers:


“I do not have any tasks allocated, so I’ll just waste my time until I
receive one”. This is crazy! Don’t you have anything new to
learn? No skill to improve? I had an interview at a company that
allowed the employers one full working day per month just for
individual study, to keep up with the latest technologies. Don't have
this attitude; keep improving and use your time efficiently. Have you
finished your tasks earlier than expected? Amazing, ask if there is
something else you can help with, do some online courses, improve
your skills, solve some algorithms, there are so many ways to
improve as a developer.

One last thing: do not underestimate yourself! Do you have the


word “junior” in your headline on LinkedIn? Why? Let your
employer decide your seniority level, it is not only about years of
experience! Learn how to value yourself and to highlight your skills.

Conclusion
Congratulations, you made it till the end! Growing in your career is
not easy and is not always linear. Sometimes you make progress
quickly, sometimes you struggle, this is normal. To be sure you are
heading in the right direction ask yourself weekly: “What have I
learned this week?”. Even if it’s a small thing, be proud, you are
making progress. Just make sure the pieces of information you
learn can be linked together at a point. This picture is quite
eloquent, making a small progress every day will have a substantial
impact within time:

Get out of your comfort zone, stay informed and keep a


positive attitude.

If you are interested in web development (and other software


development areas), you can check all the online courses I’ve
mentioned above at the ZTM Academy. There are so many
resources from where you can get your information these days, but
you don’t have infinite time. The ZTM Academy courses have
massively helped my career move forward, so I can recommend
them to you with no hesitation. Andrei Neagoie is an amazing
instructor and I can’t be thankful enough for what he’s done for me.

If you have any additional questions or messages, feel free to send


me (Razvan) an email at [email protected]. I might not
answer immediately, but I’ll definitely do my best to give a useful
reply. Also, tell me: what would you like my next article to be
about? I would love to hear that!

You might also like