技术,要拿得起,更要放得下
这篇文章, 我想和大家分享一些我学习生涯中的一些体会, 其中一项, 就是技术要拿得起, 更要放得下.
回想数年前, 我也曾经在C++虚拟继承类的object memory layout研究过程中激动过. 也为了实践不同的COM Apartment Model写过多种测试程序. 当然, 也为了到底是学Java还是.NET踌躇过. 也在论坛上为了牛角尖问题和人家打过口水仗, 也拿自己用汇编写的程序炫耀过. 也怀疑过算法到底对实际工作有多大帮助, 也沉迷于论坛上回答问题赚的专家分.
学习的路上也吃了不少亏. 曾经花了几百大洋买MFC的中文类库大全, 其实就是个MSDN的翻译. 买过粗制滥造的技术书, 以至于学到最后还以为Java和Javascript就是一个东西. 曾经看到OpenGL很火而研究了数周, 最后还是不得其门. 还买过UML的几本教程, 最后觉得不如买草纸.
当然, 学习过程中的快乐也没漏. 拿到C++对象模型, C++专家编程时候如获珍宝的感觉. 用巧妙方法写出台球游戏外挂的自豪, 通杀论坛上所有问题的淋漓感觉......
看现在手头的工作, 以前"研究"的技术好像一个都用不上. 别说虚拟继承, C++的工程都不知道怎么建了. Javascript也是每次都去google找现成代码. 平时虽说用C#写写代码, 但是class的继承关系, 基本不超过3层. ASP.NET也就还记得.NET 1.1上的东西, 从master page的概念出来后就基本一无所知. WPF也只会搭一个hello world做一下基本的测试, 更不用说Silverlight了. ORM, 框架, 各种模式等, 更是云里雾里.
有朋友感叹, 技术发展太快, 跟不上. 环境太浮躁, 很难踏实和深入. 其实, 翻开cnblogs上的一片片文章, 我看到的大多是新名词, 但是我并不觉得技术发展太快, 或者环境浮躁之类有什么好或者不好. 因为技术, 最后都要放下的.
不知道大家有没有装电脑的经历. 回想当年中学, 当红CPU, 内存, 硬盘, 显卡的型号,参数,大致价格都可以背下来. 怎么装系统, 怎么备份系统, 怎么快速还原, 怎么做细节上的安装优化, 都是要多套方案. 随身的启动软盘, 上面的工具随时保持更新. 但是到了后来, 都是到了要买电脑的时候, 才去往上看一圈, 其实也八九不离十.
我感受到的技术要放下, 就是一样的道理. 虽说跟不上新名词, 新技术, 但是对于新东西, 思考方法已经和以前大不同了. 以前想到的就是怎么做一个例子程序, 研究不同的使用技巧, 关心谁有多了解了一些内幕技术, 纠结于各种评论和技术比较. 但是现在, 想到的是这个技术解决了什么问题, 和以往技术比有什么优势, 局限又在什么地方, 是否适合自己手头的工作. 了解清楚后, 就没有兴趣再深入了. 等到有一天, 遇上一个具体的问题, 感觉现在应该有对应的解决方案了吧, 然后再回忆一下, 去网上找一圈, 然后再开始深入学习. 后来发现, 原来技术都大同小异, 只要不是科学问题, 工程师的技术都是可以随意拿起, 再随意放下的.
凡是能从书本上学到的技术, 我都放下了. 你呢?