So you just learned to code, and you're excited to tell the world and get started on your career.
But here's the thing: Don’t sell yourself short.
Seriously, don’t be or call yourself a Junior Developer. A Junior Developer puts this title in their resume, emails, and LinkedIn… They announce it to the world. Don’t.
Why not?
Because when you do that, this is what recruiters and companies see:
“Hi, I’m desperately looking to get hired as a developer.
I’m still new at this, but can you please please please place a bet on me and hope that I turn out to be an asset and not a liability for your company.
Oh, and I’m also going to need a lot of help from your current employees for the first 6 months!”
But, I AM a Junior Developer!... you say.
If that's the case, then you will have better long-term success if you focus on improving your skills to become an intermediate developer.
Only then should you start applying to jobs.
Dedicate yourself full-time to learning proper skills. This way, you don’t pigeonhole yourself to the “junior” developer role that you brand yourself as.
Remember, first impressions are important.
By getting hired as a junior developer, you will have to spend a longer time getting out of that role than if you would have spent a little more time getting comfortable calling yourself an intermediate developer (or just a "developer") and getting hired into that role right away.
But how do I know when I’m not a Junior Developer?
There won’t be a magic moment. You will always feel like you don’t know enough. You will always feel like others are smarter than you.
This is called impostor syndrome. It’s normal and every developer feels it.
Here is a simple test to determine if you are a junior developer:
- Can you explain to your family members how the internet works?
- How a computer works?
- How websites work?
- Do you have a basic understanding of HTML, CSS and JavaScript to the point that you can build your own websites?
- Do you know a little bit of React?
- Have you built a few projects on your own on GitHub and are comfortable putting websites and apps online?
If you can answer yes to all the above, then you are not a junior developer.
But I need a job right now!
Stop that short-term thinking.
Unless your job involves you working with really smart people that you can learn from every day, on technologies that are relevant and current (few junior developer roles offer you this) then your time would be better invested learning skills to get out of the junior mindset.
Long term, you will earn more money, be working with better developer teams, and you will be more likely to work for a company that teaches you and let’s you work with up-to-date technologies every day.
Don’t work on updating a Wordpress plugin as the resident junior developer of a law firm.
That won’t help you long term.
If you apply for junior developer roles, the best case scenario: you get hired as a junior developer.
If you apply for intermediate developer roles, the best case scenario: you get hired as an intermediate developer and get paid far more.
So like I say, don’t sell yourself short.
Great pep talk Andrei. But I still have no idea what I’m doing. I’m definitely still a Junior Developer!
Fair point. That's why I created The Complete Junior to Senior Web Developer Roadmap, the ultimate resource to get people out of the “junior mindset”.
The best way to do that is to understand the whole developer ecosystem on the web and even the selective knowledge known by only senior developers.
This course teaches you the things that nobody else teaches you, all in one go.
Here are the topics I cover:
- SSH
- Linux Servers
- Performance (from minimizing DOM updates to Load Balancing)
- Security
- State Management
- AWS lambda and other server-less architectures
- TypeScript
- Server Side vs Single Page Applications
- Testing
- Docker
- Sessions with JWT
- Redis
- Progressive Web Apps
- Continuous Integration / Continuous Delivery
- Know how to properly leverage AI tools (lots of misconception about this one out there right now... more on this later)
These are the topics that will make sure you are not a junior developer.
The course is focused on connecting the dots between all of these so that the next time you are in an interview, you can speak intelligently about current tactics for building projects, architecture, and setting up developer environments.
It is the follow-up course to my complete web developer bootcamp.
If you're not ready to fast track your journey, then here's the exact topics and skills you need to learn to go from Junior to Senior in the next 12 months, using mostly free resources.
The 15 skills required to go from Junior to Senior Developer this year
To become a Senior Developer, you will need more than just technical skills. I have written extensively about the other “peripheral” skills (i.e. people skills) in my article How To Become A Senior Developer.
Ok, enough chatter. Let’s get started and have a look at what skills you need, and how to get you out of being stuck as a Junior Developer in 2025.
Here's the assumption I'm going with here:
- You know HTML, CSS and Javascript.
- You have built a few projects yourself.
- You understand how to work with Github
- Perhaps you also know how to create a simple Node.js server
If this is not the case, go learn all of this here first.
However...
- If you still feel like you know a tiny bit in a giant universe of skills.
- If you find yourself stuck thinking where should I get started on a new project.
- If the idea of your boss asking you to be in charge of a project scares you.
- If you don't know how to make good architectural decisions.
Then you need to work on the skills I outline below.
As with all of my articles and courses, our focus is on efficiency. We all have the same hours in a day, but some people are able to learn and do more than others.
Side note: That's actually a skill you can learn. So my #1 suggestion is to first become an efficient learner.
I'm going to save you a ton of time because rather than having to jump around to a bunch of different articles and YouTube videos, I've outlined everything that I recommend you learn below.
These are the skills (and resources... mostly free) that will make you stand above a Junior Developer role:
1. Learn About SSH
- Learn about how SSH works, and how to SSH into a server.
- Learn a little about Symmetric and Asymmetric encryption as well as Hashing
- Learn how to manage SSH keys
2. Learn Advanced JavaScript
- Learn common algorithms and data structures
- Learn some common design patterns
- Learn the difference between OOP and Functional Programming. Pros and Cons of each
- Learn common Functional Programming techniques
- Learn how to Optimize Code
- Learn how modules work
Update: All these above are still great resources but if you want to learn everything above and more, all in one place... you can also check out my Advanced JavaScript Concepts Course.
3. Learn How to Improve Web Performance
- Learn about network performance: improving delivery and minimizing files and images
- Learn the differences between HTTP/2 vs HTTP/1.1
- Learn how the Critical Render Path works
- Learn about pre-fetching resources
- Learn about code-splitting
- Learn about CDNs
- Learn about compression
- Learn about Caching and all the places you can use caching
- Learn how to do Load Balancing using Nginx, then try load testing on it
- Go over important performance topics following this tutorial
4. Learn About Progressive Web Apps
- Learn how to build a Progressive Web App
- Learn about the key things that allow us to create such apps: HTTPS, App Manifest, and Service Workers
5. Learn a Popular Frontend Library + How to Manage Complex State
- Learn a popular frontend library/framework like React, Vue or Angular to build large web applications. My choice (and top recommendation) is to learn React but you can pick whichever suits you
- Learn the principles of Redux (or other state management tools) and not only how to manage state but how to think about data flow through your app as it grows
- Learn about Event Sourcing and CQRS which inspired Redux
- Learn a little bit about module bundling using Webpack, Vite, or Parcel
Update: Already a member of ZTM? You can learn React, Redux, and more and become a top 10% React developer with our Complete React Developer Bootcamp.
You'll get to implement your knowledge by building a massive E-commerce app with Redux, Hooks, GraphQL, ContextAPI, Stripe, Firebase.
Want to learn Vue or Angular instead?
No problem, take our Complete Vue Developer Bootcamp or Complete Angular Bootcamp instead!
Ok, back to the list.
6. Learn About Testing
- Learn the current testing landscape and the tools you can use
- Learn about the different types of tests: Unit Tests, Integration Tests, End to End Testing
- Learn how to write good tests
- Learn about TDD and BDD
- Learn how to write Asynchronous Tests
- Learn how to use Mocks, Stubs and Spies
- Learn about Snapshot testing
Of course, we also talk about testing in almost all of our programming courses but we also have a dedicated testing course here as well.
7. Learn About TypeScript
- Learn the benefits of having static typing in Javascript
- Learn how to use the TypeScript Compiler and how to write in TypeScript
- Learn the benefits of type checking
- Learn when and when not to use Typescript
- Learn how to use DefinitelyTyped
Or, if you want to learn everything in one place, then take our TypeScript course.
This course covers everything from beginner to advanced topics, so if you're a JavaScript developer who is serious about taking your coding skills and career to the next level, then this is the course for you.
8. Learn About Client Side Rendering vs Server Side Rendering
- Learn about when to use Client Side Rendering and when to use Server Side Rendering
- Learn the benefits of using Next.js or Gatsby.js instead of implementing your own server side rendering.
9. Learn About Securing Your Applications
- Avoid the most common security vulnerabilities like Injections
- Learn how to avoid XSS or CSRF
- Learn how to use HTTPS to make the web safer
- Learn about Access Control, SQL Injections, Command Execution, etc…
- Practice protecting against some of the most common attacks
- Learn why you would want to keep all software up to date
10. Learn About Docker and Containers
- Learn why containers are different (and sometimes better) than VMs
- Learn to create a Docker container
- Learn how to use Docker Compose to orchestrate services
- Learn to use Docker Compose to make developers’ lives easier
11. Learn About Different Types of Databases
- Learn about relational and non relational databases
- Learn when one is better than the other in certain situations
- Understand the benefits of in-memory data stores like Redis
12. Learn How to Manage Sign In + Sessions In Your App
- Learn how to manage sensitive user information like passwords
- Learn the difference between cookie based authentication and token based authentication
- Learn how you can use JWTs
- Implement your own authentication/authorization flow in your app
13. Learn About Infrastructure as a Service and Platform as a Service
- Browse some of the most common offerings by the big players like AWS, GCP, Azure and IBM Cloud
- Learn about functions as a service like AWS Lambda and using Serverless
- Create your own Digital Ocean Droplet and run a server
- Learn about serverless architecture
- Learn about Monolithic vs Micro Services architecture
14. Learn About Continuous Integration, Delivery, and Deployment
- Learn about Continuous Integration, Continuous Delivery and Continuous Deployment and how you can manage large projects to run smoothly.
- Learn to set up tools like CircleCI or TravisCI on Github.
- Learn to work in teams
15. Start learning how to use AI tools like ChatGPT to become more efficient and learn faster
You thought I was going to leave this one out didn't you?!
To be clear, I haven't added this to the list for 2025 just because it's the hot and trendy thing right now.
I've spent 200+ hours going deep and these tools are definitely here to stay and are going to become a key part of the developer's toolkit to become more efficient and deliver more value.
However... there is a right way and a wrong way to use AI tools.
Also I feel strongly that AI tools aren't meant to completely replace programmers.
Keep these 2 rules in mind:
- An AI tool SHOULD SAVE YOU TIME. By saving you time, it makes you more productive and increases your value.
- An AI tool SHOULDN'T ADD COMPLEXITY. It’s the biggest thing that senior engineers do for companies. They prevent complexity of a system.
But should you use it to help you learn? Absolutely.
However, you need to be careful because you can use it in the wrong way that negatively affects your learning and fundamental understanding to become a senior level developer.
I created a workshop for ZTM students to show them the right way but recently made it free to anyone to take advantage of. I hope it helps.
What's the difference between a Senior Developer and a Junior Developer?
As I'm sure you've noticed by now, the difference between junior developers and senior developers isn't just the technical skills listed above.
That's not enough.
There is also a set of non-technical skills that are just as important. I wrote a whole post that covers these 5 other important non-technical skills you need to become a senior developer so I won't re-write it here.
But the high-level answer is:
A Junior Developer writes code and just does the work they're told to do.
A Senior Developer is someone who brings an incremental benefit to the table. A Senior Developer is someone that:
- Makes people around them better
- Thinks higher-level and has a longer-term vision
- Is able to communicate clearly and effectively with their teams
- Comes to the table with solutions to problems rather than just identifying them
- Consistently delivers and produce business value
Conclusion

