DEV Community

Cover image for 10 Things To Know As A Fullstack Developer 👁️👄👁️

10 Things To Know As A Fullstack Developer 👁️👄👁️

Niharika Singh ⛓ on September 02, 2020

Being a fullstack developer is hard. What's even harder is to keep up with the ever changing dynamics of development. In this blog, I have outline...
Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

I always find it weird that the terms "Full stack developer", "Front-end developer", and "Back-end developer" even exist. I've been a "web developer" for around 20 years and have always done a bit of everything as that's what the job entailed (and had been programming long before that since the age of 7). I've never found any of it 'hard'.

If you're a competent developer, you should be able to apply your skills across the board. A fuller understanding of how everything works greatly benefits the implementation of all websites.

I guess it's possible that these roles have appeared due to the explosion of (frequently unnecessary) tooling that has sprung up in most (if not all) areas of development. There are so many tools to learn, that being able to do 'everything' probably seems like a daunting goal.

Most new developers I see these days know how to use a bunch of modern tools/frameworks, but if asked to produce a site from scratch without any of these (including setting up servers, deployment, designing the database structure, writing the back end, writing the front end HTML, CSS, JS), they would be totally lost. Most modern tooling seeks to make things 'easier' for developers - largely at the expense of a lack of understanding of how things work, a lack of consideration for efficiency, and a tendency to use sledgehammers to crack nuts.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thank you for sharing such an interesting point. I agree to everything you said. Nothing is sexier than having a good grasp on foundational knowledge. It's also true that these days this foundational knowledge is being abstracted from the developers. Maybe we will see a manifestation of this thought 20 years from now.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Personally, I like to keep things synchronized, as I like to develop Front-End and Back-End together. I do not have the attention of developing the front-end first and then the back-end. I work on the basics of the features as after completing one feature, both front-end and back-end I like to move forward for a new features.

Collapse
 
niharrs profile image
Niharika Singh ⛓

I actually meant that in your learning journey, you should learn frontend dev before backend dev. This usually works for most people. But of course, this is not 'one size fits all'.

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid • Edited

Oh Nice, so it was from the learning prospective.

Collapse
 
desbest profile image
Adisa Nicholson

I don't know CI/CD, DevOps and NoSQL. I suppose a web developer can't know everything there is to know lol

Collapse
 
niharrs profile image
Niharika Singh ⛓

Of course expert level of knowledge is not expected. But certainly, a dev should know about CI/CD and definitely NoSQL.

Collapse
 
nachtfunke profile image
Thomas Semmler

To people who ask themselves the question: Of course it is good to have a broad understanding of how things in your related fields work, but nowadays companies are looking for specialists. If you aspire to be a "full stack developer" then you'll inevitably will be seen as a master of none. Don't become a unicorn and don't let companies or blogposts tell you that you are not good enough with your specific knowledge.

TLDR: Don't try to be a full stack developer.

Collapse
 
bitschupser profile image
Alex Rampp

I think the problem is, that the term "Full Stack Developer" is very overloaded these days. I rather rely to the T-shaped skill profile model. Having a broad knowledge in many fields combined with strong mental models how things basically work and having really deep knowledge and years of experience in one specific field.

Collapse
 
gabrieljosehernandez profile image
Gabriel Hernández

Awesome post, thank you, I already saved in my bookmarks, other point to be considered software quality through testing (acceptance, unit, white box, end2end test) the most important to mention, and git & scrum all of these items are used in both sides

Collapse
 
bitschupser profile image
Alex Rampp

I agree in my opinion the knowledge on building robust, high quality software is very rare. Probably this is also a problem of the culture many dev blogs spread. They build simple examples that convey everything is easy and fast to build. But as soon as it comes to larger applications this often leads to a problem.
There, building good abstractions and testing on different levels of these abstractions becomes fundamental.

Collapse
 
bitschupser profile image
Alex Rampp

One thing I read in another article on carer building advice that resonated with me:

Build strong mental models.

Looking under the hood, sometime getting a step back and thinking of the bigger picture around. Looking back at my learning, this meant for example:

  • I learned Object Oriented Programming, not Java
  • I learned functional programming, not Scala
  • I learned reactive programming, not rxjs
  • I learned the Redux pattern, not the ngrx library

Looking on the bigger picture and thinking about which fundamental patterns the specific library/framework implements often helps switching fast from one technology to another.

Collapse
 
iamraviprakash profile image
Ravi Prakash

Thanks Niharika for such quick insights on what to care about when you are a Full Stack Developer.
One thing I would like to request you that if you can share your notion strategy in a blog or share a link. It will be a great help.

