张剑光 的大学四年,留给学弟学妹 转载

大一,迷茫:
高考失利,没能去成上海某大学,落到重邮学计算机,那时计算机对我来说是一个完全陌生的东西,上了大学我才学会开机,因为未知,所以迷茫,同时也充满向往。学计算机,完全不知道要学什么。大一下学期终于买了电脑,莫名的兴奋,天天捧着电脑。 因为小时候非常爱好绘画,于是学photoshop,以为学电脑画图就是学计算机,当时还真天真(不过后来还真的有用,之后给老师做项目时所有美工都是我亲手做的,让老师错觉我就是一美工,这是后话)。那时候刚玩,电脑老出问题,每次一出问题就去找隔壁寝室的高手。后来发现高手也只有一个技巧,就是用google,从此我的电脑出问题再也没找过其他人了,因为我也会用google!很快我从电脑白痴变成了帮别人解决电脑问题的“高手”了。。。
后来,对“黑客”感起了兴趣,天天泡在“黑客基地”之类的网站,玩木马,做免杀,盗QQ,控制别人电脑,并以此为乐。弄得自己的电脑每隔一个星期就要重装一次系统。后来学乖了,装虚拟机,自己攻击自己。“黑客精神”、“黑客守则”让我充满了向往,凯文·米特尼克成了我的偶像。

大二,准备:
慢慢地意识到,那时候所谓的玩木马只不过使用别人写的的黑客工具,仅仅是会使用别人的软件而已,当你为自己控制了很多肉鸡而沾沾自喜的时候,殊不知自己已经成了别人(黑客软件的作者)的肉鸡。“我要自己写黑客软件”,开始学编程,并且做了自己第一个网站《轮滑BBS论坛》(那时我的爱好就是玩轮滑)。
一个偶然的机会,软件学院(我是计算机学院)的一个朋友说他们学院有个实验室《重庆重邮软件开发中心》要招人,推荐我去。实验室正好需要做java web项目的,我很幸运的进去了(据说两百多人报名挑选了50个),最初是一个月的模拟项目,要从中淘汰掉一半人,我那时候的想法就是一个,不能让自己淘汰。很快一个月过去,一半人被淘汰了,并且选出了5个人直接参与项目,我很幸运的成为了其中的一个,并且是其中唯一一个大二的。至此,我才真正认识到自己所学的东西是如何投入实际应用并且产生价值的。
我的经历也印证了一个大家有明白的道理,“机会只会青睐那些有准备的人”,如果在此之前我没有自学那些东西,我是不会有机会进入实验室学习的。并且在实验室认识了一个对我影响很大的技术狂人傅鸿城(比我高一届,现也工作于腾讯,QQ音乐部门)。

大三,努力:
大二的暑假,8月1号回家,在傅的盛邀之下,8月10号回到学校,来到熊安萍老师的实验室,和傅一起接手一个报价47W的电信公司的项目,最开始真正做开发的只有我们两个(后来又加入了几个学生),压力都很大,但我们都非常有激情。当时我们的目标只有一个,就是把项目做好,做专业一点,让别人一看就觉得这是公司做的项目,而不是学生作品。我们下载很多开源软件,学习,尽可能地让我们的项目做的专业一点,再专业一点,不仅仅是技术上的,更有用户体验上的,我们都是尽我们的所能把项目做得最好,我们担任的不仅仅是开发的角色,还担当了产品、美工的角色。
要学的要用的东西很多,前台的js、vml,后台的java、jsp,数据库oracle的存储过程、触发器,甚至photoshop美工、css样式都是我们自己写的。那时候总觉得时间不够,要学的东西太多,我们除了吃饭睡觉,其他所有时间都在实验室,中午都很少休息,上课时间成了我最佳充电时间,一般我都不听课,拿着自己的书学习项目需要的知识,几乎每天晚上到12点多才回寝室睡觉。冬天,晚上12点了把已经熟睡了的宿管阿姨叫起来开门,那阿姨的恨不得杀了我 。。。也没有什么周末的概念,以至于我正式工作后,周末还跑公司去,发现周末公司几乎没人加班。
那年寒假,也就是雪灾的那年,同学们都回家了,到后来居然重庆都下雪了,寝室只剩我一个人,都快冻死了。但那时候我们都没有抱怨,也不觉得辛苦,依然激情十足,因为我们觉得自己在做一件比其他同学更有意义的事,我们所学的东西真正投入了应用,我们的劳动在创造价值!临过年的前几天我们才回家,火车因雪灾堵了,根本买不到票,差点就留学校过年了,最后好不容易买到票,还在湖南堵了12小时,还算幸运,听说还有被堵36小时的。
项目整整经历了8个月左右,终于完成,顺利通过验收并交付。
大三整整一年,总共看了两部电影,玩了一次轮滑(我是学校轮滑协会的,大二的时候每周必去)。那时候在我们看来一点都不累,因为兴趣、因为激情。。。

