年轻的时候,常常以程序员自诩,涓涓代码流于键盘之下,那是何等的满足!如今已过而立,随着小儿的出生,青涩自负的青春早已作古,现在的我在做什么呢?该做些什么呢?心里的头绪越来越多,终是忍不住上来与大家探讨探讨。

回想自己走过来的路程,10几年前,我在扬州城的一所大学里修学机械工程专业。直到大二,与计算机惟一相关的课程是一门《FORTRAN77 程序设计》,学工科的同仁们应该不会对ForTran感到陌生吧!这门苦涩的课程让一个香气袭人的女老师讲得一塌糊涂,然而我似懂非懂的认真学习了一个学期并通过了后来的省二级考试:)后来,我开始迷上了QBASIC,它可以画图,这是我感兴趣的原因。另一个不经意的时间,画法几何老师办了一期AutoCAD与C语言辅导班,抱着对C语言的神往,我报名了,并从此不可收拾的喜欢上了C。兴趣是最大的老师,我要是一头骡子,前面挂着胡萝卜,就算背负着再重的货物,我也愿意一往无前。

很难想起,最初接触到C的时候我会干些什么。当时的系科协举行的两届计算机设计大赛,我倒是参加了。第一次的参加大概是96年,准备的是一个DOS下的画图程序,通过该软件可以操作键盘绘制一些简单的图形,并实现图形的保存和读取。搞机械专业都会接触到AutoCAD,当时我对其中的十字光标很是着迷,因此在那次设计赛中弄了个十字光标,也就是通过这个软件,我熟悉了INT中断、异或模式、拖曳作图、文本窗口模式、图形模式、位图保存等等的知识。也是大概那个时候,我迷上了《电脑爱好者》,并发表了《何为中断?》《使用C++完成图形的存取》等文。

等第二次参赛的时候,很荣幸的,我已经是系科协主席了,当时找了系学习部长负责会议的主持。参赛的作品是一套窗口界面,后来杨汉玮同学称之为FakeWindows,那已经是97年,Win3.1已经在使用,Win95还没有普及。当时的想法很简单,想利用C++语言构建一套DOS界面下的图形组件库,结果也差不多了,做了一堆组件,包括菜单、文本编辑框、命令按钮、radiobox、checkbox、滚动条,以及定时器。当时学习Win3.1的痕迹很重,包括那个输入框中的光标闪动的频率都是前后比较下来的。通过这些,我熟悉了C++语言,熟悉了鼠标、图形编程,并熟悉了如何在DOS中输入输出汉字。通过项目实践学编程,这也是我多年以来总结出来的一条经验。那些日子是开心的,或者熬夜,或者在梦中想着那些飞舞的代码,让我感觉青春无悔。

也是那个时候,我发表了《汉字处理技术》、《中断处理技术》、《鼠标处理技术》等文。有所收获,就与读者们一起分享、一起研讨,既可以享受编程的愉悦,又可以一起提高,何乐而不为呢?

我的第一份AutoCAD上机作业是画了一盆花,当时找了个相机拍了张照片,由于屏幕上的东西很不清晰,冲洗店居然认为该胶卷作废没给冲洗!@#$%^不管怎么说,后来洗出照片了,颜色很好看,我寄给了远在安徽农村的老爸老妈,他们估计不明所以,但是很高兴。至于FakeWindows,我也是及时的拍了张照片,如果老家里的那本相册还没有来得及腐蚀的话,那些画面应该还存在。敝帚自珍,当时这些代码我也是用3寸软盘拷贝了好多份,可怜的是,早已不知道那些盘放在哪了!有的时候觉得这是一些遗憾,但是那些项目实作的结果,是让我熟悉了C++,熟悉了类设计,熟悉了继承与多态,这些技能和思路早已深烙在心,何憾之有乎?

总而言之,我并非来自正规军,而是一个杂牌子的C++程序员。 本科毕业之后,和一家DVD公司签约之后,意外的发现自己无望的硕士居然考上了……报考的时候为了取巧,还是选择的是机械,之后就读了三年的机械专业的研究生。还好,这个时候我开始使用Visual C++,因此研究生的3年基本上靠VC度过的。其间发表了《轻轻松松C to C++》。

