Developer Tea

Creating New Understanding Through Synonyms

Episode Summary

In today's episode, we talk about creating useful substitutions through a process of forcing synonyms. Today's episode is sponsored by Codeship! Get started today with Codeship and get 100 free builds. P.S. - Codeship is 100% free for open source projects! Head to https://spec.fm/codeship to get started today!

Episode Notes

In today's episode, we talk about creating useful substitutions through a process of forcing synonyms.

Today's episode is sponsored by Codeship! Get started today with Codeship and get 100 free builds. P.S. - Codeship is 100% free for open source projects! Head to spec.fm/codeship to get started today!

Episode Transcription

I want you to take a second and think about how you understand something. How you conceive about something. This isn't going to be an entirely philosophical episode. We are going to apply practical ways of understanding how our minds create understanding and then how that can break our perception of the things we do every day as developers. My name is Jonathan Cutrell and you are listening to Developer Tea. My job is to coach you through some of the hardest parts of your career and talk about things that maybe you won't find on a technical podcast but you certainly are going to find here. We're going to talk about psychology. We're going to talk about business. We're going to talk about branding for developers and we're going to talk about education and jobs and resumes. All the things that are also related to your job other than programming. We also talk about programming and that's one of the things we're going to be talking about today. We're talking about how we come to understand something. There's so many ways that our brain wraps around a object or a concept. This is especially strange when we imagine a imaginary concept, something that doesn't actually exist and this is true for code. We're creating imaginary concepts in our minds and then we're creating code to represent those concepts and the mapping between those concepts. This is very often the way that people describe object-oriented programming. We use really simplified examples like nouns and verbs as objects and methods. We create these things in our minds and then we create language. That's really what we're going to get to today is how we understand something is very typically through some kind of inner dialogue. We understand the shape of it and perhaps we understand things that are shaped like it. Literally we understand the shape of things but we also understand the figurative shape of things. We typically create these shapes in our mind as things like models or views or controller based on something that they do together, something that all of those things share, the attributes that those things share. This is how our mind creates a picture of something. It's how our mind creates a definition. We build up language and then we build up associations. Some of that is accidental. Sometimes we accidentally associate one thing with another and that's not really under our total control. Then sometimes that is very intentional. For example, writing out documentation to explain something. We create these anchor points for the various things that we have in front of us, whether that's code or in physical real life. Of course, we talked about how children learn, how children learn to do play and the importance of failure and all these things that we've discussed in previous episodes, children learn through discovery. One of the things that we talked about previously was this concept that's difficult to prove but is relatively accepted. As we are exposed to new things as children and as we grow up, as we get older, we're exposed to the same things, we learn what that thing is by repetition. Now, I don't mean by somebody cramming that information into your brain over a short period of time, but rather experiencing something over and over and over, that creates a strong representation in your mind of what that thing is. So recently, it was believed that as you grow older, your brain became less able to accept new ideas and recode those old ideas to accept the new ones. But there's now some good evidence that says your brain is a little bit more flexible than we once thought. If you're googling things about this after you listen to the episode, you can google the word neuroplasticity. To sum up the most recent findings, really your brain benefits from two major things. One is actually physical exercise, aerobic exercise, and the other is exercising your thinking skills. That shouldn't be a huge surprise. I would imagine that that comes relatively intuitively, but it does require that you start to create new connections you're open to this idea of learning. So we're going to do exactly that today. We're going to create some new connections. We're going to get your brain exercising today right after this quick message from today's sponsor. Today's episode is sponsored by Coachhip. I use Coachhip on basically all of my Rails projects now. And what Coachhip provides to you is confidence with your deployments. Assuming you are following best practices, more specifically, you're writing tests in your local environment, Coachhip is going to allow you to know that no code is going to be deployed unless all of those tests are passing. Let's say, for example, that you make an accidental merge. We've all done this before, but you merge into the wrong branch. You mint a merge into master or something like that, and then you merge into production. Without something like Coachhip in place, it's very possible that that code is going to end up in front of your users before you know it. Coachhip allows you to protect against these kinds of problems. As long as the tests are not passing, that code will not go out to the server. Of course, you can integrate this with GitHub so that as you're making pushes, you can see whether or not the tests have passed. This allows you to quickly glance at failing pull requests and passing pull requests. And also in progress pull request. Of course, there's tons of other integrations that work with Coachhip, but Coachhip comes in two forms. You have Pro and you have Basic. Basic is for most people who really can plug and play in about three minutes. If you have a pretty normal application, then Basic is most likely going to work for you. If you are using something like Docker or Kubernetes, then you might want to try out Coachhip Pro. Coachhip Pro has full native Docker support and guarantees 100% parity between your development and your production environments. Both of these Basic and Pro come with a free plan that grants 100 builds per month. So you can try it out there. You also have unlimited projects and unlimited users available to you on the free plan. But here's what I recommend. If you have an open source project, Coachhip will support that entirely for free. Open source projects are always free on Coachhip. So go and check it out. Spec.fm slash Coachhip. Spec.fm slash Coachhip. Makes again two Coachhip for sponsoring today's episode of Developer Teat. So we're going to do some brain aerobics. I'm going to have you perform a very simple brain exercise. This is inspired from a quote that I heard from Alan Kay. He was talking about Lisp. And very often we think of Lisp as a programming language. And Alan Kay said a straight. He said that Lisp is not a programming language. It is a building material. Lisp is a building material. This stuck with me so strongly because what it created in my brain is new associations with an existing model. In other words, I knew about Lisp. I knew what it was. I knew and had placed it into the category of programming languages. But now that I have this new definition or new thing to think about, I'm starting to think about Lisp in a different way. And as a result, the category of programming languages has also changed for me. In other words, I'm also thinking about other programming languages in terms of, can I consider this a building material or not? I believe if you were to ask Alan Kay, if any programming language would fit that bill, he would say most likely. So if you think about the implications of this, it also means that learning a programming language is not inherently valuable unless you also learn how to build with it. Learning how to lay bricks only becomes valuable when you know how to lay those bricks in such a way that they build a building. So this is a very interesting concept of taking our preconceived notions of an idea and redefining them. So here's what I want you to do. I want you to take a few of the tools that you use or perhaps the concepts that you use, maybe the concept of project management will come to mind or the concept of a client will come to mind or perhaps more technical things, the concept of a server or the concept of a function. I want you to do two things. Number one, I want you to come up with three synonyms that you can use in place of that word or that concept, three synonyms. Secondly, I want you to describe what you do with that thing without using the word itself. I want you to describe what you do with functions without using the word function. I want you to describe what you do with a server without using the word server. What this is going to force your brain to do is create new connections, create new understanding, build your understanding of an existing model in your mind. Now I won't claim that this is absolutely going to make your brain more flexible, that it's going to increase your neuroplasticity. I'm also not going to claim that it's going to increase the size of any particular portion of your brain. What I will guarantee is that if you go through this process, you will be forced to think about things in new ways. You will be forced to think about things in ways that may enlighten you and change your behavior or change the way you talk to other people about what you do. It may change the way that you pitch what you do. You can learn new and valuable ways of describing something. Thank you so much for listening to today's episode of Developer Tea. I hope you've enjoyed it and I hope it's been inspirational. I hope you actually participated in that little exercise and that you do that kind of thing on regular basis. This is how you stay agile, how you keep your mind moving forward rather than stagnating. Thank you again to today's awesome sponsor, CodeShip. You can get the most out of your tests if you use them beyond just running them locally. Use them to create a gate to your server. That's exactly what CodeShip helps you do. You can ship with confidence with CodeShip. Don't forget speck.fm slash codeShip. Thank you so much for listening to today's episode of Developer Tea. If you don't want to miss out on future episodes, you know what to do. Go and subscribe. Whatever podcasting up you use and until next time, enjoy your tea.