当我在写程序的时候,我究竟在写些什么?

当我写下标题之后,面对着一张白板,发现不知道要写什么。或许我还没准备好这个主题。一个村上春树式的标题,或许是因为我想表达得蓝调一些,那么就还是写一写,就当是怀旧吧。

记得大学时,同学们都在用VC6写C++程序,而我为了标新,用Cygwin下的vim写,后来干脆在自己的JOY BOOK 3000上安装了一个Fedora 5,用着那个被修改成半透明的Console下的vim,感觉很爽的样子。现在想来,如果一个人写C++不用IDE,那不是装X就是傻X。

大学时,我们的专业课没有Java,不过我买了一本《Java参考大全(第五版)》,自学了一下。看着JDK5的那个不伦不类的泛型,以及一些C++中很平常,但到了JAVA中就不见了的语言机制,之后感觉“这个语言不行啊!”。但到现在已经做了六七年的Java程序员之后觉得:能用Java做的,干嘛要用C++呢?装X么?

要形容当时的我,可以套用一个比较俗套的语法:哥写的不是程序,是装逼。

比业之后进入一家公司工作,这家公司的主要开发语言是Java。因为我在学校没怎么用过Java,所以被认为技术水平不行,安排到SIT组做系统测试了。在这里碰巧又找到了装X的机会——一般人在用Loadrunner做性能测试时,登录的用户名是在Vuser中配置了很多个,然后挨个用的,而我是调用Oracle的OCI接口在数据库中直接查的——明显是有劲没处使了,要是现在我再用Loadrunner,直接用VUser就挺好了——不过装一下也是有收获的,至少学会了99%的Oracle用户都没听说过的OCI接口(连当时我买的《Oracle 9i/10g 参考大全》中都没介绍OCI的)。

后来终于有机会进入了研发团队,做起了SSH框架下的系统。但骨子里的C++情结让我一直在寻找使用C++的机会,最后终于是在公司的手持终端(WinCE的系统)上开发了一个拼图游戏(与终端开发组的一个同事合作开发)。后来合作开发那哥们又把这个程序移植到他的魅族M8(当年的国产神机)上去了,看起来还不错。现在新一代的手持终端都改用Android了,C++已经几乎退出了公司内部开发使用。

在这个拼图游戏的开发中,我还是学到了不少东西:我负责开发游戏的图象处理,完全没有用到任何Win32的控件,直接用DirectDraw画满整个手机屏幕,最开始实现时发生一个有趣的现象——当把方块移动的速度调到很慢时,移动方块时,游戏用户无法做其它操作,原因是整个界面全部在主线程下运行了,当主线程在忙着处理图像时,其它的事件就排上队了。后来竟然在这样一个简单的程序中,我还是写了一个线程池在里面(当时C++11标准还没有颁布,标准库中还没有std::thread,所以这个线程池直接使用了微软的API)——复杂的消息行为放到线程中运行,主线程就可以处理用户的点击事件了。

在做公司的系统时,第一次接触了Ext2。当时做页面经常会痴迷于搞一些无聊的东西,比如:一个panel是不是要有frame?是不是要有border?border要几个像素才好看?在某个地方用到(√5-1)/2这个比例会不会给用户的感觉更好?……当时经常为几个像素,把页面调来调去。说得高级一点就是“如何给客户一个更好的体验?”,不过在用户体验上我还是不入门,怎么做都很丑的样子。

未完,待续……

当我在写程序的时候,我究竟在写些什么?

时间: 2024-10-21 06:29:36

当我在写程序的时候,我究竟在写些什么?的相关文章

怎么才能有写程序的思路

[提问] 老师,您好!请教一下写一个程序的整体思路是什么样的? 看老师写的程序基本都能看明白,但自己写的时候,思路有点混乱,不知道先写什么,后写什么!逻辑前后联系在写程序之前,好多都考虑不到. [答复] 若论步骤.思路,各种书上写得多的是了,认真读一读,比我在这里罗嗦几句管用得多.对于实践而言,除了能够按"套路"演练之外,还重在通过体验,获得那些不可言传.只可意会的东西.感觉你提这样的问题,就是积累的问题.读程序.写程序,多读,多写,这就是你能够有自己思路的过程.贺老师这里没有省时省力

雷军语录:写程序有写诗一样的感觉

