被欺骗的八百字


前几天刚刚面完google总部。。虽然感觉要悲剧了,不过看到自己从大一还是个学商科的,走到现在可以得到谷歌的面试机会,还是觉得挺不容易的。本人非大神,技术在本科生可能刚好合格,目前海外普通大学在读,只是很喜欢写代码。已经入坑两年,感觉可以写一下文章整理一下这个过程。


楼主其实从小就很喜欢电脑,小学毕业自己动手组装了自己的第一台电脑,还记得第二天就是期末考但是拿到了零件完全停不下来!初中和高中的时候喜欢逃课捣鼓各种奇怪的软件,那个时候把一些普通的软件比如Adobe公司的PS,AE之类的,还有混音比如AU,Cubase都玩了一遍,虽然技术停留在入门阶段。


当时家里人都觉得楼主已经走歪,完全没救,需要回炉重造。还好,楼主属于那种好胜心很强的妹子,关键的考试没有跑的太歪,还是考上了一个普通的大学。当时在家里人的建议下选定了商科专业,因为家里人觉得毕竟是女孩子,所以就选一个常规的女孩子专业,如果学理科专业的话,可能会的很吃力。当时也考虑过CS,但是考虑到学这个专业会很累,也会很难,所以退缩了。


所以楼主觉得,选专业的时候一定不要抱着“因为别人都这样的,所以我也这样“的想法,还是要顺着自己的本心,做最合适自己的决定。因为楼主发现学商科,根!本!学!不!下!去!背书背的要死要活,考试的时候还是没有思路,完全比不过别人,这对于楼主来说太打击了。所以在大一下半学期,楼主做了这辈子最明智的决定——入坑了大CS。


其实入坑CS的感觉没有想象中的那么难。学CS确实累,也确实难,但是如果原来就发现自己喜欢的,或者说原来理科就不太差的,其实还是可以轻松入门的。当时在没入坑之前听到的诸如学了半年一行代码也看不懂这类说辞,其实是那个人本身的问题。所以楼主也建议别的想修CS的妹子,别人的建议可以听,但不要全听,自己最了解自己的能力,不要像楼主一开那样过分看轻了自己。


自从入坑CS之后,楼主还是保持了非常规的学习方法 —— 还是一如既往的喜欢逃课并且捣鼓自己的东西。当然这里的逃课不是说放生课内的内容,所有上课的笔记,以及老师要求的reading,我还是全部看完。只是楼主个人非常喜欢写东西,并且觉得有些课,实践是真的很有用的。举个例子,老师当时教面向对象编程(Objective Oriented Programming)用着一些很理论的Java例子教,很多人刚学完时还是不知道怎么在真正的项目中用OO,只是觉得好难理解。但是楼主就是直接上手开始写Java游戏,一学期写了两个游戏,第一个是用同学和老师的脑袋作为素材的雷电,还有一个是可以局域网联机的双人对打游戏。虽然作品粗糙,但是对于理解OO来说,游戏的确是很好的选择。


楼主还是觉得,女孩子学CS,千万不要因为自己是女孩子什么的,就觉得自己弱势了。楼主自从转了专业之后,在所有的团队项目中,都是领队。感觉女生在组织,还有梳理任务方面其实是很有优势的。在团队任务进行项目选型的时候,一定要参与,去搜集资料,了解利弊,千万不要把这种工作全权交给别人负责,这样就太无聊了。还有就是学的不要太功利,楼主喜欢把每一个作业都当成一个项目来做,而不是单纯为了学分。记得一个只占某一门功课30%分数的游戏,老师只要求用skratch(一个教小朋友写代码的软件)进行原型实现就可以了。但是楼主自己画素材,用JS实现了整个游戏,并且附带不同的关卡和音效,收获经验还是蛮多的。


也想说说是实践和理论的问题,楼主觉得实践和理论是相辅相成的,感觉自己缺实践了,就去实践,在实践中遇到平台期了,就说明要看书了。关于实践,从一个本科生的角度来说,找一个不水的实习真的,真的,真的对提升自己的技术很有帮助!楼主在大二有了第一个实习,是在五周之内用node.js的elastic search api开发一个搜索引擎,包括前后端。楼主从一开始什么都不会,到完成整个任务,期间收获了阅读API,各路教程以及初步入门了前后端开发的技术。然后楼主又找了一份实习,是在一个创业公司,因为觉得这类公司更加锻炼技术。这份实习的这份经验也非常宝贵。首先,认识了各路大神,第二,认识了rails, 以及在前端技术上面有了一个工业级别的经验,姑且从一个只会写最基本JS,HTML,CSS的小白知道了模块化,代码规范等等等等。另外,认识各种不同的技术还是挺有意思的,不过还有有一个专精会比较好,楼主写过一点后端,一点游戏,一点Java,但是前端算是我的专精(虽然还是很水)。


关于理论,楼主其实不是特别擅长,但是最最起码,还是要保证自己考试可以拿个不太差的分数,基本的算法结构以及复杂度还是要了然在心,不然想去面大公司就会勾呆。楼主本人的水平就是,比如快排,归并排序这些最基本的代码还是可以做到随时写出来并且知道原理,回溯法比如八皇后,基本的dfs,bfs这些也能写出来。在面试狗狗之前稍微系统地从数列,Stack,字符串,队列,链表,树(二叉搜索,平衡二叉,红黑),图(图的表示方法,A*,dijkstra算法)以及位操作。推荐一下编程之美这本书,觉得讲的很系统。国外的书的话就推荐crack the coding interview,面试很管用,并且要出中文版了。其实面试的算法都不会难到ACM级别,个人觉得leetcode的hard题封顶了。当然这些只是应付面试的理论知识。。然而更加高深的我也不知道了。我周围有一些同学很喜欢研究数论,复杂度这些,但是我个人不是这个料。


所以总结一下就是:CS没有捷径,但是有可以复制的道路,以目前粗鄙的经验来看 平时多积累项目经验 或者 算法ACM烂熟于心 = 成功。 另,目前在学习Angular,初尝了一些跨平台框架比如Ionic,另外在读源码中。。。如果有前端大神可以指点一二那是相当好的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值