VC的应用领域很广,同学做的算法及其界面展示基本上是VC,我和本科毕业的老同学之间的项目合作也是用的VC,其中用的比较多的是socket编程。合作的基本模式是同学去谈项目,我负责开发,他再去实施,之后大家分钱,如此多次。那个时候ASP很火,因此我自学了ASP,一直用Visual InterDev做ASP开发,并设计同学录、个人网站,自得其乐。很多人喜欢把VC和web编程对立起来,但我不这么认为。在一些项目中,我觉得使用HTTP协议更自由一些,因此有些项目都是靠VC实现的客户端与web站点一起搭配完成的。程序员该做什么?我觉得,程序员应该学会给用户一套完整的解决方案,而非固执的坚持是采用C++,还是java。近期的拙作《把脉VC++》中,我一直宣扬着这种观点。

谈到java,那已经是2001年之后的事情了。找到的工作在北京,这边的开发语言是java,于是我又开始自学java,当然过程中同事的帮助非常重要。用过C++的人,再学习java很简单。用过ASP的人,再学习JSP也是得心应手,因此我很快就入门了,并开始做了N多J2EE项目。(当然了,弊病也是有的,直到2年后,我才发现我一直在用使用C++的方式用着java。)java的空间很广阔,第三方资源更是丰富,因此我在很多项目中使用java,当然,一些需要高性能计算、客户端人机交互和COM调用的场合,我还是使用着VC。

总之,这段开发之路走得很开心,也很酸楚。当年在扬州那所大学的情形常常不能忘记,最清晰的一幕就是我曾经在一间没坐满的机房偷偷上机,被计算机系的老师发现,要驱逐出门,年少的我反问了一句:“后面这么多机器都空着,这不是资源浪费吗?”,这位灵魂工程师回答“对!这就是浪费!这就是最大限度的资源浪费!”,这句话刺伤了我。时过境迁,这位老师是否还在学校任教不得而知,但我希望各位同仁在生活中,待人友善一点,不要太刻薄,不要伤害他人。也就是那以后担任系科协主席的日子里,我竭力为各会员联系系里面的机房,让他们利用周末时间可以多摸几次电脑,多写几行代码。

每个人一生中都有几个最好的朋友,我大学阶段的挚友是杨汉玮先生。在我很多的作品(软件、稿件、图书)中,我都提到了他。他是一个比尔盖茨式的人物,之所以这么说,是因为他酷爱电脑,并且中途辍学,一时传为佳话。不同的是结局,比尔发财了,他没有。当时在班上,我是追求上进的优等生,他是常常缺课挂考的混混,但我们常常在一起讨论理想,包括我不懂的无线电,包括他不懂的C语言,以及比尔和艾伦。大二的时候,来自苏北农村的他花了1万元钱买了台486,这台电脑先后陪伴了我的QBASIC、C和C++,当然也包括西木头的《C & C》和大宇的《仙剑》。杨同学是个爱咬文嚼字的人,也是个多情的人。我们那时候很少想到如何去追女生,但是对《仙剑》的爱情演绎能够评论得头头是道。98年毕业的时候,杨同学一次去南京,给我带回来一本老外写的3D游戏设计,其中讲解了一些3D原理以及编程要点,可惜我并没有深入的看下去,当时我看的一本书,是一本貌似盗版的C++外版书,印刷很粗糙,但是内容很深入,并前卫的涉及到C++模板等高级的内容。就是那本书让我知道了编程书还可以例举出一小段一小段得示例代码来写,若干年后,在写《标准C++开发入门与编程实践》之前,我一直想找到那本伟大的书,但是杳无音信,无以临摹,真是太遗憾了!为什么人这一辈子总会制造这些那些的遗憾呢?

叹完了前面的路,那么,三十好几的我,以后的路该如何去走呢?

未完待续……

