647 reads
647 reads

You’re Not Alone, Coding is Hard! How to Deal with Programming Roadblocks

by Patrick ShyuFebruary 16th, 2021
Read on Terminal Reader
Print this story
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Patrick Shyu YouTuber (500k subs), Ex-Google/ex-Facebook Tech Lead explains why programming is so hard. Join Patrick's new coding interview training program: Join ex-Google and ex-Facebook engineers for my coding interviews: http://techinterviewpro.com/ Get 2 FREE stocks on WeBull (valued up to $1,400) Join my Discord: https://discord.gg/pFUBUtE/. Join my "ultra-thin" wallet: The TechLead is a custom coffee-maker. Some links are affiliate links to products made through these links.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - You’re Not Alone, Coding is Hard! How to Deal with Programming Roadblocks
Patrick Shyu HackerNoon profile picture
Ex-Google Tech Lead explains why programming is so hard.

Party up:

Disclosure: Some links are affiliate links to products. I may receive a small commission for purchases made through these links. #techlead

Video Transcript:

Note: This transcript is auto generated by YouTube and may not be entirely accurate.

00:00

hey tech late here and welcome back to

00:01

another episode of the tech lead and I

00:04

know what you may be thinking this must

00:05

be lemonade it's not actually that's too

00:08

expensive I decided to recycle for the

00:11

meanwhile oh that's warm so today I

00:16

wanted to talk about why programming is

00:18

so hard and the fact is it's actually

00:21

not that hard but there are a certain

00:23

number of roadblocks and if you don't

00:25

clear these out of the way or if you're

00:26

not mentally prepared for these then

00:28

it's going to really mess you up and you

00:30

may find yourself stuck on some of these

00:31

you may even be banging your head

00:33

against the wrong wall when you realize

00:35

you're not even going in the right

00:36

direction here I know that there have

00:37

been some people who say maybe you have

00:40

to be born to code kind of like how you

00:42

may need to be born to be a really

00:44

gifted musical composer and I can tell

00:46

you that at least for myself I learned

00:49

to code but it was a real struggle even

00:51

for me I started at a very young age and

00:53

say sixth grade but even as I was

00:55

getting through learning pointers I

00:57

remember crying during those first few

00:59

lessons because it was just so difficult

01:01

I know this though that those who

01:03

persisted were able to get through it

01:05

and there are a number of things to

01:06

watch out for on your journey

01:08

into software engineering if that's what

01:10

you're going for here now before we get

01:12

started here I do want to mention that

01:13

this video is sponsored by myself I've

01:17

actually written up a little speech for

01:18

you guys here for my 15 minutes of fame

01:20

do I get 15 minutes I have been running

01:23

this program this tech interview

01:25

training program in which I will

01:26

actually help fast-track your career

01:28

with Joma check out their training

01:30

program tech interview procom you get

01:32

the first episode free when I first

01:34

began learning to code it was so

01:36

difficult look I'm not going to read

01:40

this whole thing for you guys just don't

01:43

be stupid check out the program tech

01:45

interview procom so one reason that I

01:47

think coding may be difficult is because

01:49

it is a combination of three different

01:51

skills actually not just one so you do

01:54

need the coding ability but to really be

01:56

an effective software engineer and to

01:58

actually get hired as one which

02:00

validates your skill sets

02:02

you also need problem-solving ability

02:04

algorithmic ability right that ability

02:06

to analyze a problem and come up with

02:08

the solution not just coding it we just

02:11

say the implementation and then you

02:13

also need communication ability because

02:15

coding is very much about teamwork if

02:17

you go into an interview and you are not

02:20

able to communicate properly you're not

02:22

able to express your ideas and thousand

02:24

to have that teamwork capability then

02:26

you're not going to get hired and then

02:27

you're going to go around thinking that

02:29

you're not a really good programmer you

02:31

may actually be fine in terms of

02:32

technical skills but maybe you were

02:34

missing that communication portion and

02:36

the problem is that many people will

02:38

have say two out of three of these

02:40

skills right you may be good at coding

02:42

and algorithms but you're not very good

02:44

at communicating or maybe you can do

02:46

some communication and coding but then

02:47

you don't have that algorithmic

02:49

analytical portion and you really need

02:51

to have all three portions to be

02:53

effective now the second reason that

