读书笔记-我是一只IT小小鸟

作者:胡江堂

推荐序一

和实践结合。软件教育离不开实践,不要太强调闭卷考试,老师一定要让学生实践、实习。

◆做真实的项目和幻想的项目是有很大区别的;自己从头写程序和维护正在使用中的代码是有很大区别的。

没有真实的需求,没有软件的增量开发,没有真实的团队合作,程序设计和软件工程中的大部分理论都沦为空谈。遗憾的是,很多学生就这样以空对空,也混毕业了。

◆希望计算机科学教育能把别的学科的知识联系起来,比如,和工业设计、用户体验设计、艺术设计、自动控制,甚至心理学、商学联系起来;

◆希望把计算机有趣的发展历史放进来,讲讲图灵,讲讲冯?诺依曼,讲讲各种语言的源头和流派分支,讲讲IT企业有趣的真实故事等等。培养学生对这个行业的兴趣、热情和敏感度。提倡互动,介绍同学上相关的论坛、网站,开拓视野。

允许学生试验,失败,再试验,再失败。

1. 有创新的想法,并成功实现:优。

2. 有创新的想法,失败了,能认真总结:优。3. 无创新的想法,最多只能得:良好。

推荐序二

人生如同打牌,能抓到一手好牌固然是运气好,但重要的是,你不能靠运气生活,而要琢磨怎样把手上这把看上去“不怎么样”的牌打好。

很多时候,个人所处的生存和发展环境不能自主选择,由于环境的限制和其他因素的影响,也许别人可以当个架构设计师,而你只能当个“底层”的普通程序员,这没有关系,大家在人格上都是平等的,只不过能力有高低罢了。再普通的工作,如果能做到精益求精,也很了不起,也是一种成功,关键是你有没有这样一种思想。

即使我“落魄”到在街边摆摊卖豆浆,也要努力成为这条街上“最好”的“豆浆摊”!

计院的第一大问题——学生普遍基础薄弱

倘若没有这些基础,仅仅会用这个工具、那个框架,充其量也不过是个IT民工,今后的发展必定受到制约,选择只有三条:a. 做一辈子IT民工;b. 将大学时欠下来的债补上;c. 改行。

项目反思

事实证明,任何牛逼的软件都不是一下子就那么牛逼的,必须要循序渐进地展开。

总之,急功近利很容易导致莫名的失败感,并且会为自己的失败(其实这个不能叫失败)找各种借口,然后在借口的安慰下完全放纵自己。

大一:问自己——这个专业到底要学什么

这段时间我觉得自己是那么的孤独,我试图融入周围学习比较认真的同学当中,我希望他们和我一起去探索那个未知的天地。但是,我发现没有人可以与我一起去探讨计算机问题,也没有人和我一起去做程序。我不断问自己,为什么这种教育方式得到了这么多老师以及身边这么多同学的认可,难道是我错了?杂志上、访谈中那些名人的学习经历难道仅仅是天才的专利?是不是要成为高手一开始都要去背概念、去考高分,去经历这个“乏味的”阶段,至于动手编程要等把这些都做好了以后再练……

直到大二上学期结束,我终于确定,学校的教育并不合理,多数老师讲的是“垃圾”,照本宣科的很有可能是他们自己都没学明白的东西

我简历当中最打动面试官的地方恰恰是我利用课余时间及逃课所写的程序,还有利用背考试题的时间所读的课外书。这里请大一大二的学弟学妹们好好考虑一下:时间有限的情况下,在高高的GPA和实际编程能力的训练之间我们应该如何权衡。

结语:我想对师弟师妹们说

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.

当看不清世界发展,那么可以看清过去的发展啊,过去有哪些是不变的,很少变的,一般以后改变的可能性也不大。把时间投资在这些方面,一般总是有很大好处的——尤其是周围的人都不怎么投资的时候。

我是科班——却没学懂计算机

教材上有的没有的,全部在课堂上从0开始实现:每遇到一个算法,一边写程序,一边讲解,不懂就将程序的运行结构拿出来分析,并不时地穿插离散数学、概率论、内存管理、C语言、汇编语言等知识,几乎将我们学到的东西非常恰到好处地拿出来,让我们从心里面觉得原来所有的知识是连贯的,我们之前的积累都是有用的,并且富有成就感。

考研·读研 定调:开始改变思维习惯,化机械记忆为主动思考