Collapse
 
yurieastwood profile image
Yuri Eastwood

Nice article overall! As you mentioned in some comments of course there's no "one-size-fits-all" answer to everything but this is a good kickstart!
I think the "fullstack" approach should be taken more as a "knowledge path" to you, the developer, and not some random job title. Companies will always want people to do more with less.

Collapse
 
markentingh profile image
Mark Entingh • Edited

I've been developing on the Microsoft stack for 20 years now. I'm launching an app I've been working on for nearly 2 years now, built on ASP.NET Core & SQL Server and runs on Amazon AWS Fargate (in Docker containers) & RDS (SQL Server 2019). I learned how to build Cloud Formation JSON files and deploy my cloud infrastructure in any region within 10 minutes (public/private subnets, load balancer, NATs, VPC Endpoints & PrivateLink, Fargate tasks, security groups, RDS database, the whole nine). I use a simple batch command to build & deploy (CI/CD) my ASP.NET Core project which uses Docker Desktop for Windows & Amazon AWS CLI to do the heavy lifting. When I deploy, there is no downtime for my app since Fargate keeps the existing Docker container running until the new containers are provisioned and running. Visual Studio will update my live database schema when I publish the SQL Project to the remote server. My app auto-scales because of Fargate & RDS. I love being a full-stack developer.

Collapse
 
mccurcio profile image
Matt Curcio

I thought this was going to have a little more meat on the bones, a little thin.

Collapse
 
niharrs profile image
Niharika Singh ⛓

well, sorry for that! 🙈 i am myself a beginner/intermediate dev. so i share whatever i learn. :)

Collapse
 
mccurcio profile image
Matt Curcio

Hi Niharika,
I am sooo sorry. I should not have been so critical.
Welcome to Dev.to.
I think (besides me :( ) everyone here is friendly.

Keep going and keep writing.
If I can help you in some way please let me know.
I cannot say I will help but I will TRY. ;))

I had a Professor claimed the best way to learn things is "Through your arm!"
What he meant was writing and practice is the best teacher.
Faithfully,
Matt C.

Collapse
 
sipirituallist profile image
Aamir

The full stack is a term but in essence knowledge is the power, I believe. This article gives beginners an abstraction of relevant tools & technologies.
Good Wishes

Collapse
 
fahaddevs profile image
Fahad Bin Faiz

really good article

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thanks! 😊

Collapse
 
doc22940 profile image
Acampbell

I’m not sure if I should go take aa shower after reading all that, or change my occupation for my online dating profiles.

Collapse
 
ggenya132 profile image
Eugene Vedensky

What does it mean to ‘truly love computer science’? Gate keeping much? 🙄

Collapse
 
camilovietnam profile image
Camilo

Nah screw that, all you need is an ergonomic wireless keyboard and a browser with 10 stack overflow tabs

that's how pros do it

Collapse
 
mike_hasarms profile image
Mike Healy

I'd also throw Accessibility (A11Y) in as being a mandatory skill.
Needn't become an expert, but accessible principles should be part of the dev process.

Collapse
 
niharrs profile image
Niharika Singh ⛓

This would be a really helpful add on. Thanks for sharing!

Collapse
 
77siddharth profile image
Siddharth Agrawal

hey, i am new to programming ! had exactly these things in mind. Could you share the resources how to get started with these giving examples for each point? cause i am a bit confused.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Okay! :)

Collapse
 
jcsmileyjr profile image
JC Smiley

Great article

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thanks!

Collapse
 
nikhilroy2 profile image
Nikhil Chandra Roy

It's very useful content for me.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thanks! :D

Collapse
 
scroung720 profile image
scroung720

Great post as always. 'cloud virgin' 🤣

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thanks! :D

Collapse
 
gabek profile image
Gabe Kangas

Don't forget about mobile apps! iOS and Android devices are a huge part of "the stack", sometimes much more so than frontend web for many places.

Collapse
 
ashk26 profile image
Ashish

Thank you for this. This is a pretty comprehensive list and a good reminder.

Collapse
 
eddsaura profile image
Jose E Saura

Thanks for sharing! Honestly, the devops part is why I am thinking on focusing more in the design, and ui/ux development hahahah 😆

Collapse
 
andrewbaisden profile image
Andrew Baisden

5 is super important even jobs that list NoSQL require you to have an understanding of SQL as well I have noticed. I am only missing Docker from this list I guess 😅

Collapse
 
bellomuboye profile image
Bell Omuboye

Beautiful Article.

I recently decided to commit to being a Fullstack developer and I agree with your tips here (with my own personal spin on them of course).