五年技术之路
                                                                                          章立民 / 文
本月,《程序员》邀我写篇文章,回顾5年来的技术变化给我带来的感悟。5年前我是如何预料的,什么判断对了,什么没有预料到。如果回到五年前,如何选择路线。对于未来的技术发展怎样看,打算怎样走。看到这样的主题,觉得非常有意思,当下立刻答应。
首先我要来谈谈面对技术的心态,再来说说我选择技术的原则,最后就是回首过去、验证现在、展望未来。
我不愿意在这里自命清单,高谈阔论地讲一些大道理。但是大家必须了解,台面上的这些技术没有什么好与坏,我们顶多只能说某些是过时的,某些是符合现今流行架构。遗憾的是,不少人在技术的选择上总是有门户之见,就拿.NET 与J2EE来说吧,你是因为讨厌微软才选择J2EE,或者说因为您是Bill Gates的忠实fans才非微软技术不用呢。我要说的是,检视诸项技术时,最忌讳的就是“成见”以及那股莫名的“情绪”,或是说“情节”。当您有了这样的心态,如何以客观的心情去评量各种技术呢?
我从来不否认我与微软有紧密的关系,也不否认我这近二十年来用的都是微软的技术,但是我从来不否定与批评其它厂商的技术架构。这不仅是一种气度,也能帮助我以客观的角度来学习,毕竟知己知彼才能百战百胜。
我常常看到有许多人喜欢比较 .NET 与J2EE。说句实在话,这两种技术路线都有极深的内涵,单单看了技术架构,稍微用了点其中的技术进行开发,就足以评断两者的优劣吗?这未免太自以为是,大放厥词。我投注了极大的心力研究.NET,才比较认为能够稍微随心所欲地掌握其内涵,也才能够真正体会其中的优点与缺点。我相信同理之于J2EE。问题是,我时间有限,精力有限,能力有限,不可能同时研究这二者,既然如此,何德何能去评论呢?
其实只要您真正投入,掌握技术的精要,自然能将其特性彻底发挥,进而开发出优质的应用程序。如果您学东西总是半调子,那即使您用的是什么伟大的技术,写出来的东西也是平淡无奇,甚至上不了台面。
我选择技术的原则非常简单,第一看技术的进入障碍;第二看技术有没有未来性。所谓进入障碍,当然就是跟我目前的技术能力是不是有延续性,是不是能够有良好的衔接,这是为了确保我过去投入的心血不会轻易付诸流水。就未来性而言,也就是看技术有没有前景,说得露骨点,或者应该说有没有“钱”景,毕竟技术必须叫好,也要叫座,才是好技术,那种孤芳自赏者,通常没有好下场。没错,这两个原则有时候是彼此相冲突的。放诸技术的演进史,有时候会因为某种革命性架构与装置的推出,导致引发大跃进式的演进。在这种时候,未来性的考虑当然更胜于进入障碍。
其实在许多时候,技术(或是说技术路线)的选择也没有那么难,因为市场可能已经帮您做了决定。如果真的无法自行判断,就跟着流行潮流走吧!
技术演进的脚步可是从来没有停歇过,而且只会愈来愈快。身为此行业的一份子,有时候感觉有如过河卒子,没有退路,只能拼命地往前冲。不过进入这一行,我是无怨无悔的。同样的,在技术的路上,我也是无怨无悔的。如果时间回到五年前,我会改变我的决定或作为吗?答案也是一样,无怨无悔。如果真的有错,那就是错在我进入.NET的脚步还不够快,曾经一度的观望,让我后来、以至于现在,必须耗费更多的心力去追赶。
当初一度认为,在因特网的风潮过后,无线装置应用程序的开发将形成一股热潮。不过就实际的统计数据而言,这方面的开发人口所占比例仍然极小,并不如我预期,不过这或许也代表还有很大的成长空间。另外呢,我常常觉得计算机过于冰冷,没有人性化,如果开计算机能像开电视一样那么快速的话,真是完美呢。虽然做梦归做梦,不过就目前的走向看来,计算机的强大运算能力必定在数字家庭娱乐中扮演重要角色。这个方面,颇值得关注。
在此当口,我所选择的Visual Studio 2005与.NET Framework 2.0都已经到了最后定型的阶段,从中,我看到了我未来数年该走的路,更确认了当初的选择完全正确。因为它符合我本身的两个原则:低的进入障碍与良好的未来性。就另外一条路线而言,我想现在选择Java的人也不会后悔,毕竟现在Java也是热得很。曾经有人问我会不会担心这个状况,有没有想要转换跑道。哈,这个问题真好。其实我最近常跟微软的人说,Java已经打到你们家门口了,该加点油喔!不过我并不担心,毕竟有竞争才有进步,最后的受惠者,将是所有的使用者。
最后,在技术之路上给大家一个忠告,放开心胸,勇于面对,才能立于不败之地。共勉之。

