in this video i'm going to talk about
what i think are the habits of a
successful software engineer so if
you're interested please stay tuned
[Music]
first of all the habits that i'm gonna
list here apply to being a successful
software engineer not just a coder
software engineering is way beyond just
coding but that is a topic for a whole
new video let's get started when i first
started working in the field i had an
extreme urge to start coding right when
i was given a project a problem a
feature to implement because i found
that if i'm not coding i'm just not
being productive but the reality is that
most likely the software you're gonna be
built in is not gonna be built fully by
you from scratch you're most likely
going to be working on something that
needs to fit in into the existing
architecture and what successful
software engineers do is that they first
fully understand the scope of the
problem and only then once you fully
understand what exactly you're solving
only then you should start coding this
brings us to point
two
successful software engineers are really
good at documentation most likely you're
not going to be the only one working on
the project there might be other
engineers or designers or data
scientists or product managers involved
and you need to make sure that whatever
is in your head gets documented and then
clearly communicated for others a
successful software engineer will make
sure to document every stage of his or
her thinking of how they will approach
the problem what the solution of the
problem is what are the potential
roadblocks to the solution of the
problem and they will communicate this
to all the stakeholders
and parties involved in this project
they will do that so that everyone is on
the same page and they will also do that
to get feedback from everyone most
likely you might have overlooked
something and asking for feedback and
being receptive to that feedback from
everyone else is super important the
easiest way to get that feedback is to
get everyone on the same page document
everything for everyone and then share
successful habit number three successful
software engineers write readable code
and they do so because they understand
that they will probably not be the only
person interacting with whatever they
wrote or maybe after they wrote it there
is going to be someone else maintaining
it so they keep in mind the fact that
someone will have to come in and look at
this thing that they wrote that they
have never seen before and understand it
most importantly your solution your code
must be readable because
someone else might come in and want to
understand it successful habit number
four
is being good at cross-functional work
as a software engineer you most likely
will work with other functions like
designers or product managers or data
scientists or people in operations you
name it
a successful software engineer
empathizes with the other function that
they work with and almost put themselves
in that person's shoes so that they can
effectively communicate with them they
can
deliver to them the exact information
that they need so if i'm working with a
designer i will try to explain to them
what exactly i'm building from like the
design perspective if i'm working on a
product facing feature that's what i'm
going to be focusing on in conversations
with them versus the actual nitty gritty
of technical implementation if i'm
working with a data scientist i need to
effectively communicate with them about
logging or data analysis or just asking
them the right question about how we
want to analyze the data coming from
this new project or feature that we've
built so being good at cross-functional
work is really important as a software
engineer and this brings us to my next
point communication if you think that as
a software engineer you can just sit in
a corner
not interact with absolutely anyone
you're definitely wrong of course you
should be setting your own boundaries
and communication style but successful
software engineers are effective
communicators successful software
engineers make sure that they
communicate clearly and effectively
especially if you work on a project that
involves other stakeholders or you work
with your teammates other software
engineers you need to make sure that you
communicate with them and over
communication a lot of times is much
better than no communication because
when you communicate or over communicate
you make sure that everyone is on the
same page you make sure that everyone is
clear on what you're working on and you
make sure that no one is wondering oh i
wonder what luba is working on i wonder
if she completed that thing that i asked
her to implement couple of days ago so
communicating effectively clearly and
potentially over communicating is
extremely important also by
communicating with your teammates you
can potentially recognize whether you
can help them out or you can unblock
them and communicating in general in
your team in your org in your company
just interacting with people can open up
opportunities for you you might hear
about something that another team is
working on that fits in or helps out
your products your team or your project
and that will open up opportunities and
doors for you next up
recognizing opportunities
successful software engineers recognize
opportunities for improvement and impact
and what i mean by that is that
successful software engineers do not
just focus on their projects or feature
at hand that they're working on but
they're able to see and follow beyond
that they're able to follow what their
teammates are working on what their
work's focus is and why that is
important is because when you're able to
see that big picture as opposed to being
very narrow focused on okay this is what
i'm working on and this is the only
thing i care about you're able to
potentially recognize opportunities for
impact and improvement question why
people are doing things a certain way
you might learn new things that are
relevant to you you might also
potentially recognize what faults they
have in their systems and improve them
talking to people asking people what
they're working on thinking about how
their work fits in with what you're
doing or your team is doing are great
examples for recognizing opportunities
and last but definitely not least is the
growth mindset consistently learning
asking and being open to feedback making
sure you learn from your mistakes and
reflection are all great examples of
growth mindset growth mindset is the
difference between thinking that your
skill is absolutely set and is defined
by talent versus thinking that you can
learn and grow and improve your skills
and your growth is defined by the amount
of work you put in to be a successful
software engineer as well as being
successful in any profession acts you
must acquire the growth mindset your
skill is not fixed you're constantly
improving and learning and you need to
absolutely own that and recognize that
successful software engineers are
constantly learning constantly asking
for feedback in fact feedback is also a
huge thing if someone is giving you
feedback do not be defensive about it
that means that they really care for you
to improve so you should be open to
constantly learning and constantly
recognizing what you could do better
successful software engineers are open
to learning are constantly open to
growing are absolutely okay recognizing
that they might be wrong guys thank you
so much for watching this video i hope
you enjoyed it and i hope you learned
something new about habits of successful
software engineers if you enjoyed it
please don't forget to like and
subscribe there is a subscribe button
down below and please leave your
comments down below as well
what do you think makes a successful
software engineer i would be really
curious to hear your thoughts obviously
what i mentioned is just a couple of
points in the myriad of things that
makes a successful software engineer but
please share your thoughts and i hope
you have a fantastic week bye for now