自学编程,并取得谷歌的Offer

大学计算机基础2019-02-10 16:14:23


Hi YouTube so as I mentioned in a previous video I didn't study computer science or Computer Engineering as my major at my university .Instead I was studying statistics but on the side I learned to code mostly on my own and eventually I became good enough to get a job at Google as a full-time software engineer. So I briefly talked about how I learned to code in the same video but in this video I wanted to go into more detail so I'm gonna talk about my personal experience first about how I learned to code but if you just want to find my recommendation about what you should do you should just skip over to this time in this video.

在前面的视频中我提到过了,我大学主修专业不是计算机科学计算机工程。我主修专业是统计学,我学习编程主要靠自学,最后我在Google从事软件工程的工作。在这个视频中,我会详细跟大家介绍我个人学习编程的经历。

So here are the 4 steps I personally used to learn to code first of all I took a few summer courses during my summer break so the first course I took was an introductory programming course it covered topics like loops variables if statements and functions. And then the second course I took was on data structures and algorithms it covered topics like trees graphs hash tables and searching and sorting these two courses were both taught using Java.

我会分享关键四步,第一步是我在暑假里参加课程《计算机编程导论》的学习,它涉及到:循环变量条件语句函数等。第二门学习的课程是《数据结构与算法》,主要教授哈希表,以及数据查找排序,这两个课程使用的语言是Java。

 After I took those courses I decided to learn more on my own I heard that you can use something called Ruby on Rails to build websites and I wanted to build a website so I decided to learn Ruby on Rails and Ruby which Ruby on Rails is based on and to learn Ruby. I use the website called the pragmatic programmer and to practice using it.Iuse this other website called project Euler which gives you a ton of simple programming problems to solve to learn Ruby on Rails I used rails for zombies which is an interactive website for learning how to use Ruby on Rails

学了这些课程以后,我想通过自学获取更多的知识。我听说Ruby on Rails可以做网站,通过学习我知道Ruby on Rails(它是基于Ruby的)工作原理,也使用一个pragmatic programmer网站来学习,并进行巩固练习。我还使用另一个网站Euler通过解决编程难题,来巩固前面的知识。第三个网站是rails for zombies,它是交互性网站,主要学习如何使用Rails。

Step 3 I started working on a bunch of personal projects my first real personal project was going to be like the reddit of Japan partly because I'm originally from Japan and I was living in Japan at the time. Working on this project was really helpful for understanding how Ruby on Rails works how Ruby works and also how web technologies in general work through this project I also learned the importance of asking for help. You know when you're new to programming it's so easy for you to get stuck and I think it's really important for you to just ask for help you can do this virtually through websites like Stack Overflow Facebook groups or reddit or in person if you know someone who knows how to code in person and then using the skills and connections.

第三步,我开始做一些个人项目(有点类似日本的Reddit),其原因是我祖籍日本,再加上我做这个项目居住在日本。这个项目对我帮助很大,通过这个项目对于编程语言更加精通,对于WEB技术有一个整体认识,并意识到求助别人的重要性。作为编程新手,很容易卡壳,寻求帮助就很重要。你可以在网络上寻求帮助(如Stack Overflow,Facebook组,reddit),也可以在线下得到面对面的帮助,然后发展自己的技能,并建立一种联系。

I developed partly through my projects I got a few technical internships these technical internships were really helpful for developing my skills further because I started getting feedback on my code from my colleagues and I started learning a lot more a lot faster than on my own in between those internships and even when I had one of those internships I kept working on more personal projects that was partly because it was just fun and partly because I wanted to build more skills and after all that I started working on my technical interview skills and eventually I got a job at Google as a full-time software engineer.

通过项目化学习,我开始去做一些实习工作。这些实习工作对于提升我的技能作用很大,我开始慢慢得到同事对于代码编写的反馈,学习的效率也大在提升了。同时我也做更多的个人项目,一方面是这些项目有趣好玩,更一方面我想更多更全面的提升编程技能。之后我开始刻意训练自己的技术面试技能,最终在Google得到一份软件工程师的工作。

So if you're just getting started with programming or if you're a complete beginner what should you do exactly I'd recommend the following four steps.

如果你现在刚开始学习编程,我给你推荐下面4个步骤:

First of all(Step 1) you should learn the basics of programming- one of those interactive websites I personally recommend code Academy but Ialso heard that freeCodeCamp is also pretty good if you're not sure which language to get started with. I do recommend either Python or JavaScript

第一步:学习网站推荐:Code Academy和freeCodeCamp,如果你不能确认学习哪门语言作为入门语言,推荐:Python或者JavaScript。

(Step 2)After that start working on a personal project it could be a website an app or automating a simple task as you work on your project keep learning more through those interactive websites and for more advanced topics that those websites don't cover I'd recommend lynda.com and Udemy.

第二步:之后开始做一些个人项目,可以是网站,APP,或者自动化的工作,在一些交互性网站上继教学习,对于更高级的主题,你可以去这两个网站:Lynda.comUdemy

Step 3 as you work on your personal project I think one important aspect here is the community aspect if programming is something that's totally  new for you it's probably gonna be  really hard and so it's really important for you to be able to get help from others through online or offline communities so try using websites like  StackOverflow,Meetup.com and Facebook  groups and events to find relevant communities.

第三步:做项目时,最好去逛逛编程的社区,得到他人的帮助很重要(无论是在线或者线下)可以试试,如StackOverflow,Meetup.com 和 Facebook组及相关社区。

Step 4 Try getting  an internship or a job ideally a paid  one once you do you should be able to learn even more quickly because you'll  be ableto get some feedback from your colleagues on your code and those are  the four steps I would personally use to  learn to  today if you have extra time and money  to spare going through a coding bootcamp  or even getting a degree from a  university might also be a good option.  

第四步:做一些实习生工作或者带薪的工作,有了同事的反馈,这样你学习的更快。当然如何你有更多的时间与闲钱,可以参加编程类的BootCamp(价格不菲),或者去大学进修一个相关的学位。

Okay if you're curious about a more general strategy Iused for getting a  job at Google there's a video about that  and if you're wondering which  programming languages you should learn I  have a video about that too and let me  know in the comments section below about  what kind of videos I should make in the  future I'm YK fromCS Dojo and I'll see  you in the next video.  

上面就是我编程学习经验的分享。(作者系YK,现在在做CS Dojo教育推广工作)