Press "Enter" to skip to content

Top 8 developer habits: Perseverance – Fun Fun Function


good Monday morning today I would like

to talk about the importance of

perseverance as a software developer in

this video I’m going to define what I’m

talking about when I say perseverance

why perseverance is specifically

important when you’re a developer I’m

going to talk about how talent is a bit

overvalued and finally I’m going to talk

about habits and processes because I

think that those are a great way to

improving your perseverance closing the

window because it’s making a lot of

noise let’s get into it

IMM PJ and you are watching fun form

function what is perseverance what I’m

talking about in this video is demeanor

sort of like persistence maybe one way

of putting it is the ability to

withstand frustration kind of like how

you can train your muscles to hold an

object for an extended period of time

you can also train your mind to with

certain withstand frustrations for

longer periods of time and different

people have very different tolerance

levels for frustration I think it’s

important to recognize that frustration

is not an entirely negative feeling

frustration is there to protect us to

make sure that we are not spending our

limited energy and time on dumb things

if we as mammals I guess didn’t feel

frustration we would just keep chasing

animals that that were too hard to catch

and just expend more energy on catching

these animals than we extracted from

eating them it’s kind of nature’s way of

measuring return of investment when

you’re feeling frustration is your

brains way of like giving you a little

bit of an indication that is this really

worth it and the more time you’re

spending on this thing that you’re

trying to achieve the more insistent

your brain is going to be like

now you spent a lot of time doing this

I’m gonna crank up your frustration a

bit so frustration it’s there to help

but it’s like all the motions then our

brain has the evolution of our brain has

of course not

kept up with the rapid change in society

of industrialization digitization and

our frustration thing in the brain is

built or evolved for a problems that we

had thousands of years ago and it’s

absolutely still useful but it’s it’s a

bit predisposed toward short-term

benefits and because of that we need to

build up our tolerance for frustration

in order to have it like in order to

come to compensate for it so that it

also works in modern society especially

when it comes to highly technical and

problematic crafts like programming this

episode is part of a series the idea for

this series came from somebody asked me

on Twitter what I thought was important

things to learn as a as a new software

developer I could answer this personally

because I have some ideas but that

answer would be very specific to to me

and my realities and my experience and I

feel like this question needs a much

broader perspective so I went to the

Twitter and the mastodons and I act this

what do you think are critical traits in

a programmer not to be super 10x or

anything just to feel good and function

well professionally and I gathered all

the tweets that I got about a hundred of

them and I categorize them into eight

buckets and those are going to be the

basis for this this series the habits

are eight perseverance seven get

done six teaching five understanding

context for check your ego three empathy

to being humble and one

being curious and this first one is

about perseverance it’s important to

recognize that this list is not like a

checklist of things that you have to be

you have to remember that this is a data

aggregate it’s like we ask a hundred

people what do you think it’s most

important and a lot of people that they

they send a lot of different things and

then we made a list that it’s ranked of

what was at the top of what was at the

second there is not an actual person

that thinks that you have to do all of

these that we’re gonna list in this

video series because that would be

insane why is perseverance important to

being a developer a lot of the traits

that we’re going to talk about in this

series are very general traits like that

or useful as a human being and

particularly useful as a person working

in a professional and creative

environment oh so they are useful in

general but I still think that

perseverance is particularly important

to a to a developer and it’s also

important in very specific ways one

thing that you deal with as a developer

to a bigger degree than most professions

I would argue is being constantly faced

with problems that you don’t know how to

solve and as a result you don’t know how

long they’re going to take if you are

able to do them often not you have to

learn something new or if they can be

done at all

this is pretty particular to the role of

a software engineer to have this to such

a large degree in their profession I

think a lot of professions have it but I

think that few professions have this on

a daily basis you need this kind

of weird naivete that when you are faced

with the problem and you lean into it

eventually the problem will buckle even

though you don’t know what to do you

still take a deep breath start reading

we start thinking we start drawing and

like slowly

but surely we have this path that

emerges this often happens with bunks

it’s you you you are tasked with the bug

there’s a bug in your system do you

sometimes you don’t you haven’t seen the

bug you have just a user that has said

that the bug exists and you have to

first find a way of over at producing it

and you just have no idea how to do it

you don’t know what the user did so you

just have to okay get hints from the

user and then when you finally are able

to reproduce the dog you have to figure

out what part of the system is this is

happening in what might be causing this

you have to like bring some oh maybe

it’s this part maybe it’s this part

maybe this is happening and then you

have to start drilling down drilling

down drilling down drilling with Buzz

it’s very rare that you can say lowing

