Subtitles section Play video
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