白乔原创:程序员的路该怎么走?相关推荐

  1. 程序员感悟----路该怎么走

    有一句话我一直记得很深,"当人深处迷茫之中时早已不再迷茫".很绕很矛盾的话,也可能有人听到后会马上跳脚喊,我一直迷茫怎么还是迷茫呢?呵呵.静一下想一下再喊. 大家都这么大了,路该怎 ...

  2. 一个老程序员的程序员之路

    一个老程序员的程序员之路 写在前面 老程序员老了,已经写不动了,但是我依然深爱着程序员这个职业,谨以此文与那些渴望成为程序员的年轻一代闹闹科.         也许我们都曾经年轻,但是总会年轻不再,所 ...

  3. 程序员之路--梅花香自苦寒来!

    程序员之路--梅花香自苦寒来!        梅花香自苦寒来!这是我在走过的程序员岁月,还有将来的程序员道路上会始终紧握的信条! 不是说这句词本身有多少诗意,而是他同样刻画了一个程序员所应该付出的努力 ...

  4. 程序员的路是一行一行走出来的

    01.大学 回想十年前,我还是一名大学生,傻乎乎的对未来没有任何的规划.每天就知道混日子,打打游戏.谈谈恋爱.至于毕业后能不能找到一份工作,心里完全没个底. 非常遗憾的是,那时候没有遇到一个像现在的我 ...

  5. 程序员之路,蛇年快加速!

    转眼一年时间又过去了,时间如弹指间灰飞烟灭,程序员之路,却在缓慢加速... 春节,或许你没有回家,继续奋斗在开发一线上:或许你回家却被亲人朋友拷问了一把,想必清醒了许多,对未来思虑更多. 但凡春节过后 ...

  6. 从测试的角度来重新反思我们自己的程序以及我们的程序员之路——“通过追本溯源来进行前瞻性思考”...

    从测试的角度来重新反思我们自己的程序以及我们的程序员之路--"通过追本溯源来进行前瞻性思考" 最近比较忙,而且情绪上有些浮动,但控制的非常好.这几天协会搞一个编程比赛,部分的题目是 ...

  7. 程序员之路──如何学习C语言并精通C语言

    程序员之路──如何学习C语言 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通.如何以最小的代价学习并精通C语言是本文的主题.请注意,即使是"最小的代价",也绝不是什么 ...

  8. 程序员之路(一年有感)

    回想一下,自走上这条程序员之路已经1年啦,记得去年的这个时候,只懂得编写一些排序,二维数组的东西,从来没想过此刻所要面对的是成千上万的代码量,而且其间的逻辑要比当初复杂N倍,还能看成这是一件很正常的事 ...

  9. 开弓没有回头箭——我的程序员之路

    从今天开始在CSDN上写博客了,期待了好几天还是有点紧张的. 其实自己经常写东西的,不过是日记,不会让别人看到.但今天我要在这里大声宣布,我正是踏上了我的程序员之路. 一直以来,我都没有真正的跟从过自 ...

最新文章

  1. 不要再自己封装各种Util工具类了,这款神仙级框架你值得拥有!
  2. java多线程-死锁的一些问题
  3. call、apply、bind
  4. 10 分钟从零搭建个人博客
  5. Metric Learning度量学习:**矩阵学习和图学习
  6. windows 播放MP3音乐
  7. Github | 谷歌机器学习课程中文版
  8. python使用redis有序集合_Redis 有序集合(sorted set)
  9. 当浙江“十万企业上云“遇见中国软件生态大会
  10. 怎么用计算机画图工具,使用电脑自带画图工具(画图软件怎样操作的方法
  11. Linux界面介绍及基础知识
  12. 计算机组成原理统一试卷,安阳工学院计算机组成原理试卷a
  13. Tomcat 9安装配置教程
  14. nginx代理 域名重定向
  15. 怎么提高图片分辨率?如何改变图片的分辨率?
  16. amd显卡用黑苹果输出黑屏_AMD锐龙Ryzen系列黑苹果教程
  17. 2020-08-31
  18. 如何一键远程开机,远程唤醒功能
  19. BLE蓝牙芯片KT1025A程序代码和调试总结
  20. UEFI和Legacy是什么意思?

热门文章

  1. C语言小练习(答案后期公布)
  2. 计算机编程本质是什么意思,计算机编程的本质
  3. 修改弹性公网IP的带宽
  4. webrtc代码走读四(rtp包格式)
  5. 数据压缩导论--叨叨
  6. Python:第10章文件操作 课后习题
  7. 麦克风阵列语音增强beamforming算法
  8. 移动端网页特效移动端轮播图
  9. 什么是.mogrt文件?如何在Premiere Pro软件中安装pr动态图形模板mogrt疑难解答
  10. 业余无线电相关操作备忘