(1)回想一下你曾经对计算机专业的畅想
- 当初你是如何做出选择计算机专业的决定的?
回忆高考,并非是我自己做出选择计算机专业的决定,我最初只是被动的接受这个决定。填报高考志愿时,由于家里人都希望我当老师,而我自己临时不想当老师,出于妥协,看东北师范大学是师范类学校,同时在重庆又属于提前批次,于是抱着录取不上的心态只填了一个统计数学专业,其他候补专业都没填。然后,阴差阳错的被调剂到了计算机。记得当初查看自己的录取信息时,整个人是崩溃的。此前的生活很少甚至说是没有接触过计算机,对于计算机专业毫无了解,更别提编程了。结果却被录取到这个专业,当时的自己对于未来完全没有啥想法。但由于家庭条件不太好,父母亲一直认为大学是出路,一直以来都习惯当乖乖孩,逆来顺受,也就没和父母抱怨吐槽,然后就自己默默的接受这个录取。之后就从温暖的重庆来到寒冷的东北。
大一时对计算机这个专业并没啥感觉,就参加了很多社团,自己也没事有事买酒回宿舍,当时的自己看上去过的很潇洒,但事实上就是得过且过日子,在一个自己从没考虑过的专业里,自己也没找到其中的乐趣。之后偶然认识大二的赵yf学姐(目前在滴滴),她那时候在参加国内的挑战杯,因为聊的来,结果就把我给招呼过去一起做,然后认识了做ACM的陶s学长(目前在阿里)。一群人一起折腾学校和国内的一些计算机比赛,在这个期间自己开始接触PHP、JAVA。最开始是用PHP调用天气情况的接口,花了三天写出来,特有成就感。于是乎,一群人一起折腾各种技术,一起组建学院的工作室,当然也一起玩。在这个过程中,我逐渐开始喜欢上自己这个专业,爱上编程这件事。每次自己做出一个个成型可用的东西出来时,自己心里就特开心。就这么我度过大二、大三,在这期间认识了对我影响很大的亮哥和杨贵福老师,自己也就跟着学校信息化办、招生办和校报打交道,做一些我能做的编码工作。大二大三除了上课时间,平时就呆在学院的工作室里自己一个人从网上找各种学习视频看和做,自己一点点的去学习别人做过的事。到了大三下,自己去了杭州通花顺实习了一段时间。到了大四,出于家人的期望和个人原因,于是乎还是选择了考研,继续在东师学习。
其实回头看这些,自己最终还是选择计算机专业,离不开机遇、兴趣和性格。我的性格一直都是爱捣鼓些新鲜玩意,喜欢自己一个人安静的做一些事,不算是内向,我也能和别人扯的很happy。兴趣吧就是每学习掌握一种自己不会的技术,会很开心,就像小孩喜欢糖果一样,我喜欢技术,尤其是自己用不用的技能做出能用的东西时,就感觉自己还是有点用,内心很充实。至于机遇就是遇到的学长学姐和恩师,在我不知道如何去做,或者做错的时候,他们都会很耐心的帮我指出,将他们的经验告诉我,感谢。
- 你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?
我认为我所接触的课程不符合我对计算机专业的期待。 首先得说说对计算机专业的期待,我个人的认识是计算机专业是门需要动手的学科,敲代码这事不是看两眼就熟练了,得花费时间去实践。结果呢,我当初大学一周的时间从早到晚,被满满的专业课排好,老师们对着多年不变的PPT说啊说,偶尔点点名,布置课后作业。学生课后时间很少,期末考试的试卷题基本上很少有变动,问问上几届的学长学姐,然后就这么过了。老师应付,学生应付。期待老师能在专业课上讲理论知识,而不是对着PPT,同时也能讲讲与理论知识相关的实践,然而这样的课、这样的老师很少遇到。
- 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
我觉得计算机是我喜欢的领域。我会去学习新技能,会用技术去做好玩的东西,会去看别的大牛做了啥写了啥,自己然后看别人写的再继续折腾。写代码能够长时间坚持三到四个小时,有时遇到自己感兴趣但不明白的会很兴奋,一直折腾。如果最后还是搞不定就弄个备忘录记录着,过两天继续弄。擅长么?它 是我还能做点有用事情的领域,但不是我擅长的领域。我没有擅长的领域,有用事情是指对别人有帮助或者我自己能用来玩的东西。我觉得我离擅长还很遥远,我的计算机基础和数学都不好,没有做出值得一提的东西,没有paper,也没拿啥大奖,我还没有资格说擅长。还在跟着我导师学习中。
(2)考取研究,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
博客1[http://www.cnblogs.com/unruledboy/p/DevCareer.html]中提到 “我在工作中也要根据不同需求用不同的工具。除了语言本身,还的掌握好IDE(开发环境)/工具,工欲善其事,必先利其器。要做好开发,除了个人/团队技术过硬之外,还应该多学习同行,前人总有让我们学习的地方。我的做法是:做开发之前,先客户需求分析,再下研究一下市面上领先的同类软件/系统/解决方方案,借鉴他们的优点,注意,是学习优点,不是抄袭。”
就博客1的这段文字的描述而言,我不怎么符合这些描述。在编程语言上相对很“滥”,JAVA-PHP-JS,做项目时需要啥语言,我就用啥语言,没啥好抱怨吐槽。IDE选择上,我做的不好。Android我的选择是Android studio,JS对应Sublime,JAVA/PHP就对应这Eclipse。版本 工具git/github虽然很早都存在了,自己平时编程学习中却没使用。可能算的上及格的就是做开发前会参考下别人咋做的,看看别人的东西,从用户的角度去考虑考虑。不够这好像也不算啥。
博客2[https://book.douban.com/subject/4006425/discussion/22803733/]辜新星前辈提到
“a. 回顾基本理论;
b. 动手写代码,尤其是基本的数据结构和相关算法,一定要动手写出来并编译通过。
原因是,一来面试常常会面试到基本数据结构的细节,或者从基本数据结构出发,要
求做出改进以满足一些特殊条件;二来即使如删除链表头节点这样简单得不能再简单的操作,
如果不熟悉,在实现上也容易发生错误。
推荐阅读:《编程之美——微软技术面试心得》。如果能把这本书里一些题目的来龙去脉搞清
楚,面试数据结构和算法方面的题目时会有更强的底气。
c. 要关心实际系统。《程序员》杂志和CSDN网站经常会有实际的大型网站架构
分析文章,关注这样的实际系统能够加深对分布式大型系统的理解,对于面试很有帮助。”
博客2在提及技术面试时,谈到上述三点。然后我就蒙了。自己不会啊。会写代码,但是基础数据结构和算法让我自己手写出来,我做不到,至于关心实际系统,每次浏览CSDN时,看见相关介绍,点进去浏览一遍,然后就没了。倒是在大三暑假把电子工业出版社李智慧老师的《大型网站技术架构》一书完完整整看了。再想想自己如果是本科毕业去面试技术岗位,好假。
博客3[https://book.douban.com/subject/4006425/discussion/22803961/]刘帅前辈提到“其实,不懂的时候,不管任何时候,你都可以去问老师、同学,从而节省大量的时间和精力。我们必须在年轻的时候有意地培养自己独立思考的能力,经常想一想,我要的是什么、为什么要做这件事、做这件事有什么好方法、这样做有什么好处和坏处、如何改进等,也要与人交流、沟通,讲出自己的想法,请别人指正。我们需要培养的是自己的思考方式,而不是简单地获取知识。计算机专业需要大量时间,需要付出大量精力,也需要极大的耐心。但大部分像我一样的80后都做不到。而做到的,现在几乎没有例外地都找到了很好的工作。”
博客3在谈到多与人沟通交流,向别人表达自己的想法这事时,我感觉自己和刘帅前辈的所描述的处在相反的情形。我不懂时,非常不愿意向身边的人询问,更多求助与各个论坛、技术网站等,自己花时间去寻找。或者换句话说,曾经有段时间很讨厌同别人交流,更倾向用文字或者行动去向别人表达自己的想法。这并不是说我很内向,平时我还是很逗逼的,只是遇到事情更喜欢依赖自己去解决,靠自己的方式去寻找解决方案。在谈“独立思考”这事上,我也没如博客3中提到的这般去考虑事情,更多的时候,我是想自己有时间做这个事吗?这个事情对别人有害吗?我应该怎么迅速解决这件事?其他的就基本没考虑。这应该是各自思考的方式不同吧。
博客4[https://book.douban.com/subject/4006425/discussion/22802960/]徐宥前辈提到“就是要踏实地积累。我读书涉猎很广,很多东西我都能大概知道怎么回事,但是就是学得不深刻,所以即使当时花了很多力气,需要的时候还要花大功夫重头捡起。所以我的教训就是,与其两个半瓶水,不如一个满瓶水。这个道理用在读书上就是说,一本好书读两次要胜过两本好书各读一次。
要是大学能重新来过一次,我会少读一些书,多读透一些书,这可能是我觉得当年猛读书的唯一遗憾。”
博客4中的这段话印象特别深刻。本科期间自己极其喜欢购买计算机相关的书籍,从鸟哥的Linux系统,到编程之法、编程珠玑、head fisr系列书籍,还有机械出版社出版的阿里系的JAVA系列书籍,电子书自己在恩师的引导下也开始阅读重构、黑客与画家、计算机程序的构造和解释等书。然而自己看了之后···就忘了,只能浅浅而谈,对知识大概有个印象。真和别人进一步讨论,自己就缺少知识底蕴了。惭愧。
回到问题上来,我目前专业知识能力一般(专业知识100分,我给自己打及格60分),能和别人交流相关知识,但很难深入。技能吧,会写PHP、JAVA和JS,能做小网站和简单的安卓开发。能力一般,能干小活(一周或者半个月做完,大活是一个月以上的)。
想成为合格的计算机专业学生,专业知识不踏实,没有成型的知识体系,需要建立专业知识体系,简而言之就是理论不咋的,有点实践能力。技能吧,还停在知其然不知其然阶段,正在提高中,看源码、看博客加更多实践。能力吧,稳定输出的能力,和人沟通的能力,时间管理的能力。这三处应该是我需要提高到。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践,不同的选择有不同的努力方向。对照以上你阅读的前人们的经历,你的选择是什么?
一直很坚定的确定自己走工程项目的路线。从本科开始,就希望自己能做多多做做项目,看着在自己手中一个个成型的小东西,自豪+开心。当然走这条路也是希望自己能找个不错的工作,多拿工资,让爸妈养养身体,并不那么劳累。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
我的优势?在没有看博文[https://www.cnblogs.com/xiaozhi_5638/p/4485805.html]和其他学校(如北航、福大的本科学生博客)之前,我会觉得自己在本科时自己用TP写的学院后台管理、微信开发时调用各种接口写的后台程序、维护招生办网站后台、给信息办写的交换机人数统计等“项目”经验还算是小优势,现在我并不认为自己与其他同学有任何优势。只是由于自己院校所处的环境中,身边的接触的同学是这么一个“偏低”的水平,也就让我觉得自己还能做点事。但与其他学校的同专业或类似专业同学相比,我这些真的就是小玩意了。我和别人现在都是处在一个基本相同的起跑线上。与别人相比,我的劣势?劣势1:我在欠缺向人准确完整表达自己观点的能力。劣势2:我对时间的管理很差,输出不稳定(即使能完成承诺的事,但需要加班加点)。劣势3:我的基础知识掌握很不到位。很多东西有印象,能说个大概,却很难深入。其他劣势暂时没想到。提到的这三点很突出。
针对你的选择,你给自己的本学期的规划是什么?
我的规划?总体上就是:
1. 能把本科没学好的基础课(计算机网络、操作系统、高数、线代和概率论重新学一遍);
2. 老师有项目的话,争取自己作为核心输出人员;
3. 安卓开发。学期结束进一步提高技能,能掌握常用的框架(看源码、做过能运行的东西+博客记录)。
4. 将过去看过的计算机书踏实看一次。黑客与画家+head first java + head first 设计模式 + UML应用建模实践过程。
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?
在本科大三已经来蹭过一次杨老师的软件工程课,当时最后四节课(印象是这样)因为去杭州实习,就没有上完这门课程。很期待这次完整的学习。
我的期待是进一步学习软件工程相关的理论知识,加强自己的工程管理能力,具体指对项目进度的把握、对个人时间的管理、如何向他人清晰表达自己的问题等。
坦白说杨老师的这课如果想真正满足相关作业要求,我个人感受是每天投入时间至少需要在两个小时作业。这还仅仅是满足是相关作业要求,而并非是很好的那种。我自己目前计划是每天拿出1~3小时在这门课程上,理由是:1,我自己很喜欢这门课,有趣。2,我第一次上这课时,做的并不好,我需要为自己过去的错负责。3,这门课程值得投入时间。4. 有时全天,只能保证每天最少1个小时。估计理想情况一周会有20小时左右用在这门课上。