软件工程实践2017第一次作业
==========
阅读与思考
回想一下你初入大学时对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?
2002 年,我考入北京大学计算机系。能进入梦寐以求的大学,学习我当时觉得最酷的专业,自然非常高兴。瞎忙的结果就白纸黑字地送到我的面前,我的“高等数学”期中考试只考了不到80分。一纸惊醒梦中人,我突然意识到,我曾经梦想的自由自在的大学生活,也不是那么无拘无束,至少还有分数这样的硬指标在衡量着我的前进或退步,提醒我不要迷失方向。
-- 引用自《辜新星:时刻调整方向 找到人生的蓝海》
理科毕业的我可选择的专业还是较多的,但细细想来,我们每个人都身处互联网的大时代,计算机与互联网当下的前景还是非常不错的。
你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什么?
转变的过程漫长而艰难。当大一下学期开始增强对编程的要求时,我缺乏编程基础的弱点就明显暴露出来。加上身边还有不少熟悉编程语言甚至有过计算机竞赛经验的同学,我跟他们的差距就越发明显:常常自己调试半天找不出Bug所在,而有经验的同学一眼就能告诉我答案。有差距,就要追。怎么追——
1.买书,编程的,大部头,很多。从编程语言到编程风格,再到数据结构和算法,几乎每本书我都是从头到尾抱着仔细读完的。
2.坚持在读书的时候把代码一行行亲手敲出来并编译通过。这种学习方法很需要毅力,毕竟当你看着书上的代码觉得很容易懂的时候往往懒于动手,但也只有动手才能发现各种问题,比如用C++写class总是忘了最后的分号,缩进不一致导致少写一边大括号,等等。
3.提前做知识储备。在学习编程技术的时候,我还提前了解了一些编译器和计算机体系结构的知识,对于我理解程序的运行和性能的瓶颈有了很大帮助。
4.贵人指路,事半功倍。CSDN、Joel On Software等网站上的程序员,他们在博客上无私分享的心得和在论坛提供的及时帮助不仅让我获得了知识,也给了我极大的鼓励,让我能坚持艰苦的学习。
-- 引用自《辜新星:时刻调整方向 找到人生的蓝海》
过去的两年中,刚开始的时候我对于大学的课程知之甚少,基础课程的学习完全想到,而专业课程的确涉及了各个方面,但是想依靠大学课程和老师的我,在亲自努力方面十分欠缺,所以并不能达到预期的结果。
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
当然,如果你发现你不适合,你无法坚持,那么我建议你还是想清楚,别的行业你能坚持吗?我们不害怕转行,害怕的是自己对自己缺乏认识,害怕的是小猫钓鱼,害怕的是一山望比一山高。
-- 引用自《对程序员职业的一些建议》
说实话对于计算机领域我还是有所兴趣,但现在看来还并非是我擅长的领域。
即将大三的你,对照前人们走过的路和描述未来发展,现在的你
自我感觉你已经具备的专业知识、技能、能力有哪些?
我所拥有的只是最基础的编程知识。
离成为一个合格的计算机专业本科毕业生,在专业知识、技能、能力上还差距哪些?
如果你觉得自己在技术有自信有热情,而且已经有一些成绩了,我强烈建议你去IT公司中锻炼,越尊重技术的的IT公司越好。就像打球一样,只有和比你厉害的人一起玩,你才会得提高。
-- 引用自《对程序员职业的一些建议》
独立自主解决编程问题的能力。以及更多的编程技巧。
第一份工作并不决定你的人生。
-- 引用自《对程序员职业的一些建议》
大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
对照以上你阅读的前人们的经历,你的选择是什么?在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?针对你的选择,你给自己的大三设定的规划安排是什么?
针对不同的职位,我分别做了不同的准备。
- 针对技术职位
1) 越早准备越好。我在面试的半年前就开始做知识回顾和储备。
2) 复习基础知识,主要包括:算法、数据结构、操作系统、体系结构等。此外,对于互联网公司离不开的网络以及分布式系统的相关知识,我也会特别关注。
3) 复习的方法。
a. 回顾基本理论;
b. 动手写代码,尤其是基本的数据结构和相关算法,一定要动手写出来并编译通过。原因是,一来面试常常会面试到基本数据结构的细节,或者从基本数据结构出发,要求做出改进以满足一些特殊条件;二来即使如删除链表头节点这样简单得不能再简单的操作,如果不熟悉,在实现上也容易发生错误。
推荐阅读:《编程之美——微软技术面试心得》。如果能把这本书里一些题目的来龙去脉搞清楚,面试数据结构和算法方面的题目时会有更强的底气。
c. 要关心实际系统。《程序员》杂志和CSDN网站经常会有实际的大型网站架构分析文章,关注这样的实际系统能够加深对分布式大型系统的理解,对于面试很有帮助。听说博文视点会组织出版系列大型网站架构分析方面的图书,值得关注。
-- 引用自《辜新星:时刻调整方向 找到人生的蓝海》
我的选择是希望参加工作,优势在于能够更早的接触社会,从赚一点工资开始,劣势在于知识积累的速度减慢,可能初始薪资待遇不如学历更高的人。大三我希望一点一点弥补前两年落下的知识技能积累。