读研之后我终于正视了自己思维的机械与缺乏活力的问题。我有意识地努力尝试去改变。看书的时候,我每看一会儿就想想作者在说什么,以训练自己的概括能力;看看作者表述得是否合理,以训练自己的怀疑能力;勤于反思,以训练自己提出问题的能力。但习惯是长久养成的,显然改变也是需要一段时间的。

求职之路 定调:再次痛感基本功的重要

应该充分了解自己应聘的公司,多思考,多关注架构等背后的东西,才能应付比较深层次的技术面试。

另外,谦虚、和善、愿意向别人学习、擅长理性思维,是技术类工作面试中的加分项

结语:总能看见希望的亮光

不要欠生活,不要欠工作。出来混,总是要还的,你不会的知识,你懒于想通的东西,总是会在一个必要的时候提醒你、惩罚你。将没有搞懂的、希望做到的东西,写在纸上、贴在面前,认真实践,当你做到的越来越多的时候,你就会越来越自信,你的层次会提高的。相信我,人与人之间的差距很大,原因在于自我控制力有差距。

保研·读研 定调:一心找补,开始独立思考

首先,开始思考如何变得优秀。从教训总结经验,发现最重要的就是深度。

这也是我从本科的失败中获得的最大的宝藏,那就是:不管干什么,努力使自己比别人早走一步、多走一步。

求职之路 定调:坚定地执行不投原则

不投原则的形成,一方面是因为我想要做的事情,是真正创造价值的东西,而不是作为其他人的支持;另一方面是想要做一些真正有挑战性的东西,同时锻炼自己的技术实力。

结语:小公司VS大公司

面临小公司与大公司的选择时,在同等条件下,可以说几乎所有人都会选择大公司,其实也应该选择大公司。并不是因为大公司更稳定,而是一毕业就进大公司能够迅速提升个人职业的素养,大公司完善的人才培养制度以及大公司的名声给个人带来的社会认同感都是个人成长的助推剂。

实习之门 定调:实践个人兴趣,不断获得提升

也让我认识到,成熟的软件公司带给你的是全方面的提高,不仅是在具体的技术方面,更多是思考问题的方式和与人交流的能力方面的提升,不要闷头独干,1+1>2,团队的力量会使得问题更快更好地解决。

跟别的东西一样,没有完美的实习岗位,只有适合自己的。不管如何选择,做了决定就努力做好,成功与失败对我们的成长都是一种可贵的积累。

从交流中获得帮助

爱惜羽毛——自己解决问题

学习期间,有任何问题,首先不要想着去论坛发问,教科书和Google能解决你大部分的问题,或者干脆找到一个懂行的人,直接去问。人要爱惜自己的羽毛,在论坛问一些傻瓜问题,会损害你在社区的名誉。自己解决问题,会让自己变得更强大。

资料太多,人生太短——防止信息过载。

不要过于积极地去网上找学习资料。资料太多,人生太短,对大部分人来说,需要的几本书,国内都有引进,找一本搁案头翻阅就是。几本难得的电子书,赶紧打印出来,从此不再去网上瞎整。以前我把硬盘塞满时,突然警惕:疯狂收集电子书自有乐趣,你会沉浸在这种乐趣之中,而忽略真正有用的东西和真正要做的事情。

多结识同专业高手——别自大。

多认识几位专业相关的朋友,尤其是高手,让自己时刻清醒:自己还是这个领域的门外汉,以保持必要的谦逊。

引子:骑单车的故事

小时候看过一个关于单车的故事:爸爸教儿子骑单车,儿子总也学不会。爸爸看出了问题所在,于是在再一次示范后让儿子看身后弯弯曲曲的车轮印,并语重心长地说:我儿,虽然你看见别人骑车时车头很直,但那也是因为他在时刻调整方向,才能顺利前进啊!

大一我是社团狂

大学的确提供了非常丰富的能力培养机会和广阔的个人发展空间,但归根结底,学习和进步才是大学的主题,荒废其中任何一个都不能让大学生活过得充实而完整。

理解专业,痛并快乐着

·买书,编程的,大部头,很多。从编程语言到编程风格,再到数据结构和算法,几乎每本书我都是从头到尾抱着仔细读完的。

