工作两个多月之后的一些感悟

       作为我人生当中的第一份工作,不能说这份工作很困难,却也不能说很轻松。来到公司,刚开始导师给了一份来自客户的产品开发界面流程图(Flow Chart),纯英文加图片的文档,花了一天的时间自认为了解产品的结构。接着第二天导师,又给了我一份他们根据客户提供的流程图已经做好的需求文档(SRS),还是花了一天的时间,了解了产品要实现的大部分功能。接着就是导师给了我一份他们根据已经做好的需求文档设计而成的产品界面的XML文件,花了三天时间我了解制作界面软件的用法、实现不同界面所需要的功能、以及功能的属性,还有就是设计思想。紧接着,我就根据自己的理解完成了,制定界面的设计,并交给导师审核,审核通过后,导师就给了我一份关于产品的详细设计文档,这里面包含了产品各子模块实现的功能、设计界面以及要实现功能模块需要使用的一些关键性接口。又花了3天时间看完之后呢,导师就把整个产品设计出来的工程文件丢给我,让我对照源码自行学习。这是一个非常庞大的工程性文件,里面主要是用C语言实现的,所以不能够直接运行起来。对于第一次接触几万行代码的工程文件,我的确是看的头昏眼花。好在查看源码的工具(Source Insight3.5)还是比较好用的,花了大概一周的时间,我终于明白了产品各个模块的大致设计思路、用到的接口、以及编码规范。说实话,因为程序没有运行起来,很多功能的实现只能结合文档自己的想象,所以这个过程确实是一件非常痛苦的事情。导师说,如果我需要明白函数的启动过程、静态页面如何设计、然后是页面的迁移。第一步就是要搞清楚每一个基础页面是什么时候执行,什么时候结束。熟悉之后,根据之前的XML文件,学习如何使用代码实现这些功能,再紧接着就是明白页面是如何进行迁移的。在这期间呢,我也收到导师提供的任务,根据客户提供的Flow Chart,完成SRS的修改,并提交给导师审核。完成任务之后呢就是继续学习源码,熟悉代码。又看了约一周的时间,我觉得看得有点无聊了,也觉得差不多能设计代码了,所以导师就让我去测试产品功能。对照着他们已经编辑好的测试文档来进行测试。因为代码是C语言实现的,所以需要将C工程代码下载到硬件芯片上去。当然这前期他们已经搭建好了测试平台,包括将工程中需要使用到的图片资源烧制到芯片中,还有就是配套的测试工具,电源等基本设施。工程文件在测试主机上运行起来之后,我终于见到了活着的、变化的、运行的界面了。于是呢,花了2天的时间我将测试文档中的功能逐一进行了测试,并记录下测试的结果。测试过程中发现一些问题,测试的结果与期望的结果并不一样,我知道这就是需要我修改的地方。但是当时的我还没有真正写过代码,话说这个时候已经一个月过去了。所以到了第二个月,当我第一次接受到来自客户提供的新的需求的时候,我感觉我终于有机会一展身手了。但是貌似,我拿着需求文档直接编写了一天的代码,却把自己搞的晕头转向的,最后我询问导师我设计的代码对不对,至少设计思路对不对。导师说,我没法看出来你这对不对,因为我不知道你这界面是如何设计的,因为设计的思想不同,代码自然就不同了。导师说,我应该根据需求先设计出XML文件,然后再着手代码。于是,我花了一天的时间去设计XML文件,提交给导师之后,导师不断的提出各种错误,我也不断的修改错误,最后终于完成了,其实就是属性忘了设置(当然了这些属性直接影响后面代码能否正常运行)。接着第二天,我赶紧去编写代码,这份代码设计四个文件,一个主文件和一个接口文件,然后就是这两个文件的头文件。其实代码量也不多加起来估计就几百行。因为是第一次编码,所以存在各种问题,首先是代码语法问题、然后就是设计思路的问题,最为关键的是不能够实现资源和代码的衔接。因为设计界面和编写代码是两个独立的工作,你必须要调用正确的接口才能实现代码控制资源。所以我又花了一天的时间仔细的琢磨先前他们写好的代码,并将相似的功能模块引用到新的代码中,就这样花了一天的修改终于成功了。但是导师最后的评论是,代码不规范,他说我们需要根据客户提供的编码规范去编写代码,并且函数前面必须写上函数头(就是说明函数的功能)。就这样我加班修改好了,才如释负重。完成之后呢,我并不能直接看到效果,因为还需要做一件重要的事情,那就是如何实现页面的迁移(一个画面变化到新的画面的过程),所以呢我又花了一天的时间去学习工程文件该如何实现这些功能,并将自己的理解与导师分享交流。导师确认没问题之后,于是我就开始修改那些控制文件。这个过程又是花了一天的时间。所以,下面的事情就是要进行测试了,看看能否实现完整的功能。但是,这个时候我才意识到我还需要学习新的东西,那就是要讲资源文件烧制到芯片中,其次就是将编译无误的过程文件下载到芯片中。这两个过程是实现功能可视化的前提,所以C语言开发为什么难,就是难在这些地方。毕竟是和底层打交道。到这里整个开发流程也就基本完成了一遍。所以也花了足足两个月的时间,感觉真心很累的。因为感觉整个过程都是自己一个人在黑暗中摸索,遇到了问题才能向导师求助一次。不过好在终于在黑暗中寻找到了黎明的曙光。

      说了这么久,基本上就是回顾了这两个多月来的工作经历,基本上就是一个学习和探索的过程。在这个过程中是不是就要受到导师的严厉批评,说着说那的,一顿狂怼。不过我还是都忍受了下来,毕竟人在屋檐下嘛。总体感觉就是应届生什么都不会,一开始工作就是各种瞎,但是需要不断学习各种知识来填补空缺。以前呢,在学校没有项目经验,也不知道如何去学习,但是现在来到了社会上,没有人会纵容我的任性,所以一出现错误,就是一顿骂。个人脸皮很薄,只能自己暗自发奋,现在就是每天加班来提高自己,希望得到肯定。一个月20天的工作时间,差不多有15天的时间都会加班的。所以最近这段时间也是完全和我先前的悠闲截然不同,但是呢,在这个过程中我也逐渐能够正确的认识自己。毕竟自己目前的水平的确太水了,还需要利用周末的时间进行学习才能有很大的进步。知道是C语言开发,所以我花了一个星期的时间看完了汇编语言,还有希望接着学习Linux内核,之前在学校的时候自己学过Linux操作系统并熟悉了一些命令,所以已经有了基础知识。当然,就目前的阶段来说呢,我希望一方面能够将手头上的工作做好,其次就是学习新的领域知识,不能局限于当下的东西。总之,争取在一年之后,看到成效进一家不错的大公司。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值