C语言卓尔不群:我喜欢和讨厌的十件事 最近有个家伙抱怨道“为什么我还要再用C?”-虽然我不同意他的说法,但至少他随口提到如果你“在一台拇指大小的电脑”上编程,或者为一门语言写引导程序,那么可以用C语言。要我说,写设备驱动,或者特定平台的内核,不管怎么说都可以使用C。
几年之前,我用C语言写下了我的第一个网络程序,但我并不推荐这么做。现在,我只用P打头的,尤其是P-y打头的语言写网络程序(译者注:绕什么圈子,不就是Python嘛…)。但在当时,我刚从DOS和TSRs的世界中出来,在那儿用上10KB的RAM我都会觉得大得惊人。
现在我是一名Web开发者,但是仅限于晚上。白天我为嵌入式微处理器编写固件,因此,C依旧是我所选择的语言。我所说的微处理器是那种嵌入烤面包 机,或者其他类似设备中的处理器,只有大概64KB的代码空间以及2KB的RAM。因此,可供选择的语言基本上就只有汇编和C了。(也可以是Forth, 不过那是另外的故事。)
然后,我渐渐发现越是多用C,就越不觉得它讨厌了。因此我就想着要给这个世界最常用的系统级程序语言写一些颂词。
以下分别是关于C语言我喜欢五件事和讨厌的五件事。请随意在底下的评论栏里加上你们自己喜欢或讨厌的事情。
理想和现实之间不是一条直线
我们在很小的时候就知道:两点之间,直线最短。然而在理想与现实之间,却往往不是一条直线。这种时候,有的人绕道而行,有的人怨天尤人,有的人选择回头。不同的选择便产生了不同的人生。
年轻人,面对生活的重压,面对自己曾经的理想,应该何去何从呢?如果我们把现实当做起点,把理想当做重点,那么在这之间的过程中,总会遇到许许多多的艰难困苦。在追求理想的过程中,没有人不受伤,如果不能以一种平和的心态来对待,那么你的理想将得不到成为现实的机会。
所以,什么样的心态成就什么样的人生。现实和理想之间原本就不是一条直线,只有经历了磨难,才能踏上成功的巅峰。千万不要让心态阻碍理想的实现,使我们成为一个失败者。在追求理想的道路上,无论遭遇什么,都要抱着积极的心态,不能让沮丧取代信心。
谁说码农在吃青春饭:编程能力与编程年龄 程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希望能像《21天速成C++》那样速成,好多时候超级有想和他们争论的冲动,但后来想想算了,因为你无法帮助那些只想呆在井底思维封闭而且想走捷径速成的人。
论文
首先,我们先来看一篇论文《Is Programming Knowledge Related to Age?》 (PDF链接),这篇论文是两个北卡罗纳州立大学计算机科学系的两个人Patrick Morrison 和 Emerson Murphy-Hill 对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow.com上的数据是公开的,任 何人都可以用来分析和统计,所以这篇论文的真实性是有的)
数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁)
我是怎么拿到投资的 我是纯技术背景出身,从写代码入行(必然是这样,否则怎么会在博客园写文章呢?)。不是高富帅,朋友圈子小(放眼一看全是写代码出身),投资人一个都不认识,之前也没有创业经验。所以我将要说出来的经验,也只能针对跟我类似的人群。大家请对号入座。
创 业刚开始的那两个月,对如何拿到投资一点概念都没有。买了很多书,问了很多人,查了无数过来人写的资料,但还是模糊一片。只能尝试着把商业计划书写出来, 投递到网上的天使投资平台。结果可以预见,石沉大海。对此我曾经不太理解,明明挺有前途的想法,为什么一点反馈都没有?难道方向真的不对?
后 来,直到我自己去旁听了一次创业大赛才明白其中的缘由。大赛当天,我们大清早就来到会场,主持人话也不多,直接就让项目负责人上去讲PPT了。每个项目 15分钟。刚开始我听得津津有味,乐在其中,可是到了下午就撑不住了,非常疲劳。除非真的是非常新颖和一看就知道能火的项目,其他都觉得一般般。我只是持 续了一天就这样了。要知道,作为一个投资人,几乎天天都是这种强度。
那我的项目投过去石沉大海还真的一点都不奇怪。
微软宣布废除员工排名考核 员工排名—曾经被很多现在和以前的微软员工认为是一项对公司产生严重损害,严重影响士气的制度,现在被废弃了。
“没有更多的曲线, ”布鲁梅尔在她的电子邮件中说,并且“将不会再预先确定目标”。
虽然其他公司,包括亚马逊,Facebook和雅虎也有类似的员工排名制度,来淘汰他们认为 “表现差”的员工。但似乎只有微软的制度受到了强烈的批评。
2012年“名利场”的封面为“微软失落的十年”,强烈批评了微软CEO史蒂夫•鲍尔默(Steve Ballmer)的排名制度,团队主管需要按一定百分比给员工打分:表现最佳,表现良好,一般和较差。
布鲁梅尔在邮件中说:取消排名的决定是公司的“一个微软”的经营理念和战略的一部分,在以后的绩效考核中会更多地考虑团队精神和协作。
员工排序(Stack Ranking):残忍的员工绩效管理方式
员工排序是作者在微软工作期间,微软所采用的员工绩效管理方式。员工排序会把员工与其他员工进行比较。也就是说,即便是所有员工在一个团队中均表现的极为优异,也仅仅只能有若干的员工获得优秀评级。员工排序直接决定了员工的薪酬、奖金和股权奖励。
浅谈当下网页设计趋势
技术的革新带动了设计行业的的迅猛发展,这使得设计师和开发者有了更广阔的的探索天地。而网页设计也越发 不再那么循规蹈矩,许多团队和公司都做了很多思考和创意。所以在我们适应着现代设计潮流的同时,不妨也来看看现阶段网页设计大致的趋势和风格吧。我不敢大 言不惭的说这就是当下网页设计的趋势,这只是本人对当下网页设计做出的一些小总结。希望这样的归类总结能给你带来更多的思路和想法。
1.响应式网页设计(Responsive Web Design)
心情随笔:半夜无眠,写于自己共勉 眨眼之间,已经工作了8年 多了,第一个十年马上就要来临了。刚开始的时候其实真的感觉什么也不会,总是怕别人不要自 己了,工作很努力,总想着好好表现,生病都不敢休假,每天加班到很晚。那时候刚刚从学校出来,基本上是不会什么的,而且一开始做的又是嵌入式编程,还是网 络电话方面的东西,虽然做的不是很深入,但是起码也是算是一个听高深的行业里面的东西,还是觉得很有兴趣,很有奔头。做了两年,又完全转行去做了另外的一 样东西,虽然说技术都是通用的,这个其实没有什么,但是还是觉得有点浪费了,如果一直做下去,会是怎么样呢,可能不会有什么的不同,可能完全是不一样的, 谁知道呢,只是一个可能而已。
之后写后台通讯的C程序,在tomcat上用Java写网页,在oracle上调SQL,甚至写shell 脚本,写这个写那个,公司要什么我就做什么,变成了完完全全的打杂的那个,刚开始其实还是挺充实的,觉得学到不少的东西。再后来,开始带几个人,虽然只是 3、4个 人的小团队,但总可以算是有了一个属于自己带的小团队了,又想着可以锻炼一下自己带人的能 力,想着自己去设计一点东西,带几个人一起做出来,这种感觉真是好。再后来,可以去跟客户谈谈,可以跟其他部门打交道,觉得更加的好了,开始学习管理层的 经验了。感觉自己真是越来越牛了。
创业总结:创业公司怎样留人 创业阶段的公司,人是第一位的,事儿是人做的、资源在人手里,团队决定了项目的路能走多远,投资人最看重的也是团队。创业公司没钱没名气,招人、留 人都很难,团队人员流失,不仅耽误项目进度,也影响士气,招人和留人是创业团队最头疼的问题之一,根据我创业时验证的结果总结已下几点经验:
1、价值观第一位。招人时就不要用钱来吸引人,为钱而来的也容易为钱而走, 创业有风险有低谷,短期不盈利很正常,但是为钱而来的遇到困难更可能退缩。我当时技术团队给的是低于业内的水平的保障生活的工资,4-5个全职合作伙伴和 20多个兼职运营团队都是没有工资的,大家相信我们在做的是一件有意义的事儿,至于价值回报,事儿做成了,钱只是附属品。这个状态下,大家一起做了1年多 到2年的时间。
2、跟大家说清楚,创业不是急功近利的事儿。
从计算机技术层面来分析美国阿波罗登月造假的可能性
从计算机设备层面来分析:1969年,阿波罗上面用的导航计算机主频2.048MHz,2048字的RAM,36864字的ROM,连我们现在用的计算器都不如。航天飞机上的飞控计算机处理速度只有0.4MIPS,很难相信这样的计算能力能够支承如此复杂的登月工程。并且当时数码相机并没有出来,月面白天可达到121°C,据图片看,相机是露在宇航服外而没有采用保温措施的。胶卷在66°C就会受热卷曲失效,怎么拍得了照片?
够用即可:简单之美(Worse Is Better) 要理解简单之美"Worse Is Better", 恐怕要比较长时间的积累与经验,这是Richard P. Gabriel 先生根据自己的亲身经历得出的著名论断。Gabiel在Lisp编程语言特别是Common Lisp上的著名专家。在1989年的一次Lucid走廊会谈中,他被一些Hackers问及为什么的时候,他开玩笑地说:“因为,嗯,更坏的就是更好的。” 在接下来的几年里,他发表了另外几篇文章,并阅读了很多书籍来验证自己的观点,这样"Worse Is Better"的设计理念逐渐成形。
坏点的更好,强调简单压倒一切,为了简单性,其他方便都可以做出牺牲,包含以下几点:
简单性:设计必须简单,这既是对实现的要求,也是对接口的要求。实现的简单要比接口的简单更加重要。简单是设计中需要第一重视的因素。
正确性:设计在任何值得注意的方面都要求正确。为了简单性,正确性可以做轻微的让步。