程序员的成长故事之 五年技术之路相关推荐

  1. 程序员的成长故事之 我的Borland五年

      我的Borland五年                                                                                        ...

  2. 一位资深程序员的成长故事

    大学生活对很多人来说都是美好的,可一旦走出校园,就充满了惶恐和不安.记得栀子花开的季节,一位计算机系的学长讲述了自己的求职经历. 结缘与苦学 大学与女友异地四年,原本想着毕业后去女友生活的城市. 慎重 ...

  3. 程序员的成长故事之 袁红岗的程序人生

    程序其实也是一种艺术                                                                                           ...

  4. 程序员的成长故事之 从微软走向开源的5年

               从微软走向开源的5年                                                                                ...

  5. 一个程序员的成长的六个阶段

    第一阶段 此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西. 第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库 ...

  6. 程序员持续成长,需要持久而痛苦的学习

    阅读前请先思考 你最重要的竞争力是什么? 你为何焦虑? 前言 每个程序员心里多多少少都有一个成为技术大牛的梦.毕竟梦想总是要有的,万一实现了呢? 奇葩说第五季里有一期辩题是<高薪不喜欢的还是低薪 ...

  7. 一个程序员的成长的六个阶段(转载)

    一个程序员的成长的六个阶段 第一阶段 此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西. 第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函 ...

  8. 云栖专辑| 阿里毕玄:程序员的成长路线

    2018年12月20日,云栖社区3周岁生日.阿里巴巴常说"晴天修屋顶",所以我们特别策划了这个专辑--分享给开发者们20个阿里故事,50本书籍.第一位是林昊(毕玄). 在这篇< ...

  9. 开篇词 | 程序员的成长课

    大家好,我是安晓辉,做过开发工程师.研发经理.技术总监等岗位,现在自由职业,专注写作和开发者生涯咨询.出版过<程序员的成长课>.<Qt Quick 核心编程>.<你好哇, ...

最新文章

  1. VScode配置anaconda虚拟环境+运行
  2. 输入法图标(语言栏)不见了怎么办
  3. 利用广播实现ip拨号——示例
  4. install tomcat
  5. Webbrowers控件的小技巧
  6. C语言程序设计及上机指导,《C语言程序设计上机指导》全套教案
  7. AT2363-[AGC012C]Tautonym Puzzle【构造】
  8. 老司机学习MyBatis之如何通过select返回Map
  9. dev项目属性按钮是灰色_Spring Boot 中的项目属性配置
  10. CCF CSP 201703-1 分蛋糕
  11. KM、流程、风险管理的关系分析
  12. mysql的配置文件解释
  13. 21考研数学二和英语二复习规划
  14. MySQL和数据库可视化工具的下载与安装
  15. php 源代码 即时通讯,php开源免费即时通讯源码-目前有哪些完全的开源的PHP,商城代码...
  16. 高中计算机思维导图,为高中信息技术教学插上思维导图翅膀
  17. Synonyms——中文近义词工具【含源码解析与改进】
  18. python课程结课感悟_python听课的感悟与建议
  19. 第1章思维导图图片版
  20. 信创实践之达梦数据库介绍

热门文章

  1. 09年2月编程语言排行榜:商业编程语言的王者之争
  2. C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
  3. 如何在XML中使用nbsp
  4. Socket.io部署遇到的坑
  5. 【SharePoint】SharePoint站点模板ID——SharePoint Site Template ID – Microsoft Office 365
  6. springboot应用上线后,提示找不到本地jar包的原因
  7. java组合框添加函数_Java Swing组合框选择并链接到其他组合框
  8. Flutter中举步维艰的WebView,终于实现了加载本地html
  9. Django之MVC(MTV)设计模式
  10. SpringBoot+SpringWebFlux +Spark JAVA 版