【转】程序员的五大陷阱

程序员的五大陷阱

引言

十九年了,作为一个老程序员,我study过各种编程语言,research过各种编程框架,use过各种编程工具,run过各种操作系统,startup过各种数据库,design过各种模式,test过各种unit,fork过各种线程,draw过各种UI,link过各种server。我每天晚上苦苦追寻技术的真谛,努力点亮程序员技能树,多年的学习下来,最大的感受是”坑,全TMD是坑!“。 
好吧,让我们文明一点来说,阻碍程序员成长的不仅仅是技术,还有那些最容易掉入的陷阱。

陷阱之一:有些技术就是垃圾

这应该是最大的一个坑,很多貌似高大上的技术,其实毫无价值,一开始就应该被扔进垃圾堆。其中最具代表的应该是Visual J++,这个怪胎一开始就是微软为了狙击Sun公司的Java而特意推出用来搅局的棍子。它的语法与Java类似,但是不支持跨平台的Java虚拟机,只能在Windows平台上跑。 
我总结了一下,不值得学习的技术包括以下几类: 
1. 技术路线明显错误的技术,例如Visual J++ 
2. 架构复杂,逻辑混乱,不值得深究的技术,例如最著名的MFC。很多人不愿意承认这一点,是因为怕别人嘲笑自己的智商,许多人也和我一样,曾经抱着《深入浅出MFC》苦苦研读,多年以后我认为研究MFC对我毫无帮助,那本书也许不错,但MFC实在是太丑陋了,MFC泥潭并非浪得虚名。 
3. 实用性不强,一堆傻博士用来混毕业文凭的所谓技术,例如UML(统一建模语言),OWL(网络本体语言),MDA(模型驱动架构)等等。 
4. 与自己的职业规划、技术路线毫无关系的技术。也许天才能够门门精通,我等普通人还是专心去学一个方向的技术为好。 
在这些技术上浪费精力,还不如去泡妞,好歹能够陶冶一下情操。

陷阱之二:总想去搭建空中楼阁

《Effective C++》是我最喜欢的技术书之一,其中最重要的一句话是:视C++为一个语言联邦,当年的我第一次看到此话,真如醍醐灌顶,大彻大悟。具体来说,C++起码包含四个次语言,即C,Object-Oriented C++,Template C++和STL。 
如果不了解这一点,就妄图精通C++,必定事倍功半。不学会一门技术的基础,就不可能真正理解这一门技术。这就好像是技能树中的基础技能不学会,就不能点亮高层的技能。 
我曾经也教过初学者Java、C++和VC++,其中最不适合初学者学习的语言(或者叫技能)就是Visual C++,因为它的联邦更大。它起码包括Windows SDK、MFC、VC开发环境和C++,其中C++包括四个次语言,MFC又是一个出名的泥潭,Windows SDK是基于C的,好多函数都是七八个参数,那是使用C来模拟面向对象留下的怪样子。因此Visual C++堪称初学者杀手。要打击一个初级程序员,就让他去学习Visual C++吧,他会放弃的。

陷阱之三:重复发明轮子

程序员应该明白一个道理,学习技术就是为了完成任务,而完成任务的过程就是”在一定的时间内,使用一定的资源,在保证一定的质量前提下,达到一定的效果“。时间、资源和质量都是限制条件,因此对于程序员来说,使用成熟的技术、易用的框架、便于维护的平台都是最优选择。 
很多程序员碰到问题的第一方案就是去埋头解决,明明有好用的UI框架,非要自己去写UI;明明有成熟的网络传输中间件,非要自己去写Socket,这种事情与重复发明轮子何异? 
记住,只有在两个条件下,重复发明轮子才是正确的。第一,你有时间和兴趣去知道轮子是怎么生产的;第二,你的公司就是做轮子的。 
以目前的基础趋势来看,学好用好一个成熟的技术框架,往往能够极大的提升程序员的身价。例如著名的Struts、spring、Hihernate三大框架;例如现在正火的jQuery;其实Android不也是一个Java的框架么。 
正如三国里说的,SSH、Jquery和Android,得一可安天下!何必去重复发明轮子呢?

陷阱之四:陷入细节

计算机技术汗牛充栋,要细细研读所花费的时间是难以估量的。为了提升自己,使自己早日达到独当一面的角色,必须有一整套的学习方法。 
第一,知道什么该学,什么不该学。又要提到MFC了,这玩意儿就是个泥潭,学它得不偿失。过去不该学,现在更不该学了。简单说来,很多专家的MOP观点是对的,即Money Oriented Programming,就是什么技术赚钱学什么。 
第二,知道如何去最快掌握一门技术的精髓。一门技术其实80%的内容是没什么用的,例如Android,对于精通Java、Linux、XML、Eclipse的人来说,把它重点的Intent、Activity、Service、Layout等内容学上一个多月,就可以上手干活了。 
第三,在实践中学习,还以Android编程为例,学上一年也不如自己开发一个app放到市场上来得快。 
第四,也是最重要的,不要经常陷入细节。在计算机领域,细节这个东西是无穷无尽的,要开发一个Android app,先研究研究Android框架,一个一个细节撸过去就得一年,再研究研究java编程,从java到java虚拟机,虚拟机到编译原理,从编译原理深入操作系统,从用户态到核心态,从字符串到二进制,从二进制到CPU,从内存到cache,cache到磁盘。 
因此,及时抽身,不要想弄懂一切,放弃一些细节,尽早上手才是王道。

陷阱之五:缺乏职业规划

一个人要想成功,必须在某个领域做到顶尖。对于程序员来说,最好的出路有两条,一是成为某个技术领域的顶尖专家,二是成为技术团队顶尖的领导人才。至于转行去搞行政、销售、HR,那是每个人都能做的。要走上这两条路,都必须及早规划,以及持之以恒。

后记

“世界上有很多东西不能通过学习得到,其中最重要的就是经历!” 
曾经有个哥们对我说,他放弃了苦苦追求了五年的女神,只因为他觉得已经看透了这个女人,放弃已没有什么遗憾。我说:”你连人家手都没拉过,嘴都没亲过,你根本没有经历过这个女人,你看透个毛。“ 
在各大招聘网站上,工作经验永远排在第一位,就是因为只有切切实实去经历一些事情,才能真正掌握做事的方法和重点,才能真正去”搞定“类似的事情。 
程序员的五大陷阱是我总结出来的,有些人可能嗤之以鼻,但是只要你掉进去过后,还是会回来和我一起唱这首Only you的。

转载于:https://www.cnblogs.com/cslunatic/p/6388824.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值