自暴自弃,软件工程?
如实地说,我喜欢绘画,这看起来很荒唐——一个热衷于绘画想要搞动漫的人偏偏落入了这个看起来八竿子打不着边的程序员堆里。我为什么会选择这个专业,脑子抽了?手抖填错了?都不是,“软件工程”,的确是我在一番苦思冥想后亲手填上去的四个字。
高中的我一心想要学绘画考美院,但苦于家境等各方面因素的压迫而不得如愿,那时正值我的叛逆高峰期,而当时各种枯燥无味的灌输式书本学习更加激化了这一矛盾,使我对绘画之外的学习内容都产生了不浅的厌恶与排斥心理。就这样浑浑噩噩地高考完,填志愿,除了我认为游刃有余的英语专业,还填个什么好呢,我翻着专业介绍资料,想了想,软件工程?计算机?
我从小学六年级开始接触计算机,从小跟着外公外婆在乡下野大的我,那年暑假终于被母亲接到她工作的镇上去涨了点见识。对计算机的第一印象——神奇。从那个小屏幕里能放出任意想看的动画片,这在那个彩电还不普及乡村的年代,足以令我叹为观止。母亲上班时把我一个人丢在小小的租屋里,百无聊赖的我便开始自己尝试着向那台计算机探险。回想着母亲播放动画片的操作,我打开了迅雷,这大概就是我认识的第一个软件了。之后,我做的比较有技术含量的第一件事,大概就是照着母亲闲置的ps教程书p出了一些特效图片,photoshop,这个强大的图像处理软件至今依旧在我心中占据着不朽的地位。再后来接触的,便是word,用来写些幻想随笔之类的,一回生二回熟。那时对计算机的一些肤浅认识,对于几乎接触不到计算机的乡下学堂来说,已经是足以用来吹嘘的噱头了。
直到高中,学校终于出现了一周一次的微机课,我也毫不谦虚地成为了班上为数不多“懂电脑的人”。恩,这样一想,计算机还是很好相处的,那就填个软件工程吧……
以上就是孤陋寡闻的我选择计算机专业的心路历程,很傻很天真,跟博客I[1]的作者“把所有课余时间都放到学习电脑和编程中了。很少玩游戏,而且比较少参与课外活动,周末和假期都把所有时间都投入到学习编程中。高中,学习的确繁重,但我仍然把相当多的学习时间都放到学习编程中。”完全不可同日而语。
计算机既算不上我喜欢的领域,更不是我擅长的,但既然来到了这个专业,学费又那么贵,好吧,那还是得学,这或许就是命中注定的缘分了。于是偶尔听听课,或者课后自学完成作业,考试算是应付自如,期末实训也混了个优秀,大一第一次期末考还荣获了班级(30多人的小班)第一的好成绩。一切看起来都发展的很好,但事实上,不过是井底之蛙。后来就慢慢了解到了一些编程界的大牛,有些是身边热衷编程的学长,有些则是流于口谈的业界大神,再将自己上下一打量,几斤几两还是有个自知之明的。
与代码为伴
两年来的大学学习生活,大致让我对国内的教育风气更加失望。如博客H[2]的作者说所“中国目前的大学教育就一个字:渣。我的大学在当时不比后来的什么211之类的差,但还是一个字:渣!从学习风气到成绩考试,从课程设置到师资力量,都是一个字:渣!我并非针对任何人,大环境如此,信不信由你。”不是说没有真心想要“传道,授业,解惑”的老师,也不是没有抱着一腔“乘风破浪会有时”的热血的学生,只是大环境如此,大风气如此。且不说其他高校,只说我个人所处的环境,二本,也不算差的学校,像高中一样对学生学习牵掣拉拽的虽几乎没有,老师照本宣科的现象却不稀奇,而学生几乎也都沉溺在“大学是自由天堂”的虚假欢乐中,上面老师在无奈地讲课,下边学生在无聊地玩手机,谁有错吗?
再者,很多老师的授课方式都是“断的”,博客B[3]的作者说“拿数据结构这门课程为例,严蔚敏老师的经典教材相信几乎学过计算机的人都是耳熟能详的,这本书上的算法和数据结构短小精悍。我们的授课老师,却只讲最简单的概念和不深的理论描述,给我的感觉就是,“数据结构”几乎是门和“离散数学”差不多的数学课——他用最肤浅的知识,“成功地”告诉了我们“数据结构”是门几乎不用动手写程序的课程,只用上课听听就好了。于是乎,一门需要动手实践、将会极大地提高我们编程素养和思维能力的课程,就被我们这样迷迷糊糊上完了。”,我是相当身同感受的,而他所说令他震撼的清华朱仲涛老师的“数据结构”课“只用1/5的时间简述一下要讲的内容,剩下的时间都是当场写程序。著名的约瑟夫环、Dijkstra算法、Prime算法、快速排序、堆排序、锦标赛排序、Tarjin强连通分量、Convex Hull等深的浅的,教材上有的没有的,全部在课堂上从0开始实现:每遇到一个算法,一边写程序,一边讲解,不懂就将程序的运行结构拿出来分析,并不时地穿插离散数学、概率论、内存管理、C语言、汇编语言等知识,几乎将我们学到的东西非常恰到好处地拿出来,让我们从心里面觉得原来所有的知识是连贯的,我们之前的积累都是有用的,并且富有成就感。”大概就是我理想中的大学教育吧。为讲课而讲课和为传授而讲课,一个止于表象,一个深入核心,两者区别是相当大的。
对于我现在的老师和学校能否做到跟国外那样,我的答案自然是否定的。我对国外的教育并没有很多了解,我只能从一些耳濡目染得来的信息中浅薄地分析一下。我认为国外教育体系相当注意实践能力、发散思维、创造力等的培养,学生从小接受的教育就是如此,所以他们在学习上也是“放得开”的状态。而国内的教育体系较为僵硬,学习可谓比较“保守”,上面提到的大环境如此,不是老师和学校现在改变教育方式就能轻易改变的。
这一部分的标题叫做“与代码为伴”,可以说是半真半假。我写过的代码大概算是极少的,除了实验课,编程作业,机房实训这些必要写的情况下,我几乎从未主动想写代码,唯一能让我觉得自己还算计算机专业的是:每一个程序我都尽力思考,并且用自己的方式去实现了自己的想法。这点对于一个学生来说明显是默认的、必要的,但其实,并没有很多同学像我这样认真去写代码作业,而那些认真去写的,则几乎都是比我厉害很多的。
目前印象中,最复杂的作业大概是大二上学期的软件工程基础实训吧,要求小组写一个公交查询系统,用文件存储数据。但是那次我偷懒了,主动申请了个不是核心部分的注册登录功能编写工作,也许正是因为没有去深入了解,动手去做,才会觉得它复杂。所以很多事情,你不去尝试,它就永远是个困难,但你去尝试了,也许会遇到更多困难,而当你一一克服,就会发现不过如此。
迷途寻路,前端设计?
原本对这个专业是相当迷茫的,私下里也会打趣以后去当个打字员算了,但是数媒方向让我看到了希望。
我印象最深的一次实训是大一下学期的html网页设计,设计一个博客,那是我第一次对代码产生了比较浓厚的兴趣,尽情地将自己的想法融入页面设计中,配色设计,内容设计,界面设计,不断学习,不断设想,不断否定,不断调整,最终算是取得了当时认为比较满意的效果。稍微截个图:
如今看来,画风很中二,大概还是各方面都应该被吐槽的程度。但这并不影响我想专注于前端设计学习的想法,毕竟兴趣使然。
至于如何规划,还有待思考。
一、技术道路上,要想看的更远,就要站的更高,明确了方向,自然就不能浑浑噩噩,为考试而学习,除了课堂上的基础知识要懂,更重要的还应该是自己去广泛了解学习,互联网和都是很好的“老师”,每天一个小目标,不断调整和充实自己的计划。
二、对于职业道路,博客K[4]的作者的说法我很认同:“30岁以前,踏踏实实地学习。学技术,学做人,学做事。30岁以后再谈自己的发展”,“换工作要“承前启后”,前面的工作会成为后面工作的一个基础,而后面的工作又会成为前面工作的一个很自然的延续”。
三、社会道路,我觉得要多关心时事吧,要适应社会就要先了解社会,家事国事天下事都要有所了解,不能局限于工作,同样如博客K[4]的作者所说“不要只把心思放在技术上,技术是hard skill,只要下工夫就一定会掌握。更要注意与人沟通等为人处事的soft skill上。hard skill像一个大树的根,而soft skill则像一个大树的枝叶。树根是你的根基,能让你站得很稳,而枝叶能让你向天空伸展,获得发展。”
结语
路漫漫其修远兮。
[1]http://www.cnblogs.com/unruledboy/p/DevCareer.html
[2]https://www.cnblogs.com/freeflying/p/4796369.html
[3]https://book.douban.com/subject/4006425/discussion/22803961/