somebody okay we have this bug yeah it’s

wrong how long do you think it’s going

to take to fix it very very rarely that

you as a software developer can can make

a like a confident claim like oh it’s

going to take this long you have no idea

because you don’t know the intricacies

of the thing even if you’re familiar

with the code base so you think it’s one

of the things where you sit down and you

just this task you might take ten

minutes what might take four days or it

might not be so little at all because

some in another system or it

might even be like that there is some

in another system so we need to

either like replace that system we’ll

rewrite that system and that would take

like two years and when you hit that

situation you should that’s a situation

when you should be listening to your

frustration and give up and go away from

that box but the point is that you need

to have this mentality of leaning very

firmly into a problem and not like

having this I’m going to fix this

problem because if you don’t you will

have this horrible voice inside your

head

you’re a failure like if you think if

you I’m going to fix this in an hour

I’ve got a push and it takes like four

hours for every hour you pass past your

imaginary deadline that you just made up

you you’re just going to have this voice

saying that you’re a failure you’re a

failure you’re a failure like you need

to have this lean in mentality and be

very like slow and methodical about

solving problems be consistent

perseverance is also related to treating

programming like a long game this

attitude is also very important like not

just to solve problems but also to

function long term as a programmer

because programming is a marathon not a

sprint this is true for both learning

and for projects in the learning context

I’ve had people ask me like I’ve so I’ve

been doing this for months now I’ve been

programming for months and I’ve only

learned a little bit I often hear this

from people going into boot camps

because some boot camps they agreed a

bit of an unhealthy expectation about

like you can become a programmer in the

course of a few months I mean you can

learn basic programming in that time

short but learning programming it’s kind

of like when you when you finish your

boot camp or you finish your education

that is when the real learning starts

it’s learning programming is a lifelong

lesson and the more you learn the more

you realize so you have your learning

here right and this is what you know and

you think that oh then you see that this

corpus around it with stuff that you

don’t know and as you learn as you’re

learning grows more and more you realize

that you were wrong this thing isn’t

this size it’s it’s this size so you

learn more and more and then you realize

that this thing that you don’t this area

of stuff that you don’t know it’s almost

infinite so you realize that learning

and programming it cannot be completed

not even close you just have to pick

like a

inside of it and go slowly and just grow

and compare yourself to the person that

you were yesterday that feeling of oh my

god there is so much that I don’t know

that feeling will not go away by

learning more it will grow at to a point

where it just just realized that oh okay

and the marathon not a sprint also

relates to software projects themselves

like you we do have this these ship

dates where we get a new version of the

software out the door but software today

tends to not exist in a vacuum it’s not

like a game that you release and then

it’s released it’s on some CD ROMs and

we never updated some software today it

lives and breathes it it works on top of

other system on top of operating systems

on top of libraries on top of internet

connections and servers they are living

beings that constantly needs fixing and

and evolving I’ve seen so many software

projects fail because people treat them

as projects instead of processes so in

the same way that you can’t treat

software development as a project you

need to spend it treat it like a process

you also need to treat learning not as a

tuition or like something that you stuff

into your head this curriculum you need

to treat is it as a growth process you

need to cultivate this growth mindset

the number one skill in this list is

learning and we’re going to get to that

later but perseverance is one of the

basis for the learning habit in general

talent is greatly overvalued I often

find myself not as much nowadays but in

recent years like feeling that ah I

don’t have enough talent for this there

are so many more people that just poor

software development of so naturally

they are smart and I am not particularly

smart at least I

feel smart at least not smart like that

I don’t think a lot of people think that

the this way that I am I am NOT I am NOT

X therefore I cannot do Y and I think

that this it’s natural that this

attitude exists because it it puts the

blame elsewhere I am not good at math

therefore I cannot be an engineer then

it’s not my fault anymore engineering

that for other people I would like to

but I am not good at math I am but it

turns out that science has proved this

largely wrong there is a fantastic book

called grit that is written by Angela

Duckworth you can check out her TED talk

here clicking there I’ve also linked it

in the episode description along with a

link to buy her book if you want to

support me and the show the book is

about a lot of things not just

persistent but this more

all-encompassing concept called grit but

one very very interesting thing that I

gathered from the book was that they did

Studies on on these kids and they found

that grit and persistence was way more

indicated or as a correlator than any

other characteristic having talent for

things it definitely did help but the

absolutely biggest correlator for

success was just going at it and working

on it statistically that is what matters

when I saw the study I initially got a

little bit suspicious that okay but

maybe the talented kids arias more

persistence and persistent and greedy

