巡讲主题:卓越工程师的养成计划
巡讲讲师:丁宋涛
推荐阅读对象:对编程有着浓厚兴趣的人
主要内容:主要内容有三点,一是职业生涯规划,二是我给大家分享一下在本科当中,大家需要做些什么事情,三是给大家在大学过程中的一些建议,通篇内容性不高,有点类似于心灵鸡汤,讲的都是一些注意点,感兴趣的可以看看。
点击查看江苏理工学院CSDN高校俱乐部巡讲视频、巡讲报道
讲师演讲PPT下载地址:http://share.csdn.net/#/detail/713
以下文字为巡讲视频中的全部内容,编辑成文字方便大家学习观看。希望可以给大家带来收获和帮助。
各位同学下午好,非常高兴来到江苏理工学院,我主要想跟大家分享一下自己的技术还有感悟吧。大家可以在CSDN官方俱乐部上看到我个人的一些情况。今天接受CSDN的安排,来到咱们江苏理工学院,和大家一起交流,非常感谢大家。
今天我跟大家交流的话题呢是和大家密切相关的,据我所知,咱们学校也是一个以工科为主的一个院校。我和大家今天交流的题目呢就是这个,叫“卓越工程师的养成计划”,底下有著名的一句话From Joumeyman to Master,不知道大家有没有听过,翻译成中文呢就是从小工到专家。有一本讲程序员修养的书,书名就叫做《程序员的实践之路》。大家有兴趣呢可以去看看这本书,这本书非常好,大概04年的时候就绝版了,现在又进行二次印刷,可见这本书对程序员的影响还是比较深厚的。那么我们今天就来给大家分享一下从我个人的求学啊和工作经历当中来交流我们如何成为一个合格的软件工程师。
今天的宣讲有三个内容,一个就是说职业生涯的规划。这边好多都是大一的同学,大家至少还有四年的时间好好规划一下自己的大学生活。第二个就是我给大家分享一下在本科当中,大家需要做些什么事情。之前有一本书讲,谁的青春不迷茫,大家到了大学阶段,生活,教育都有了巨大的不同。我作为一个过来人来给同学们讲下如何规划自己的大学生活。大家可以去搜一个帖子,是我国著名科学家写的,叫做如果再让我读一次研究生。他给大家分享了一下如何学习,如何做科研,如何做工作。我们也给大家交流一下如何规划大学四年的本科生涯。最后一步呢是我自己的感想,叫做工科思维培养之我见。我觉得我们的同学啊,目标是什么呢,目标是成为一名合格的软件工程师,这个是非常重要的。我不知道有多少同学对这个理工科的认识啊,在座都是计算机专业或者是计算机相关专业的同学。那么对于工程师是非常专业化的,对于专业或者是技能程度要求是比较高的。大家知道我们国家最好的理工科大学是哪一所啊,是清华大学。清华大学有一个目标是培养中国第一流的工程师。那么我们是一样的,我们同学毕业以后也是要从事工程上的或者工程技术上的实践。那么我和大家交流分享一下,我觉得作为一个工科的同学,如何去培养一下我们工科的思维或者是工科的思想。最后我会跟大家分享一下软件工程当中我比较擅长的领域叫做软件质量保证。我会和大家交流一下,从软件质量保证来看我们如何去提高,如何去提高,如何去认识我们这个计算机专业。
首先我们先开始第一个议题就是我们如何去规划这大学四年的生活。我觉得无外乎四个东西是我们学生核心的内容,课程,实验,工程和 升学就业。我相信这一头一尾的一个叫课程,一个叫升学就业。课程这个是大家再熟悉不过了,大家经过十二年的教育,小学,初中和高中,现在升到了大学如何去学习一门课程,如何去考试,大家比较熟悉。对于升学,刚刚经历过高考,更加了解如何去完成一门考试。但这俩一个叫实验一个叫工程是我们同学比较缺乏的,我相信大家经过十二年的应试教育,这两个环节几乎是被忽视掉的。这也是我们一直被诟病的说高分低能,或者说就是社会上说大学生的能力比较差的原因。就是这两块一直没得到重视。接下来我就来给大家讲讲这两块,尤其是对工程师来讲他需要哪些素质和能力,并且通过哪些手段去训练,我相信大家去完成一门学业,大家去完成一门考试,大家会有很多的技巧。会有笔记啊,会去整理啊,归纳错题啊,都非常善于做这些东西,那如何做实验呢?如何做工程呢?那么大家的思维可能缺乏实干,也没人来告诉大家如何要入这个门。首先,第一点,我们说这个课程学习啊是我们的基础,这个就是被我作为第一点的原因,虽然大家很熟悉,但是我还是要强调作为一门本科同学课程学习仍然是他的基础。因此我给大家的第一个建议就是在即将到来的四年当中呢,大家修完学分,拿到学位是你最基本的要求,是你最起码最起码的任务。
接下来我讲的两个,一个说动手能力是工科专业的灵魂,第二个是工程是工科专业的根本标准,这是我今天演讲的核心内容和主题,也是希望和大家分享的一个重要的观点。那么我如何提高我的工程能力和我自己完成工程实践的技术和必备的技能以及训练的手段。我相信在座的很多同学,他以后的人生目标一定是要找一个工作对吧或者是你无论是创业也好,无论怎么样也好。大家都知道一个很重要的观点,说大学生应该有人力资本这样的概念,大家也知道所谓的劳动力是应该有价格的对不对,所谓的价格是什么,就是你的工资,就是看你一个月挣多少钱。这虽然比较庸俗,但是这是相对来说比较客观比较公正的一个标准。就是看你的能力有多少,看你能为这个社会贡献多大的价值。而今天要给大家讲的就是如何让你的人力资本增值。经常大家在网上看到说大学生就业困难,尤其是计算机成为我们国家的黄牌警告专业,仅次于国际贸易。很多计算机专业的同学毕业了找不到工作。另外一个方面啊,计算机这个专业整个行业的需求量非常大,你们的学长也在这边交流,说经过培训之后也能找到相对满意的工作,比较高的报酬。那中间的问题在哪?我觉得就是说在我们这个行业当中有一个行话就是说看你这哥们儿能不能出国,明白这个意思么?就像一个瓦工一个月能挣5千块钱6千块钱,为什么,因为他能把墙砌的整整齐齐。一个木工一个月能挣5千块钱6千块钱,为什么?因为他能把一个家具打的漂漂亮亮。他就值这么多钱。同样的你作为一个程序员,你写一个软件,你的软件几乎没有什么错误,你完成的效率又比较高,那自然会拿到比较高的工资。那么这里的时候我给大家两个建议,一个建议是工科是做出来的学术,只有动手做你才能理解计算机。我强调实践是学习计算机的唯一基础,也是唯一的手段。如果你不动手编程,你是永远学不会计算机的。第二个,我们说工程是工科专业的根本标准。我们对于工程能力的培养一直是比较忽视的。我们很多同学他不太爱做工程,也不理解什么叫做工程。可能你们会学软件工程这门课对吧。做好一件工程其实是一件比较困难的事情。还有同学想要去考研去深造,再给大家一句话就是说,我们的本科教育只是起点,不是终点。还要告诉你,即使你不去升学不去考研究生,不去获得更高的学位,你的本科教育也仅仅是一个起点,不是终点。
接下来我给大家的三条建议,第一个叫学好数学,第二个叫学好英语,第三个叫多做实验。在很久以前啊,大家说中国计算机专业比较落后,中国造不了计算机。这种说法其实是错误的,大概在五六十年代中国造过计算机,并且是全中文的计算机。但这个计算机造出来之后,并没有给中国的计算机工业带来巨大的推动作用。反而出现了一个问题,就是我们这个计算机造出来了以后,只能中国人用。那大家会说这个不是很好么。其实这个不好。我们造出来的计算机最大的弊端就是全世界最优秀的软件,质量最好的效率最高的它不能迅速的移植到我们自己开发的机器当中来。那么这个案例要告诉大家,一定要训练自己阅读英文文档,阅读英文资料的能力。其实不需要大家有多深的技术,只要大家多看文档,多去翻一些英文的网站,自然而然的会提高自己的认识。
我最好要给大家讲的为什么要学好数学。大家可能会觉得说我要去市场上买菜,到商店里面或者超市里面买瓶水,我又不需要去列个微分方程去解一解,我也不需要去知道这些问题,我不是一样可以编程序么。这边我要给大家讲,数学的根本性在于你逻辑思维的训练。大家大学里面的基础课并不是让你迅速获得成就感的东西,比如说你学了一个Java,写了一个小软件,比如说你学了一个.NET,写了一个小工具,可以提高你的工作效率。这个是立竿见影的效果。我们的专业基础课是什么,是能够训练你的逻辑思维的这么一个东西。大家要考研究生的话,数学和英语我就不多说了。大家如果要就业的话,外企等一些知名企业也很看重你的基础能力,更看重你的英语啊交流能力。如果说你要转型,去做管理和技术,更需要你的英语和数学。为什么啊,因为我从来不相信一个逻辑思维是混乱的人能够安排好工序。你没有很好的规划能力,你是做不好工程调度的,而这些的基础就是你做事情的条理性。而数学是最讲究两个特性的,一个特性就完备性,一个特性叫纯粹性。所谓完备性就是我做任何事情都不遗漏。所谓纯粹性就是我做任何事情都不重复。你思考一下,在你做任何事情的时候能够做到不重复,不遗漏,那么你做的事情一定是正确而且是高效的。有很多同学,在你做作业的时候,哎呀,我的铅笔不在了,哎呀,我的本子不在了,拿了铅笔的时候去找本子,拿了本子的时候再去找铅笔,那么你做事是不是缺乏条理。还有可能你手里拿着本子,拿着笔还要去找你的修正液,找你的胶带,那是不是你做事缺乏规划性。如果说你接受过严格的数学训练,或者说叫逻辑思维训练的话,你做事情就不会说缺乏条理。最后我们讲工程能力,要不断加强实践能力。在这过程中我给大家列了四个启示,
计算机方向,你要动手,我要给你一个标准叫做实践分高下,淡化考试,实现产品。分数的高低有区别么,唯一的区别就是奖学金,分数高就代表你懂了这门课么,你会了这门课么?你能知道这门课是干什么的么?很多同学学完数据结构,不知道数据结构是干嘛的他可能仅仅知道数据结构有这些功能,这个是什么现象,这个是大家只知道知识点不会用。如果说你学完了数据结构,并且用数据结构去解决了一类问题,那你是不是会觉得数据结构会比较有作用。同样的在我们工程里面数据结构有什么用,它可以帮助我们把我们的程序或者我们的软件设计的有条理。我们经常会讲一些内容,希望大家把它学完了以后用起来。比如说,我们学完了递归,你只要利用这个做出查找磁盘当前目录下的文件夹,说明你才真正理解了。你学会了一个知识点,如何利用这个知识点来做出基本功能来,这个才是我讲的淡化考试,实现产品。
我相信数据结构老师不会出这样的题,但这些是我们最常用的功能。第二点,我会讲基础。基础是什么,就是你要把数学学好,你把这些专业课学好,这样你在考研中会获得高的分数,有利于你去考一些名牌大学继续深造。那么,第三点是我非常强调的,你去想一想说,现在你会什么。我常常讲其实大家刚刚考入大学的时候什么都不会,大家只会什么,大家只会考试。你想想看,你除了考试之外,你还会什么。你会砌墙么,不会吧,你会打家具么,不会吧。 你会做一个工匠么,你也不会吧,你只会拿一个笔,拿一张答题卡,拿一个2B铅笔去涂涂改改,这样的技能能够帮你找到一份工作么?答案显然是否定的对不对。那么这个时候就要自己帮助自己回答这样一个问题,你要会什么,你要会这个社会上对你价值认可最高的,成本最小的事情。什么事情,比如说你学计算机的,我找一个软件开发的工作,我找一个软件测试的工作,做一个软件文档的工作。这些工作我找到了,我通过自学,通过看视频,掌握了这项技能。你首先要知道你会什么,不会什么,接下来你要做的就是你要会那些你应该会的东西。既然有这个目标,比如说要月薪多少。接下来要问,你能做什么,读书,尤其是读一些经典的书。比如说当你学数据结构的时候,你除了看教材,有没有看算法导论呢?这些计算机的原理你是不是都知道呢?这些哪里有,百度有,谷歌有,书上有,要大家自己动手去学习。归根结底是什么,归根结底就是你要学会你的就业技能。大家最后的落脚点就是找到一份你父母满意,周围同学羡慕的工作,我觉得这是大学最大的成果。
最后的时候,我给大家一个思路。一是正确定位,想一想本科生涯应当给予我什么样的帮助。接下来就是整合资源,就是说我要培养工科思维,大家一定要知道自己要做什么。然后要提高质量,针对目标,有的放矢不断强化核心能力。接着,永不放弃,不抛弃不放弃,认定目标,不达目地决不罢休。最后,要学会自我管理,实现时间的价值。大家在我们大学的四年中有太多的事情值得去做了。首先,你要读书,读好书。不仅仅要修完学分,还要多读一些对于你就业,对于你增长才干,增长知识有帮助的书。大家应该知道豆瓣这个东西,豆瓣上面有分享比较好的电影,大家可能看电影的时候,可能会看看评论。同样的,豆瓣上面的书评也是很有价值的。你去一些电商网站,比如说当当,京东,淘宝这些电商网站,他可能出于商业的东西对于书籍的评价有一些选择,而豆瓣相对来说对书的内容,对于资料的内容都有些帮助。工科能力可以给我们带来什么样的优势呢?细心,耐心,韧心,进取心,责任心,协作心,敬畏心。正如我跟大家讲的,在我们的学习过程中,都会遇到这些问题。小学的时候的四则运算,大家现在觉得很简单了,现在老师让你做一个数学分析,做一个程序实现某个功能的时候,大家觉得很难,因为你对它不熟悉不了解。那么这个时候我可以给大家讲,这是个很正常的现象,这个现象不是你自己有的,是所有人都有的。很多同学觉得自己不行,觉得自己学不会,其实是一个假象。我们经常讲,这个东西如果你一学就会,一听就懂,只有两种可能性,一种可能性是这个东西你已经见过了,类似的。还有一种是这种技能是远远低于你现在掌握的水平的。就好比说这个时候你已经会骑摩托车了,这个时候再让你学骑自行车,会难么?
最后要说,我们本科四年的核心财富就是工科能力。我们列出了六个小结,其实我觉得最重要的就是工程师如何看待世界。这也是我经常讲的问题,我们对于这个世界是如何认识的。工程师有工程师的看法,数学家有数学家的看法。曾经有这么个笑话,如果让数学家证明一下凡是奇数都是数,数学家拿到这个问题之后,说这个问题解决不了。让物理学家来回答这个问题,物理学家说我也解决不了。统计学家说这个问题我能证明,3是数组,5是数组,7是数组,9是统计误差,11是数组,13是数组,15是统计误差等等,虽然是一个笑话,但是告诉大家每个学科都有自己认识世界的方法。同样的作为我们计算机工程学,它也有它自己的方法。大家是否真正认识到计算机是如何运行的。大家都知道现在计算机的核心是 冯·诺依曼 原理,当你大学四年以后你要问问自己是否理解了计算机的宗旨。
接下来,我们讲如何培养这些能力呢,告诉大家这些重要性,告诉了大家要做的这些标准。当我们做数学的时候不会做,当我们看答案的时候,我们知道它是怎么完成的,这不能说我数学学的好。学习的目的在于学会别人不会的东西,十二年的应试教育,别人会的你也会,别人不会的你也不会,这达不到学习的目的。那么大家都是这样的时候,你如何让你的人力资本升值呢?你拿4000块钱,别人拿6000块钱,他一定会你不会的东西。这个时候就到了我跟大家讲的,你一定要形成自己独特的优势。代码是程序的核心,你要对它进行分类管理,你可以新建一个文件夹,文件夹里面两个子文件夹,一个叫SRC,是你的源代码,一个叫DOC文档,是对你做的程序功能的描述。这样做的好处是作为你知识的一个索引。第二个是它能让你的程序更加有条理。请记住我们学习,我们做技术的一个重要特点是什么,是和遗忘做斗争。人不是电脑,人永远会遗忘的。我们就需要和自己的遗忘做斗争,笔记是最好的方法。通过这样的方法可以提高你软件编程的能力,提高你软件编程的能力,最重要的是形成你的自学能力。
大家不要因为难而放弃,不要因为没兴趣而放弃,不要因为他人而放弃,这是我核心的观念。希望大家坚持下去。心理学或者是我们的工程学调查研究发现,很多人说我做的事情不好,我没有这个能力,我没有这种天赋,其实在百分之八十的情况下,并不是因为你做的很差,而是你做的和其他人一样差。当你觉得自己不行,当你觉得自己没有天赋的时候,仅仅意味着你是一个普通人,你是一个平均水平,因此你千万不要内疚,也千万不要放弃。软件设计技术是软件生产的发动机。软件首先是商品,没有价值的软件只能是高科技玩具。没有价值的软件产品,它就不具备商业化的价值。因此你要记住,你现在是在做一个商品,这是一个很重要的思路。回到我刚才的主题,我说工程思维与实践是有冲突的,为什么?大家在学校里面参与的学习,参与的工作,它有个很严重的弊端,就是它几乎是不计成本的。为了培养你的能力,它是不计任何成本,不计任何投入的。而这个来跟我们工程来讲是最大的差异,工程它是一个商业化的过程,它必须强调投入和产出。比如说你明天就要参加操作系统考试了,你今天还会再看数学么?不会的,因为你知道明天考场上的表现会决定你下学期是否要重修。你在考试的时候会精打细算,那么你在做软件的时候是不是也会这样呢?你必须要树立起来这个思维,如果你用这样的思维去对待你的工作,那么你一定会很受你老板的欢迎。你替老板省钱,你替老板创造价值,这样的员工怎么会不喜欢。而我们的应试教育就是这个问题,大家从来没有积极主动的想这个问题。这是你从一名学生到一名工程师最大的问题,大家要转变这样的思维。因此大家一定要跳出学校这样的圈子去思考自己的人生,去安排自己能力的培养,安排自己技术的吸收。最后给大家一个建议就是,要做一个注重实效的程序员。