·坚持在读书的时候把代码一行行亲手敲出来并编译通过。这种学习方法很需要毅力,毕竟当你看着书上的代码觉得很容易懂的时候往往懒于动手,但也只有动手才能发现各种问题,比如用C++写class总是忘了最后的分号,缩进不一致导致少写一边大括号,等等。·提前做知识储备。在学习编程技术的时候,我还提前了解了一些编译器和计算机体系结构的知识,对于我理解程序的运行和性能的瓶颈有了很大帮助。

·贵人指路,事半功倍。CSDN、Joel On Software等网站上的程序员,他们在博客上无私分享的心得和在论坛提供的及时帮助不仅让我获得了知识,也给了我极大的鼓励,让我能坚持艰苦的学习。

踏踏实实地打好基础 ,而不要被层出不穷的新技术遮蔽了视线。

为求职目标做好各种准备

了解只是第一步,之后我会花更多的精力来思考很多问题,比如:这个新产品解决了什么问题,这个问题以前是否存在,是对所有人都存在还是只针对部分用户,如何发现这个问题,还有什么问题没有解决,等等。这样的思考过程有时候很艰难,但是每一次思考都是对自己的磨练,也相当于一次模拟面试。

对于外企中需要与人大量沟通的职位,英语太重要了。没有顺畅的理解和较为流利的表达,很难想象我能顺利通过七轮以英语为母语的考官的面试。英语的训练是个长期的过程,但如果找一个水平较高的语伴坚持完全用英语交流,加上有针对性的练习(比如,用英语回答我上面提到的关于产品的问题),在较短时间内达到英语面试要求的水平是很有可能的。

有一位面试官问到了如何对待产品Bug的问题。这个问题考察你是否理解Bug解决的代价、可能带来的风险,以及在不同的产品开发阶段应对Bug的不同方式。如果简单地回答解决Bug,那说明对产品开发的经验和理解太过欠缺,也说明思考问题不够全面,不适合这个职位。就我看来,这些要求,恰恰体现了微软作为全世界软件(狭义的软件,区别于互联网等)业老大所最擅长和最看重的特质:稳定压倒一切。

对比工程师和PM实习经历,我发现了自己的如下特点:

·喜欢做较高层的思考胜于具体实现,相对于很多技术天才关心“怎么做”并从中获得极大满足,带给我更多快乐是“做什么”的问题;·对IT新产品、新特性有着莫大的兴趣。

·常常换位思考,试图从管理层、开发者和用户等不同角度来看待一个产品;·在技术工程师中具有沟通优势,在管理人员中具有技术优势。

对于事业起步的年轻人而言,决定未来薪水的,就是你能在这份工作中学到什么,以及拥有这份工作后你能积累什么作为以后的资本。我非常认同这样的见解。因此,我把学习和发展的机会放在了仅次于个人兴趣的位置上。

引子:父亲教我的事

父亲告诉我的第二件最重要的事情是:遇到任何问题,去找书就行。他在自己的专业中完全是自学的。在不属于自己的专业中(后来买了电脑之后需要学习如何架设公司网站、如何网上营销、如何进行电子财务管理、如何使用各种作图软件制图等)也全都是靠买书自学。

在《程序员》上发表第一篇文章

的确,也许真的有更好的路,但事前真的很难判断哪条路是最优的,我们能做到的,是把一条路走透了、走深了,只要不是一条太不靠谱的路,深入的过程中总会有很多的收获。只要不是太顽固,善于反省,总有一天也会逐渐意识到越来越靠谱的路。

与荣耀先生合译《Imperfect C++》

如果觉得做不下去了,就硬着头皮坚持做,然后就类似于麻木了,适应了,那种望而却步的感觉会逐渐自动退去。惊人的简单,但事实就是如此,硬着头皮,过了那个情绪上最艰难的时候,也就适应了。这本书译完之后,还是有不少的收获,但我总觉得对性格上的磨练才是最有价值的收获。

读研:阅读交流,开拓眼界

有一句话说:看一个人,只要看他读的书和见的人。还是很有道理的,这两者是一个人成长中最有价值的信息来源。

引子:我是普通女生

活了20多年,生活只告诉了我一件事情:“我只是一个智商正常、耐力一般、身体凑合、相貌平平的最一般的人。”

实习之门 定调:有泪有欢笑,心智更成熟

如果总是做自己擅长的事情,就容易把技术限制在一个范围内,对拓展视野不利。但是,只凭激情去挑战自己的不熟悉的领域,也不是特别好,还要讲究技巧才是。

调研很重要:确立大方向