because they are talented but they

actually disprove that they actually

showed in the the extra figured out that

talent does not cause persistence and

they even found a slight negative

correlator so if you’re talented it

might actually cause you to

we ought to be a little bit less

persistent which is interesting but it

might be related to like the fact that

you feel like since you have talent you

feel like that you are entitled to

success and when you hit a wall over

your first wall you you’re not capable

to deal with that because you feel like

it’s due to your identity who you who

you are I am that you should succeed

anyway great book Angela Duckworth grit

finally I would like to talk about

processes and habit because I don’t

think that persistent is some magical

emotion that just arises in you I think

it’s a to a large degree habits and

process I did a Q&A with my friend David

and this is one of the questions that

came up but I want to talk a little bit

more about it it’s very important to

develop your professional habits and

processes for instance when you

encounter a problem that you don’t know

how to solve like oh we’re gonna do this

thing with the database we’re going to

request this thing and we don’t or maybe

even don’t know what database to use or

we may be used maybe we even don’t

clearly know what the problem is when

you’re faced with a challenge where

there’s no clear path forward you need

to know what to do whenever I encounter

a bug I kind of have these motions that

I run through at least these thought

processes that I’ve developed over the

years I often try to you know it’s going

to the code and find the issue and

sometimes that works but mostly doesn’t

and I feel that familiar sense of

frustration creeping in and at that

point it’s so if it’s easy to just go

hit the coffee machine or usually the

the more common response that is kind of

sort of ok it’s too just like unassign

yourself from that bug and then start

working on another bug somebody else can

deal with that bug but then I think that

if I’m on a good day I

yeah I think that this is okay this is

this is your use to this this is or it’s

always like this let’s just read and

start thinking about the problem like we

usually do in the case of a bug I

usually try to just list a lot of places

where the bug might reside I guess

brainstorm a little bit and then I jump

into these parts of the system and I

start adding breakpoints or console logs

and I try to like narrow down the field

where where I think that things might be

going wrong I add checks here that seems

like okay the data is correct here the

data is correct here the data is correct

here okay but what about at the end like

the data is correct here the data is

still correct here the data is correct

here okay here here is this is the area

where things things are failing mix

let’s try to narrow that down until you

find the bug sometimes the problem is

just big maybe you’ve got a big project

description from from the organization

maybe like it just has kind of like it’s

been like a game of telephone through

the organization and the the assignment

that you’re given it’s just not really

clear it just passed forward is not

obvious you don’t know why you’re doing

it and in that situation you just need

to take a step back think about this

problem what are we doing why are we

doing it and try to write that down and

talk to the people involved is this what

you want me to do it’s kind of different

for every situation but the important

thing is that you develop these habits

and these processes to protect you from

frustration so that you have something

to cling on to once the frustration

train hits you in order to have

perseverance you also need to manage

your mood and energy in movies and to

degree in professional life we tend to

glorify these crunches a bit you know we

we just okay we need to get this out a

door on Friday yes we are doing coffee

and

eat pizza and stay and work all night

until it’s done BAM it’s out the door

let’s have cake and you can do that

that works you can you can do that for

quite a number of times because before

that starts wearing down on you but

eventually it will you will break and it

will a morning will come when you

suddenly just don’t feel like getting

out of bed and then you force yourself

to anyway you do that for a couple of

weeks and then you suddenly can’t get

out of bed

development is a marathon not a sprint

it’s important that you have like this

sustainable productivity you need to be

like you can’t be this person that is as

low productivity for a long time and

then like a burst of productivity at the

end or project because of panic you need

to be this person that has a medium

level of productivity all the time don’t

skip lunch get a standing desk don’t sit

around too much take a walk around

lunchtime so that you get your energy

levels up drink plenty of water and if

you’re you’re feeling down or sick make

sure you that that you deal with that

and don’t try to just push through it

have a time when you get into the office

every morning know what you are doing

make sure that you know how to get

started quickly don’t start by checking

email because you will be distracted

it’s good if you have decided the day

before what it is that you do like at

the start find a system that works for

you that makes you persevere for a long

time oh by the way there is this book

about solving complex problems that is

called how to solve it it’s great I’ve

linked it in the episode description

that’s it that’s what I have to say

about perseverance it’s the first

episode in this series of eight

important habits for a software

developer

you have us watched an episode of fun

fun function I release this every Monday

morning Oh 800 GMT but if you don’t want

to wait that long you can watch this

episode that the machine learning

cyborgs of google’s have determined is

optimal for you

I am mpj until next Monday morning stay curious

Please follow and like us: