关闭

《一个程序员的奋斗史》书摘(二)

标签: 书摘
520人阅读 评论(0) 收藏 举报

(接上一篇 :))

31 其实无论是哪家的方案,哪家的产品,都会有电子干扰,关键是如何屏蔽这干扰。通用的做法是,将一些容易干扰到信号的元器件放在一处,然后再上面用一层金属屏蔽罩盖着,那么这些电磁干扰就无法散发出来,于是就影响不到GPS信号。不仅导航仪是这样的做法,就连我们日常生活所用的手机,到处也是屏蔽罩的身影。

32 传统的中医认为,世界上有六种邪气,叫风、寒、暑、湿、燥、火,这些邪气侵入人体,就导致了疾病,包括感冒。这两种东西本来是大自然的正常现象,叫六气,但是如果过分了,就会造成人体也相应地失调,病邪就侵入进来了。那么该怎么办呢?只要控制这六邪就可以。通过改变着六邪,使得身体正常运转了,那么自己就把外邪给清楚了。也正是如此,所以才有西医治标、中医治本的说法。(C++ 中医 C# 西医)

33 书中例子很简单,但段伏枥还是不可避免地遇到了一个难题:输入法需要用到COM技术!所谓COM,英文全名为Component Object Model,翻译为中文则是组件对象模型。它是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准可以在任意两个组件之间进行通信,而不用考虑其所处的操作系统是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。COM技术曾经盛行一时,但过于晦涩的方式,不就之后就被.NET取代。当然,这取代也是在一定限度之内的。

一如既往,遇到问题,问度娘,寻谷哥。

34 但段伏枥并没有打算看完这几章就动手去开始输入法,而是决定将这本书彻彻底底看完。因为段伏枥觉得,如果自己仅仅是为了输入法而去了解COM,虽然最后能够做出输入法,但这也是属于头疼医头脚疼医脚的做法;而如果全盘掌握了COM技术,然后再开始,那么则会更显游刃有余。无形中,段伏枥的做法和聪明的程序员不谋而合:不局限于局部,而是展望全局。如果每次工作,都只局限于解决具体工作问题,那对于程序员的成长毫无疑问是不利的;而如果能从全局的角度去掌握技术,不为工作而工作,这才是真正聪明的程序员。

35 不少程序员都在骂微软,说他们的.NET平台根本和跨平台毫不沾边。但其实,微软的.NET平台是跨平台的,不过跨的是自己操作系统的平台。就以这Windows CE软件来说,如果用C++编译的程序,那么就必须要分为ARM、X86或MIPS架构等等,一个程序就必须要编译多份。如果是使用C#呢,那么只需要编译一次,只要目标系统有.Net Compact Framework这个虚拟机的话,就能够正常运行。

为什么用C#和C++会有这么大的差别?因为C++编译出来的是二进制文件,直接和CPU的指令集相关的;而C#编译出的是与计算机操作系统和硬件环境无关的中间爱你语言代码文件MSIL。虽然MSIL文件也有exe后缀名,双击的时候也能够运行,但它本质是.Net Framework 调用“Just-In-Time”(即时)编译器,结合具体的操作系统和硬件环境,将MSIL编译成最终的可执行代码运行的。

虽然现阶段嵌入式的CPU性能不咋地,在上面跑.NET虚拟机确实有点力不从心,但技术的发展史无穷尽的,谁能预料到明天是个什么样的情形呢?微软显然也是深谙此道,虽然现阶段用不上,但还是要将这玩意给整出来,否则等一切都完备了,才开始准备上马,那绝对是大大落后与竞争对手几个时代了。

36 段伏枥还是经验有所欠缺,像这样的事情是很普遍的。一个芯片公司如果市场很大的话,那么每个大区域都会有相应代理商或分公司负责相应的事务,互相之间是不能窜货的。所谓的窜货,也就是说这些货只能在特定的区域里面销售,如果发送到别的区域,那么便是窜货。这个术语在饮料行业出现的频率是最高的,因为经常出现在某个区域的进货价要比其他区域的更便宜,一些商人便喜欢在那个区域的代理拿货,然后到别的区域进行售卖。如果平时自己观察,会发现某些饮料在瓶身上经常能看到类似的标识,“本饮料只在##地区销售”,或是“本中奖活动只在##地区进行”,说的便是这么一回事。

只是在电子行业,特别是芯片方面这个词用得不多,因为像芯片的特定区域都比较大,基本上是整个大陆区域。

37 面试官问的问题,肯定是自己很有把握的,初出茅庐的菜鸟再怎么胡扯,也不可能糊弄过去;换个角度来讲,要是真的能糊弄过去,那么这公司也没必要去了——能被一个菜鸟蒙混过去的公司,技术水平又能高到哪里去呢?所以,试图蒙混过关的面试方式,除了展示自己无知以外,别无是处。

38 要让上级知道自己在干什么,即使在大公司,也是如此。最常见的是,下属在发送邮件的时候,基本上都会抄送一份给自己的领导。领导可能不看,但下属不能不抄。抄送了,领导不看,那是领导的事,出了问题也有领导来背;但如果不抄送,不出问题则以已,要是出了问题,毫无疑问所有的责任只能由下属承担。这遍是大公司秘而不宣的潜规则。如果有人不遵守这潜规则,就有可能被中伤,甚至因此卷铺盖走人。但从另一个方面来说,这潜规则未必尽是坏事,也有其有益的一面。对于下属来说,最怕的并不是忙的找不到北,而是领导并不知道自己在忙。如果领导一直觉得下属很闲,无所事事,那么评绩效啊之类,会有什么好评吗?那么又如何让领导知道自己确实在做事呢?所以,聪明的员工在做事的时候,没机会也要找机会将邮件抄送给领导,一来是便于免责,二来是让领导知道自己是真的在做事。

39 段伏枥遇到的问题,是很多中层干部都会遇到的难题:上级领导宣布的决定,要不要不加修饰去执行?严格按照领导的要求,不折扣地要求下属,很容易会让下属对自己有意见;打折执行的时候 ,势必会加剧上级对自己的不信任。两难的情形,应该如何才是最恰当的?盲目选择必然会导致不良结果,所以需要分情形来讨论。如果掌握了核心技术,上级对自己有所忌惮,且上级的命令又实在很无理的话,那么不妨站在下属一边,笼络一下人心;如果自己刚刚上任,立足不稳,随时会被上级给撤换,那么只能选择牺牲下属,满足上级的需求。

40 其实原始的地图数据都是不正确的,需要在写好引擎之后,将某部分程序交给有关部门验证,由他们添加相应的偏移量之后才能正确显示路标。只不过后来想想,国家这么做也是有道理的。毕竟地图是涉及到国家安全的,如果毫无保留,那么被别有用心的国家掌握了则后果不堪设想。可数据也总不能藏着掖着啊,生活还是需要啊,估计国家正是因此才增加了偏移量这道锁。而这道锁,并不比要求达到牢不可破,只要能给别有用心者阻碍,不能那么轻易获得真正的数据就算完成了使命。

41 从这事上,段伏枥倒是知道了一个真理:言多必失。以后即使在陌生的环境,看来也不能大放厥词,因为说不定现在没有任何交集的陌生人,很可能哪天就成了自己的上司或潜在的生意伙伴。如果之前因为不当言论给对方留下了不好的第一印象,很难想象以后的道路上还能够一帆风顺没有磕磕绊绊。言行,果然要慎之又慎。

42 三个臭皮匠顶个诸葛亮,这句谚语在软件业几乎不成立。一名牛人一周能解决的难题,十名菜鸟一个月也找不到头绪。软件的开发进度往往并不会随着人员的增加而加快,这便是软件行业区别于其他行业而引申出来的银弹理论。

43 一定要坚持下来,才能明白经验意味着什么。

44 对于一名程序员来说,能否达到牛人的境界,各种素质都是需要的,其中一点就是主观能动性。所谓的主观能动性,就是自己会主动去学习或尝试新的东西;而不是像算盘珠子一样,不拨不会动,只会被动完成领导交代的任务。要学会给自己留一点时间和精力还探索新的知识,否则只能停留在代码民工的水平。很多大牛并不是天生就厉害,也是一步一步从菜鸟开始的。

45 加薪是职场一个永恒不变的话题,只不过这件事在大公司和小公司却有截然不同的区别。大公司有一套成熟的规章制度,基本上每年都会按部就班分薪水。一般来说,很少会出现今年加很多,明年加很少的这种波动。但也正是如此,每年的不温不火,让员工一眼就能看到头,知道几年之后的薪水回事一种什么样的水准,以致于心生倦怠,甚至最终跳槽。

小公司则大为不同,对于加薪没有什么明文规定,如果员工不提,很少有公司会主动加薪。如果想要加薪,那么员工就必须自己和老板去谈。可是以程序员那不善交流的性格,以及那种觉得只要自己做的好老板一定能看见并且给加薪的纯洁无暇的心态,几乎没有多少人会敲老板的门。于是,经常会有这么一种情况,员工进来时薪水是多少,等过了几年后离职薪水还是那么多。小公司的入职薪水普遍比较高,就在于以后上涨的机会太小。经过多年以后,缓慢上涨的大公司薪水未必就比小公司小。

在小公司想提加薪要求,关键是要善于把握时机。如果是在业务不怎么忙的时候,特别是现阶段自己没什么重要项目的时候,提加薪几乎肯定是被驳回的命运。

在小公司能够加薪,取决于员工对公司的重要程度。如果员工掌握了核心技术,在项目中占有主导地位,提加薪的诉求几乎无往而不利。看起来这是对老板的要挟,可能显得很不厚道;但从另外一个角度来说,员工给公司创造了那么多利润,老板的银行账户的金额翻了又翻,却依然让员工维持现有的薪金水准,究竟是谁更不厚道?

46 环境是一方面,但主要还是人为。良好的氛围自然容易出高手,但糟糕的环境未必只能出菜鸟。与其去抱怨环境,还不如转个角度,看看如何利用者环境。只要有心,再糟糕的环境,也能找出一两个闪光点。要好好利用环境,让自己成长。

47 看来,以后离职的话,一定要将所有的手续都办完。因为在公司的话,有些事情还能掌控;如果离开了,那么是什么情况,都是由别人一张嘴说了算。如果公司里面有人还好,还能透露点消息;要是没人的话,就只能听天由命咯!

48 自己曾经还是大菜鸟的时候,不也是这样吗?找资料,看到一些内容和自己的理解不同,不也是直接丢下不礼貌的言论吗?大智若愚,很多难题的解法可能只需要很简单的方式。但很多人却觉得,这种难题不可能会有这么简单的做法,连动手尝试都不愿意,直接出言否定。否定是可以的,但也不能简简单单留下诸如“垃圾”之类的言语啊,好歹也要给出令人信服的理由吧?可实际上,留下这样言语的大多数是菜鸟,他们也仅仅感觉上觉得这样的做法不妥;但为什么不妥,他们也说不上个所以然来。(而老鸟则会在否定后,给出一大堆理由用以支持观点。)

菜鸟和老鸟的区别,不仅在于技术上,也在于心态方面。菜鸟容易激动,习惯从主观上考虑问题,最喜欢现成的答案;而老鸟呢,则比较淡定,喜欢乐观地从不同角度分析问题,即使答案摆在眼前也要动手验证。正式由于这种截然不同的品质,有了完全不同的行为模式。

49 技术文章想要获得一片叫好声是不可能的,其中必然有很多反对的声音。因此写技术博客,心态非常重要。

50 用博客来分享技术,这是网络渗透到生活最好的一个实例。

51 永远不要为境遇而自怨自艾。

52 嵌入式开发的特性,注定了所学的知识不容易贬值。而准门槛过高,又注定每年的新鲜血液太少。

53 商场如战场,处处充满尔虞我诈,如果以一种大慈大悲的心态去经营,估计迟早会赔的血本无归。

54 其实段伏枥这招也是从网上看来的。话说有这么一个故事,某公司经常会泄密,公司的底价经常被竞争对手知晓,可却有苦于无法知道内鬼是谁。于是经理便想出了个主意,跟不同的业务员都说了不一样的价格,然后又通过多种手段从竞争对手得知他们获取的本公司价格,然后两相对比,最后揪出了内鬼。所以有时候听到了某些上层的机密,千万不要随处乱说,这不仅是关系到公司的机密,还有可能是上级设下的一个圈套。

55 以前在学习操作系统原理的时候,对于内存空间分布这些概念是懵懵懂懂,主要是操作系统已经将很多事情给大包大揽了,程序员根本就不用考虑那么多。举个简单的例子,程序是放在硬盘中的,点击运行的时候它会在哪里呢?CPU是在硬盘中获取执行代码,还是在内存中?这个简单的问题,很可能很多写了很多程序的老鸟也未必能答对,因为在实际中根本就不用考虑这些问题啊。

56 入门资料的选取

57 可对于程序员而言,有一句格言:凡是代码的问题都不是问题。这句话从另一个侧面说明了一件事,只要别人使用代码能做出来的东西,你就一定要能够做到。不懂?学呗!搞不清?动手做呗!

(End)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10006次
    • 积分:186
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档