不久之前,我们的一个程序员疯了,而且疯的很有气势,他走进经理的办公室大喊大叫,说着一些奇怪的东西。如果我不是像了解自己一样了解他,我会以为他是嗑了药。但实际上他并不是短暂的精神失常。
一年前的昨天,我发布了我的第一个手机应用。它是一个很小的业余项目,而且附带着一个明确的愿望:把房租的钱挣回来。截止到昨天,刨去苹果公司的分成,它给我带来的纯收入是73034美元。这虽然算不上是一个“非常成功”的业绩,但我仍然非常的高兴这样的结果,自豪于它目前这样不错的表现。
在大卫的这篇博客中,他说员工在下班后做业余项目对老板不利,对公司有害。这种思想太落后了。首先,一个人在业余时间应该做什么、不应该做什么,别人不该说三道四,这是一种极大的侮辱,这是对他人无礼的个人评判。这是一种极其短视的行为。
我们都知道,人类的大脑在做购物决定时并不是很理性的,情绪因素通常在其中扮演很大的角色,这几乎跟事实、数字、逻辑等理性因素同等重要。
如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。
又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。
在我目前的生活阶段——没有孩子,没有贷款,上次创业留下来一些不多的收入,两位一流技术的技术合伙人,一个正在开发的创意模型,一个盈利计划,和足够的积攒下来能够支撑一个小公司的积蓄。
给公司打工,你永远都是工资太低。你应聘工作时他们永远都是低估你。他会想办法让你的讨价还价过程痛苦不堪。这是一种专门设计的社会体系,永远让你得到的报酬低得刚好不超过你的忍受极限。
最近我遇到了一位以前公司的同事。他提到了数年前我在那个公司曾经开发过的项目。他说这个项目现在已经变成了“职业杀手”。基本上,任何接触过这个“职业杀手”项目的人最终都会离开这个公司。如果公司想让名下的程序员人数>0,唯一的办法就是花数月时间完全重构这个系统。
让我以一个免责声明来开始这篇文章:我绝对的认可懂得多种编程语言的价值,也认为“用正确的工具干活儿”是个好思想。但在编程工作中,人们对这个概念有个误解,我认为需要在这里指出一下。但请记住,对这个误解的诠释并不是来否定这个思想的。
想进入编程这一行业的人开始时总是试图先学会一门语言。这种方法是低效的。找一个项目或一个小功能软件去做,针对性的学习那些需要完成这个任务必须具备的知识技能。这种学法让你有了一个学习的环境和目标,逼迫你去具有创造力。
现在很多软件公司采用的编码规范基本是PEP8,但每行80个字符的限制除外。GitHub上的项目,大多数都遵循PEP8规范(这一点似乎达到了高度的统一),但遵守80个字符限制的很少。在一些有明确规定的规范标准中,这个限制可能会增加(100或120),甚至完全删除。
美国太空总署喷气推进实验室提供的一些编码规范指导,当然,他们是开发火箭和宇宙飞船的,所以,他们的指导并不是对所有人都合适,但还是非常有趣的。特别要提到,他们正在起草一个针对Java的编码规范。