DEV Community

Brian G.
Brian G.

Posted on • Edited on

Which Skills Are Essential for Junior Full Stack Developers? βœ… πŸ‘©β€πŸ’»

At Curricular, my team and I spend hours researching, reviewing, and recommending the best ways to learn development skills. You can check out our learning guides at curricular.dev

As part of our research, we decided to compile a list of the skill areas that are needed to work professionally as a Fullstack Developer, mostly independent of frameworks or tooling. This is the sequel to our previous post about the skills Frontend Developers need.

And now I'd like your feedback.

About the List of Essential Skills for Junior Fullstack Developers

My team interviewed a bunch of senior developers, sifted through a lot of the readily-available online advice, and debated with one another to produce this list.

Our goal is to help aspiring fullstack developers understand which technical skills are most important to prioritize, in order to excel as a Fullstack Developer and meet or exceed your teammates' expectations.

Of course, learning never stops, and some skills are important to acquire as you gain experience as a junior developer. So we've separated skills into a Foundational List and a Growth List with new and Junior Fullstack developers in mind.

The items in the Growth list are things that a Junior developer would not be expected to handle alone, right out of school, on a team.

Within each, the knowledge areas have been categorized into domains: UI Design & Interactivity, Frontend Servers, State Management, HTTP Request / Response, API Development, and Databases. These are somewhat loose domains meant to help you consider skills based on their main purpose.

Often the skills cross into multiple areas, so don't take this as a strict classification; placing a skill in one domain versus another doesn't mean that it precludes the others.

Of course, these are technical skills. There are additional nontechnical skills you'll need in order to excel, like teamwork, creativity, problem solving, pair programming, and estimation. Those are also left off at this point.

I'm excited to hear your feedback!

Foundational Skills

User Interface Design & Interactivity

HTML

  • Syntax
  • Elements
  • Attributes
  • Document Structure
  • Properties
  • Events

CSS

  • IDs and Classes
  • Dynamic Layouts and Responsive Design
    • Flexbox
    • Grid
    • Variables
    • Media queries
  • Frameworks - advantages, tradeoffs, and basic usage
    • Tailwind
    • Bootstrap

JavaScript

  • DOM Lifecycle
  • Browser event loop
  • Event listeners
  • Callbacks
  • DOM Manipulation
  • Async/Await
  • Promises
  • A JavaScript framework or library
    • React
    • Angular
    • Vue

Frontend Servers

  • Static Site
  • Server-side Rendering

Version Control

  • Git and GitHub basics (clone, fork, branch, merge, pull request, conflict resolution)
  • Writing good commit messages
  • Protecting sensitive information

State Management

Global State

  • Frameworks and Patterns (e.g. Redux)

Local State

  • Prop Drilling

HTTP Request / Response

  • Protocols
  • TCP/IP & IP Addressing
  • Route
  • Headers
  • Payload
  • Status Codes

API Development

Backend Programming

  • Fundamentals of a backend language and framework
    • JavaScript with Node & Express
    • Python with Django or Flask
    • Ruby with Rails

API Servers

  • Ports

Database Interfaces

  • ORMs
  • ODMs

Routing

  • REST
  • SOAP
  • GraphQL

Databases

Database Schemas and Models

  • Relational
    • Tables
    • Joins
  • Non-relational
    • Documents
    • References

Data Manipulation

  • Reading
  • Writing

Queries and Mutations

  • SQL basics
  • NoSQL basics

Database Management Fundamentals

  • Reliability
  • Efficiency

Additional Topics

Project Organization

  • Dependency Management
  • Source code kept separate from compiled code
  • All tests contained in their own folder

Web architecture

  • MVC
  • Microservices

Website hosting, delivery, and deployment

  • Cloud Computing Essentials
  • Cloud Platform Essentials (AWS, Azure)
  • Containerization (Docker)
  • Continuous Delivery and Continuous Integration

Software quality

  • Writing clean code
  • Testing and Test-driven development
  • Debugging strategies

Growth Skills

Generally, in most contexts, juniors will start working on support and some small contained features, with an increase in complexity as they acclimate and gain experience.

