On Becoming Full Stack
August 19, 2017
In the past few months I’ve had the chance to work on features that required back-end work. While the features may have been typical tasks for a back-end developer, they were new territory for me. As a front-end developer, I’ve generally been able to get pretty far only knowing the minimal amount of back-end subjects to get my front-end work done. As I mention below, I think there is some merit in being blissfully ignorant in some areas so that you can focus more on your specialty areas. But, I also think this approach can lead to knowledge gaps, which has definitely been the case for me. Black holes of web development topics that I sort of understand, but not quite enough to explain. Getting out of my comfort zone has allowed me to explore those unknown areas and remove some amount of “magic” from my understanding.
Background
To give some context, I have had some experience touching back-end areas, but this experience was limited to basic CRUD operations using Ruby and PHP. I do think this experience contributed in some way to my overall understanding, but not in a significant way. I might say up until a few months ago, I understood things like:
- The basics of HTTP and communication between the front-end and back-end (e.g.
GET
,POST
, etc.) - Primitive database knowledge. I knew that there were tables of “things” that may have columns that point to other tables of other things.
- The gist of authorization and authentication. I understood as much as I needed to about session cookies and authentication to get by as a front-end developer.
Specialist Vs. Generalist
I’ve always considered myself more of a specialist than a generalist. I enjoy going deep on topics and really trying to become an expert on them. I’m of the opinion that there are just too many topics to cover in web development to ever really know all of them. Being a “full-stack” engineer was never something I aspired to because I felt like I’d be overwhelmed trying to become an expert in too many topics. My experience working with full-stack engineers has been that most are closer to back-end engineers than front-end engineers. I also feel that a specialist may be a better career choice in the long-term, though I don’t have any actual data to back that up.
Despite my tendency towards being a specialist, I still love learning things and find it hard to turn down opportunities to do so. I’ve found that learning opportunities that come up at my job are especially beneficial because they have true business use cases. It’s not a todo list tutorial, but something that might bring real value to the business. Not that todo list tutorials don’t have their place, but the real-life context of learning things on the job adds an amount of motivation they may otherwise be hard to muster on your own.
Conclusion
I’ve dubbed 2017 as “the year of learning back end” for me and I’ve had a great experience so far. While I don’t see myself transitioning to a full on back-end developer anytime soon, I think that becoming a better overall developer can absolutely help me become a better front-end developer. Who knows? Maybe I’ll transition to a seemingly-rare full-stack engineer that leans towards the front-end instead of the back-end. I often look at web development as a big puzzle where I’m just learning how different pieces fit together. These new back-end bits are just a few of those stubborn, oddly-shaped pieces that help me see the whole picture a little bit better.