zoukankan      html  css  js  c++  java
  • Github上安卓榜排名第2的程序员教你如何学习【转载,侵删】

    来自:峰瑞资本(微信号:freesvc)
    文章作者:代码家(微信 ID:daimajia_share)

    软件早已吞噬整个世界,程序员是关键角色。过去 40 年中,许多伟大的公司都由程序员缔造,比如比尔·盖茨、拉里·埃里森、马克·扎克伯格、伊隆·马斯克。

    一本哥哥不太关心的 Visual Basic 课外书,代码家如获至宝,他接触了简单的代码,这让他进入到一个全新的世界。从那之后,代码家一直享受着用代码解决问题过程中产生的精神愉悦,并成长为一名专家级程序员。用行话说,黑客。现在,代码家是 Github 上的开源大牛+红人,拥有 12.8k 的 followers。

    这篇文章里,代码家分享了自己如何从第一天接触程序,一路学习、实践、创造的故事。他还总结了技术学习过程中的误区和突破方法。

    代码家,GitHub 开源及技术分享爱好者,开发过多个流行 App,也参与过多个技术社区的构建。

     

    每天,都会有人在微博上私信问我关于学习和成长方面的问题。我一般不会轻易回复这类问题,毕竟每个人的情况都不一样:性格各异,对待事物的方式也不尽相同。我不能夸下海口说:“你看某本书,几个月就能如何如何”,我最多能够做的只是鼓励支持他们。其次,我也从不认为自己已经到了一个很高的境界上。让我去给别人做指导,当之有愧。

    但是每次看到大家的私信,我发现很多人确实在学习上处在一种很痛苦、急需帮助的状态。最近我有时间,就想写写自己从第一次接触程序,一路颠簸学习到今天的故事和经验,希望对大家有所帮助。

    以下为学习的 3 个阶段:

    / 01 /

    第一阶段:消费者阶段

    我在快上高中的时候,开始接触的程序。那会儿家里有一本 Visual Basic 的书,30 多页左右,也是家里唯一一本计算机类书籍。那是我哥学校发的一本课外书,他对计算机貌似没有什么兴趣,就一直堆在家里,无意中被我翻到。


    ▲ Visual Basic 是我进入程序世界的启蒙。

    书里的程序格外简单,几行简单的英语代码,就能让计算机弹出一个对话框。当时我看到这样的内容,感觉简直神奇极了!我按照书里面的提示,尝试在老妈店里的电脑上一步一步敲下代码。当电脑弹出一个简单的对话框的那一瞬间,我感觉像是推开了新世界的大门,从此一发不可收拾。

    实践完 VB 后,我又在小书摊发现一本《黑客 X 档案》。我特别佩服书里面各路黑客高深的入侵、木马、盗号,我努力学会那些技能,然后去跟朋友们炫耀,但一直都无法入门。因为这里面需要太多计算机的基础知识了,不是写个弹框,或者一般计算器水平的人能搞定的。

    那会儿家里也没有人懂电脑,又处在小城市,连个电脑培训班都没有。

    随即,我开始漫漫买书求学路。


    一旦开始买书,就进入了学习的第一个阶段:消费者阶段。当个消费者其实是个挺轻松的事情,对着书本照猫画虎,一会儿就能跑起来一个看着很有趣的程序。那会儿,我疯狂地买各种书,但是由于周围没有人指导,买了很多类似 21 天xxx 系列的书,那会儿真的有这种书,我还抱有幻想,真的觉得 21 天后我就……

    我现在回想起来,国内的图书市场简直恶劣到一定程度。很多高校,教师升职评比需要考察发表书籍情况,导致国内一大批烂书其实都是高校老师发出来的。我现在依然认为,国内 95% 的技术类书籍是不值得买的,除了像侯俊杰老师这种文笔很好的技术人以外。

    很多技术作者总是做不到 “以读者能理解的顺序,而非自己认为的顺序” 写文章,坑害了不少对计算机有兴趣的同学。我一直很崇拜侯俊杰老师的另一个原因是他写的书,总是能把你最想了解的内容,如同庖丁解牛、深入浅出地解答出来。就拿 MFC 框架(MFC 是很早前的一个 Windows SDK 框架,现在用的很少了)来说,这是很复杂的一个框架。所有初学的人,都会问一样的问题:"这玩意儿是怎么工作起来的?!",但所有国产的关于 Visual C++ 的书,都避而不答,让你照猫画虎,就能弹出一个窗体。当初国内只有侯俊杰老师写的《深入浅出 MFC》一书,讲明白了 MFC 框架背后的一切。


    ▲ 虽然年代久远,但很多程序员对这本书很有感情。

    学完一些基础知识后,就进入了学习的第二个阶段实践者阶段阶段。所谓实践者,就是开始用自己所学,去开发程序,成为一名专业或非专业的码农。很多人的职业生涯,也就停留在了这个阶段,过上了小富即安的程序员的日子。

    我从消费者阶段过渡到实践者阶段,大概用了三四年的时间,其实已经挺长的了。我一直都认为我是一只笨鸟,无意中起飞,却飞了很久的那种。

    / 02 /

    第二阶段:实践者阶段

    我真正开始实践,是在本科学校做的几个网站。

    第一个做的是学校的匿名聊天系统,就是所有人都可以登录学校的站点,然后会通过匿名的方式,匹配一个异性,两人就可以开始聊天。当时用的 Asp.net 做的开发,配合 ajax + jquery,但由于当时技术太差,导致很多人聊着聊着就断线了,这个小产品不了了之。

    第二个是用 PHP 给我们信息学院开发一个官网。在做这个网站的同时,我选修了一门叫《网络安全》的课程,教这门课的老师叫陈路。我曾当着老师的面儿,夸下海口:“我开发的官网,坚不可摧……” 陈老师知道了我做的网站,随即布置一个作业:"哪个学生能攻陷我们的官网,一个漏洞加五分。" 结果后来,有个同学用一个很通用的扫描工具,在他自己其实也不知道发生了什么的情况下,那个工具把网站内容都删除了……我在建设网站的时候犯了个超低级的错误:GET 请求可以删除数据,外加身份认证代码有误。

    幸好,查看 Apache 日志的时候,我发现删除请求到来的前几分钟,Google 爬虫来过(那会儿Google 还能用),随即马上去 Google 的缓存里找回了所有的数据。


    ▲ Tips: 爬虫系统是找回数据的一个办法。

    后来陈路老师被学校批斗了一顿,批斗的罪名是 “鼓励学生攻击校园网络”,我当时极力跟学校说明这个错误是我犯的,陈老师做的并没有错。我到现在还是很喜欢陈老师这种教学方法,毕竟实践出真知。


    可能现在陈老师在教《网络安全》课程的时候,会以 "当年有个学生...." 作为开头,有时候想想也挺有意思的。

    后来我花了很多时间学习与 Web 安全相关的知识。在写各种 Web 程序时,我都会最大程度地考虑安全问题。


    ▲ 这次经历强化了我的网络安全意识。

    学校网站被攻陷后没多久,Android 出来了,我买了第一部 Android 手机,然后自己照着官方文档开始学习 Android 系统。我学习动力的源头,是我听说写 App 能赚钱。赚钱真的是学技术的很强的动力,我之前写网站零零星星地赚了六七千块钱,当时是同学里的小土豪。学会网站代码之后,我又把目光转到了刚出来没多久的 Android 上。

    我当时设定了一个目标,写一个图片类 App,打算叫 “无尽画廊”,因为很喜欢 WeHeartIt 这个小众文艺图片网站。我计划利用正则解析图片地址,然后再把网站里的图片呈现在 App 上。我那会儿在 Java 和 Android 方面完全零基础。

    我在入门学习 Android 的时候真的超级拼。早上 6 点起来,悄悄下床(不能吵着舍友),打开电脑开始研究加开发,折腾到早上 7 点半左右,和舍友一起去吃早饭,然后上课。中午回来也不午休,到快上课还在开发,晚上基本都会熬到 12 点左右。持续了 1 个月左右,我终于从零基础到开发出一个粗糙的 1.0 版本,发布到了国内的几个 App 市场。反馈不是很多,但都挺正向的。我决定继续开发 2.0 版本,还加入了广告积分墙的功能。我就这样超拼的持续了 3 个月左右。现在网上能看到的这个应用基本都是 2.0 版本。我从这个 App 里,也赚到了一些广告费,大概几百块。但是因为广告服务商倒闭了,钱到现在还没取出来,心痛……


    ▲ 为了写一个图片类的 App,我正式入门安卓。

    持续更新那个 App 到快毕业的时候,我选择了保送到北师大。

    大学毕业后的暑假,我去上海一家小公司实习,在这家小公司,我做了一个到现在来看依然很牛的功能。现在来看这是一个相当不错的 Growth Hacker 的案例(那会儿可没有增长黑客这个概念)。

    实习所在的公司,做的是类似小米盒子的产品。当时做这一类盒子产品,最重要的当属内容,当时内容版权还处于蛮荒时代,大家纷纷解析优酷,土豆这类的网站,以最少的成本,盗用这些网站的带宽。简单点儿来说,就是做视频聚合。视频聚合最麻烦的就是提取视频的真实文件地址,这种功能能为所有的创业公司免去版权纠纷,同时解决带宽费用问题。

    我去那家公司实习的主要内容,就是用 Node 语言做视频地址解析。我费尽功夫搞定了几乎所有的视频网站,各种黑科技都用上了:抓包、逆向、Headless Browser 等等。搞定所有网站后,勉强算是跟竞争对手站在同一起跑线。实习第二周的时候,已经有些没事儿干了,就在这会儿,我们公司有一个疯狂的想法出现了!


    ▲ 简单来说,Growth Hacking 是在产品层面利用各种技术上的最佳实践,来驱动用户的增长。

    可能很多人还记得当年伟大的迅雷云播,解救了不知道多少位寂寞的少男。我们当时特别疯狂的想法就是要让我们的小盒子,能够流畅地播放用户从电脑上推送的任意种子文件,无需等待。在当时这种功能简直就是创举!

    我抗下大旗,开始用代码模拟迅雷云播的全套流程。开发的过程十分艰难,得从不同平台的迅雷上抓包,寻找蛛丝马迹。优先从 Web 端模拟登陆和提交种子文件,这些都相对容易一些,最难的是如何提取到视频的真实地址。我花了大概一周时间,攻陷了所有的流程,然后公司买了 10 几个迅雷会员,又和各路 BT 网站开始合作,开启了浩浩荡荡的用户增长之旅。具体增长了多少新用户,其实我心里没有数,但是看见旁边的小朋友,每天都在加服务器,优化 Socket 连接数,我猜那一周得新增了 5 - 10 万用户,更为壮观的是,每到夜里,所有的迅雷账号里就瞬间塞满各种不可描述的日本电影,全部清空后,又被瞬间塞满。以至于后来,实习到第十七八天的时候,我的老板和 CTO 喊我过去,直接送了我 20 万期权,那感觉也是蛮爽的。后来微博上,这个功能也是火了一阵子,不过很快就挂了,起因是有用户在微博上 @了小米电视和迅雷,让他们跟我们学着点儿⋯⋯然后,不超过半小时⋯⋯服务就挂掉了⋯⋯不过挂掉没几天我就去帝都准备研究生报名了。

    还有一件很爽的事,就是我上了研究生后的半年里,那家公司一直给我支付着工资⋯⋯每个月轻轻松松就有几千块钱零花钱⋯⋯再后来的后来,那家公司倒闭了⋯⋯ 

    ▲ 加入 AnimeTaste。

    在上海实习快结束的时候,我认识了少楠,加入了 AT!(AnimeTaste),一个分享优质原创动画的小团队。我也因为这一段经历,从一枚野生开发正式晋升为一枚正规军,开发出了近百万用户量级的 App。少楠是一位非常优秀的产品经理兼设计师,我跟着他学到了很多产品知识和团队协作的技巧。AT!(AnimeTaste)组织到现在都是我爱的组织,大家虽然从事不同行业,但就跟亲人一样。每次聚会都是一年一度最嗨皮的日子,都是我经历过最真诚的聊天。从 AnimeTaste 再到 EverMemo(第三方印象笔记应用),我越来越感觉到了团队的重要性,见识到了优秀的设计师和 iOS 开发者。

    这漫长的三四年都是我的实践者阶段。以上的诸多经历,也为我自己创业埋下了很多伏笔。

    / 03 /

    第三阶段:创造者阶段

    实践者阶段之后,我开始尝试创造,进入学习的第三个阶段——创造者阶段,这个阶段对我来说没有结束节点,就一直这么存在着。

    我大致是在研究生一年级的时候,摸到创造者阶段的门梁。大三的时候接触的 GitHub,感觉是我学程序来,打开的第二个世界的大门(第一个,算是那个 VB 程序的弹框)。接触到 GitHub 之后,让我第一次开始学习和研究脚本语言( Python,Node,PhantomJS 等等),也是我第一次开始接触真正的生产工具(类似 Less,Sass 等等)。

    我那会儿在研究生阶段,每个月有了公司发的几千块钱,也入手了人生第一台 iPhone:一台土豪金版的 iPhone5s。买 App 太贵便折腾起了越狱(现在都是买 App 了)。装了一款越狱后的 AppStore,在那个 Store 里面,在下载一个 App 的时候,有个超漂亮的进度条,我每次都会认真地盯着那个进度条,一边看,一边感叹,一边也暗许自己也要在Android 上实现这一套。这也是我开始第一次开发自定义组件的初衷,也是 NumberProgressBar(实现带数字进度的Android 进度控件) 诞生的最初原因。 

    啃下第一个自定义组件,对很多学习编程的人来说都是很痛苦的,我也一样。那会儿的 Android 组件少的可怜,我试图搞清楚更多更底层的东西,需要不断地看文档,看源码,读别人的代码,不断地尝试运行……每天超过 10 小时投入,折腾了一周左右,终于做出来了。照猫画虎式地写好文档,做好测试,小心翼翼地发布到 GitHub,然后发表到当时 GitHub Android 的分享社群里。地址在这里:https://plus.google.com/+daimajia/posts/d6DJhLhLn1c


    ▲ GitHub 简直是求学者的宝库,你会很期待明天的 Trending 榜单上会有什么新东西冒了出来。

    再到后来的几个月,又陆续写了一些其他的库,发到 GitHub 上,其实我根本没想到会有那么多人去 Star,可能跟我 “下手” 比较早有关。

    在创造者阶段,要努力创造那些没有的,源自你脑海里的东西,而不是别人安排给你的。努力做到开发的东西让更多的人用到,可以是一个 App,也可以是一个帮助人们提高效率的 Chrome 插件,还可以是一个简单的组件。创造,最能够挑战你对一个行业的热爱程度。

    我从来不反对重复发明轮子。每一个新的轮子即便有一些小的改进,都是适应自然法则,优胜劣汰的。

    就我身边人而言,我最崇拜的创造者是尤小右。他把一个小的 Framework,一点点地做大,再到做出国际影响力,真是个不得了的事情,也是很多技术人梦寐以求的事情。


    / 04 /

    编程学习中的误区和突破方法

    总而言之,如果你突然意识到自己这几年一直处在一个很稳定的状态中,没有提升,那你得想想自己是不是卡在了某个阶段,一直无法突破。想想自己该做些什么,才能突破到下一阶段去?我总结了一些在学习编程过程中存在的误区和突破方法。

     

    ▌被误以为的学习

    曾经有一本书刊特别流行,叫《故事会》,后来销声匿迹了。在我眼里,取代《故事会》的是知乎。

    我其实一直很反对一个论调:“上知乎,学知识”。醒醒吧。知乎明显就是现代版的故事会好吗?!

    我不否认知乎存在有价值的知识,但根本不值得你花那么多时间,去发现那些少的可怜的知识。去读书吧!用最系统的逻辑,去学会一项技能,哪怕你去读《硅谷百年史》里那些振奋人心的关于仙童半导体的故事,也比你不断地在知乎上看很多水贴要强的多。而现在,最可怕的是大家在知乎上消费着垃圾,却依然觉得自己在吃着奶酪。学习的过程都是伴随着思考和痛苦的,如果你边笑边学习,那你真的得醒醒了。


    ▲ 值得拥有的往往都来之不易。

    ▌目标和激励很重要

    我在大三下半学期被保研之后,开始研发了一个叫小熊词典的 App,起因是因为我在学英语的时候,当时所有词典类 App 想要获取最全的词语解释都需要联网,除了消耗流量消耗之外,电量是最大问题,自习一早上词典就没电了。所以,我想自己动手写一个词典 App,主打离线词库和快速查询这两项功能。

    但最后的时候,小项目胎死腹中。说实话,当时整个 App 已经开发到 95% 了,抓取了非常多有名的词库的数据,并且整理成了规范格式,但我到最后还是放弃了这个项目。即便今天来看,这个词典依然很酷,算得上有最丰富的词库和最快的查询速度。

    现在想想,当初一个人开发那个项目的时候,每次想到一个很酷的功能,就决定加进来,导致整个项目的进度遥遥无期。我当时完全没有项目管理的概念,也没有意识到任意添加功能会很快拖垮我的体力,消磨掉自己的意志和热情。

    对于很多初学者来说,如果总是抱着书学,你无法获得任何的反馈和激励,以至于觉得事情越做越难。在学习的过程里,最好能给自己定一个简单的目标,比如:“我即便现在什么都不会,我就要做个小游戏出来,这个游戏应该是这样的一个玩儿法……” 做出来后,快速去找一些用户,最好是那些不吝惜赞美的朋友们,也可以是你的父母,让他们给你一些动力。

    ▌你永远无法一步达到完美

    我认识的朋友中,他们大多都有各种稀奇古怪的想法想要来实现,信誓旦旦开始 Side projects,但最后,很多都销声匿迹了。导致这些想法没能够落地的的关键在于,很多开发者在刚开始的时候,缺乏清晰的计划,就想达到一步登顶的完美境地,这其实是很可怕的想法。就好比,一个很少登山的人,却在第一次登山的时候,就决定登顶珠峰,结果可想而知。在实践自己想法的时候,最好去考虑怎样以最低成本来展现你想法的核心部分,而非去做一个大而全的方案。

    以最小成本来实现核心想法,一步步地去验证自己的想法,收集反馈,调整策略。最终抵达到正确的目的地。


    ▲ 开发程序如同登山,需要切实可行的计划,不能急于求成,

    ▌赶在兴趣消失之前,去学习新知

    不得不承认,懒惰是人的共性。当你看到别的朋友做出来很酷的小游戏的时候,你是否也有几分钟冲动,想要去学习游戏制作?不要等!快去买两本书抓紧学起来,哪怕你知道你这个热情的苗头很快会熄灭,但请不要放弃任何发现新大陆的机会,在学习冲动消失之前,先去入个门。

    我每次跟人分享学习经历的时候,我总是能想起来我初中时候的一位语文老师,微胖,性格和蔼。

    她在一次期末考试之前跟我说:“你在复习的时候,不要局限在课本上。你背会 24 节气都是很有意义的,想看什么书就去看,不要等,不要担心自己学不会。” 

    她的话对我学习新东西影响特别深,现在我基本上是想学习什么东西,就立马去学,即便可能一周后气馁了、放弃了,但是从来不会怀疑学这些知识的意义。

    我学过吉他,写过毛笔字,写过 Delphi,用 Sketch 画过 icon,用 Blender 画过 3D 保龄球,写过 Unity 小游戏……很多我都没坚持下来,但它们给我带来的最大改变就是我不会惧怕去接受新事物,思考问题的时候总是能考虑得很周全。我也在这个过程中慢慢地找到自己最爱做的那件事情,更清楚地定位自己。

    所以,当你忽然对某件事情有兴趣的时候,抓住那几分钟、那几天,赶紧去学点新东西。

    毕竟,点总是会串成线的。


    ▲ How often do you try new things?

    ▌少看别人写的文章,多看优秀的代码

    我做 Gank 以来,很多开发者都来投稿,以至于现在后台还挤压着 2000 多个投稿没有处理。看过这么一圈而后,我开始不主张去看别人写的技术类文章。看别人的文章,你看到的是他想讲给你的,而这些可能只是他在自己的项目里用到的,并不是一个客观全面的角度。可能用这样的方式,前期学习效果显著,但是会很快进入瓶颈期。可能会导致你只知道某个东西的一两种用法,甚至会让你对思考丧失兴趣,总想走捷径。如果你经常读各种语言的官方文档,总是会有 “啊哈!这样都可以,我以前都不知道还有这种方法存在。” 的感叹,但你看别人的文章,却很会少有这种感觉。

    我主张看优秀的代码,其实是希望伴随着思考学习一些技术细节。其实,评价某一种方案好与不好,是没有意义的。只有多积累其他人解决同一问题的方法,才能在下一次做决策的时候,找到适合当前场景的最优解,触类旁通,给其他问题提供解决思路。

    ▌慢慢减少对二手知识的依赖

    技术提升的过程,其实就是你减少对二手知识依赖的过程。二手知识是什么?就是那些经过别人翻译、总结的文章。一开始入门的时候,大家看到的都是二手知识(也可能是三手,四手的知识),但如果想要提升自己的能力,就必须强迫自己多去看些更官方专业的文档,进行体系化的学习。这个过程是很消耗体力和脑力的,但多坚持,一定会有明显的改善效果。

    ▌收藏的意义不大,收藏也不能改变什么

    很多人在网上看到不错的文章,总要 @自己的印象笔记。我之前也会这么干,经常把一些不错的文章,存到 Pocket 或者 Readability 里。但真的回顾去看那些文章的机会太少了,而且收藏这些文章还会给我带来不少压力。我只是浅显地读了读收藏里的部分文章,总是对自己说有时间了再去读完剩下的部分,其实很难抽空再找时间去读。久而久之,拖延症也就变得理所应当。

    有可能你会说,万一哪天用到呢?其实我觉得再 Google 一次就好啦,可能会找到比这篇文章更好的。嗯,就是这样。

    现在,我看到一篇不错的文章,首先从标题推测下内容,再扫一眼正文,如果跟我猜测的八九不离十,我基本就关掉链接了。如果内容跟我的推测大相径庭,我一定会一口气读完,而不是收藏起来以后再读。我之所以说收藏什么也改变不了,是因为你在读别人的东西,那里面的思考的过程是别人的。


    ▲ 努力减少从别人总结的文章里学习的频率,多去读一手资料,然后自己做总结。

    ▌培养一些对产品的感觉

     

    你有没有在 PM 说完要实现某个效果或者功能的时候,站出来反对,说:“这样并不合理。” 如果你有过,那么我想你也是一个有理想的开发者,而不是一个 “码农”。聪明人喜欢跟聪明人合作,大家一开口就互相明白了。没有人是天生聪明的,只是看的多了,想的多了,就显得聪明了。

    看些什么呢?看看一个优秀的 App 早期是怎么做冷启动的,看看 Apple Store 或者 Google Play 上最近有没有什么新奇的 App 出现,看看 TechCrunch 上最近又有什么天马行空的项目融到了钱。


    ▲ 观察一个优秀 App 的冷启动过程,会逐渐培养自己对产品的感觉。

    想些什么呢?想想一个产品功能的存在有没有意义,他的下个阶段又会怎么发展,想想某段文案是否会降低产品某个功能的转换率,想想某个动画效果是否是很恼人的存在,如果你可以对微信加一个功能,减一个功能,你又会作何选择?

    ▌每个人都应该有个 Idea List

    我在西安读大学那会儿开始,就有一个小本子,里面记录着突然冲入自己脑海的一些或靠谱或离谱的小想法。上面会写着类似:

    • 做个 Every big moment,用手机记录自己的每个值得纪念的瞬间,然后打印成相册发给我或者放在网上当做自己的 Profile。

    • 狗狗出门便便,主人打扫很不方便,有没有更好的方案?

    • 程序一旦崩溃,直接发送操作记录和堆栈信息到 Dashboard,而不要让测试人员努力重现,写个 SDK,搭建一套服务,一定会很好用。

    • 很多的 Bug 追踪服务,为什么不在错误堆栈旁边,展示出来这个 Bug 的解决方案,哪怕是一个StackOverflow 的链接也好,这样我就不用去自己搜索了。

    那个小本上记录了自己好多关于产品的想法,其中有不少想法,后来市面上都出来了相应的产品。有一些现在看来很可笑,但有的想法今天再翻看的时候,我仍然有想要组团队去实现这个功能的冲动。

    ▲ Idea List 总是能激发你去创造的欲望,有空,就去不断的记录自己的 Idea List 吧。

    另外,不要把自己的 Idea 当做一个秘密。多和人去讨论自己的想法,在不断地否认和肯定中,完善自己的想法,Idea 是不值钱的,只有实现它才是有价值的。

    ▌争取去更优秀的地方

    这句话可能大家都懂,但我的体会可能比大家都深刻。

    我在西安一个叫西北大学的地方读的大学,是一个普通的 211。客观来说,学校里的计算机专业比较一般,在到北京师范大学读研究生之前,我甚至没听说过 ACM。

    Python、Ruby、Node 这种编程语言在我们的计算机系,根本连影子都没有,传统的计算机技能点基本都是 C,C++ 这类。这并没有什么错,但如果只掌握这些,路子就变窄了很多,学长毕业去个腾讯、阿里,已经能被大家推上神坛。


    ▲ 更优秀的地方会为你呈现更多的可能性。

    本科学校大二会给计算机系开一门日语课。为什么会给计算机系开日语课呢?因为很多软件公司的外包业务来自日本。这个逻辑我一直都不能接受,这都什么年代了,我们早都不需要用外包支撑我国的 IT 产业了。

    学校给学生的定位更多是一个学校展示就业率的棋子:你会什么不重要,只要你最后有个工作就好了,不要拖累了学校的名声。

    来到北师大后,我感受到了前所未有的转变。学校整体的气氛相当自由,很多老师都是某些细分领域的专家,你问一个问题,他们能给你引导出很多有意思的点。久而久之,你也会被这些感染到。有的时候,我也会想,以后要不要去申请个美国名校读一读,继续深造。


    / 05 /

    写在最后

    我把目前能想到的一些编程开发上的学习的技巧和陷阱,大致都列了出来。这都是我个人的一些学习的经验,如果对你有帮助,想必也是极好的,也欢迎你指出觉得我写的有不合理的地方。希望实践我提及的一些方法,会对你的生活和职业带来改变。

     转载自:http://mp.weixin.qq.com/s?__biz=MzI1MTA3Mzk4Mg==&mid=2651019951&idx=1&sn=98d743206ca71c6670bf9d9b64d91c6e&chksm=f20f7e7ec578f76825e87bb6669b2aed3c2e96bbd962d3f109e38defb3ca49091cd471a00e84&scene=0#rd

  • 相关阅读:
    SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
    谷歌浏览器扩展程序manifest.json参数详解
    获取天气api
    UVA 10385 Duathlon
    UVA 10668 Expanding Rods
    UVALIVE 3891 The Teacher's Side of Math
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 11210 Chinese Mahjong
    UVA 11384 Help is needed for Dexter
  • 原文地址:https://www.cnblogs.com/1394htw/p/6036679.html
Copyright © 2011-2022 走看看