01 只有真正喜欢才能写好程序 喜欢写程序,做程序员就是上天堂: 不喜欢写程序,做程序员就是下地狱. --雷军 程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行.喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起.不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气. 02 把程序当艺术品,象写诗一样来写代码 如果每个人写程序的时候当艺术品来写,写每行都认认真

思考程序与写程序的关系

首先引用孔夫子的一句话:学而不思则罔,思而不学则殆. 首先,学而不思者罔这句话的意思就是如果做一件事情,我们只是为了完成任务才去做这件事情,如果我们不对问题进行思考,那么我们就会感觉知其然而不知其所以然. 思而不学则殆这句话就是,如果我们不动手去做,而一味的去思考结果,那么就会在一个点停滞不前. 其实我很赞成孔夫子的话,我个人认为这2句话很适合编程的人,当然“学而不思者罔”这句话,我个人觉得更适合于我们程序员. 其中造成学习而不去理解它的原理有几点原因. 任务本身的进度很赶,没时间去研究那么深刻

写程序引发的思考

 最近2个月除了完成日常的工作以外,还在练习数据结构这一块的知识,因为感觉数据结构自己还不是很熟悉,最近 完成的练习如下: 数据结构练习连接:http://blog.csdn.net/qlx846852708 1.顺序表的实现 2.单向链表的实现--通讯录 3.队列的实现--银行排队系统 4.c语言猜数字小游戏 5.计算圆周率 6.输入年.月.日计算星期几 7.linux下tcp和udp的通信 8.熟悉了makefile的编写 9.linux下文件夹加密小程序 多动手: 总之,感觉就是还是要

一个平时写程序通用的Makefile样例

//需要目标名和程序名字相同 .PHONY:clean all //伪目标 CC=gcc CFLAGS=-Wall -g BIN= //目标 all:$(BIN) %.o:%.c $(CC) $(CFLAGS) -c $< -o [email protected] clean: rm -f *.o $(BIN) 平时写程序肯定需要反复的修改,有了这样一个makefile程序会方便很多的.动手试一下.

用CIL写程序:写个函数做加法

前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点探索它,掌握它的欲望.那么小匹夫就继续扯一扯CIL,接下来的几篇文章也都以上一篇文章中的那个CIL实现的Hello Wolrd程序为基础,继续通过写CIL代码实现一些功能的方式来和各位探讨交流,同时也加深自己对CIL的掌握和印象. 人生就是做加法 "我的肩上搭着她得衣裳,我嗅着她留在衣服上的体香..

019写程序在一棵二叉树中找到两个结点的最近共同祖先(keep it up)

写程序在一棵二叉树中找到两个结点的最近共同祖先. 分两种情况来讨论这个题: 第一种情况结点中没有指向父结点的指针 第二种情况接种有指向父节点的指针 我们先看第一种情况,结点中没有指向父结点的指针. 我们可以采用暴力搜索每一个结点,如果这个结点的子树中 有已知的两个结点,那我们就继续沿着左右子树找,如果左子树 能找到,我们就继续沿着左子树找,如果有子树能找到,我们就 沿着右子树找,不存在两个子树都能够找到. 代码: struct TreeNode {<pre name="code"

代写程序|java二叉树字典查询(qq 928900200)

This assignment will help you practice and understand better the Binary Tree and Binary Search Tree data structures, their operations and implementations. You are to design a small dictionary using the Binary Search Tree data structure. Each entry ma

关于郭天祥51开发板无法烧写程序问题的解决(Prolific USB-to-Serial Comm Port)

1. 事件背景: 由于使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开发板上,错误显示如下 2. 寻求解决方法 本人尝试了网络几乎所有的方法,包括更新驱动.恢复驱动到旧版本(可能有用,我没用)等等方式都没有成功.这导致本人当时几乎放弃了这块板子.在尝试过程中我也想过用u转串连接板子上的串口到电脑的usb口来下载程序,但是也没有成功. 3. 踏破铁鞋无觅处,得来全不费工

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形.$gif = “logo.gif”;$jpg = “logo.jpg”;$png = “logo.png”;假设用户可以填写一个表单,以决定其想要什么类型的logo图片,$f1 = $_GET[‘fileType’]; //用户选择所需要的图片类型的后缀,可以是“gif”,“jpg”,“png”sendFile( $$f1 ); //假设sendFile()可以发送文件,