Ex-Google Tech Lead explains why programming is so hard. Join me in my new coding interview training program: http://techinterviewpro.com/ 👨💻 Join ex-Google/ex-Facebook engineers for my coding interview training: http://techinterviewpro.com/ 👨💻 Videos of 100+ programming interview problems explained: https://coderpro.com/ 👨💻 Sign up for my FREE daily coding interview practice: http://dailyinterviewpro.com/ 🎬 Learn how I built a $1,000,000+ business on YouTube: http://youtubebackstage.com/ 📈 Get 2 FREE stocks on WeBull (valued up to $1,400): https://act.webull.com/k/S4oOH2yGOtHk... 🛒 My computer/camera gear: http://amazon.com/shop/techlead 💳 The TechLead "ultra-thin" wallet https://amzn.to/2WNhqEP ☕ The TechLead custom coffee-maker: https://amzn.to/3dxwrzr 💬 Join my Discord: https://discord.gg/pFUBUtE Party up: http://instagram.com/techleadhd/ / http://twitter.com/techleadhd https://www.linkedin.com/in/patrickshyu/ 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