大四,收获:
大四找工作,总共去面试了四家公司,百度、淘宝、网易、腾讯,并且顺利地拿到了其中三家公司的offer,最终选择了非常向往的腾讯!
大四我完全接手负责了一个报价26W的电信公司另一个项目,带领整个团队,责任很大,压力也很大,总不能把一个二十几万的项目在自己手里给弄砸了。尤其去年年末项目初验很不顺利,没有得到客户的认可,当时压力很大,过年也很晚回家,回家后继续写代码,和客户交流联系,我甚至自己提出放弃去腾讯实习的机会,但是老师也非常替我个人发展考虑,还是让我去公司实习。还好后来项目比较顺利,得到了客户的认可。
实习结束后刚回学校,就继续投入了这个项目中,完成最后验收前的收尾工作,在毕业答辩前一周才开始准备毕业论文,并且在毕业答辩(还评上了优秀毕业论文,嘿嘿)之后的第三天就去验收项目,终于把这个项目顺利验收并交付给客户。在回公司的前几天还帮我们老师面试物色了几年级的几个能力不错的学生。

至此我的大学生活终于完满结束。

心得

1、切忌眼高手低
如果你上传一个文件的功能都实现不了,静态成员和非静态成员都区分不开,还谈什么软件工程、设计模式。学软件没有捷径,不要期望只要看软件工程、设计模式的书就能够学好,领略软件设计的精髓。只有写了大量的代码,犯了大量的错误之后,再去看这些书才会有体会,有收获。只有量的积累才能达到质的变化。建议:如果你没有几万到几十万代码量的积累,根本没有必要去看什么设计模式之类的东西,看了也白看。
等你写了很多代码,犯了很多错之后,再去看这些,你会相见恨晚。有些东西你必须去经历,等你经历过,犯了错吃过亏之后才会有体会。不要想着自己可以跳过这些犯错的经历。悄悄的说下:“面试的时候面试官就喜欢听你讲自己吃过哪些亏,没有吃过亏的不要”。犯错吃亏是必须的经历,你之前犯了很多错,那么之后犯错的几率就小了,如果你之前没犯过错,那么你之后的犯错几率就大了。要理解一点,很多人没犯过错,并不是他能力强,而是他没有机会去犯错。

2、积极主动
实习的时候导师跟我说,他有次连续两次考核不好,不服气,就去找leader问原因,后来向leader要了一个项目,结果他非常努力拼命,很多leader、产品经理都没考虑到的问题都被他考虑到了。最后做出来的东西效果非常好,远远超过了leader对他的预期。之后让leader对他大为信任,后来他就成了我们QQ会员门户组的leader。
说实话,在实验室最开始的时候,老师也不是很清楚我的能力,也不敢把项目完全交给我,后来我给老师写邮件,说我要做这个项目主要负责人,让老师信任我。这时我才得到了机会,去带领整个项目的开发。

3、心态要好
不要老觉得别人不看重你,你要先去努力了,别人才会看到你,并看重你。不要等着别人看重你了,你才努力。做任何事要懂得一个道理:先付出,再等收获。做人做事都该如此。

4、认真负责
一旦承诺下来了,就要负责到底。独立负责整个项目有时候压力会很大,因为几十万的项目,不能在你手里给弄砸了。在实验室的两年,除了上课、吃饭、睡觉时间,几乎所有时间我都在实验室写代码。寒暑假回家的时间也就十几天,过年回家了还在写代码。同样你对老板负责,老板一定能看到,也肯定不会亏待你的。很多东西都是相互的,你有多少付出就会有多少回报。

5、超越用户的期望
有些需求虽然用户没有提出来,但你觉得会非常有用,能让用户体验得更好,你就应该去做。不要等用户提出需求,反馈问题你才去做。超越用户的期望,不仅能让用户满意,也能让自己学到更多的东西。

6、适当地拒绝用户的需求
有些需求是用户一时想起,没有经过考虑就提出的,这时候你就要适当的去拒绝,因为很可能没过多久他就会又来一个新的主意,推翻之前的想法。用户的需求一定要等他考虑成熟后才接受。

7、不要小看维护工作
其实维护工作比开发更能让人学到东西。在维护的时候你才会发现当因为设计不足而带来为维护困难。你会真正意识到,当时为了赶进度或者其他原因拷贝黏贴的工作让你现在的维护成本大大提高。在维护过程中你会发现当时设计中的种种不足。现在就是你总结的最好机会了,你会真正切身地体会到应用软件工程、设计模式思想的重要性,这个时候如果你去看看设计模式之类的关于软件架构思想的书,你会不禁拍板叫好“呀,要是我当时这么做多好啊!”。

最后推荐几本书,非技术的,《人性的弱点》、《影响力》,人活在世上,不仅仅是技术的,为人处事同样重要,这两本书都给我带来了很大帮助。


大学四年,很感谢几个人,熊安萍老师、傅鸿城、还有我的两个辅导员对我一直都非常支持。

(0)

相关推荐

  • 张剑光 的大学四年,留给学弟学妹 转载

    大一,迷茫:高考失利,没能去成上海某大学,落到重邮学计算机,那时计算机对我来说是一个完全陌生的东西,上了大学我才学会开机,因为未知,所以迷茫,同时也充满向往.学计算机,完全不知道要学什么.大一下学期终于买了电脑,莫名的兴奋,天天捧着电脑. 因为小时候非常爱好绘画,于是学photoshop,以为学电脑画图就是学计算机,当时还真天真(不过后来还真的有用,之后给老师做项目时所有美工都是我亲手做的,让老师错觉我就是一美工,这是后话).那时候刚玩,电脑老出问题,每次一出问题就去找隔壁寝室的高手.后来发现高

  • 悔过励志帖《同学,我大四了》全文

    悔过励志帖走红:没学习没恋爱没旅行引共鸣|悔过励志帖原文 "唉,快毕业了",阳春三月,毕业季即将来临,伴随着万物复苏生长的不仅是大四学生的离愁,更有遗憾甚至悔恨.近日,河北科技大学大四学生刘新宇在校贴吧连续发帖,感慨自己工作.感情虽都有着落,但仍感觉"生活追得厉害",只因大学四年"浑浑噩噩,无所作为",以自身经历劝诫大学生"去做事,什么也别想的去做事,无论做什么".该帖子引发不少网友共鸣,点击量过百万,被称为"悔过励

  • Java下载安装和环境变量配置图文教程

    初学JAVA时,新手常常不知如何下载JAVA,也不知如何安装JAVA以及对JAVA配置环境变量.近期学弟学妹常请教我如何下载安装和配置JAVA,于是写下此博文以便更多新手快速入门,由于我本人是玩智能车的,因此JAVA知识水平有限,若有不足之处,请大家批评指正.本文可能写的过于繁琐,完全是为新手作为引导. 一.JAVA的下载 1.1JAVA由SUN公司开发,2006年SUN公司宣布将Java技术作为免费软件对外发布,标志着JAVA的公开免费.2009年,SUN公司被甲骨文公司收购,因此我们现在想下

  • C 语言编写一个计算器界面(可视化界面和多功能)

    引言 在大学期间,C 语言或者数据结构等课程,老师会要求学生编写一个小项目练手,或者期末编写一个小软件等课程设计.今天在电脑看到大一学C语言时,实验课上写的计算器功能,挺有意思.所以在此分享给学C语言的学弟学妹,记得收藏保留! 计算器 简单版本计算器,主要实现的是简单两个数的加法,减法,乘法,除法,求余功能.用户可以在主菜单选择需要计算的功能,然后根据用户输入的数字,进行计算,输出结果. 首先,我们定义五个方法,实现两个数的加法,减法,乘法,除法,求余功能.代码如下: // 加法 float a

  • 登陆FTP服务器feat命令错误的解决方法[登陆后不能得到文件列表的解决办法]

    刚才一个学弟/学妹(因为我不认识所以无法确认)给我发EMAIL,问到了这个问题,下面是他/她的来信: 这几天听说FTP有些可以用了.但是我用cuteftp或flashFXP都是到最后一步就不能取得列表了,或者是命令行中显示取得了列表但是根本看不到列表在什么地方.我是菜鸟级的,今天在鼓浪上看到有人说关掉feat,有人说关掉天网.我没有开天网啊,看不懂什么意思.搞了好久还是不行.请赐教! 这里先简单解释一下feat命令的作用. feat命令是用来请求FTP服务器列出它的所有的扩展命令与扩展功能的(我

  • 利用pyinstaller将py文件打包为exe的方法

    写在前面 做大创的时候,因为需要计算合金的各种能量.温度等一大堆数据,为了能够福泽后来的学弟学妹,我决定将我处理数据时用的python程序打包成exe,这样就可以在没有安装python环境的电脑上运行我的程序了.所以上网查了一大堆如何打包的方法,尝试了py2exe和pyinstaller这两种方法,发现还是后者更加的简单便捷.同时为了能够帮助我自己以后再想用到的时候有一个教程可以查找,我就写了这一篇博客出来,留作纪念. 前提条件 首先我们需要两个东西:python3.4版本,pyinstalle

  • 如何在VSCode上轻松舒适的配置Python的方法步骤

    前言 之前被学长推荐使用了VSCode,后惊叹了VSCode的强大,尤其是他的配置,比之前使用sublime方便多了,刚好实验室也来了一批新的学弟学妹,来仔细的逐步的讲解一些,在自己的电脑上轻松的配置VSCode并完成美化等. 准备工具 Anaconda(这里我使用的3.5),具体安装的过程可以参照网上的教程,安装Anaconda还是很简单的. VSCode(在百度上搜索VSCode即可),安装也是可以直接安装的. 开始配置 1.首先确认我们的电脑已经安装了Python,方法如下(按win+R后

  • Python+Opencv身份证号码区域提取及识别实现

    前端时间智能信息处理实训,我选择的课题为身份证号码识别,对中华人民共和国公民身份证进行识别,提取并识别其中的身份证号码,将身份证号码识别为字符串的形式输出.现在实训结束了将代码发布出来供大家参考,识别的方式并不复杂,并加了一些注释,如果有什么问题可共同讨论.最后重要的事情说三遍:请勿直接抄袭,请勿直接抄袭,请勿直接抄袭!尤其是我的学弟学妹们,还是要自己做的,小心直接拿我的用被老师发现了挨批^_^. 实训环境:CentOS-7.5.1804 + Python-3.6.6 + Opencv-3.4.

  • 面试常见问题之C语言与C++的区别问题

    目录 C和C++的区别 关键字static在C和C++区别 1. 定义局部静态变量 2.限定访问区域 答案 结构体在C语言和C++的区别 C中malloc和C++的new区别 C++引用和C的指针有何区别 1.作为函数的参数 2.引用作为函数的返回值 C和C++的区别 C语言是一种结构化语言,其偏重于数据结构和算法,属于过程性语言 C++是面向对象的编程语言,其偏重于构造对象模型,并让这个模型能够契合与之对应的问题.其本质区别是解决问题的思想方法不同 虽然在语法上C++完全兼容C语言,但是两者还

  • SQL数据库十四种案例介绍

    数据表 /* Navicat SQLite Data Transfer Source Server : school Source Server Version : 30808 Source Host : :0 Target Server Type : SQLite Target Server Version : 30808 File Encoding : 65001 Date: 2021-12-23 16:06:04 */ PRAGMA foreign_keys = OFF; -- -----

随机推荐