3 Problems Every Developer Will Face
Summary
In this episode of Developer Tea, host Jonathan Cuttrell explores three universal problems that developers face throughout their careers. He begins by establishing two foundational truths: developers are not alone in their struggles, and their problems are not static—they evolve as individuals and circumstances change. These reminders provide context for addressing the challenges ahead.
The first problem is “What should I do next?”—a question that applies at micro and macro levels, from daily tasks to career moves. Cuttrell emphasizes that there’s no perfect answer and encourages developers to move beyond seeking certainty. Instead, they should define their goals and desired outcomes, asking what they’re trying to achieve rather than looking for a silver bullet solution. He mentions the Developer Career Roadmap series as a resource for tangible guidance.
The second problem is “What do I do when I feel burnt out?” Cuttrell advises starting with physical self-care: establishing healthy diet, activity, and social connection routines while avoiding extreme experiments during burnout phases. He suggests identifying sources of frustration through honest self-reflection and journaling, and recommends mindfulness practices to observe rather than be consumed by stressful moments. Sometimes the solution involves taking a break or reassessing personal goals versus daily work.
The third problem is “What do I do when I feel incompetent?” Cuttrell notes that this affects both junior and experienced developers, often stemming from exposure to failures more than successes. He recommends gaining perspective by talking to other developers, seeking training through books or courses, and accepting that trade-offs are inherent in software design. His core advice is to “do the first thing that works” and then evaluate and refactor, rather than getting paralyzed by perfectionism.
Cuttrell concludes by acknowledging these are opinionated answers and that solutions vary by individual. He reiterates the importance of not isolating oneself while grappling with these challenges, reminding listeners that they are part of a community facing similar issues.
Recommendations
Podcasts
- Developer Tea — The host’s own podcast, mentioned as a resource for developers seeking career guidance and discussions on purpose and better work.
Resources
- Developer Career Roadmap — A free series of episodes on the Developer Tea podcast (abbreviated DCR) that provides a tangible roadmap for career decisions, referenced when discussing ‘what should I do next?‘
Tools
- Linode — A Linux cloud hosting service with 24/7 support, nine global data centers, and starting at 20 credit.
Topic Timeline
- 00:00:00 — Introduction to universal developer problems — Jonathan introduces the episode’s theme: common problems that emerge for almost everyone in the developer industry. He explains that the show’s mission is to help listeners connect with their career purpose and do better work, creating a reciprocal effect between purpose and performance.
- 00:02:45 — Two foundational truths before discussing problems — Before listing the three problems, Jonathan shares two important reminders. First, you are not alone—others have faced similar challenges and persevered. Second, problems are not static; everything changes, including you, your work, and the market, which means situations evolve and there is reason for hope.
- 00:06:15 — Sponsor message from Linode — The episode is sponsored by Linode, a Linux cloud hosting service. Jonathan highlights features like 24/7 support, global data centers for reduced latency, and a starting price of 20 in credit.
- 00:08:24 — Introducing the three core developer problems — Jonathan lists the three recurring problems every developer will face: 1) What should I do next? (at micro and macro scales), 2) What do I do when I feel burnt out?, and 3) What do I do when I feel incompetent? He notes these can lead to major career decisions and don’t simply go away.
- 00:09:31 — Deep dive: What should I do next? — Jonathan explores the first problem in detail. He explains there’s no perfect answer, like which programming language to learn, because it depends on individual goals. He advises moving beyond the question to define what you’re optimizing for—whether it’s a new perspective, a job, or alignment with a field of interest.
- 00:13:34 — Deep dive: What do I do when I feel burnt out? — Addressing burnout, Jonathan recommends starting with physical self-care: healthy diet, activity, and social connections. Avoid extreme experiments during burnout. Identify sources of stress through honest self-reflection and journaling. Consider mindfulness practices and possibly taking a break or reassessing personal goals versus daily work.
- 00:21:36 — Deep dive: What do I do when I feel incompetent? — Jonathan discusses feelings of incompetence, common among all experience levels. He suggests gaining perspective by talking to others, seeking training, and understanding that trade-offs are part of software design. His key advice: ‘Do the first thing that works,’ then evaluate and refactor, rather than aiming for perfect code from the start.
- 00:27:45 — Conclusion and final thoughts — Jonathan acknowledges these are opinionated answers and others may offer different advice. He reiterates that solutions are specific to individual scenarios. He closes by encouraging listeners not to struggle alone and to remember they are not isolated, thanking the sponsor and asking for reviews.
Episode Info
- Podcast: Developer Tea
- Author: Jonathan Cutrell
- Category: Technology Business Careers Society & Culture
- Published: 2018-03-14T09:00:00Z
- Duration: 00:29:30
References
- URL PocketCasts: https://pocketcasts.com/podcast/developer-tea/cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263/3-problems-every-developer-will-face/acbcfed6-f163-4745-a6c0-113595844f09
- Episode UUID: acbcfed6-f163-4745-a6c0-113595844f09
Podcast Info
- Name: Developer Tea
- Type: episodic
- Site: http://www.developertea.com
- UUID: cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263
Transcript
[00:00:00] in every industry there are common problems that people in that industry deal with on a regular
[00:00:10] basis this is also true for developers and you probably are associated with some of these
[00:00:17] problems but the idea is that the industry is shaped in such a way that certain problems emerge
[00:00:25] and they emerge not just for one person or for a few but for almost everyone who becomes
[00:00:31] somebody in that industry in this case a developer so what are some of these problems
[00:00:37] that’s what we’re talking about in today’s episode my name is jonathan cuttrell and you’re
[00:00:42] listening to developer t my goal on the show is to help you connect to your career purpose
[00:00:47] so that you can have a positive impact on the people around you that’s kind of the shortened
[00:00:53] version of the
[00:00:55] the mission of this show but truly it is to help you connect to your career purpose and
[00:01:02] on the other side of that to do better work so that you’re going to connect even more closely
[00:01:08] with that career purpose an interesting thing that will happen as you become better at what
[00:01:14] you do is that you’ll start seeing your own purpose with more clarity you can test me on
[00:01:20] this one if you have kind of outlined your personal purpose
[00:01:25] then there’s kind of this reciprocal effect where you’re going to do better work because
[00:01:31] you’re more energized more motivated whatever things that cause that you know i don’t have
[00:01:36] a perfect explanation for all of the science but certainly there is some research to show that
[00:01:42] if you feel connected to that work you’re ultimately going to perform better
[00:01:46] but on the flip side if you are performing good work then you will start to realize your own
[00:01:55] purpose it’s kind of a strange dichotomy chicken and egg maybe understanding what your own purpose
[00:02:02] is sometimes that comes as a result of you becoming better at what you do so that’s what
[00:02:08] we talk about on the show we kind of vacillate back and forth between these these two sides of
[00:02:13] the same coin and hopefully by pursuing both of these you can come out of the other side
[00:02:19] having a positive influence on the people around you so in today’s episode we’re talking about some
[00:02:25] of the problems that you are almost certainly going to face as a developer but i want to take
[00:02:30] a step back before we talk about these i’m going to give you a list of three problems today that
[00:02:35] you almost certainly will face if you haven’t already faced it as a developer but i want to
[00:02:39] take a step back to remind everyone who’s listening to this show of a few simple truths
[00:02:45] that hopefully will help you as you face some of the problems that we’re going to talk about in
[00:02:50] today’s episode the first simple truth i want to remind you of is that you are not alone in the
[00:02:55] problems that you have almost without a doubt just from a statistics perspective there is someone
[00:03:04] who has faced something very similar to what you are facing and more importantly there are probably
[00:03:11] a lot of people who have faced it and have persevered and come out on the other side
[00:03:16] and if you are facing some kind of anxiety today take a moment to realize that you are not isolated
[00:03:24] this is such an important point and i want to take a step back and say that you are not alone in the
[00:03:25] reality to remind yourself of it’s easy to tell yourself a story of isolation to tell yourself
[00:03:33] that no one else is facing the same things that you are facing and ultimately you are alone you
[00:03:39] are an edge case that no one else knows how to deal with and therefore you’re going to fail
[00:03:45] the the final outcome of this of being alone is that no one knows how to fix your aloneness
[00:03:53] whatever issues that you’re facing that make you feel alone and that make you feel lonely
[00:03:55] isolated and these are just simply untrue assertions in almost every single scenario
[00:04:02] someone has faced either a problem exactly like yours or something that is so similar
[00:04:09] that all of the same principles apply so i want you to take that moment take a big breath you know
[00:04:15] take a moment to recognize that you’re not isolated in the issues that you are facing
[00:04:20] the second thing i want to remind you of before we jump into
[00:04:23] these these three problems
[00:04:25] that almost every developer faces is that your problems are not static the people around you
[00:04:32] are changing you are changing the work is changing the market is changing and so the problems that
[00:04:39] you have today well they’re changing too and even if you feel like you’re facing the same problem
[00:04:46] every single day because change is inevitable it is very likely that something is happening
[00:04:52] some kind of change is occurring
[00:04:55] so there’s a little bit of comfort in this because sometimes it can feel like we’re running up against
[00:05:00] kind of a brick wall as developers or really as humans we can always run into these things that
[00:05:06] feel immovable but if we look around us there are constantly changes happening in every part of our
[00:05:13] lives sometimes they are extremely small but sometimes they are indeed drastic so if you feel
[00:05:20] like you’re stuck in a rut then don’t worry things are changing around you
[00:05:25] things are changing out from underneath your feet and something will happen as a result of those
[00:05:30] changes and this show seeks to understand those changes to predict them to sometimes take advantage
[00:05:38] of them and at the very least prepare for those changes and the first way that you prepare for
[00:05:44] change is by knowing that it’s going to happen so you’re already winning a battle today by
[00:05:50] recognizing that problems exist but that everything surrounding you is going to happen
[00:05:55] and the problems themselves it’s all changing as we speak so again you are not alone in your
[00:06:03] problems you are not isolated and things are always changing so there’s so much reason for
[00:06:09] hope in the face of the problems that you have today we’re going to talk about our sponsor and
[00:06:15] then we’re going to come back and give you these three problems that every developer pretty much
[00:06:20] every developer is going to face today’s episode is sponsored by linode you know some of you
[00:06:25] my favorite services are the ones that keep it simple linode keeps it simple because the product
[00:06:32] is linux in the cloud now everything else that linode provides makes that product better than
[00:06:39] the other providers of linux in the cloud so they provide 24 7 customer support for example
[00:06:45] they also give you some extra tools to support your efforts on your linode boxes so you can
[00:06:53] actually get started for five dollars a month
[00:06:55] this will give you a gigabyte of ram and basically you pick your size you pick your distribution of
[00:07:01] linux and then you pick your location if you’re wondering what location means well linode has
[00:07:07] nine data centers around the world this means if you have for example most of your customers are in
[00:07:13] the united states then you can pick a location in the united states which will reduce latency and
[00:07:19] every single time somebody contacts your server right somebody actually connects to your server
[00:07:24] they experience some level of latency and sometimes this can be a major factor especially if you
[00:07:32] require a lot of connections to your server and having a geo-located server near your users
[00:07:40] can make a substantial difference in the performance of whatever application you are
[00:07:45] building linode provides so many other things so many other features that are worth checking out
[00:07:50] for any developer whatever size your project is they’re going to be able to connect to your server
[00:07:54] they have something that you can use to host that project to deliver that project efficiently and
[00:08:01] performantly to your users go and check it out head respect.fm slash linode linode is providing
[00:08:07] you as a developer t listener with twenty dollars worth of credit that’s essentially a twenty dollar
[00:08:11] bill in your pocket just for using the code developer t 2018 that’s all one word developer
[00:08:18] t 2018 thank you again to linode for sponsoring today’s episode of developer t so we’re talking
[00:08:24] about some of the problems that all developers will face and this is hypothetical of course it’s
[00:08:30] possible that there’s a developer out there who isn’t going to face one of these problems but
[00:08:34] i certainly have faced each of these multiple times in my career thus far and i expect that
[00:08:40] most of you have as well i’m really excited to point these out we’ve talked about this stuff on
[00:08:44] the show before but it’s important to remind yourself and for new developers who’ve come to
[00:08:50] the show these are problems that you know they don’t go away they don’t go away they don’t go
[00:08:54] just stop you don’t defeat these problems here these are recurring problems this isn’t like a
[00:09:00] common bug that you’re going to find in your software this is stuff that’s going to affect
[00:09:05] your career sometimes in very substantial ways you can make entire decisions when you’re facing
[00:09:12] these problems entire employment decisions major kind of career shifting decisions can happen as a
[00:09:20] result coming out of these problems so i’m going to list them and then i want to go into detail in
[00:09:24] one of these the first one is what should i do next what should i do next this happens both at the
[00:09:31] micro scale maybe you are listening to this podcast and you’re procrastinating and you’re
[00:09:36] wondering what you should do next today as in the next task you should complete but it also happens
[00:09:41] at the macro scale and everything in between what should i do next on this project what should i do
[00:09:48] next in my career what career moves should i make next you know what things should i learn
[00:09:54] so we’re going to talk about that more in detail number two what do i do when i feel burnt out what
[00:10:00] do i do when i feel burnt out number three what do i do when i feel incompetent so these are
[00:10:07] incredibly important questions incredibly important problems that you’re going to face
[00:10:13] in your career at some point and now that i’m reading these again i can confidently say that
[00:10:18] at least everyone will face the first one what should i do next what should i do next
[00:10:24] and this is such a difficult problem to answer we did an entire series on this developer career
[00:10:30] roadmap it walks you through it’s totally free it’s just episodes of this podcast if you go
[00:10:36] to spec.fm you can go and find the episodes of developer t we abbreviate it dcr in some places
[00:10:44] developer career roadmap if you google it you can find it as well but this is a very simple roadmap
[00:10:48] to give you a tangible answer but the truth is no answer is going to be
[00:10:54] perfect no answer is going to be a silver bullet and you have to think of all of the decisions
[00:11:01] that you make not in terms of trying to generate certainty but rather in terms of a sliding scale
[00:11:08] figuring out what things you want to optimize for figuring out the things that you want
[00:11:14] to achieve the the outcomes that you are striving for these are the ways kind of the the parameters
[00:11:22] if you will that you’re trying to optimize for and you’re trying to optimize for
[00:11:24] so what should i do next well there may not be a perfect answer to this question for example if
[00:11:31] you’re listening to this around the time that it airs in 2018 if you were to come to me as a junior
[00:11:36] developer and ask me what programming language you should learn i would probably tell you either
[00:11:41] python or javascript but the truth is neither one of those necessarily is going to be the correct
[00:11:48] language for you and in fact your career could take a totally different path you could learn
[00:11:53] closure or you could learn
[00:11:54] elixir and those are both more functional oriented languages you could learn java java is actually
[00:12:00] still the most popular language when it comes to repositories on github for example and there’s a
[00:12:07] lot of answers to this question and no one is going to give you the perfect answer because
[00:12:12] you could learn a language that almost no one has heard about and still be successful the question
[00:12:17] that you have to ask as a follow-up is what goal am i trying to achieve by learning a language
[00:12:25] am i trying to achieve a new perspective maybe you already know a programming language am i trying to
[00:12:31] get a job right uh you can look at the marketability of programming languages
[00:12:37] am i already adept to thinking in a particular way for example if you are
[00:12:42] a scientific thinker then you may lean more towards statistic oriented languages perhaps
[00:12:50] one of the most important things to consider with languages specifically is you know
[00:12:54] what field do you want to end up working in, right?
[00:12:57] So these are the types of questions
[00:12:59] that you have to ask beyond what should I do next.
[00:13:03] Instead of asking what should I do next
[00:13:05] and leaving it at that
[00:13:07] and trying to get the opinions of everyone around you
[00:13:09] and relying on the latest thing
[00:13:12] to decide the answer to that question,
[00:13:16] I encourage you to take a step back
[00:13:18] and make a more formal definition
[00:13:20] of what you’re going after.
[00:13:22] What are your goals?
[00:13:23] What are you trying to achieve?
[00:13:24] What is the outcome that you actually want
[00:13:27] as a process of your next step
[00:13:30] or as a product, rather, of your next step?
[00:13:33] Problem number two,
[00:13:34] and this is formed in another question as well,
[00:13:38] what do I do when I feel burnt out?
[00:13:41] What do I do when I feel burnt out?
[00:13:43] And the reality, again,
[00:13:45] is that there’s no silver bullet answer to this question,
[00:13:48] but there are some things
[00:13:50] that science can tell us about burnout.
[00:13:54] The first thing that you need to do
[00:13:56] when you feel burnt out
[00:13:57] is take care of yourself.
[00:14:00] And this starts at the physical level.
[00:14:02] If you haven’t established a healthy diet,
[00:14:06] and we won’t get into details on that,
[00:14:07] but if you haven’t established a healthy diet,
[00:14:09] an activity routine where you’re regularly active,
[00:14:14] if you are staying closed in,
[00:14:16] if you aren’t relating with friends and family
[00:14:19] or whatever other positive relationships you have,
[00:14:23] if you are only,
[00:14:24] only working and sleeping,
[00:14:25] then that can take a serious toll on your body.
[00:14:28] Now, I’m not gonna get into specifics here
[00:14:30] because this isn’t a life hacking podcast.
[00:14:33] This isn’t a nutrition podcast.
[00:14:35] It’s none of those things,
[00:14:36] but I encourage you to stick with the things
[00:14:39] that have been widely recognized as positive health moves.
[00:14:44] Don’t try to hack your sleep when you’re in burnout phase.
[00:14:48] Don’t try to go six days fasting
[00:14:50] when you’re in burnout phase.
[00:14:52] Don’t attempt, you know,
[00:14:53] some crazy new diet,
[00:14:55] some controversial practice.
[00:14:58] You know, don’t try to overexercise.
[00:15:01] Even if some of these things
[00:15:03] could be beneficial in the long run,
[00:15:05] even if you do want to experiment later
[00:15:07] when you are at a more stable state,
[00:15:09] which I encourage you to do,
[00:15:11] I would not encourage you to experiment
[00:15:14] when you’re in burnout phase.
[00:15:16] Recognize the unhealthy habits,
[00:15:18] the things that are obviously unhealthy.
[00:15:20] For example, if you are sitting at a desk,
[00:15:22] mostly uninterrupted,
[00:15:23] for eight hours straight every single day,
[00:15:26] then you probably need to shift something,
[00:15:28] especially if you are in burnout phase, right?
[00:15:32] So this means getting away from your computer
[00:15:35] every 20 or 30 minutes for a minute or two even
[00:15:38] can make a huge difference.
[00:15:39] And very simple, simple things.
[00:15:41] If you are eating terrible food,
[00:15:43] if you’re eating takeout for every meal,
[00:15:46] or if you’re staying up super late and waking up early,
[00:15:49] these are all obvious signs of unhealthy patterns.
[00:15:52] So listen to what,
[00:15:53] listen to what your body’s telling you.
[00:15:54] Make sure you establish some of these healthy patterns.
[00:15:56] That’s the first thing to start dealing with your burnout.
[00:16:01] Because burnout is a physiological thing.
[00:16:04] It may feel like it’s only mental,
[00:16:06] but as you start to take care of your body,
[00:16:09] your brain will also be taken care of.
[00:16:13] Now again, I’m not a nutritionist.
[00:16:15] Don’t trust the words that I’m saying directly.
[00:16:18] Don’t try to establish your entire diet and lifestyle
[00:16:21] based on this podcast.
[00:16:22] That’s not what we’re talking about.
[00:16:23] That’s not what we’re talking about.
[00:16:23] That’s not what we’re talking about.
[00:16:23] That’s not what we’re talking about.
[00:16:23] That’s not what we’re trying to do here.
[00:16:24] What I do encourage you to do is recognize
[00:16:27] and change your unhealthy habits first.
[00:16:31] And again, we aren’t talking about this being easy.
[00:16:33] I encourage you to listen to other episodes of this podcast.
[00:16:36] And there are a ton of great episodes on other podcasts
[00:16:40] about forming new and better habits,
[00:16:42] replacing bad habits.
[00:16:45] So by no means is this going to be easy necessarily,
[00:16:48] but dealing with burnout starts
[00:16:50] with focusing on taking care of yourself.
[00:16:53] And sometimes taking care of yourself
[00:16:55] is actually the only remedy you need.
[00:16:57] You may feel energized and excited once again,
[00:17:00] reinvigorated to do the work
[00:17:02] that you had already been doing.
[00:17:04] But if you are taking care of yourself
[00:17:06] and you’re still feeling burnout,
[00:17:07] it’s important to try to recognize
[00:17:10] what the source of that burnout is.
[00:17:13] So when you’re feeling tired,
[00:17:15] when you’re in a moment of pain or frustration,
[00:17:18] try to take note of the things
[00:17:21] that are frustrating you in that moment.
[00:17:23] And this may mean quite literally keeping a notebook
[00:17:26] that gives you that information later
[00:17:29] when you’re kind of looking back on that moment.
[00:17:31] It’s very difficult to recognize the source of pain
[00:17:35] well after the event occurs.
[00:17:38] So it’s very important that as you experience
[00:17:41] these various emotions,
[00:17:43] these various frustrating points,
[00:17:45] that you take note of what is causing them
[00:17:47] and try to be as honest with yourself as possible.
[00:17:50] It’s very easy to write something
[00:17:53] that sounds like you’re in a moment of pain,
[00:17:53] that sounds, you know, marketable,
[00:17:56] for lack of a better explanation, marketable,
[00:17:59] so that when somebody asks you,
[00:18:01] you know, what are your issues,
[00:18:02] what are you frustrated about,
[00:18:04] you can easily list this to them
[00:18:06] and it’s not offensive.
[00:18:07] But your problems, your frustrations
[00:18:09] may actually be stemming from things
[00:18:11] that aren’t really very attractive to deal with, right?
[00:18:15] They aren’t easily packaged up.
[00:18:17] You may have some animosity or jealousy
[00:18:20] towards a coworker.
[00:18:21] And it’s important that you’re honest
[00:18:23] with yourself.
[00:18:23] So you can deal with those root causes of burnout
[00:18:27] rather than trying to perform through the burnout.
[00:18:31] And that’s not going to get you anywhere.
[00:18:33] So it’s important that you recognize that source of pain,
[00:18:37] recognize that source of stress,
[00:18:39] and take note of it when it occurs.
[00:18:41] And ultimately, that you’re honest with yourself
[00:18:44] about that source of pain, source of stress.
[00:18:47] I would also highly recommend
[00:18:48] that you take on some kind of mindfulness practice
[00:18:51] when these painful moments are happening.
[00:18:53] If you have been practicing some kind of mindfulness technique,
[00:19:01] then you will be much more likely
[00:19:03] to be able to identify those things as they happen
[00:19:07] and kind of see your mind from an observing perspective
[00:19:11] rather than an experiencing perspective.
[00:19:14] So it’s very important in that burnout
[00:19:16] to recognize, first of all, take care of yourself, right?
[00:19:20] If you need to in that taking care of yourself,
[00:19:22] it may be.
[00:19:23] That you need to recharge, take some time,
[00:19:26] go on a vacation or even a staycation.
[00:19:29] You know, don’t try to force yourself to leave town.
[00:19:32] If you need a vacation from work,
[00:19:34] sometimes the best place to vacation to is to your home.
[00:19:38] I’ve heard of a lot of people actually taking time to,
[00:19:41] you know, try out a new hobby
[00:19:42] that they’ve been wanting to try out.
[00:19:44] And this can definitely be kind of a rejuvenating practice
[00:19:47] to try something new, to have a new experience,
[00:19:49] have something memorable,
[00:19:51] something that is totally different
[00:19:52] from the work that you’ve been doing,
[00:19:53] something that you can dive into with your mind
[00:19:56] rather than only taking a vacation and relaxing
[00:19:59] and ultimately kind of being aimless.
[00:20:01] You may consider, you know, on that vacation,
[00:20:04] especially during burnout,
[00:20:06] doing something that fully engages your mind
[00:20:08] in a different way.
[00:20:10] And again, as we said with the first problem
[00:20:12] of not knowing what to do next,
[00:20:14] you know, really this problem
[00:20:15] is kind of a sub problem of that, right?
[00:20:18] Not knowing what to do next.
[00:20:19] When you are in burnout, you kind of ask that question,
[00:20:22] what do I need to do?
[00:20:23] What do I need to do next to get out of burnout phase?
[00:20:26] And it could be that you need to reassess your own goals.
[00:20:30] You may need to take some time,
[00:20:31] take a step back from the work that you’re doing
[00:20:33] or take a step away from the TV at night, for example,
[00:20:37] and spend some time looking at what your personal goals are,
[00:20:41] what your motivations are,
[00:20:42] and figuring out if maybe the difference
[00:20:44] between your personal goals
[00:20:46] and what you’re doing on a daily basis,
[00:20:48] if maybe that’s the source of your stress.
[00:20:50] And ultimately what this ends up doing
[00:20:53] is it either solves the problem
[00:20:55] or it generates for you a clearer picture of the problem.
[00:21:00] And you need one or the other.
[00:21:01] You need to either solve the problem,
[00:21:03] which may be a very simple physiological change,
[00:21:06] you know, the result of reestablishing
[00:21:09] a good workout routine or, you know,
[00:21:11] jogging on a regular basis or something like that.
[00:21:14] It could be as simple as that,
[00:21:16] or it may clarify the problem to you
[00:21:18] and you may need to have a crucial conversation
[00:21:20] with your employer
[00:21:22] or maybe with a friend or something like that.
[00:21:23] Maybe it’s a coworker that you’re having issues with,
[00:21:25] whoever it is that you have to talk to,
[00:21:28] but it may come down to a problem clarity as a solution.
[00:21:33] So the final problem that you’re going to face
[00:21:36] most likely as a developer
[00:21:37] is what to do when you feel incompetent.
[00:21:42] What to do when you feel incompetent.
[00:21:44] Now, if you are a junior developer
[00:21:46] or if you’re a beginner developer,
[00:21:48] especially you probably resound with this,
[00:21:51] but surprisingly,
[00:21:52] as we covered in one episode,
[00:21:54] if you are an older developer,
[00:21:56] if you’re a more experienced developer,
[00:21:58] you very well may go through this feeling
[00:22:00] on a regular basis.
[00:22:02] And I go through this feeling
[00:22:03] at least two or three times a week
[00:22:04] where I feel like my capacity
[00:22:07] to solve problems with code
[00:22:08] is not where it should be.
[00:22:10] And the strange thing is
[00:22:12] most developers that I’ve talked to
[00:22:14] have gone through this
[00:22:16] regardless of their ability.
[00:22:19] Now, why is that?
[00:22:20] Why is it that we can feel,
[00:22:22] like we’re light years behind one person
[00:22:25] and then when we go and talk to that person,
[00:22:27] they feel like they’re light years behind as well.
[00:22:30] And as we talked about in that previous episode,
[00:22:32] I mentioned some of this has to do
[00:22:34] with your perception of your movement.
[00:22:38] In other words,
[00:22:39] you may be in a high velocity phase,
[00:22:44] but your acceleration has stopped.
[00:22:47] So what does that mean?
[00:22:48] Well, velocity is your movement
[00:22:50] with reference to something.
[00:22:51] So,
[00:22:52] with reference to the non-coder,
[00:22:55] you’re still a very capable programmer.
[00:22:57] You’re still a very capable developer.
[00:22:59] But your acceleration rate
[00:23:02] is how much are you changing
[00:23:04] with reference to the last period of time
[00:23:08] that you changed.
[00:23:09] In other words,
[00:23:10] you’re becoming a better developer, right?
[00:23:13] So it’s not about,
[00:23:14] necessarily about how good of a developer you are today,
[00:23:18] but rather how much better of a developer are you today
[00:23:21] than you were yesterday,
[00:23:22] than you were yesterday.
[00:23:23] So this can be the source of a lot of frustration.
[00:23:26] It can be the source of a lot of fear
[00:23:29] and ultimately kind of one of the driving reasons
[00:23:32] for imposter syndrome, most definitely.
[00:23:34] So what can you do when you feel incompetent?
[00:23:37] The first thing I would recommend that you do
[00:23:39] is get some perspective.
[00:23:41] Go and talk to another developer or listen to this podcast.
[00:23:44] Remind yourself that developers feel incompetent
[00:23:47] all of the time.
[00:23:48] Part of the reason we feel incompetent all the time is because,
[00:23:51] most of the time,
[00:23:53] the code that we want to write is broken.
[00:23:56] In other words, as we develop,
[00:23:58] until we finish a feature,
[00:24:00] most of the time,
[00:24:01] our code is either incomplete or there’s a bug in it.
[00:24:04] A lot of our time is spent taking that code
[00:24:08] from an incomplete or broken state to a fixed state.
[00:24:12] Most of our time is not spent looking
[00:24:15] and kind of meditating on the fact
[00:24:18] that our code is actually working.
[00:24:20] Very little time is spent
[00:24:21] looking at that.
[00:24:22] Instead, a lot of the time that we spend is fixing things,
[00:24:27] looking at broken code,
[00:24:28] looking at failing tests,
[00:24:30] dealing with bugs,
[00:24:31] feeling like we are failing a lot of the time.
[00:24:35] And this is just a simple exposure problem, right?
[00:24:38] We’re exposed to our failures
[00:24:40] more than we’re exposed to our successes.
[00:24:43] And this is a very difficult problem to overcome,
[00:24:46] but if you listen to this podcast
[00:24:48] or you go and talk to a developer, another coworker,
[00:24:50] talk to your boss,
[00:24:51] let them know what you’re feeling. Let them know that you’re feeling incompetent. And sometimes,
[00:24:56] sometimes, and I hesitate to say this because I don’t want to increase anybody’s sense of
[00:25:01] imposter syndrome or a feeling of inadequacy, but sometimes it means that you just simply need to go
[00:25:08] and seek some training. And it may be as simple as reading a book. It could be reading some online
[00:25:14] material, looking at a course online, maybe taking a free video course online. Most of the time,
[00:25:21] the resources that you need are available and they’re free. And as a developer, it’s very likely
[00:25:26] that you’re already aware of that. And it’s also likely that you realize that you always have to
[00:25:31] be learning in this industry to keep afloat, to continue having a job, and to continue being
[00:25:37] relevant. But a lot of the time, our feelings of incompetency come from the simple fact that there
[00:25:45] isn’t just one way to solve a problem. This is a difficult reality that we as developers face,
[00:25:51] especially for problems that are not optimizing for one particular variable. It’s not an
[00:25:58] algorithmic problem. You’re not trying to write some kind of new sorting algorithm or something
[00:26:03] like that. Most of the time, the things that we face are basic design issues, software design
[00:26:10] issues that are mashed up. They’re shoved into the same bucket as a budget issue. In other words,
[00:26:18] we have to make trade-offs. And very often, we have to make trade-offs. And very often,
[00:26:21] we feel incompetent when we’re not sure what degree of trade-off we need to make. And this is
[00:26:28] a huge, difficult problem that you’re going to face many times in your career. And here’s my
[00:26:34] real advice for you as a developer. Do the first thing that works. Do the first thing that works.
[00:26:42] Once you’ve done that, evaluate it. Evaluate it for its constraints. Evaluate it based on all of
[00:26:49] the variables that you know. Most of the time,
[00:26:51] doing the thing that works first will provide you with the information that you need to refactor it
[00:26:58] to the more ideal solution. Most of us get hung up on the idea that that first thing that works
[00:27:07] is not the right way. We feel bad about our code. We feel like we did something that was hacky or
[00:27:13] we could have done it more performant or maybe we could have used better built-in methods. Maybe
[00:27:19] there was a library that we didn’t need to use,
[00:27:21] we did use, and it’s not as performant as we want it to be. But ultimately, the first,
[00:27:26] most important rule in your software evaluation should be, does the software work? And if it
[00:27:34] works on day one, even if the solution needs to be refactored, that’s better than waiting until
[00:27:39] day 100. Thank you so much for listening to today’s episode of Developer Tea. We’ve certainly
[00:27:45] shared a lot of opinionated answers on these questions. These opinions are typically shared,
[00:27:51] most experienced developers. There are going to be some deviations. You’re going to get other
[00:27:56] opinions. Somebody’s going to tell you to try everything that you can, try hacking your sleep,
[00:28:03] try hacking your diet when you’re in burnout phase, right? Somebody’s going to tell you that
[00:28:07] there is an absolute answer to what you should do next. Somebody will tell you that feeling
[00:28:13] incompetent means that you need to go back to school or something like that. And this is why
[00:28:18] these problems continue to pervade.
[00:28:21] In this industry, not because those people are wrong, but because the answers are so hard to
[00:28:28] find and the answers are so specific to your scenarios. So I encourage you to struggle with
[00:28:34] these questions, but don’t struggle alone. Don’t isolate yourself. You know, we reminded you in the
[00:28:40] beginning of this episode, you are not isolated. Don’t increase your own isolation. Don’t choose
[00:28:47] isolation for yourself. Thank you so much for listening. Thank you again,
[00:28:51] to Linode for sponsoring today’s episode of Developer Tea. You can get $20 worth of credit
[00:28:56] at Linode by heading over to spec.fm slash Linode and using the code DeveloperTea2018 at checkout.
[00:29:02] Thank you so much for listening to today’s episode. I encourage you to subscribe in whatever
[00:29:07] podcasting app you use, but specifically if you subscribe in iTunes and you give us a rating and
[00:29:13] review, that’s the best way that you can help other developers just like you find Developer Tea.
[00:29:19] Thank you so much for listening. And until next time, bye.
[00:29:21] Enjoy your tea.