◆调整心态。没有什么必须要得到的观念,只是顺其自然,这样我非常放松,少了急躁,能够冷静的思考。

◆化被动为主动。主动秀出擅长的东西,整个人自信了许多,自然可以加分。

分析这次面试,我做得好的地方在于:在面试前,对公司认真调研,写产品分析报告。而我最大的错误在于:我不应该那么早就给自己下结论,遇到不会的、不擅长的要积极应对,而不是在第一时间就示弱。

◆及时总结:记录每次笔试和面试的题目,并在下一次笔试和面试来临之前认真复习。

◆循序渐进:笔试中,遇到不会的题或是很难的题,先写一个笨方法上去,然后逐步深入。绝对不要什么都不写。对于拿不准的题目或复杂的题目,最好使用铅笔作答,保持卷面整洁,可以降低笔试的误杀率。

◆主动出击:多参加公司的宣讲会,并等待最后的面对面交流环节。主动和嘉宾介绍自己,让他对你感兴趣。从而增加面试机会。很多同学在这个环节开始前就回去了,其实这是错误的,后面才是宣讲会的精华之处。

结语:收获与遗憾——写给未来的自己

我的座右铭是我的最坏情况理论——做事情之前先考虑一下最坏结果,如果发现最坏结果和不做这事完全一样,那就不要再顾虑,大胆做吧。

很多公司的用人条件写着吓人,但事实上,他们往往更看重的是你是否具有很好的资质,是否能够在未来的工作中主动学习,而不是你现在掌握了多少。

大二,休学半年

在做一项决定的时候,由于父母给不了能说服我的建议,也没有其他成年人来和我深入交流探讨我的种种想法,仅凭我自己对事情的一点粗浅的判断,凭一股激情,就轻易选择放弃眼前的学业,重起炉灶,而不考虑时间成本,不考虑自己到底是不是适合新的方向。在这种折腾中,我付出了较多成长的代价。

但是,这三段弯路对我也有正面的影响:我开始对物质的东西看得很淡,觉得那些不过是过眼云烟。心态由骄傲变得平和,并且能够对事情的结果进行客观的评价,觉得自己以前取得的那些成绩没有什么了不起的,这并不仅仅是我个人的能力所达成的,背后有父母、老师、同学的很多支持和关爱。

提前半年为入学做准备

那个时候给我印象很深的还有王立福老师讲的“软件工程”,他在课堂上告诉我们:

“要搞清楚什么是知识?如果连知识是什么都搞不清楚,何谈学知识?”“要搞清楚什么是模型?如果连什么是模型都不知道,何谈建模?”

“要搞清楚什么是数据,什么是信息,它们之间的区别是什么?”“面向对象其实是一种世界观。”

实习之门 定调:加大编码量,攻克算法关

三年前就开始规划研究生的学习生活,开始思考自己三年之后想要什么,想做什么,是基于一种强烈的危机感——“如果我不够强,就会被淘汰”。正是因为这种危机感,让我开始寻找自己在IT职场中的定位,定位之后就开始锻炼这种定位所需要的各方面的能力。现在看来这种危机意识对一个人的成长不仅很有必要,而且挺有帮助。

经过这个项目之后,我对销售人员和客服人员的工作从心底升起了敬意。没有销售人员把项目拿回来,没有客服人员和客户良好的沟通,再好的产品也没有用。

结语:力有所及,助人为乐

帮助别人并不只是那些有钱的大老板能做的,普通老百姓也可以。虽然我们的力量没有那么大,但是一点点的努力也可以帮到他人。

我的第二份工作:IBM

作为开发人员,如果在完成手头的一块工作之余,还能研究产品的其他实现,发现设计中的问题,提出改进方法,并帮助整个Team成长,那体现的价值完全无法估量。这个自我驱动力的问题,我在进入到公司两年多,才逐渐对此体会加深。说白了,就是要充分发挥主观能动性。积极做事,积极思考,在IBM内满足于现状的人大有人在,但那些优秀的人肯定是自我驱动力很强的人。

本科四年 定调:一直在跟风,学过也茫然

现在回想起来,当时最大的问题是没有和同学交流,本专业的同学在这方面也都是懵懵懂懂,应该找计算机专业的同学交流,找高年级的同学交流。最根本的问题还是我那时候太内向,几乎没有别的专业、年级的朋友。

好老师在哪儿?大二没入编程的门

1. 知其然,还要知其所以然

