忠忠的新百宝袋

做人要厚道

工作2个月的感觉

Posted by Kai on August 31st, 2008

开始工作到现在,正好是两个月。这两个月,也是我名义上的试用期。我觉得作为我职业生涯的起点,有必要总结一下。

工 作最大的感觉是需要涉及很多东西,也许是manager为了让我更加熟悉整个系统,我做了很多事情,从editor到client到server,乃至于 configuration management我都做过一点东西。涉及的编程语言一开始是python,后来是C++,接着是C#,bash,然后竟然也用到了一点php和 javascript。有部分是在windows上做的,有部分是在linux上做的(bash也只能在linux/unix上运行吧)。几乎每个星期都 要接触很多新的东西,上班第一天就是建立server平台,是一堆linux操作,我当时连什么是ssh都不知道,就照着说明一步步敲命令,其中有一步让 我ssh到本机,我就纳闷了半天,因为不知道改用哪个命令执行SSH操作,后来buddy过来说就是用ssh这个命令。

首先简要的说说我这两个月做了什么。

第一个真正意义上的需要编程的任务是用python。现实情况是我不会python。于是一边参照语法书,一般读已有的代码。好在我毕业之前大四下闲着没事看了些perl的书,对动态语言有点概念,所以上手python还不是很痛苦。第一个任务很简单,按时完成。

第 二个任务是python程序的一个bug,但是这个程序是python和C++两个语言合作完成,我先花了一天时间看SWIG,大概明白python怎么 可以掉C++的函数。然后学会用pdb在python里面跟代码。跟到那个bug发现竟然问题处在c++里面,int传给了short的构造函数导致精度 丢失。记得那是工作第二周周五的晚上,能找到那个bug我非常的开心,因为美术那里受这个bug困扰的很严重,我解决了他们的问题。

第 三个任务是我做的第一个investegate性的任务,我需要阅读已有代码,明白里面一个子系统是如何工作的。刚接到这个任务感觉没底,因为没有人看过 那段代码,我是第一个去investegate的人。那段代码是server端的代码,看得有些费劲,消耗时间比预估的多一天。做出来后很有成就感。

接下来的任务遇到与之前遇到的精度丢失类似的bug,牵扯到client和server端的很多函数,花了不少时间和同事交流,最后决定不去修改代码,人为限定不用那么大的数字。

目前遇到的最有数学含量的任务莫过于做一个B样条笔刷了,我参照大学里面图形学的教材,写了一个B样条计算类。那个任务完成的颇为满意,因为最终效果很明显。

在那之后我被分配到了另一个组,先是用C#修改一个工具的bug,给那个工具添加新的特性。然后用bash写一个批处理脚本,bash真不好用!

Manager(我 有很多manager!)说如果有个网页,而不是让用户ssh到linux上就能实现调用bash脚本做到的事情,那该多酷啊。于是我上周就做了一个网 页。对linux不熟,安装apache和php就用了一天,第二天用简单的php把功能实现,因为linux下web user的帐户权限问题困扰了半天,最后终于似懂非懂的找到一个解决方法。第三天用了一个ajax的函数实现了异步刷新,对javascript及其陌 生,其中遇到了很多问题,比如IE的cache导致刷新失效,javacript和php直接如何交互等等,最后总算勉强的实现了我需要的效果,就是让网 页像SSH界面一样能够实时显示当前bash脚本的输出结果。然而网页做的奇丑无比(真的像SSH一样,只有白底黑字),我自己都无法原谅,所以这个周末 去美罗城买了一本Head First HTML with CSS & XHTML来充电。

这两个月过程给我的最大的感觉就 是,不论任务是什么,使用的语言是什么,最重要的是做一个professional 的软件工程师。那就是对问题的了解要清晰,不仅仅满足于完成任务,如果发生错误,也要知道为什么会发生那样的错误。对于多种语言,其实很多同事都是边用边 学的,lua,python,bash,C#等等,大部分人在学校里面不会学这么多,都是工作后需要用才去学的。保持严谨的态度和求知的热情很重要。除了 真正的编程语言,批处理脚本对于软件工程师来说也是非常重要的,因为很多事情与其用说明书的形式记录下来,不如写一个脚本,这样后来人就不容易犯错。自己 用的时候也很方便。脚本的话最好不要用python,perl这种外加语言,最好使用系统内嵌的语言,比如windows batch command脚本,linux的bash file,这些都不会对使用者有系统之外的任何的依赖,比如我一开始就不会python。

前几周一直以工作忙为理由安慰自己,所以好久没有看书。从这周末期要改改习惯,周末除了看鲁鲁修之外也看看html。

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image

 
FireStats icon Powered by FireStats