How I learned to code (as a software engineer) using project-based learning.

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Welcome to /r/Futurology! To maintain a healthy, vibrant community, comments will be removed if they are disrespectful, off-topic, or spread misinformation (rules). While thousands of people comment daily and follow the rules, mods do remove a few hundred comments per day. Replies to this announcement are auto-removed.

👍︎︎ 1 👤︎︎ u/CivilServantBot 📅︎︎ Aug 09 2020 🗫︎ replies
Captions
hey welcome back to coffee time with your host 2x Google X Facebook tech lead and today I thought I would tell you about how I personally learned to code and achieve the role of staff software engineer with a salary of $500,000 per year but I wanted to keep this real especially for the beginning programmers out there who are looking for career advice now why don't we head on over to my LinkedIn profile and I'll walk you through some of these experiences quick pause are you launching a website check out our sponsor squarespace.com slash tech lead from websites and online stores to marketing tools and analytics Squarespace is all-in-one stuff to build a beautiful online presence and run your business get 10% off your next order at squarespace.com slash tech lead the first thing though you need to understand is that I had pretty much begun programming in elementary school I was working on cue basic visual basic making a bunch of games and gaming is probably what motivated me I had always wanted to be a game programmer in high school we had the AP computer science class and I was probably already the top student by then I went over to Community College to learn C++ and that was tough because I didn't know about pointers at the time and I remember even crying over it because there was such an obscure topic but once I figured it out it wasn't that bad through good grades I graduated in valedictorian in high school I was able to get into UC Berkeley under the eeks Department electronic engineering and computer science and that's a very competitive program half of all students drop out in the first class and I was still just making hobby games for me and my brother to play with randomly in my spare time now here's where things get interesting the computer science programs they don't really teach you much they teach you actually really obscure useless languages like Lisp scheme assembly code some Java but without the web frameworks do you need to make it practical they don't even touch JavaScript or Python and so I would go looking around that random languages like Perl flash regular expressions most of these are outdated by now but what they did for me was allowed me to create web applications that would launch to the entire school class schedule organizers event finders a dating site for those school and over time these small pet projects they caught the eye of a local school tech administrator who offered me a job and I did some random work for him here and there doing web scraping using Python Perl and then my aunt who was a director at juniper Networks referred me into the company has to interview for an internship and I was doing like cleanup of technical documentation using pro scripts regular expressions and this was really a pretty basic job nothing to write home about but there are two important lessons first is I accepted help from somebody else I didn't try to do it on my own and a lot of people go out there and they say they want to do on their own they don't need anybody's help they want to be a self-made man and I just don't think that's a way to go about it everybody gets help from somebody accepting help from friends and family for referrals or even seeking it out is completely fair game so many engineers and thing that's actually how they get in the other thing is I focus on project work a lot of the languages that I learned for the sake of learning they didn't really get me anywhere I just learned them and not forgot them they went away but it was the project work that I did that actually went on my resume and had lasting impact even though the underlying language like Perl pretty much faded out in my senior year I studied abroad in Japan which I highly recommends that the inner brother is a great experience it really opens up your mind and perspectives when I came back actually it was pretty difficult for me to get a job even with credentials like graduating out of UC Berkeley while I was able to get interviews at Microsoft or Google the interview process was so tricky there was no lead code it was a bunch of brain teasers questions that would be banned by today's standard so instead I decided to just apply to grad school get my master's degree and plus I really wanted to do computer graphics right I wanted to be a game programmer and I felt that I had only taken one class in computer graphics and needed more knowledge anyways so I applied the UC San Diego and UCLA and got into both and I chose UC San Diego because I wanted to be closer to the beach and their computer graphics department was also just much stronger personally I had a lot of fun in grad school it's like a second chance at college and I was able to hone my skills in say advanced algorithms advanced operating systems computer architecture just really get more into that at th4 databases and computer graphics took some more classes in computer rendering computer vision and by the time I finished I had also completed internships at Microsoft and Sun Microsystems essentially just having a graduate degree opens a few more doors gives you some more time to apply to internships so in my opinion it's not a bad option if you just want to buy yourself some more time especially these days if you want to get into say like machine learning having some additional knowledge in these advanced areas augmented reality virtual reality computer graphics data bases security networking it could be beneficial and that degree sort of follows you throughout your lifetime now the funny thing is after this I was still not able to land the job at thing the interview process was still so tricky I remember getting tricked up on stacks and queues which they never taught us over in any of the computer science programs we just don't use those that much and yet in tech in industry you end up using stacks and queues a lot these days we know that but I landed a role as Sony Pictures doing special effects for movies mostly working in Python C++ doing computer graphics shaders and it was a great role it was a lot of fun and I was doing almost exactly what I wanted to do it wasn't the game industry but it was the movie special effects industry and that was just as good if not better in my opinion because game industry is they don't pay as well and I easily could have stayed at that job for my lifetime probably things were good but perhaps fortunately for me I started getting into web development at the time the whole Facebook platform apps business was starting to take off some of my apps started taking off as well and eventually I quit the hole graphics gaming industry and got into web technologies this shift into web technologies is really what brought me to Silicon Valley and brought my salary range probably interstate 120k range from there I've worked on my own apps and games as an indie eff developer I joined the few startups I worked at some larger companies like Groupon played them which was later acquired by Disney and this was a risky time for me I was jumping in and out between jobs hopping around and for my projects I tried to do two things I would never just learn a language for the sake of learning usually that ends up in disaster like I once learned to Swift because I thought it was cool I never used it and I just forgot it I've learned half-a-dozen JavaScript frameworks but I never used those either they just wasted away so I would encourage project-based learning where anytime you're trying to learn something you're also trying to develop a project that goes onto your resume in this manner anything you learn you can put on your resume twice like if you learn typescript you can put the language on there and then you can also put in the field for whichever project you've developed on and kind of talk about the impact that that had as I mentioned earlier this also ensures that even if the language fades away or if the company doesn't have used for the specific language they can see what accomplishments you had and those accomplishments the amount of impact you were able to drive that still has retaining value it's much better than listening a laundry list of languages like asp.net on your resume that many companies may not care much about as an independent app developer I did pretty well actually I was already a self-made millionaire by writing technology trends like if the iPhone came out a Facebook app platform came out Twitter platforms came out I would just start building apps for those as they came out and then people would be eager to try out these new apps my basic technology stack is fairly old school it's like Linux Apache MySQL PHP some jQuery CSS HTML that's pretty much it and I can get very far with that throw in some memcache and Citians for scalability and they integrate with a bunch of other micro services that are online like Google Maps Twitter API is Facebook API is chat services Amazon AWS for their email services and really just integrating with a bunch of other platforms and bringing in their functionality can help you launch features quickly this is essentially full stack web development it's probably my favorite area to be in because the impact is so large you just throw up a website and anybody can access it through just a URL but at some point I wanted to also get into mobile iOS development because I had a bunch of apps and games I wanted to bring them to the Iowas platform natively so I taught myself objective-c but again it wasn't just for the sake of learning the language I had the project in mind that I wanted to launch and I knew that if I could get this done I would be able to put objective-c on my resume with the list of projects that I knew I would be pushing out at least four games so I traveled around working remotely teaching myself mobile development and you'll notice that even if the project failed I would still have learned mobile development and that is valuable so several months later when I was applying to jobs again I was going for full staff web developer or iOS mobile developer Google at the time happened to need iOS developers they were really ramping up their mobile offerings and I was able to land a job there because the opportunity fit my skill set and probably also because I had just been doing so many interviews along the way that I pretty much knew what they were looking for at this point I spent three and a half years working there on the YouTube iOS app and then switched on over to Facebook working in the or under mobile platforms and that's pretty much my career trajectory and you'll notice that I did try to guide my career along within the same type of domain like user facing web mobile app features I could have jumped into crypto Security database administration but I think that especially in this field where it's quite broad and you can go in a number of directions that you try to develop a little bit of a narrative a story about the technical background and skillsets that you bring it's just going to make you a little bit more of a fit so that though for me overall my big takeaway is to try to do project-based learning I see a lot of people learning Python for the sake of learning Python and they don't have a project in mind or they ask questions like which language is the best what should I learn and you know you should really have a project in mind such that you can put that project on your resume and then the language is the tool that you use to accomplish that project if you're launching a web project presentation matters which is why you want to check out squarespace.com slash tech lead Squarespace empowers people with creative ideas to succeed every day they empower millions of makers doers and dreamers by providing them with the tools they need to bring their ideas to life on Squarespace is all-in-one platforms customers can build a custom website claim on domain sell online and market a brand their suite of products combines cutting-edge design and world-class engineering make it easier than ever to establish and own your online presence so check them out squarespace.com slash tech lead and get 10% off let me know if you have any more questions in the comments below or what helped you in your career path if you liked the video give it a like and subscribe and I'll see you next time Thanks bye
Info
Channel: TechLead
Views: 533,548
Rating: 4.8957076 out of 5
Keywords: how to teach yourself coding, how to, learn to code, computer science, how to teach yourself programming, how i learned to code, techlead, how to learn to code, how to code, web development, how to learn to code fast, web developer, how to learn programming, engineer, technology, amazon, google, developer, apple, googler, tech, swe, software, facebook, cs, fb, software engineer, software engineering, software engineer life, software engineer intern
Id: Zt8wH_yD8AY
Channel Id: undefined
Length: 10min 20sec (620 seconds)
Published: Tue Nov 19 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.