31: Listener Question from Jessica - "What exactly is a full-stack developer anyway?"
Published 3/30/2015
In today's episode, listener Jessica asks what a full stack developer is.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Develop or Tea. My name is Jonathan Cutrell, I'm your host and today I'm taking on a question from a listener named Jessica. Jessica's question references the thoughts on unicorns episode which you might want to go back and listen to if you haven't yet in order to get a full understanding of what we're going to be discussing in the answer portion of this episode. But first let's listen to Jessica's question. Hi Jonathan, I have a question for you. In your thoughts on unicorns episode you talked about full stack developers being able to solve whole problems instead of just specific tasks. This is a skill I really admire would like to cultivate in the context of web development. The listener you were responding to was thinking about taking a full stack development course, but that's not really on my roadmap. So my question for you is what sorts of projects and tools should I devote my time to? And what does it actually mean when you say full stack developer? Thank you. So here's what I love about this question from Jessica. She knows that she is not getting ready to go and take a course on full stack development. And yet she is still wanting to practice these ideas in her day to day life. I encourage you to do the same. If you are not pursuing your degree, that doesn't mean that the things that people learn to do while they are pursuing their degree aren't applicable to you. If you aren't currently a full stack developer, that doesn't mean that the things that are applicable to full stack developers are totally not applicable to you. In fact, we learn the most when we start looking at what other people are learning. We start looking at what other situations might require of us to do. There are tons of things that we can learn from people in other fields, for example. So I really appreciate Jessica's perspective and her drive to learn how to implement these kinds of things even when she's not getting ready to go and take a course in full stack development. So let's answer Jessica's questions. First, she says, what tools and projects should I be devoting my time to in order to learn this problem solving approach rather than just task completion? And I'm going to start with practical answers first. The best project that you can begin to implement this on is the project that you can do starting today. And the ones that are new that you have some control or some input on more than it just needing to be done and you being fed tasks in order to accomplish them. Anything that you have a little bit more control over whether that's a side project or one at work, maybe you have the opportunity and the authority in your given job to approach things from a little bit higher level that it would take to be able to do this to practice the skill of problem solving rather than task completion. I think a lot of developers are in a situation right now where they don't have the opportunities necessary in order to practice the skill because they are being fed tasks. If you are in charge of your developers, give them the opportunity to practice the skill. Please as a manager, please give them the opportunity to practice the skill of problem solving rather than just feeding them tasks to do. I promise you the benefits of this will far outweigh the risks. Give them the space necessary in order to spend some time with the problem rather than just simply turning through to do so the best kinds of projects for understanding and practicing problem solving are those that number one you have the authority to take your time and survey the problem rather than only being fed tasks. And two, the ones that are available to you don't try to seek out a new project just for this for the sake of this conversation or just for the sake of practicing problem solving take a real project that you already have in front of you. Now if you don't have a real project in front of you and you're trying to generate ideas, then go back and listen to the episode about idea generation in that episode hopefully will give you some inspiration for creating new ideas for generating new ideas even when you don't feel inspired or even when you don't feel like you have ideas in your brain already that just need to come out. So the best projects are the ones that are in front of you that you have the authority to take a step up from task task completion to problem solving and that sets the stage for the second part of Jessica's question which is what exactly is a full stack developer. Well let's identify first what those different things mean each individually full stack and developer start with stack what is a stack well traditional computing stack is something different than what we're going to talk about today. So we're going to discard that explanation but it kind of informs the understanding of what we're doing here which is a stack is all of the details from the most the highest resolution think interface and copywriting and design all the way down to the lowest resolution think bits and bytes zeros and ones. And so when you look at a technology stack you're talking about everything between the very raw fundamental pieces of the computer all the way up to the abstract psychological pieces of the person interacting with that computer and everything in between that's a stack and so a full stack would be all of those details specifically all of the details that have been implemented by a given application. So for example a Rails full stack developer who does web applications they probably don't consider themselves experts in assembly code because that's not part of the stack they have kind of a subsection of the full stack that we discussed earlier. So a full stack for most conversations is everything from a abstract programming language the bottom level most likely being see sometimes being like assembly language all the way up to the design the aesthetic elements as well as the interaction user experience in branding elements of design the aesthetic side. So how do you become a full stack developer well you have to have competencies in each of those critical areas of the stack and competency means that if a problem were to come across your desk you use the 80 20 rule that 80% of the time you can solve the problems and 20% of the time basically you know who to send that problem to that I believe is is a relative good competency for full stack developers now I will say also that you don't need the same level of skill in each and every area quite often full stack developers are much more skilled in the higher end of the stack they're more skilled in interface development and in user experience understanding part of the reason for this is because most of the value in modern web applications for example is in the user experience not necessarily in the back end there's a lot of the back end that is kind of repeatable it's outsourcible but the unique aspects of a given application quite often are in the higher level pieces of the stack they're in the user experience and the aesthetic appeal and the brand and all of those pieces and those are things that are subjective and they're harder to teach they're harder to get right they're harder to make decisions about and to reason about because one given developer may have one way of doing things that completely differs from another given developer and both of them could be right or both of them could be wrong and so finding a good full stack developer quite often means finding somebody who is most often right about those subjective pieces so full stack doesn't just apply to web as you can see here it applies to everything between a human and a computer whether that is a smart watch or a connected TV or your nest thermostat or your laptop all of those things require some sort of interaction with a computer by human and then underlying technology and that stack is is defined by all of the pieces in between the human and whatever the computer does in response to the human so I hope this answered your question Jessica focus on projects that are right in front of you first of all focus on the ones that you have available to you especially if you have control over those projects and secondarily spend some time getting familiar with the stack that those projects are built on top of spend some time getting familiar with the people who are using it that's another part of the stack that I think we often forget is the human on the on the top of that stack the human who is actually interacting with the computer because the rest of that stack ultimately is useless without the human so spend some time getting to know the stack getting to know the people who will be using whatever it is that you are creating and I think that is a good direction especially if you aren't going to be learning in an academic environment and you know there's a million different resources on on the web for learning these different pieces of the stack you have to know what that stack is first and then some good googling will get you a long ways once Jessica you directly once you have figured out what that stack is please email me and I will share every resource that I can with you and hopefully that will help you if you have a question for me that you would like to be answered on the show please contact me on Twitter at at Developer Teaor through email at developertea@gmail.com and if you send me your questions I will almost invariably I will get back to you an email I would love to have these questions in audio like what Jessica provided I actually asked Jessica to send in her question via audio and she was nice enough to do so if you would do so as well I would love to feature questions from all of you on this show because people love to hear your beautiful voices they love hearing voices other than mine sometimes on Developer Teaso thank you so much for listening please reach out if you have questions at Developer Teaon Twitter developertea@gmail.com of course show notes can be found at DeveloperTea.com and until next time enjoy your tea.