02:55

coding is difficult I believe is because

02:57

it requires an inordinate amount of time

03:00

sitting in from the computer and just

03:02

staring at that screen and this is going

03:05

to be probably far more time than you

03:07

may be used to right for most other

03:09

disciplines you don't need to be sitting

03:11

down for a large amount of time focused

03:13

on something like say two to three hours

03:15

you can learn on the go right you could

03:17

go to a restaurant while you're eating

03:19

maybe you could read up on a little bit

03:21

of biology right learn a little bit of

03:23

chemistry while you're in the car spend

03:25

twenty minutes at the beach reading a

03:26

chapter of your history book that's okay

03:28

that's fine then that type of learning

03:30

can be done in segments but for computer

03:32

programming you really need to be

03:33

sitting at a single place at your desk

03:35

at the computer for a long period of

03:37

time many people are just not used to

03:40

being able to do that and they think

03:41

that that is just way too much and

03:42

they're not able to handle that and as

03:44

soon as they've sat down for say even 30

03:46

minutes they just say this is way too

03:48

much you know this must not be normal

03:50

they must not be good at it no that's

03:52

fine that's actually the proper path and

03:54

the way to do it the thing about

03:56

programming is that there's a certain

03:57

flow of things and you have to get into

03:58

that rhythm the study patterns are quite

04:01

different than other things that you may

04:02

be normally used to now another reason I

04:05

think that coding is difficult for

04:06

people is that it requires abstract

04:08

thought which is a skill that most of us

04:11

have not really been taught and many

04:12

people can go through life without

04:14

really using much abstract thought you

04:16

go through most of your say high school

04:18

without having to actually touch

04:20

abstract thinking at all and even many

04:22

people will go through college and their

04:23

whole lives without doing this but it is

04:25

about elevating your thinking

04:27

and generalizing towards more broader

04:29

concepts and relationships between

04:31

objects and concepts instead of looking

04:34

directly at the specific objects right

04:36

so for example if you take a look at the

04:38

dog

04:39

you may say at first that the dog's

04:42

color is brown and you have a computer

04:44

program that does this but then you may

04:46

be thinking if you were to start

04:47

thinking about this more abstractly why

04:49

do you even assign the dog's color to be

04:51

brown in the first place right

04:53

maybe the dog's color should be assigned

04:56

when the dog is born when the dog's name

04:58

is assigned at the same time that seems

05:00

to make more sense so you group all of

05:01

those things together but then you start

05:03

thinking well why is the dog a special

05:06

object within your whole entire system

05:08

should the dog be a special object and

05:10

should you be the one assigning it right

05:12

here in the program is the dogs more

05:14

special than anybody else why not assign

05:16

the cat a name why not assign the person

05:18

a name and the color as well so then you

05:21

may say okay well let's generalize the

05:22

concept of a dog to an animal and then

05:25

you have an animal factory that is able

05:27

to initialize these objects and assign

05:29

them names and colors and then you may

05:32

start thinking well why are you even

05:33

doing this client-side should then they

05:35

all be driven by the server and it

05:36

should be the server which is the source

05:38

of truth so you move everything to the

05:40

server and then the client has no

05:42

concept or notion about what an animal

05:44

even is the client is just a dumb but

05:46

view for rendering things so that gets

05:49

towards abstract thinking it helps you

05:50

generalize your concepts in the computer

05:52

system many people though they're just

05:54

going to say well why do you have to go

05:57

through all that the dogs color is brown

05:59

and let's just leave that that if you're

06:01

good at abstract thinking I believe that

06:02

it will also make you a good problem

06:04

solver another interesting facet about

06:06

coding is that you're never actually

06:09

done learning and there is no true sense

06:11

of accomplishment the field is just so

06:13

big so usually you just start learning

06:16

something and you feel that you've only

06:17

scratched the surface of it maybe you

06:20

only really understand 10% of it and

06:22

that's about right let's say you're

06:23

trying to learn react is you pretty much

06:26

just learn whatever you need to get your

06:28

portion of the work done but you never

06:30

really try to learn the whole thing the

06:31

framework is always changing and there's

06:33

always new technologies coming in and

06:35

parts of it being outdated and

06:37

deprecated all the time such that you're

06:40

sense of knowledge is always incomplete

06:42

