hi and welcome back to another episode
my name is Patrick Shu and I am the tech
lead our topic today is how to learn to
code and there's really only one skill
that you need to have to learn to code
and generally people either have this
skill or not and that is really the
ability to just set at a computer for
many hours at a time
our engineers know that there's
something called the zone where they
basically just sit a computer
uninterrupted for long periods of time
and that's how they are able to put
together complex thoughts chained
together many pieces of logic and
basically put a program together and
this is a habit that a lot of people
don't have like there they sit down for
10 minutes at a time they don't really
have a desk maybe they're like watching
TV as they're using their laptop and
they're checking their phones all the
time and then they gotta get up and pick
a cupcake and then go walk the dog and
then they gotta go drive out and do an
errand go shopping come back and then
they gotta go meet up with their friends
and each time they have maybe 10 20
minutes at the computer and it's just
not enough time to really sit down and
focus so if you can get into the habit
of saying you're just gonna block out
say four hours and then evening grab a
cup of tea and then really just sit down
and focus on staring at the computer for
this amount of time then I think you'll
be able to develop that habit and that's
even better if you can block off like an
entire afternoon and just give a whole
day to it and that is how you'll
basically be able to learn and basically
software engineering is just all about
learning over and over again it's it's
kind of an interesting career because
it's not like being a lawyer or doctor
where over time your experience just
builds and builds and then when you're
like a 60 year old doctor or lawyer
you're just so experienced and you can
try to choose amounts of money now for
software engineering when you become
like a 60 year old guy you're probably
outdated now this isn't really
necessarily about ageism it's more about
many people just decide to stagnate and
they stop learning if you can continue
learning
keeping up with new technology as it
changes over the many years then you're
gonna be good generally so this is
really about developing the ability to
learn and that ability to learn needs to
be done over long periods of time
sitting in front of the computer and you
know one tip I have is I will usually
just get some really good music and I
it'll make me want to sit down at the
computer so I can listen to that music
and now just listen to it and now I just
focus on whatever it is I'm doing I'd
also say that a lot of normal people
don't have the ability to just sit down
for many hours at a time and start a
computer like I'm not even sure if it's
really something healthy to be doing
usually it's the people at school who
don't have a lot of friends who don't
get invited to the cool parties and so
then they just sit at home by themselves
and they've got nothing better to do
except to learn basically get good at
computer coding so if you're a kind of a
popular person or you've got a lot of
events and cool things going on in your
life then you're probably going to find
it to be very difficult to just first
yourself to just sit at home and ignore
all those other events for me I'm the
type of person who really enjoys being
at home and not doing a lot of things
like given the choice I might just sit
at home for like a whole month and I
might go out once once a month you know
I just I don't feel a need to be going
out shopping and like going to the mall
every day like it's just not that
interesting to me I remember when I was
in high school I wasn't the smartest kid
like I was pretty smart but there were
these other kids who were much smarter
than me and they would always be getting
like a pluses are not the exams and then
we all went to college and since it was
kind of trendy at the time to apply to
computer science a lot of them did that
and basically by the end of the first
year all of them dropped out and I was
like the only person left from my high
school who was actually studying
computer science in the program that
first class is called the wieder class
because it's intentionally made to be
difficult and just filter out a lot of
students and basically give them bad
grades so they're forced to drop out
meanwhile for me I just really enjoyed
that course I got like a
and I think the reason is that a lot of
these people were probably very good at
normal stuffing like they could read a
book they could memorize it they could
do their homework but they may not have
had that culture of Sydney in front of a
computer for long periods of time and
that was something that at least for me
I had I have been actually coding since
elementary school and meanwhile I think
a lot of these other kids they really
had no clue what they were getting
themselves into they thought it was
going to be like studying physics or
chemistry or biology or something like
that but computer science is a whole
different culture and it requires that
computer culture now when you actually
get into the computer science courses it
may surprise you to hear that the
professors don't actually teach you any
programming languages at all so language
syntax like how to code in Python C++
Java JavaScript PHP or Objective C all
of that stuff they don't really know
what nobody teaches you that so if you
were thinking that when you get to
college somebody's actually going to sit
down and teach it all these languages
that's not the case
no one ever held any engineers hand like
that everybody who learned how to code
generally had to do it by themselves and
they're all self-taught in that sense so
don't wait to be taught by somebody and
that's just how it is and you just gotta
keep self teaching yourself so if you
don't have that self teaching culture
that initiative then you need to be able
to develop that okay now hold on let me
just clarify that there are some courses
that can teach you these languages if
you actually need a help but most
four-year degree college programs will
not be teaching you that these are
things that you might learn and say high
school courses or community college
courses and I think a lot of people
maybe think that well the people who
actually gone to a computer science
program and maybe like you didn't for
example maybe you're thinking that they
were actually taught this stuff no one
was taught this stuff what people are
actually taught in these courses is
their supposed fundamentals which are
like algorithms data structures how
operating systems and compilers work
databases but probably the only course
that you
need to know our like data structures
and algorithms and you know you can keep
in mind that each of these courses is
just basically one textbook so if you
were to read two to three text books
you'll basically be covered and that
will get you going and in reality a lot
of computer science you don't really
need to know these crazy data structures
and algorithms like they'll tell you how
to implement a hash table but in reality
no one really implements a hash table
they just use it and and basically if
you were to do the algorithms course I
understand time space analysis like how
efficient these data structures are then
you're gonna be able to use them fine
and there's not that much holding you
back then like so I think you can get
very far even teaching yourself on your
own although that's not to say that a
college degree is useless like a college
degree is actually incredibly valuable I
think simply because it's so difficult
for students to stand out the
competition is so tough that having that
college degree just elevates you one
level up and just makes everything so
much easier for you to let your first
job compared to having nothing and
trying to prove to people that you may
be qualified even though there's tons of
other people who may have some degree
who's competing for that same job
basically after that I think like you
know you have to ask yourself why you're
learning to code and there could be a
variety of goals maybe you want to build
a project for yourself maybe you're just
curious but if your goal is to
eventually get a job as a software
engineer in some company then I would
say that your goal is going to be to get
something on your resume and the best
way to do that is probably just to make
some personal projects as you're
starting out it's gonna be difficult to
get anyone to hire you
so think about some cool projects that
you can make and set make that your goal
to make it and then just try to create
it and as you're doing it you can
that new language learned some
fundamentals and when you finish it you
can put that project on your resume and
then you make sure you can be able to
explain about whatever impact that had
you know like if you can have a website
or something to show it that would be
pretty nice and if you could get a few
users that would be even better
as for what track to go into I might
recommend web development as one way to
quickly get going like you learn HTML
Javascript may be either PHP or Python
as a back-end language and I'll quickly
get you going and that's really all you
need to be able to start creating what
complete web applications and you know
these projects you can basically put on
your resume and get you started another
option I might recommend is mobile
development which is pretty trendy
nowadays and I would say that in the
past iOS development has been seen as
trendy but in recent times Android
development has actually been
skyrocketing like if you check the
charts Android growth is growing really
fast so I think that the demand for
Android developers should be going up
anyway I think that pretty much captures
what I'm trying to say which is that no
one's really there to hold your hand
throughout all this it's not like when
you start a job you get a pair of
programmer and together you're
programming with a mentor and people are
watching your screen and going through
each step together I mean there are a
few jobs that actually do a lot of pair
programming but most of the jobs that
I've seen they just give you access to
the code base and there's usually a lot
of crazy technology and languages in
there that even experienced engineers
may not really be familiar with and they
just need to start digging through and
teaching themselves how to get through
it all what really takes is you got
really just be able to pour yourself
like a cup of tea or a coffee and sit
down for a few hours and just really try
to learn the code by yourself there's
you know even in an industry there's
even less documentation than what you
see online usually like the code might
be messy there may be really poor
documentation and people just need to
have that tinkerer mindset and just go
in there and dig in and take a look you
know that's the culture that's how it is
there's no true
correct way to do any of this I would
recommend that as a beginner you can
probably even ignore the whole algorithm
fundamental track at first you might get
into eventually but like if you were to
pick up a book on how to do web
development in PHP or Python or how to
do Android or iOS development and then
just go through that book will probably
get you set up and you really just need
to be willing to put in the time and
effort to do it and I think that many
times I'll basically just see people and
just just looking at the way they act
like how social you may be if people
don't seem like the type of person who
would be able to sit down and just
really study a computer like I can
already tell that they don't really have
that culture of the programmer like you
need to be able to develop that culture
and get into the zone sit down for many
hours at a time and I think that's the
one skill that a lot of people probably
need to hone more on if they want to get
serious into coding so they'll do it for
this episode let me know what you think
in the comments below and I will see you
next time give it a like and subscribe
bye