You should know this stuff.
You're a great developer, aren't you?
Have you been living a lie all this time?
Hello, and welcome to another video.
My name's David.
I'm Head of Developer Relations at Arc - the easiest way to
find remote developer jobs.
And today we're going to be talking about the five best practices to
become a great software developer.
If you practice, if you code every day, you will become a good developer.
If the official documentation for a language, as a measure of what it actually
takes, most docs are not overly long.
What you do with the knowledge that's put forth in them.
Well, that's another matter.
And that's how you become great.
Other videos will tell you that if you want to become a great software engineer,
you need to focus on clean code, good architecture and learning a whole
bunch of principles like DRY and KISS.
And who knows what else?
Another idea is to learn every algorithm, every design pattern
that's out there, and that will work.
It is true.
That will add to your knowledge.
And that's a great thing, but I want this to be a little bit different.
I want this to be about the real world or what the kids
call "in real life" these days.
You know, the three dimensional people.
So here's my advice from my own personal experience, the things I
believe will be transformative to your career as a software engineer.
Number one, do the work that nobody else wants to do.
We all want to work on the shiny new things, the new project.
The greener the field, the happier the developer, right?
Well, you know the phrase, the grass is always greener.
Well, in this case, that's not always true.
Now, the reason I say that is because green projects come with deadlines.
Let me rephrase that, absurd deadlines.
They have the attention of all the people that you really don't want the
attention from and probably the spec that resembles the artwork of a four-year-old.
Project doom, as I like to call it, is a horror movie.
And most of the actors aren't really aware of the role they're about to play.
On the flip side, there's almost that section of code that nobody goes near.
Nobody touches.
Certainly nobody edits.
And there's probably a comment at the top of the file of the pain and suffering
that you will enjoy if you edit this file without due care and attention.
The truth is this bit of code was probably project doom from a
couple of years ago, the prequel.
And many of the same actors were probably involved in this mess too.
The fact that they know that they're about to make all of the same mistakes
again won't stop them from creating this new pile of mess, or what we
like to call, "features" sometimes we're a bit more polite about it
and we call it "technical debt".
One thing you can be assured of is these developers that seem to
create this technical debt seem to be very good, very consistent,
and very committed to doing so.
So why would you want to get your hands dirty by fraternizing with this filth?
All good things come to those who wait.
Nobody wants to touch this code.
They fear it, but I'm here to tell you it's actually like
the monster in Scooby-Doo.
It's just a bad developer in a wig.
Although that actually might be their real hair.
So you need to tame the beast or pull the mask off in this example.
If you embark on this heroic effort, you're going to get a bunch of things.
Firstly, you're going to be given time.
No deadlines here.
What's the alternative?
They're going to work on it themselves?
Not a chance.
Secondly, you'll be given respect, which is the point of the video, right?
Thirdly, if you're clever, you'll be given freedom.
When any problem arises in the future that's even remotely close to this area
of code, they'll just default to you.
So after you fix everything, you'll have ownership and you'll be able to work
on your beautiful code at your leisure without anyone breathing down your neck.
Cool huh?
Number two, finish something.
This one's going to hurt a little bit.
I say this one all the time, so I'm going to keep it quite brief.
But I encourage you to ask some of your friends who are also in the industry
about side projects that they've started.
Then I want you to ask about the side projects that they
finished, and then look at the discrepancy between the two numbers.
It's quite staggering.
Most developers don't finish things and it's actually harder than you think.
If you're the kind of developer that finishes things, certainly with side
projects, then you're well on your way to becoming a very successful developer.
And in the meantime, you'll learn so much more from that experience than you could
learn from months or even years at work.
Number three, go deep.
Now, I'm not saying that you can't change stack.
You can and it's absolutely true that the ability to change stack
is the sign of a good developer.
However, going deep on one thing, one language, one framework, one
stack is a very powerful thing.
You'll pick up an incredible amount of knowledge and that knowledge is
immediately transferable to other areas.
So many stacks are similar in that they solve similar problems
in dramatically similar ways.
Learning one stack in depth will make you a better developer in all stacks.
Number four, number four?
Number four, when you explain a topic to somebody who's learning it, you
inevitably learn more about it yourself.
It's often because a student will ask why at regular intervals and
uncover gaps in your own knowledge.
And secondly, having to explain it to someone will help
cement it into your own brain.
But teaching doesn't have to be confined to just senior developers.
A pair or a group of junior developers teaching each other is a powerful way to
help each other progress and certainly aids in the retention of the knowledge.
Perhaps you have like a study group where you all learn a
similar topic for the week.
And then one of you teaches the rest of the group that topic at the end.
This is a great way to learn and help each other.
In this scenario, the teacher doesn't have to be the best person in the room.
It's okay to fail.
That's the point.
Your peers are there to help you immediately because they're
learning the same subject too.
And they can immediately fill in those gaps.
When you think about it, more teams should operate this way.
Last but not least, number five, know that you won't always be great.
Your career will not be linear.
Your life will not be linear.
If they are, I feel sorry for you.
Your progression is the culmination of so many factors.
The people you meet, the books you read, the blog posts you stumbled
across, the people that taught you.
When you think about it, the fact that you got to this exact point
is actually quite a coincidence.
Maybe you've just learned your first programming language or framework.
And if we look at that journey, maybe the stars aligned, maybe you
met the right people and read the right things at the right time.
So what are the chances of that happening again?
Not good.
Sure, you've got the experience now to be able to overcome lots of those
challenges on the next hurdle, but that doesn't mean that what can feel
like disaster can strike at any moment.
Let's be clear.
It's not a disaster, but it is a root to what most people call imposter syndrome.
You should know this stuff.
You're a great developer, aren't you?
Have you been living a lie all this time?
Nope, you're human.
And you're a software developer.
Enjoy the journey.
One minute you're the senior developer on a team, and the next minute
you're baffled like the rest of us.
If you can feel at ease with this and even embrace it, you can
keep the pedal to the metal and overcome these challenges quicker.
They can be debilitating at times.
Most importantly, you'll be able to help others.
And if you're a true rock star, you'll never make anyone feel any worse if they
are going through the exact same thing.
And that's when you'll really be known as great, because being
great is not something you declare.
When you're truly great, others will declare it for you.
So let's test my memory and see if I can remember all five things.
Number one, do the work that everybody else won't do.
The grass isn't always greener.
You'll gain more respect and probably gain a better experience by doing the
things that everybody else won't do.
Number two finish something.
That sounds weird, but you probably only finish things when
someone's breathing down your neck.
If you can be the person that finishes your side projects, you're onto a winner.
Number three, go deep.
It's often tempting to jump between technologies all the time.
If you're starting out, go deep on one, and then when you know that inside
out, then you can start to change.
Number four, teach.
You'd be surprised how powerful teaching is.
Teaching is not just beneficial for the student.
It's beneficial for the teacher too.
Number five, know that you won't always be great.
Just remember, pride comes before a fall.
And we all fall.
Just make sure you get back up.
As always, if you liked the content, please give us a like.
If you've got any questions, I'd love to read those in the comments
and I'll answer them for you.
Lots more videos coming in this series and don't forget to subscribe.
And if you want to be notified about new content, hit the bell.
I'll see you next time.