learn

How to learn to code (quickly and easily!)



Sharing buttons:

Hi,

and welcome back to another episode.

My name is Patrick Shyu 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 sit at the computer

for many hours at a time.

All engineers know that there's something called the zone,

where they basically just sit at a computer,

uninterrupted for long periods of time,

and that's how they're 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 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 then 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 in the 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 it'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 will basically be able to learn.

And basically software engineering

is just all about learning over and over again,

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

and 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 one tip I have is,

I will usually just get some really good music.

it will make me want to sit down at the computer

so I can listen to that music.

And then I'll just listen to it.

And then I'll just focus on whatever it is I'm doing.

And also say that

a lot of normal people don't have the ability

to just sit down for many hours at a time

and stare at 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 like, 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 force 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 that might go out 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

on all 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 and the program.

That first class is called the weeder 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 plus in it.

And I think the reason is that

a lot of these people were probably very good

that normal studying,

like they could read a book,

they could memorize it,

they could do their homework,

but they may not have had that culture

of sitting in front of a computer for long periods of time,

and that was something that, at least for me, I had,

I had been actually coding since elementary school.

And meanwhile,

I think a lot of these other kids,

they really had no clue

what they're 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 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,

no one, nobody teaches you that.

So if you were thinking that when you get into college,

somebody is actually going to sit down

and teach you all these languages,

that's not the case.

No one ever held any engineer's 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,

lemme just clarify that,

there are some courses that can teach you these languages

if you actually need the help,

but most four-year degree college programs

will not be teaching you that.

These are things that you may learn in,

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 the supposed fundamentals which are like algorithms,

data structures,

how operating systems and compilers work,

databases.

But probably the only course that you really need to know

are like data structures and algorithms.

And, you can keep in mind that

each of these courses is just basically one textbook.

So if you were to read two to three textbooks,

you'll basically be covered,

and that'll 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 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 land 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 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 make that your goal to make it,

and then just try to create it,

and as you're doing it,

you can learn that new language,

learn 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 it had.

You know, like,

if you could 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 learned HTML, JavaScript,

maybe either PHP or Python

as a back end language

and they'll quickly get you going.

And that's really all you need

to be able to start creating complete web applications,

and 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 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 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 codebase.

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 it really takes is you gotta 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 to code by yourself.

Even in 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 thinker 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 one 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

it'll 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 looking at the way they act,

like how social,

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 that'll do it for this episode.

Lemme know what you think in the comments below,

and I will see you next time.

Give it a like and subscribe,

bye.