How Our Tools Shape Us
Basically everything you interact with is a tool. How does this shape you? How does it shape your evolution and learning? We'll talk about how you can pick your tools better in this episode.
Today's episode is sponsored by Linode.
In 2018, Linode is joining forces with Developer Tea listeners by offering you $20 of credit - that's 4 months of FREE service on the 1GB tier - for free! Head over to https://spec.fm/linode and use the code DEVELOPERTEA2018 at checkout.
Transcript (Generated by OpenAI Whisper)
When I ask you a simple question, are you using the tool set that you're using today because someone showed it to you or because it's the tool set that you chose to use? In today's episode, we're talking about tools and we're talking about this on a grand scale, not just choosing programming tools, not just editors or actual languages or frameworks or stacks. That's not what we're focused on, although those tools are included in this discussion. We're focusing on how we interact with the world, really, but with tools that we create. My name is Jonathan Cutrell and you're listening to Developer Tea. My goal on this show is to help driven developers connect to their career purpose. If you're a driven developer, then you know how important this is if you have done it. The reason that this is so important to connect to that underlying purpose is because that will act as fuel for you. This is kind of a soft subject. It's difficult to talk about in objective terms because it's so hard to kind of generalize this, this kind of thing of this soft subject of purpose. But those of you who have found your career purpose or that you're working on finding that career purpose, you find that the work that you do ends up being better. And that really is what this show is about. And so we're serving the people who are seeking after that career purpose not only by helping you find it, but also by guiding that work to be better by focusing on these practices and principles. Right. So today's episode is kind of a principle, but it really is a marriage between principle and practice. And we're going to find this over and over on Developer Tea. This, this kind of mix of practice and principle, but today's episode we're talking about tooling and we're talking more specifically about our interaction, our relationship with our tools. So what is a tool for developers? Of course, languages are tools and the editors are tools. Of course, if you zoom out further from that, then the computer itself is a tool. And of course, all of the software that the computer runs, those are tools as well. But so is the desk that the computer is sitting on. And so is the mouse that you use. And so is the chair that you sit on. In fact, so many things around you, perhaps all of the things that we make could be classified as tools. So we aren't going to prescribe necessarily what is and what isn't a tool on the show, although most things that we would consider tools have some sort of functional purpose to them. But that's not always necessarily true. But again, let's not not get too deep into the semantics. So when we're talking about tools, we need to recognize that so many things that we rely on on a daily basis could be considered tools. So why is this important? And what is our relationship to these things that are around us? We're going to talk more specifically about the human relationship to tooling right after a very short sponsor break. Today's episode is sponsored by Linode. Linode is an excellent tool. Speaking of tools, Linode is an excellent tool. And we're kind of giving away a little bit, well, we're going to talk about in a minute. But the reason that Linode is an excellent tool or one of the many reasons it's an excellent tool is because it's built with you in mind. The tool is actually shaped so that you have a better experience as the user of the tool. It's intended to be used rather than you kind of coming along and using a Linux server and it meeting only your functional needs, Linode goes beyond that. It looks at your behavior as a developer. Linode has provided to you various features like, for example, a Lish console. If you don't know what Lish is, you're not alone. I didn't know what it was before I heard of Linode, but Lish allows you to access your server even if you've locked yourself out. And this is looking at the human side and shaping the tool to the human rather than forcing the human to work with a brittle or otherwise uninformed tool. Go and check out what Linode has to offer. They have excellent plans starting at $5 a month for the entry level plan, which gets you a gigabyte of RAM, by the way. This is not a useless plan. This is not just a hobby plan. You can actually launch a pretty decent application on a server that has a gigabyte of RAM. Go and check it out, spec.fm slash Linode to get started today and you'll get a $20 credit to your Linode account if you use the code Developer Tea 2018 at checkout. Thank you again to Linode for creating excellent tools for developers. So we're talking about tooling today. And by the way, speaking of tools, there is a show on spec.fm that I want to highlight for a second, Toolsday. Toolsday is hosted by Una and Chris. Go and check it out. They talk about various tools. And this is particularly good for front-end developers. Again, head over to spec.fm. Toolsday is there on spec.fm. It's also available at toolsday.io. So we're talking about tools though. And we're talking about beyond just these programming tools. We're talking about things that we create in the world and use as tools. And if you look around you, even the clothes that you're wearing, you could consider these a tool. And I want to bring up this interesting interrelationship that we have with our tools. If you imagine your life without them, just for a moment, this is kind of a difficult mental leap to make. But imagine your life without any of the things that you have that surround your kind of day-to-day operation. Without your clothes, without your computer, without any of these obvious things, but also without the less obvious things, like even your utensils that you use to eat your food. And the very simple reality is that your life would be drastically different. And so as you add new tools into your life, your behavior will change. So it stands to reason that any tool that you encounter and that you integrate into your day-to-day life could very well change your behavior. Marshall McCleuen is credited with a quote, and certainly with the idea that we first shape our tools, and then after that, and I'm paraphrasing here, after that our tools shape us. And we've kind of illustrated this point by making that kind of mental leap into a world without any tools whatsoever, and then adding one tool at a time and watching that behavior change take place. But if you think about your behavior and your job, for example, even the programming language that you use is going to change the way you use your hands on a day-to-day basis. Now, this is a seemingly insignificant change, of course. If you're writing lists, for example, then you're going to be much more able to find the parentheses keys, right? Because there's significantly more parentheses designed into the tool that is list. But if you're a developer and you're like most developers, then you're also going to very likely spend a lot of your day sitting at a desk or standing at a desk, staring at a screen. And in this way, our tool is shaping us, quite literally shaping our physical bodies. And in what other ways can our tools shape us? Well, even from a cultural perspective, let's take Ruby, for example. One of the main kind of ideas in the Ruby community is to optimize for developer happiness. Now, what does this mean? Well, it's a value set that the developers of Ruby have continued to pursue over the years that Ruby has been around. And it informs the way that the language is designed, but it also informs the way that the community engages with the language. To various degrees, Ruby developers will view Ruby from the perspective or maybe from the kind of evaluation point of how happy does Ruby actually make me? So even in the intention of the tool, we are shaping later behavior. So, why does this matter? What is so important about this? Well, the takeaway that I want you to have from this episode is that as you choose your tools, I want you to think more about how consequential those choices may be. Now, we're not talking about how consequential they are in terms of your kind of marketability as developer. Of course, that's something that is relevant and something that you should consider, but it's not the only consequence that you have as a result of learning or using a particular tool. I talked further about this with Mark Engelberg, the creator of the code game series. These are board games for children and adults and everything in between that teach you programming concepts. Mark and I discussed learning first through a functional paradigm. So, learning through, in particular, Mark is a proponent of closure and learning closure first and how learning closure first can change the way you think about programming because this tool is designed in a particular way. We have a shape with our tools. Our tools have a form, some way of existing and behaving and because we use them, because we interface with those tools, we also take a shape. We also conform in some way to that tool. So, what we should do or what we have the opportunity to do is try to determine the form that we want to take first. Rather than choosing our tools and allowing them to shape us into a form that we had not yet considered, perhaps we can consider what form we want to take first. Perhaps you want to work on problems that are dealing with big data. Well, then if you look at the current tool set, then it's very likely that you're going to end up using something like Python or maybe a more performant language like C++. Choosing another language, perhaps like Ruby, may put you into a shape that you didn't want to be in, because the tool will require you to conform to a shape. This doesn't impose on us in a way that we can't avoid. The shaping that our tools do to us is something that we usually are volunteering for. But what often tends to happen is we're not evaluating that interchange. We're not evaluating our relationship to those tools. And very often we're not evaluating whether it's time to change those shapeings. Whether it's time to change our relationship with a given tool in order to form it differently. Thank you so much for listening to today's episode of Developer Tea. I hope you found it encouraging and lightening. But perhaps most of all, I hope you found it challenging, because this is not easy stuff. It's not easy to change your tool set. And it's not easy to imagine this future that you want and then try to choose your tools based on that. It's a difficult process. And I applaud you for doing this. I applaud you for listening to this episode because you're taking hard steps. The other people, very many people are not going to take. If you apply these kinds of things, the things that we talk about on the show, if you apply what we talk about, then you're going to put yourself into a different category of person. You're going to put yourself into a different category of developer. We talk about being a great developer all the time. And it's not about leveling up above your peer. It's about reaching your own potential as a developer. It's about unlocking something that you actually care about doing. Actually, you actually get up in the morning and you're excited to get to work because you care about what your purpose is as a developer. So I applaud you for taking the time to work on your career. Listen to these episodes and apply the things that you learn and also challenge the things that you disagree with. Everything we say on the show isn't solid gold. Definitely far from it. My hope is that you'll take this episode and you'll have good conversations. You'll ask good questions. You'll get so fired up about something that you disagree with on the show that you do something about it. I want to incite action on your part. So if you're fired up about something that we talk about on the show, I want to hear about it. I love hearing stories from listeners. You can email me a Developer Tea, a Gmail. You can also reach out to me on Twitter at at J. Ctrl and the official podcast Twitter at Developer Tea. Thank you so much for listening. Thank you again to today's sponsor, Linode. Once again, Linode is an excellent tool because it's not just a crude tool. It's not a primitive tool. It has been shaped beyond that. It's the next level of service that you need as developer in your Linux cloud provider. Head over to Respect.fm slash Linode to get started today. The code should automatically apply, but if it doesn't, use the code Developer Tea2018 and check out. You'll get $20 worth of credit. Thank you again for listening and until next time, enjoy your tea.