- 推荐序一
collapsed:: true
-
- 有创新的想法,并成功实现:优。
- 有创新的想法,失败了,能认真总结:优。
- 无创新的想法,最多只能得:良好。
- 当学校和老师鼓励同学们没有后顾之忧地去创新、去失败的时候,很多同学的动力、热情会大大增加,从“要我学”、“要我做”变成“我要学”、“我要做”。无论创新成败与否,同学们都会收获良多。
-
- 推荐序二
collapsed:: true
- 前面谈到 2006 年我在 CSDN 引发的针对软件技术学习是“理论先行”还是“实践第一”的论战。其实大家只要看看书中诸位作者的成长经历,能找到几位是“理论先行”的?大多是“实践先行”,然后在实战之后,再开始补上“理论”这一基础。
- 就要开始了解一种主流的软件开发与运行平台,熟练掌握一种开发工具,这样你就具备了进行开发实践的前提。然后,用你所掌握的技能和工具去大量实践,在实践中真正地理解和掌握计算机科学相关理论,发现自己在知识和技能上的不足,然后有意识地加以弥补。更重要的,要在实践中找到一种“感觉”、一个“方向”。
- 近年来,软件技术在飞速发展,许多技术领域都已发展出一个庞大而复杂的体系,在技术背后,需要大量计算机科学理论作为根基和灵魂。在这种时代背景下,“如何高效地学习软件技术”成了一个需要严肃对待和认真思考的问题。
- 就软件技术而言,我所看到的是一张庞大的“知识之网”,其结构类似于互联网中相互链接的网页,各种知识和技术之间都有直接或间接的联系。而任何一个人,穷其一生之力,恐怕也只能掌握这张“大网”中的一小块区域。
- 一个有志气的人,总能在环境的束缚中,通过默默积聚实力,最终突破环境的限制,登上一个新台阶。
- 蒋宇东:梦断计院,为梦前行
collapsed:: true
-
对环境的反思
-
计院的第一大问题——学生普遍基础薄弱 回归正题,什么才是真正的基础扎实?我的理解是,不仅要牢牢掌握大学课本中关于计算机核心课程的理论知识,而且还要深入实践;对于该方向非常重要的技术思想、概念名词、技术要点都要有良好的把握,比如可以随手写出快速排序、哈希查找等经典的常用算法,熟记线程与进程的概念、它们的差别,并且能够解释清楚诸如僵尸进程之类的问题;会 Linux 的不仅仅是就会几条 Shell 命令,或者干脆就会装个系统;用 C++的不仅仅要会语法(不知道这是不是绝大多数计算机专业毕业生对于 C++的理解程度),起码要了解一些常用的标准库,知道什么是 STL,了解些基本的 OO 思维方法;学过网络的最起码要用过 Socket;了解数据库的不能仅仅就会写几个 SQL 语句、背两条范式等。
- 真正基础雄厚的人应该是可以将常用的基础性知识熟记成诵的人,提到一个基本的名词或话题能够将其来龙去脉解释清楚的人。
-
- 结语:我想对师弟师妹们说
- 切忌浮躁、急功近利。假如以你的实力可以通过五年的时间成为一个领域的高手,如果自己期望缩短到三年的时间或更短,最终很可能要用八年、十年的时间,甚至可能永远都做不到。
- 目标要坚定。对于自己已经决定的选择,要执著地追求,直到在其中获得了你满意的成果。
- 无论外界环境如何,我所能做的就是尽自己的力量,利用周围有利的环境,去追寻理想。
- Your time is limited, so don’t waste it living in someone else’s life. Don’t be trapped by dogma which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And the most important, have the courage to your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.
-
- 居振梁:我的弯路,你的桥梁
collapsed:: true
- 与师为伴,做项目练手练心
- 工程型的知识又怎能纯理论地学呢?我了解这种对知识的渴望,我也曾这么走过好几年,但是正是因为如此,对于这种方式的利弊很有感触,基本上等到实践的时候,理论还得再学一次,还不如一开始就“边做边学”。
- 与师为伴,做项目练手练心
- 刘帅:在失望中寻找希望
collapsed:: true
- 我是科班 ── 却没学懂计算机
- 我是传统意义上的计算机科班出身,学过数据结构、编译原理、操作系统、汇编语言、计算机原理、计算机系统结构、离散数学、概率论、计算机网络、数据库、单片机、算法设计、数理统计、高级语言程序设计、面向对象程序设计,从 DOS 的 Tubro Pascal 时代学起,一直学到 VC6。然而,我却并没有学懂计算机。
- “数据结构”,以及一切计算的课程里面,凡是自己不理解的东西,自己说不清道不明的东西,其实有很多人是理解的。
- 不可否认有一些同学,他们总是先知先觉,他们总是会问“为什么这门课程要这么上”,他们总是会思考自己是不是走在正确的路上,于是他们大量丰富自己的实践,从而也优雅地完成了本科学业。
- 我们必须在年轻的时候有意地培养自己独立思考的能力,经常想一想,我要的是什么、为什么要做这件事、做这件事有什么好方法、这样做有什么好处和坏处、如何改进等,也要与人交流、沟通,讲出自己的想法,请别人指正。我们需要培养的是自己的思考方式,而不是简单地获取知识。
- 待遇一般,沟通匮乏,无视积累,没有传承
- 考研·读研
- 也许是我觉得时间太宝贵,也许是真的连思考的时间都没有了,我每看到一个题目,总是会先看答案,让答案来指引我的思路,而不是用自己的脑子想问题。
- 这种学习方式在短期内的确会取得很大的成果,但却贻害无穷。长此以往,会使人丧失判断力、理解力和交流能力,只留下可怜的记忆力——这样的人难有大成。这样的学习方式会使我们的思考方式沦为简单地重复和机械地回忆,胆子变小,创新力几乎丧失——对于计算机这种快速变化和要求很高的学科来说,显然没有什么价值。
- 看书的时候,我每看一会儿就想想作者在说什么,以训练自己的概括能力;看看作者表述得是否合理,以训练自己的怀疑能力;勤于反思,以训练自己提出问题的能力。
- 实习之门
定调:快想,快说,快干
- CRL 要求员工讲话简短,注重效率,跟人沟通开门见山,且从来不喜欢重复。我在这里体会到,很多时候,如果不能在头三句话里就把一个问题说清楚,后面就可能永远没有开口的机会了。
- 求职之路
定调:再次痛感基本功的重要
- 好的外企或好的技术公司希望招聘到的学生是做事超级投入,特别乐意思考,充满活力,并且具备一定的行业知识的。因此,在面试准备的时候,应该充分了解自己应聘的公司,多思考,多关注架构等背后的东西,才能应付比较深层次的技术面试。
- 结语:总能看见希望的亮光
- 不要欠生活,不要欠工作。出来混,总是要还的,你不会的知识,你懒于想通的东西,总是会在一个必要的时候提醒你、惩罚你。将没有搞懂的、希望做到的东西,写在纸上、贴在面前,认真实践,当你做到的越来越多的时候,你就会越来越自信,你的层次会提高的。相信我,人与人之间的差距很大,原因在于自我控制力有差距。
- 我是科班 ── 却没学懂计算机
- 李成:北大七年,我的找补之路
collapsed:: true
- 保研·读研
定调:一心找补,开始独立思考
- 关注各种招聘广告,了解最新的人才需求动向,学习各种我认为有用的课程和技术。
- 我的第一份简历是大三暑假写的,是用来进行保研的,痛苦得不行,因为基本上没东西可写。也是从那个时候起,我衡量每一件事的标准就是:这件事够不够我写到简历上?如果够,能不能成为闪光点?看起来很功利,但是很有效!
- 尘埃落定:去创业公司赌一把
- 我总结程序员的一般性格特点是: 做事有原则,讲步骤,喜欢预先计划好一切; 喜欢自嘲为民工,其实骨子里瞧不起耍嘴皮子的人,当然也有可能是出于对自己嘴拙的一种自卑; 经常讲冷笑话,不管是不是故意的; 喜欢摆弄数码产品,例如相机、手机、可编程硬件等; 常常以为自己挣钱很多,其实不然。
- 缺少社会认同度,因为不掌握任何社会资源,也就没有了任何社交的资本,很多程序员看起来不怎么会交际,实际上也与这个势利的社会有关——因为除了修电脑,一般人几乎不会需要一个程序员,而结交一个医生、律师或公务员则好处更多。
- 保研·读研
定调:一心找补,开始独立思考
- 温卫斌:把握改变契机:告别迷茫
- 实习之门
定调:实践个人兴趣,不断获得提升
- 成熟的软件公司带给你的是全方面的提高,不仅是在具体的技术方面,更多是思考问题的方式和与人交流的能力方面的提升,不要闷头独干,1+1>2,团队的力量会使得问题更快更好地解决。
- 实习之门
定调:实践个人兴趣,不断获得提升
-
- 从交流中获得帮助
- 爱惜羽毛——自己解决问题 学习期间,有任何问题,首先不要想着去论坛发问,教科书和 Google 能解决你大部分的问题,或者干脆找到一个懂行的人,直接去问。人要爱惜自己的羽毛,在论坛问一些傻瓜问题,会损害你在社区的名誉。自己解决问题,会让自己变得更强大。
- 资料太多,人生太短——防止信息过载 不要过于积极地去网上找学习资料。资料太多,人生太短,对大部分人来说,需要的几本书,国内都有引进,找一本搁案头翻阅就是。几本难得的电子书,赶紧打印出来,从此不再去网上瞎整。以前我把硬盘塞满时,突然警惕:疯狂收集电子书自有乐趣,你会沉浸在这种乐趣之中,而忽略真正有用的东西和真正要做的事情。
- 多结识同专业高手——别自大 多认识几位专业相关的朋友,尤其是高手,让自己时刻清醒:自己还是这个领域的门外汉,以保持必要的谦逊。
- 踏上一条未走过的路
- 我跟老板说,我会珍惜自己的职业前程。如果我加入一家公司,进入一个行业,就不会随便跳出,因为我知道那样会损害自己在业内的声誉。
- 坚持写技术博客,进行有效的自我营销
- 结语:诸多折腾,喜剧收场
- 以前听孟岩讲,你做什么,而不是你想什么,决定你要成为什么样的人。
-
为求职目标做好各种准备
-
针对技术职位
-
- 越早准备越好。我在面试的半年前就开始做知识回顾和储备。
- 复习基础知识,主要包括:算法、数据结构、操作系统、体系结构等。此外,对于互联网公司离不开的网络以及分布式系统的相关知识,我也会特别关注
-
- 值得一提的是最后的经理面,提的第一个问题竟然是:“你在前面面试中有哪题没回答上来,回去后是否思考了,答案是怎样?”这题看似没有问新的问题,但它直接考察了求职者是否具有积极学习和孜孜求解的态度,如果抱着考完拉倒的心态,估计很难让这位经理满意。
- 技术面试中很难保证不碰到难题,在不能立即回答出最优答案的时候,需要使用一些面试技巧来应对。我的经验是分四步走,即理解题目、原始算法、优化算法、复杂度/性能分析。首先要确认问题的细节,通过跟面试官的沟通来彻底理解题目要求和限制条件等。然后,在最短的时间内提出自己的原始算法,并进行计算复杂度分析,如果是系统设计,则进行系统性能以及优缺点分析。
- ·喜欢做较高层的思考胜于具体实现,相对于很多技术天才关心“怎么做”并从中获得极大满足,带给我更多快乐是“做什么”的问题;
- 选择 Offer 的时候,在管理咨询师和产品经理之间,我考虑的因素主要包括以下(按重要性降序): ·个人兴趣; ·学习发展机会; ·平台及其影响力; ·生活方式和待遇。
- 第一重要的是兴趣,对我来说,兴趣是我全身心工作的基础,也是成功的必要条件。 我很看重薪水和生活方式,但我没有把它放在第二重要的位置上,因为我更看重的是五年后、十年后的薪水,而不是起薪。有一位师兄跟我说过,对于事业起步的年轻人而言,决定未来薪水的,就是你能在这份工作中学到什么,以及拥有这份工作后你能积累什么作为以后的资本。
-
- 在《程序员》上发表第一篇文章
- 的确,也许真的有更好的路,但事前真的很难判断哪条路是最优的,我们能做到的,是把一条路走透了、走深了,只要不是一条太不靠谱的路,深入的过程中总会有很多的收获。只要不是太顽固,善于反省,总有一天也会逐渐意识到越来越靠谱的路。
- 与荣耀先生合译《Imperfect C++》
- 如果觉得做不下去了,就硬着头皮坚持做,然后就类似于麻木了,适应了,那种望而却步的感觉会逐渐自动退去。惊人的简单,但事实就是如此,硬着头皮,过了那个情绪上最艰难的时候,也就适应了。
- 基本功不过硬,面试微软失败
- 我在啃一些底层知识时如果弄不懂,也会一遍遍读,然后用走路吃饭坐车的时间在脑子里一遍遍去琢磨。
- 读研:阅读交流,开拓眼界
- 看一个人,只要看他读的书和见的人。
- 如何思考,如何正确地思考
- 我们如何思考,如何正确地思考。
- 一是和人讨论能够激发自己进一步的思考,也促使自己更清晰地表述自己的观点或问题。倒不是说别人就一定告诉你什么新东西,而是讨论能刺激你自己的思维。
- 调研很重要:确立大方向
- 调整心态。没有什么必须要得到的观念,只是顺其自然,这样我非常放松,少了急躁,能够冷静的思考。
- 记录每次面试的题目,并总结教训。在接下来的面试前,我都会看看我的总结,提醒自己不要在同一个地方跌倒。
- 分析这次面试,我做得好的地方在于:在面试前,对公司认真调研,写产品分析报告。而我最大的错误在于:我不应该那么早就给自己下结论,遇到不会的、不擅长的要积极应对,而不是在第一时间就示弱。
- 逆境中的坚持:我要考研
- 从目标倒推,看看达到目标需要做些什么?
- 看各大软件公司的介绍及招聘说明,IBM、微软、百度、Google、Oracle……当时看这些招聘说明,第一感觉就是不同的职位对人的要求有很大差异。那时我对 IT 领域的了解还很有限,但通过看这些招聘说明,我知道了在这个领域有不同的角色,有 PM、测试工程师、开发工程师、架构师、客服、咨询、销售、培训等。
- GPA:不爱好也不放弃
- 我读到一篇文章,是一位哈佛医学院的学生写的。他说,即使我不喜欢医学院,但是为了证明我的智商,我一定每门功课都要过 85 分。
- 自信从容,秀出特长——我这样拿到实习 Offer
- 新人犯错很正常,但是怎样应对错误却能反映出职业素养。
- 她告诉我,有问题当场提出来是最高效的做法。当场提问,思路最清晰,反应也最快。事后,可能你的思路和想法已经不连贯了,对于解决问题没有好处。
- 求职之路 定调:为自己理想中的工作而努力
- 求职目标一定要坚定,如果你非常想去一个公司,就要提前至少半年来准备。
- 我的小诀窍:如果能把自我介绍和公司的资料巧妙地结合起来,就会让面试官感觉不错。还要表现出对这份工作的热忱。我事先看了很多关于交通银行的资料:如它的文化、市场定位和未来发展等。
- 不得不承认,在银行做 IT,肯定不如在纯 IT 公司工作技术上更有长进。但是既然投了简历,并且对方给你两次面试展示自己,为什么不好好把握这个机会呢?这也许反映了一个人的素养,你可以不喜欢,但是不能不尊重。
- 心理学上说,如果你没有办法压抑自己的情感,那就表达出来。
- 其实面试官从来都没有要把我们怎么样,只是想看看这个人是不是符合要求。所以,放轻松,把自己秀出来就可以了。
- 结语:先有生存的资本,而后才是兴趣
- 我一直在用徐小平的一句话来勉励自己:认识生活的真相!生活的真相就是,我们活着要有生存的资本,而后才是兴趣。即使你不能爱上你的工作,也要对你的工作抱有恭敬的心态。我的工作能给我不错的收入,数据库是我的兴趣,夫复何求?
- 爱读书,却被禁止读课外书
- 过去的就属于过去,那是时代赋予的,现在无力也无需去埋怨,而更重要的是做好当下。也不需要去刻意地找补,人生短短几十载,还要伴随着婚姻家庭和责任,珍惜当下拥有的一切,留住这最让自己充实、让自己感觉珍贵有价值的时光,才是最最重要的事情。人不能停止思考,思考自己,也思考人生,这才是要紧的,也是永远都不觉晚的。
- 我的第二份工作:IBM
- 当你对一项技术或技能比较熟悉时,就能分享给更多的人,并赢得尊敬,这是值得永远去做的事情。
- 做测试,如果没有自我驱动力,仅仅满足于每天撞钟式的执行测试,而不去思考产品需求、战略层次的问题,即使会熟练地使用整个产品,但无法为客户提供产品的最大价值,那就不过是个高级技工;而作为开发人员,如果在完成手头的一块工作之余,还能研究产品的其他实现,发现设计中的问题,提出改进方法,并帮助整个 Team 成长,那体现的价值完全无法估量。
- 积极做事,积极思考,在 IBM 内满足于现状的人大有人在,但那些优秀的人肯定是自我驱动力很强的人。
- 老板会经常告诉每个员工,做出来的事情要及时表现出来,也就是要 Show,这对于没工作的学生和工作过的人来说,都一时难以接受,毕竟大多数人的性格还是比较内敛的。但慢慢我就能体现到老板说这话的良苦用心,这样的 Show 能让你获得来自更多人的赞赏自不必说,也是对自己工作表现的肯定,是赢得尊敬和影响力的必备条件。
- 结语:70 后,我们还有机会
- 孟岩说过一句话,大意是:这个时代有太多的信息,以至于我们能找到一条证据证明某件事情是错的,但很快又就能找到另外一条证据来推翻刚才的证明。
- 多语言混合编程——未来的趋势
- 在此之后,我又接触了 Ruby 语言、Delphi 语言、C++语言还有 Pyhton 和 ActionScript,在不同项目里穿插使用不同的语言。目前我的观点是:日常工作可以用 Ruby,特殊的日常工作可以考虑 JRuby,Web 应用当然是 Ruby,桌面应用首选依然是 Delphi,实在万不得已也只能用 C++。
- 结语:野蛮成长启示录
- 零散与不成系统,是网络知识的特点。在工作中,可以拿来应急,但是不适合用于深入学习。现在写 Blog 的人越来越多,我也订阅了很多的 Blog,但是,现在我也越来越发觉,这样漫无目的的阅读,容易消耗大量的时间,而且容易令人迷失,往往得不偿失。
- 程序员的成长,有很多偶然性的因素,其中可以明确的一点是:通常程序员都是伴随着企业一起成长的。我有一个朋友,七八年前去了美国,进了当时的新蛋公司。那时只有三五个人,七八条枪。但是到了现在,随着新蛋的发展,她也随之不断地成长,现在已经是美国新蛋总部独当一面的技术主管之一了。
- 我一直以来的观点是,世界是一个整体,在这个巨大的世界中,任何事物、知识、观点,都有其合理、自然的位置。理解这个世界的过程,就是逐步将需要了解的各种事物,在作为整体的一个世界中,找到其位置。了解这个位置的前后左右,相互关系,相互影响。这样理解世界的学习方式,我认为是最为有效的。对于所有的程序员,我推荐阅读《代码大全》第二版,因为这是软件开发的世界地图。
- 行不足,恐是知未深
- 一直有这样一种感觉,技术方面的东西,往往是“知难行易”。理解起来很困难,一旦理解了,其实很容易做到。而管理方面的东西,却往往是“知易行难”,都是些常识性的东西,但是要坚持做到,却非常困难。不过,后来读了一些王阳明的“知行合一”的理论。似乎在他看来,如果是行得不够好,那就肯定是知得不够深。而且,要知得够深,也一定是不能脱离行的。
- 保研·读研 定调:终于找到目标,扎扎实实打基础
- 不理解体系结构,就没法理解操作系统,不理解操作系统,就没法理解 C 语言,C 语言是不可能单独割出来学习的,它和体系结构、操作系统是密不可分的。
- 终于明确了学习目标:要学好 Linux,入开源软件这一行。从 Linux 入手,很多以前想不透的问题现在都不是问题了,源代码摆在那里,文档摆在那里,该看什么书、该上什么邮件列表、内核是怎么回事、编译器是怎么回事、库是怎么回事……一切问题都有答案,找答案只是个时间问题,而不再是可能不可能的问题。而且就像天下武功皆出自少林一样,C 语言、TCP/IP,所有这些技术其实都出自 UNIX 文化,只有在 UNIX 的背景中才能真正理解它们。
- 当小硕,半年做出了一点小成果
- 很多时候你认真去做就行了,好的机会和结果会在你不经意间突然就出现。但如果你什么也没有做,机会出现了你也把握不住。
- 求职之路 定调:临时抱佛脚,苦练小宇宙
- 为了保证在下半年找到一个工作,以我当时的能力,就不得不在暑假下点苦功。于是我制定了一个计划,把时间分成几个阶段,其中每天又分成早中晚三段,每个阶段看哪几本书、哪本书需要在哪段日期里看完,都被我列入这个计划,写在了小本子上。我还担心这个计划不能被严格执行,在计划表中把时间期限都缩短了一点,比如本来准备 12 天看完的某本书会被写成 10 天,在执行时即使因为某些原因比如偷懒等而延迟一点,但总会保证在 12 天即实际规定时间内完成。每天早上八点到晚上十点,除开吃饭、午睡外大概还有 10 个小时,但其间我看那些书和编码的时间大概也只有 5-8 个小时,看累了我就跑去翻阅杂志或听评书了。这段时间,我把它称为“临时抱佛脚,苦练小宇宙”。
- 全心全意终于成功
- 不要花费过多的时间代价寻找最完美的结局,而是要在尽可能快的时间里,做出比较完美的选择。
-
再度求职:找到适合自己的岗位
- 做好计划与总结。说远一点,以后十年、二十年要做什么;说近一点,这个月、这个星期、今天要做什么,都要有明确的计划,并且写在自己的 Google 记事本上。然后每天、每个星期、每个月总结回顾一下,这段时间的计划执行效果如何,以后有什么需要注意或者调整计划的。
-
- 选择的权衡。工作过程中会面临很多选择,要尽量选择对公司最有价值的工作,尽量选择最能发挥自己特长的工作,经常想想公司或者部门现在最缺少什么,如果我能填补这个空缺,对公司和个人的发展都有好处。工作的完美与时效性之间往往需要权衡,做工程很多时候不能过分追求完美,而是在尽可能快的时间里做出满足要求的产品。
- 正确的态度。积极主动地工作、学习、沟通、交流。
- 结语:不断总结,永远沟通
- 认准了一件事情,要全力投入,甚至还要勇于放弃一些眼前利益。
- 凡事有计划,认真执行计划,勤记录,常总结。要把自己想学的东西、想做的事情制定出一个计划,还要把自己工作、学习、生活的感受记录下来,要经常总结,不能虚度光阴。
- 临时抱佛脚,跨过高考独木桥
- 人生真的不能一根筋,要在合适的时候对自己的前进方向进行调整以适应,只要最终能够达到目标即可。
- 蛰伏——即使有信心,斗志却抑止
- 瞄准了一个特定的细分市场,虽然目标用户数量不会太多,但他们一旦发现了这个能够提供大量原创内容的主题网站之后,就会成为网站的忠实用户。当然,这个假设的前提是一定要能提供给用户他所需要的内容,让网站的服务为用户产生价值。
- 突遭人生巨变:兄长遇难
- 在这个世界上生存下来,只能靠自己的拼搏和努力,万万不可把希望寄托在别人的身上。
- 上海滩,我来了
- 站在对方的角度去思考问题,在为别人提供方便的时候,其实是在为自己的职业生涯加分。
- 就是要做 DBA,终于如愿
- 兴趣是一个人成功的基础,持之以恒的耐心和韧性也是不可缺少的。不论是在任何时候,耐心都是非常重要的,只有持之以恒,才能坚持到最后,才能收获最终的喜悦。
- 阿里 DBA Team——继续我的 MySQL 之路
- 不论是高级的还是低级的,大家都不会有任何羞于让别人知道的想法,都会很 Open 地在群里说出来,也决不会有任何人会因为看到一个自己认为比较低级的问题就取笑提问者。因为大家都知道,没有哪一个人能知道所有的 Oracle 知识,也没有哪一个人敢说自己知道所有的知识。每一个人都有自己所擅长的一面,但肯定也会有自己不如别人的一面。同时每一个人也都敢于面对这一点,认同这一点,并且乐于将自己所知道的知识分享给其他每一位同事。正是这样一个 Open 的环境,一个乐于分享的氛围,让阿里巴巴 DBA Team 这个团队一直都在不断地进步,不断地成长。
- 结语:坚持分享,坚持交流,共同进步
- 交流可以让人了解到不同的人对同一件事情的看法,就可以弥补自己在某些方面的缺陷和不足。分享不仅仅是知识的传播,也是分享者本身对知识的强化和巩固。因为在分享过程中,肯定会有人不断提出疑问和质疑,在解答大家疑问的过程中,也是对自身知识体系的一个梳理过程。
- 大一上:金旭亮老师引导我学会思考
- 掌握一门技术不是一蹴而就的事,它需要的是严谨的态度、科学的方法和一个必不可少的积累过程。
- 大一下:对学习的重新认识
- 养成的是独立思考的习惯,训练的是结构性、系统性思维。
- 主动寻求办法、解决问题的意识和能力都是大学生相对于高中生或技校生的重要优势。
- 养成规律的学习和生活习惯,才能提高学习效率。
- 在相对自由的环境下,只有养成规律的学习、生活习惯,有效地安排和利用自己的时间,才能带来良好的精神面貌和较高的工作效率。这成为我改进自己的学习的主要努力方向。
- 意识到这个问题后,我开始尝试让生活趋于有条理。我为自己设计了课前预习和考前复习的计划,安排了每周去实验室和图书馆的时间段。在学习过程中随时提醒自己多加思考,遇到难题主动地与老师、同学交流。
- 大一下开始接触专业课时,我做了这样一项功课:把本专业教学计划中所有非政治、英语、体育类的课程挑出来,通过图书馆或网络了解每一门课程在计算机知识结构大厦中处于什么位置,解决什么问题,各自之间是什么关系。
- 大二:开始接触商业项目——在实战中培养客户意识
- 用人性化的思维理解计算机、设计程序,进而使之服务于人,应该是一个计算机从业者应有的素质。
- 大三上:开始思考未来的发展方向
- 而我所希望的工作和生活状态,是在不断发现和解决问题的过程中挑战和超越自我。
- 在不直接或间接侵犯他人合法权益的前提下,尽可能地满足自己对计算机系统的知情权和控制力。
- 大四到研一:科研之路的启航
- 精通本研究领域的专家,而且应该把你专攻的特定问题做到世界第一的水平。
- 引子:我是一个乐于动笔、喜欢记录的人
- 把积累的知识和新的想法随时记录下来,并整理成文。
- 看过了,听懂了,并不意味着真正的理解,只有亲身实践过,能将知识积累消化后分享给他人,才会让学到的东西真正了然于胸,随时拿起来都可以运用自如。
- 我开始一行行敲经典书上的程序样例代码
- 记得《The TeXbook》上有一个程序,Knuth 让大家自己照着敲入计算机,然后还很幽默地说,实验证明,只有很少的人会按照他说的敲入这个程序,而这部分人,却是学 TeX 学得最好的人。看到这里我会心一笑,觉得自己的方法原来也不算笨。从此,一字不漏敲入一本书的程序成了我推荐别人学习语言的最好办法。
- 大二下:两个榜样,三个要求
- a. 更加多看书,看好书,并且一定一定要做笔记;b. 多编程,多积累;c. 不怕困难,开始背 GRE 单词。
- 利用比较优势选择考研目标
- 面试的过程其实平淡无奇,题目不是《编程珠玑》上的,就是《计算机程序设计艺术》上的,再不然就是网上贴出来的。我个人感觉,面试题就那么多,多做做基本上就了然于胸了。我从找工作一开始,就做了个有心人,每天都上网看面试题。这次面试前,我又把《编程珠玑》这些书复习了一遍。同时我知道自己在面向对象编程方面很欠缺,又看到有面试过的人说面向对象也考,就顺带看了《设计模式》。我还比较有心,花了几个晚上,捣鼓了一个移植于 Mac 的、基于 MVC 的可以当场演示的 Java 小游戏
- 结语:非没用,兔子洞
- 大学的时候,为了让自己精力不耗散,我限定自己每次借书,一定要保证四本计算机/数学,外带一本社科人文书,还有一本任意的书,而且那四本一定要做笔记精读。因为这样,我才能够最终没把有限的人生耗费在无限的浅尝辄止上。
- 成长路径中有很多的偶然,没人知道在一些关键时候需要什么样的知识储备,所以踏实地多储备一些是好事。
- 有个切身的教训,就是要踏实地积累。我读书涉猎很广,很多东西我都能大概知道怎么回事,但是就是学得不深刻,所以即使当时花了很多力气,需要的时候还要花大功夫重头捡起。所以我的教训就是,与其两个半瓶水,不如一个满瓶水。这个道理用在读书上就是说,一本好书读两次要胜过两本好书各读一次。要是大学能重新来过一次,我会少读一些书,多读透一些书,这可能是我觉得当年猛读书的唯一遗憾。
我是一只 IT 小小鸟
2014-12-08