2. 基础扎实,练习达标,解决问题才有足够的可选项

3. 授人以鱼,不如授之以渔

4. 师生之间要多交流

结语:Open的人生充满希望

我最想对学弟学妹们说的是:尽早了解自己今后想干什么,然后朝着那个目标进发,而不要盲目地跟风考研考博或出国,毕竟选择都是因人而异,只有适合自己的才是最好的。

大一:当记者,入社团,搞零售——积累社会实践经验

现在回想起来,如果不喜欢或者不适合这个专业,应该努力改变,而不是被动适应。至少有两点我们可以做到。首先,尽量努力转系。很多事情,虽然很难,但是如果你多争取机会,还是有可能的,但是往往很多时候,“不可能”这三个字限制了我们,没有争取就放弃了。其次,即使不能转系,也可以通过旁听自己感兴趣的课程等方式提高自己。

四处应聘,转行成功

我一直很庆幸自己主动选择了改行做软件开发。我们应该勇于改变,应该选择自己喜欢的、自己适合的、自己擅长的的职业。尽管三百六十行,行行出状元,但是每一行出状元的机会差别很大。做自己喜欢的、擅长的,工作就成了享受,创造奇迹的机会会大得多。

全心全意终于成功

读研要根据自己的情况,选择一个适合自己的发展方向和目标,然后一切围绕这个方向和目标努力。

◆很多时候要集中精力做好一两件事情,不要分散精力。

结语:不断总结,永远沟通

◆多向别人学习,多向前人借鉴。一个人考虑问题总有局限,多学习别人的优点,多借鉴前人的总结,可以少走很多弯路。最重要的是多和别人交流,书本和网络,都不能取代人和人之间的面对面交流。

◆认准了一件事情,要全力投入,甚至还要勇于放弃一些眼前利益。

◆凡事有计划,认真执行计划,勤记录,常总结。要把自己想学的东西、想做的事情制定出一个计划,还要把自己工作、学习、生活的感受记录下来,要经常总结,不能虚度光阴。

◆除了好好工作学习,还要学会生活。开心的生活、健康的身体、幸福的家庭都是工作学习的有力保障。

突遭人生巨变:兄长遇难

在学校里学习的时候,不能为了读书而读书,我们已经不再处于那个只追求考试分数的高中阶段了,需要多多接触新鲜事物。在大学期间,多参加一些学校社团组织的活动,多体验一下社会上的实习工作,久而久之,会给你带来意想不到的收获。

大一上:金旭亮老师引导我学会思考

掌握一门技术不是一蹴而就的事,它需要的是严谨的态度、科学的方法和一个必不可少的积累过程。

大一下:对学习的重新认识

本科阶段首先要养成的是独立思考的习惯,训练的是结构性、系统性思维。

养成规律的学习和生活习惯,才能提高学习效率。

生活环境和外部条件的变迁对每个人来说都会有或大或小的冲击,但在这个过程中能不能及时地发现自己的问题,调整自己的策略,决定着你是会成为这个环境的主人,还是会被它牵制甚至拖垮。

大二:开始接触商业项目——在实战中培养客户意识

我谨记着当时一位老师的教诲:“有些事情是该做的,有些事情是不该做的,有些事情是可做可不做的;可做可不做的事情做得越少,获得成功的可能性就越大。”慎言、谨行,这种越是为大成者所奉行的品格,越容易为小成者所忽略。

结语:感恩——我的大学,我的青春,没有虚度

懂得感恩,懂得回报。少一些对环境的抱怨,多一些对他人的理解。我们作为教育、技术或其他各类社会机遇的受益者,要有社会责任感,学会尊重自己的专业,尊重自己的同行,进而回报社会,回报助你成长的人。

《Web开发大全:Ruby on Rails版》

书籍的写作,除了可以将已有知识重新梳理,更重要的是,能让自己静下来集中精力将学到的知识反复过滤、去粗取精,并最后做到真正消化吸收。当然,尽管在这个过程中对自己始终要求笔下将付诸印刷的文字准确无误,但在书籍出版后,与读者沟通的邮件中还是会收到文字或叙述有失妥当的修改建议。不过每当收到这样的邮件,更多的则是欣喜,有人在关注你的成果,是让人更进一步向前的巨大动力。


更多内容请关注下方微信公众号:

qrcode_for_gh_7159fb337d37_258.jpg


猜你喜欢

转载自blog.51cto.com/543925535/2159662