Some skills juniors will want to add in order to continue progressing include:

  • TypeScript
  • Accessibility
  • Security
  • Authentication and Authorization
  • Messaging / Message Bus
  • Caching
  • Enterprise Languages and Frameworks
    • Java with Spring and Spring Boot
    • C# with .NET / ASP.NET

What Do You Think?

Have we missed anything critical that you'd expect from a junior fullstack developer? Are there any skills on this list that you're surprised about? Or confused about? Let me know in the comments.

And if you're an aspiring full stack developer interested in learning these skills, check out our guide to the best fullstack programs and learning resources.

Top comments (11)

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

I'm not sure whether that really helps with the stated goal of prioritizing.
There are lots of people on the internet who makes lists of things that junior developers are supposed to learn.
I personally think that your list is better than most, but junior readers have no way to know really.

People who do this kind of lists usually do them with good intentions, but as we all know, the road to hell is paved with good intentions.

There is a reason we don't throw away all traffic signs all at the same place.

Image description

What I mean is that the actual effect this has to juniors is too often feeling "I don't know where to start, I am overwhelmed, I have imposter syndrome"

Collapse
 
brian_curricular profile image
Brian G.

I hear you on this. I should clarify that I'm envisioning this as step 1 - identify the key skills that are actually needed. Step 2 would be the roadmap of which skills to learn.

My hope would also be that in its current state, learners a bit further in their journey can look at the list to see which skills might be missing. Learners starting from scratch probably won't benefit from this current version.

Collapse
 
daniel15 profile image
Daniel Lo Nigro

Good list!

Ruby isn't as popular any more and I'm not sure it's worth learning in 2024. I'd replace it with C#. I know you listed C# in the "enterprise languages" list, but it's a general-purpose language that has way more use cases than just enterprise ones, runs on all major platforms, and the best IDE for it (Visual Studio) is free for individual developers.

I'd avoid SOAP, GraphQL and anything cloud (AWS) or containerization (Docker) until the basics are mastered. For a junior, these are "nice to have" rather than important things they should know. GraphQL in particular isn't a "one size fits all" and has particular scenarios where it's useful, and a junior dev won't yet understand the nuance there.

Collapse
 
brian_curricular profile image
Brian G.

Great feedback. I agree that cloud and containerization should follow other foundations, and point taken that these could be considered "nice to have" for many roles, but it also seems like the bar is moving more in the direction of "gotta have the basics" for those topics.

Agreed on GraphQL, that one would probably fit better beneath "Growth" skills rather than "Foundational."

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
brian_curricular profile image
Brian G.

Congratulations on graduating, and good luck with your job search, Jamey!

Collapse
 
tomosterlund profile image
Tom Γ–sterlund

Thanks for this. I've been a frontend developer for 4 years, but heard the term "Browser event loop" for the first time today. Only knew about the event loop in Node.js.

Links to helpful resources would be a nice improvement here!

Collapse
 
brian_curricular profile image
Brian G.

Thanks! Glad it was helpful.

While not linked in this post, we have published some guides recommending specific resources. Generally, our recommendations are comprehensive purpose built programs or learning paths, like App Academy Open, Odin Project, or paid resources like Udacity's Full Stack Nanodegree or a Codecademy career path. Those types of programs tend to be industry-aligned, have a nice flow that builds lesson upon lesson, along with hands-on practice.

But I also hear you on curating resources for the specific topics - would definitely take this list to the next level.

Collapse
 
luisovidio profile image
Luis Ovidio

From a Junior I would expect basic SQL knowledge, basic HTML/CSS/JS skills and a good logic.

From the company that is hiring the Jr, I would expect patience and having a experienced developer able to guide the Jr.

Otherwise we fall into the loop of "I'm starting to work, need some experience / Need some Jr with experience to work."

Collapse
 
brian_curricular profile image
Brian G.

Agree with you that companies need to provide great infrastructure to support juniors - experienced devs to guide them, career mentorship, and some well-defined and contained assignments as they're starting out. From my experience, companies are getting better at this all the time.

Collapse
 
prog_25 profile image
prog-24

For a junior, woah. This is a seriously comprehensive list.