Does your head hurt yet?
This will take a while for you to go through but at least you have a roadmap of what is important for you to learn in 2025 to go from Junior to Senior Developer.
Being a developer is a never ending journey of learning as technologies always change.
In order to keep up with the industry, your best bet is to be efficient and be wise about what you spend time on because it is impossible to learn and know everything.
Focus your efforts on connecting the dots.
- Why do these technologies and solutions exist?
- What problems do they solve?
- What are the pros and cons of using them?
By learning the fundamentals, you are more resistant to change.
This is the theory behind all of the courses that I teach.
And just in case you're wondering... yes, I do have a course that teaches all of the topics mentioned above. It's called The Complete Junior to Senior Web Developer Roadmap.
It has over 37 hours of professional, HD video lessons and gives you everything in one place to guide you along your journey to becoming a Senior Developer.
You don't have to take my word for it either. Check out the screenshot below which is from a post by a ZTM graduate.
Will 37 hours be enough for you to call yourself a senior developer?
No! Of course not. That's just silly. But it will guide you along the right path.
If you take away one thing from this article…
Stop calling yourself a Junior Developer. But always keep a Junior Developer mindset.
What does that mean?!
This means that you are constantly looking to learn from others and improve (junior mindset), no matter how senior you are but you never settle for a junior developer role.
Apply for roles for which you are under-qualified, not over-qualified.
Remember that if you never ask (or in this case, never apply to the intermediate role), the answer will always be no.
Don’t overestimate the world and underestimate yourself. You are better than you think.
All articles in this 3-part series
- Part 1: Learn to code for free & get hired in 5 months. Full step-by-step guide to go from complete beginner to becoming a web developer.
- Part 2: Don't Be A Junior Developer: The Roadmap From Junior to Senior. Seriously, don't be a junior developer. These are the steps and topics to learn to become a senior developer.
- Part 3: How to Interview, Land a Job, and Get a Raise. The strategies and tactics I used to get multiple job offers after following the steps in this guide.
These days, my full-time job is to teach people to code, get hired and advance their careers in the most efficient way possible as the Lead Instructor of the Zero To Mastery Academy. You can see a few of my courses below or see all of our courses by visiting the courses page.









