DEV Community

You Can't Learn Everything

Beekey Cheung on February 18, 2017

There is a lot to learn about software development. I’ve heard many jokes about how many front end frameworks there are. Back end frameworks are ...
Collapse
 
heydado1 profile image
Heydad Helfer

It's a common misconception, that the phrase "Jack of all trades, master of none" comes as a warning that being an expert in one area is the way to go, while the phrase actually has a second part, ".., but often times better than master of one."
Think about it - which will be the better developer, the one who know Java, the whole Java, and nothing but Java? Or the one that is flexible enough to understand databases, DevOps, front end, product, etc., even if on the day-to-day he works in Java? Who will bring you the most value, the one that will reply with "I don't work with Python"/"HTML isn't really a language", or the one that says "Give me a couple of hours, I'll get it done"? Who will you return to for the next job?
There might be better Java, Python, Front End developers; DevOps engineers; DBAs, but the one that has knowledge in all of these subjects, can give a better solution.

Collapse
 
rkfg profile image
rkfg

Who will you return to for the next job?

And this is the problem. You might end up doing all sorts of jobs for other people so they can slack off instead of learning themselves. Been there done that.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

There's an implication here that I think should be explicitly stated: people should be able to work in any of the domains, it just doesn't need to be their specialty.

I'm in agreement with this. I think it's extremely important that a front-end coder actually knows how the full stack is put together, and would actually be able to contribute to any of the parts. Without this they risk becoming an isolated specialist and can no longer make decisions appropriate for the project as a whole. Same goes for the backend people, they need to know how UI coding works in order to build appropriate APIs.

This also ensures anybody can work vertically across the project. If this doesn't happen then you end up with a highly fragmented system where the components no longer fit together well.

Collapse
 
courier10pt profile image
Bob van Hoove

I think it's extremely important that a front-end coder actually knows how the full stack is put together, and would actually be able to contribute to any of the parts

I agree with this to the extent that a basic understanding of the stack is required. Other than that I think being able to work on the UI model together should suffice. Being able to contribute to any part not so much.

Collapse
 
ebenoladutemu profile image
Ebenezer Oladutemu

This is the best comment on here. Brought a balance to everything!

Collapse
 
asynccrazy profile image
Sumant H Natkar

100% agree with you, but nowadays there is just explosion related to technology. I am a dot net developer and have learnt MVC+ WebApi+Entity Framework and worked on enterprise apps using these technologies.

But nowadays people want you know the above basics along with a JavaScript framework also they want you to know containers and some exposure to cloud like Azure.

Although I have explored Angular bit, but Azure and containers are huge technologies to learn and you just don't know where to start from.

Collapse
 
jan_atac profile image
Jan ATAC

Your post reminds me my grand father saying : "You can't do anything alone". That said, I found always hard to keep a sustainable group of thinkers/contributors on the mid and long term. Quite easy when you're student, harder when you work, challenging when you have family engagement.
Learning effort is one thing, creating and keeping strong ties with individuals sharing our interests requires a life long motivation.

Collapse
 
pbeekums profile image
Beekey Cheung

I may have described the "group of thinkers/contributors" a little too neatly. I don't think it works out in a way where people can regularly get together and exchange information. Mostly I just ask people directly for advice when I need it and I take time to give advice when I'm asked. I don't really pay much attention to whether my exchanges with various folks is even and I don't think they do either. It's just nice to know that someone is available to help when I need it.

Collapse
 
thiagotacito profile image
Thiago Tácito Siqueira

I think the central point in this article is knowledge sharing. You'll be a specialist in one area and will share your research to influence others. At the same time, you receive a baggage from other areas in a more summarized way, and thus, you will learn more about other areas to apply in your work and stand out in it, for example.

Collapse
 
sahaynishant342 profile image
Nishant

Quite agree with your viewpoint. Become a master of your own domain and be in the company of those who are masters of their domains!

Collapse
 
sahaynishant342 profile image
Nishant

Quite agree with your viewpoint. Become a master of one domain and be in the company of those who are masters of their own domains!