and for some people they may not be used

06:45

to that right you may be learning a

06:47

physical equation or a math equation and

06:49

that's complete and you have the entire

06:51

knowledge right there you could be

06:53

reading a history book you've read the

06:55

whole chapter and that's about all there

06:56

is to it and you can piece together the

06:58

events 100% almost but in programming is

07:01

more like you only know about 10% and

07:04

sure there's a whole bunch more that you

07:05

can learn but that's fine and you just

07:07

leave it at that

07:08

the other thing is because the field is

07:10

so broad it is easy to get lost in the

07:12

weeds somewhere and it is easy to get

07:14

off track if you're not focused and

07:16

you're learning you could be wasting

07:17

your time learning all sorts of random

07:19

stuff that aren't really useful you can

07:21

spend all your time learning about

07:22

assembly code optimization which very

07:25

few people are going to need or you

07:26

could be wasting your time learning some

07:28

technology that's just not very useful

07:30

like how to decompile n64 game

07:32

cartridges in many ways learning code is

07:35

a battle against time in which you want

07:37

to prioritize your learning and make

07:38

sure that you're always on the right

07:39

track and not learning some piece of

07:41

technology that's not very useful and I

07:43

think people also really need to ask

07:45

themselves do you really want to code do

07:48

you think it is cool I think a lot of

07:50

people maybe they look at the amount of

07:52

money the salary income that software

07:54

engineers are making they think that

07:56

part's cool maybe they look at the

07:57

lifestyle but do they truly want to be a

08:00

programmer themselves or do they see

08:02

that as something that they may be doing

08:04

for say 1 or 2 years and then just give

08:06

that up because their heart was never in

08:08

it in the first place they don't think

08:09

it's cool most of us we are not brought

08:11

up thinking that software engineering is

08:13

very cool right we take a look at rock

08:16

bands singers musicians being an actor

08:19

or actress well that seems cool and a

08:21

lot of people would be willing to put

08:22

everything else on how to chase their

08:24

dreams for that but how willing are

08:26

people to give up say a Friday night out

08:28

at a bar with their friends to just sit

08:30

down and code not many people are

08:33

willing to do that because they just

08:34

don't think that coding is that cool a

08:36

lot of people think that coding is

08:37

something that you just pick up on the

08:39

side like learning to play that ukulele

08:41

it's not quite like that it requires

08:43

more commitment than that now one more

08:46

thing here is that the results will

08:47

validate you so you may think that

08:50

program is hard until you land the job

08:52

as soon as you have a job then you'll

08:53

feel

08:54

like oh hey yeah it was pretty easy and

08:56

this is where one big disconnect is is

08:58

that the coding interview process is

09:00

often completely different than actual

09:03

practical real-life programming and it

09:05

is actually a separate skill set right

09:07

you got to go through whiteboarding

09:08

questions and solve a bunch of brain

09:10

teasers and specific coding related it's

09:12

questions and there's a whole different

09:14

set of skills involved in that so the

09:16

challenge is that people maybe they get

09:18

through some coding practice and they're

09:19

actually pretty good by then but they

09:21

can't get the job so then they think

09:23

well coding is just seems so difficult

09:24

it's actually a different skill set that

09:26

you have to learn to pick up and this is

09:29

where I recommend you get some interview

09:30

training ex-google and X Facebook

09:32

engineers we're putting together a

09:34

training course program for you tech

09:36

interview procom so check that out we'll

09:38

get you all set that will teach you

09:39

everything you know to pass the coding

09:41

interview for large tech companies in

09:43

thing so I'm talking about coding data

09:45

structures analysis communication

09:47

behavior and all the other skills that

09:49

you're going to want to watch out for

09:50

you know one quote that I always think

09:53

about is the smallest decisions in life

09:56

often have the greatest impacts when you

09:59

invest in yourself maybe one day for in

10:02

the future you will look back on that

10:04

day that time and you'll say that was

10:07

the turning point right that smart

10:08

decision to invest in yourself I

10:10

invested myself my own skills and that

10:13

just sent me on a totally different

10:14

career trajectory and brought me to the

10:16

success that I have today let me know

10:18

why you think coding is difficult if you

10:20

liked the video give it a like and

10:21

subscribe and I'll see you next time

10:23

Thanks bye

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks