从毕业到现在,一直只在跟一个项目。因为大学专业不是计算机专业,所以除了这个项目我基本上可以说毫无项目经验,也因此我无法客观评价这个项目的大小、好坏、成功或失败,我只是想记录一下自己遇到的问题以及自己的想法。
从找工作那会开始说起吧。当时是5月份,离毕业还有两个月,我基本上没有在学校的招聘会上投简历(实际上投了一个程序员的,笔试没过,因为都是java、html之类的题目,没学过),又不想跟同学抱团去外地,只好自己在网上投了几个可能有机会的公司(家人帮不上忙、学校又不是那么有名,找工作确实有点难)。幸运的是,没过两天就受到一家公司的面试通知,是我最想去的那一家,而且我投的是软件开发岗位。到了地方才人事才跟我说觉得我适合做售后或客服这一块,问我能不能出差,显然我的答案是否定的。人事部的人一般还是比较好说话的,最后还是让我去软件部面试了一下,毕竟看我坐了几个小时的车,也蛮辛苦的(为了混口饭(●'◡'●))。
面试我的那个人(后来才知道是部长)在跟我聊了之后说觉得我有潜力,愿意给我个机会。“潜力”这个词是一个让我愧疚了很多年的词,当然他显然无法察觉我内心的小小的起伏,而我此时也自然而然表现得一副“我确实很有潜力”的样子。然后这位部长拿了一份c语言的笔试卷子给我,问我会不会做。我看上面的题目都学过,就是都还给老师了。我说不会,他说回去看两个月的谭浩强的书再来做。一个月后,我觉得差不多了,又跑过来笔试,还是被放宽条件:可以不做英文部分。结果是卷子做的还不错。
上面说这么啰嗦主要又两个目的:1、表现我当时有多菜,好跟我现在的菜做一个对比,否则我没办法说服大家我是进步了的;2、对当时给予我帮助的一些人表示感谢。
工作之前写过最长的程序大概是水仙花数吧,所以当看到一个文件几千行的代码时有点小崩溃,当时问过师傅很多很天真的问题,最经典的是:这个我应该从哪里看起?就这样,我真正意义上开始阅读职业生涯中第一个源文件。由于当时我是单独看这个模块的,无法运行看到效果,有很多的不便,那时有一个窄记事本,整整记了一个本子,从数据结构到函数调用关系,从模块的整体功能到各个函数的实现细节,我真的花了很多时间来研究,也是这个模块启发我在脑海里建立了很多概念和模型:
1、结构体声明-》书柜
2、数据-》书
3、内存-》房间
书柜本身基本上是不占用空间的,它的作用是规划一块空间怎么用,比如说第一层是一个大格子,第二层是三个小格子等,需要什么样的格子由需要放的书决定,最终所有的书实际上都是放在房间这个空间(room)里面的,书柜的作用只是方便我们管理。
这个模型虽然很简单,对于写过一万行以上代码的人来说可能不是很恰当,但对于当时的我来说就像是发现了一条定理一样,觉得是那么的实用。到现在,我仍然觉得这个模型建的很恰当,而且在其基础上进行了一些扩充,比如说对于那种多层结构体嵌套,可以理解为大格子里分小格子;结构体指针变量可以想象成装了轮子的书柜,想搬到哪就搬到哪。