标签归档:程序员

悲催的程序员悖论

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

题目中所指的程序员悖论的定义如下:

优秀的程序员常常会花大部分的时间去做他厌恶的工作,使用他同样厌恶的工具和技术。

这从某种意义上来说是个悖论。通常我们的直觉是,差劲的程序员才会把时间花在蹩脚的技术上,而优秀的程序员的时间是用在高新技术上的。没错吧?我在实践中发现了这个悖论,而直到后来我才明白原因。且听我一一道来。

94_110427094357_1

程序员鄙视什么样的工作?

对于那些有经验的程序员而言,简直就是明知故问,不过在这里我主要是给非编程人士解释一下。

如果一件事完全可以自动化完成,那么那些优秀的程序员通常是对此不屑一顾的。如果强迫程序员去做完全可以让机器(通常是计算机)就可以办到的事,他会气得想揍你一顿。程序员的愿望是能让机器来干完所有的活,是所有哦,哈哈。而只有那些机器办不到的事,程序员才会有兴趣去捣鼓一下。

这是任何一个身心健康的程序员的本能想法。

下面给一个需要自动化完成的事例。假如程序员在浏览代码文档的时候,需要修正791行的bug。文件总共有1000行,但是他的文件编辑器只能显示30行[......]

阅读全文>>

为什么程序员的开发项目总是半途而废?

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

很多程序员的项目常常半途而废。他们有那么多的好点子,但是很多都流于空想。几乎每一个软件开发者都有一个这样的文件夹,里面很多都是些还没完工的项目,而这些程序里有不少在它诞生初期真心是个超棒的点子。和这些人一样,我也有很多好主意,有的甚至就是现在有些企业在用的。比如正决定着在eBay上还是在Amazon上做电子商务获利、做一个以业务为基础的社交网络(水管业、电子行业、软件开发等)、比特币搜索引擎、开发一个CSS框架来取代Bootstrap、从Instagram上找出最有魅力的那些人、开发一个实时访问统计引擎,这样的例子举不胜举。几乎每一个项目我都着手去做了,但是没见到一个是完工了的。当我和我的同事朋友聊起这个话题的时候,他们也普遍反映,他们也是如此。很多很多的好点子都夭折在他们的文件夹里。为什么会这样?

因为成功所以缺乏动力

首先要谈谈我们的职业,拥有着让人眼红的高就业率。用事实说话,全国的失业率约为6.7%,而WEB开发员的失业率还不到1%。而且我们的工资水平也比平均值高。2012年软件开发员的平均年收[......]

阅读全文>>

对于程序员说的话,项目经理们是这样理解的

1024px-Staff_meeting

程序员:就目前的设计,我大概一周内就可以搞定基本框架。然后我们从头再优化整理、完善设计, 在接下来的一周提交一个稳定的版本。
项目经理的理解:整个项目只要两个礼拜就可以搞定。

程序员:是的,我可以写一些Web服务,通过这个服务,其他的开发人员能够与我们的系统进行交互。
项目经理的理解:他一人就可以构建出一个每分钟能够承受百万用户的负载均衡Web服务网站。

程序员:我们需要和下一版本负责人开个会,告诉他们除非有合适的构建部署服务器,我们无法按时完成项目。
项目经理的理解:没戏了!(泪奔中。。。)

程序员:我们需要培养每个程序员将所有项目都当作是自己的代码的认识,这样他们会更有责任心。
项目经理的理解:他愿意对公司所有软件项目负责并且愿意背黑锅。

程序员:如果你要用HTTP GET写一个网站方法,那么它只应该返回数据。如果你想要个能够写入数据的方法,那你要么用POST,要么用PUT。
项目经理的理解:(牢骚中…)这家伙真是个臭老九,非要分得这么清楚,一是一二是二的,好像不这样的话他心里就不舒服。(继续牢骚中…)
(注:原文说的是坚持做正确的事情就[......]

阅读全文>>

给想成为程序员的大学生的8个建议

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

我在Groupon的其中一项工作就是帮助公司招聘一些优秀的开发人员,因此我也可以算是Groupon开发团队的代言人,主要任务是发布一些招聘信息、解答疑问等。在上周,我对两个来咨询夏季实习工作的大学生进行了回复。

我认真回顾了在邮件中回复的内容,并总结了8点我认为有价值的建议,送给梦想成为程序员的大学生们:

1、如果你在大二的时候就开始接触外面的公司,那么你这种做法是值得表扬的。很多大学生都要等到毕业前两个月(甚至更晚)才去考虑找工作的问题。即便你不能获得实习的机会,那也要经常去面试接触一些企业,争取给别人留下好印象。

2、如果你对一种成熟的技术感兴趣,你可以先从书本上去了解相关的基础知识。要注意理论知识和实践练习相结合,书本上的知识都是通过精心编辑的,会教给你一整套系统的学习要点。但是也不能只看书,要动手做里面的练习。比如你要学Rails,可以阅读《Agile Web Development with Rails》,它会教你如何在一周内开发出一个完整的电子商务网站。有时候实践往往先于理解[......]

阅读全文>>

如何编写更棒的代码:11个核心要点

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码。最重要的是因为你编写的代码,将来会有很多人一次次地阅读。当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要。另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受。因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间。

那么,如何编写更棒的代码,下面是11条基本规则:

  1. 保持方法简短扼要
  2. 永远永远不要将同一个变量用于不同的目的
  3. 尽可能让变量和方法的名称能够描述要实现的功能
  4. 尽可能将变量定义在最靠近它们的地方
  5. 不要出现让人费解的数字
  6. 要像对待朋友一样对待你擅长的语言
  7. 不要逆常规而行
  8. 千万小心过早的优化代码
  9. 要常常重构经过测试的代码
  10. 不要沉溺于过度的设计技巧
  11. 随时随地学习新的知识

下面我们来对每一点详细展开介绍。

1、保持方法简短扼要

尽管很多人都遵循这条规则,但是它依然很重要。总的来说,编写的方法最好能在首屏完全显示[......]

阅读全文>>

我的编程致富之路

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作!

我很清楚的记得,那一年是1999年,我21岁,需要养家糊口,抚养我才3个月大的女儿。那时候我在一个提供给残障人士的岗位上工作,薪资是8.75美元一小时,同时我也在一所大学学习摄影技术。那个时候我真的是要被钱给逼疯了,在我勤勤恳恳工作6个月之后,我才终于加薪了,每个小时多了0.5美元。我意识到,这样下去完全不行。

我的父亲是一个程序员,他一直以来都鼓励我去学习编程,但是我把时间都贡献给了电脑游戏。唉,曾经有那么多的机会摆在我面前,我没有珍惜,现在真心是追悔莫及。

zhenxi

而现在我是家里的顶梁柱了,心里有了责任,才知道自己当时错的有多离谱,弄得现在我找不到一份好的工作。我想给我的宝贝女儿吃昂贵的有机食品,我想让我的家庭有一个属于自己的房子,但是我明白,如果我一直呆在现在这个像死胡同一样的工作上,我的这些想法就是痴人说梦。所以,我用我存下来的钱买了Power Mac G4和一个21寸的显示器,共计是1600美元,这在当时绝对是个不得了的开支,想我一年的学费也就3400美元而已。我的工作要求我工作到很[......]

阅读全文>>

为激励女工程师推出的编程盛宴

去年,高中生米歇尔·阮(Michelle Nguyen)差一点儿就放弃了成为一名工程师的希望。她当时是旧金山Mission高中的一名高三学生(这所学校并没有提供计算机科学类课程),她以为她必须得更聪明、更出色而且得是一名男性才能在计算机科学领域取得成功。

hs_code_camp_photos1

“我原本以为要成为一名工程师,首先我得是个男的,”她这样告诉我的时候,她正坐在她家附近田德隆区(Tenderloin)的Square办公室里,那时距离AP计算机科学测试只有几天时间了。

但阮仍然对融入工程师的世界,成为其中的一份子怀有小小的希望——因此她会阅读网上的出版物,让她 能够了解行家眼中的技术。她在去年秋天浏览TechCrunch时,刚巧读到一篇关于支付公司Square的高中生编程活动营(High School Code Camp)的文章,这个为期9个月的项目教会了来自当地旧金山高中的学生如何在Java程序中进行编程;并且给他们机会去参加5月的AP计算机科学考试。

阮连同其他7名女高中生一起申请并参加了该课程,阮毕业后被加州大学圣克鲁兹分校录取,学习计算机科学。

“我知道我必须要在[高中]学校所[......]

阅读全文>>

如何成为一个设计师和程序员混合型人才

优秀的设计师和程序员统治着网络–毕竟是他们创建的网站。而那些创建最好玩和最有用的网站的人,往往都是两种技能兼而有之,他们可以将两种完全不同的视觉语言和技术语言运用自如。

会设计的程序员和会编程的设计师是最抢手的,尤其在创业公司中。能够掌控所有的环节能让你的产品快速高效的从概念变成产品–这这是很多年轻的公司尤其需要的。这些综合型人才在获得一些经验后也能成为优秀的产品经理。

所以,如果你是一个除了写代码之外还想有作为的黑客,或者如果你是一个想要有更多开发的设计师,你如何能从仅是一个领域的专家变成一个电子领域的“瑞士军刀”呢?

下面有一些步骤能帮你起步,还有一些走在你前面的人留下的140字的小建议。如果你已经在你的职业中在技术和设计方面达到了某种平衡,我们也欢迎你的留言。

b67873a0

改进技术或学习新技能

成为一个程序员/设计师最困难的部分就是将你现在的技术和完全一新的技术知识结合起来。坏消息是这需要很多时间和努力;可能需要几年才能说你在两个领域中都做得不错了。

好消息是有很多免费的信息能够帮你完成你的目标。对于你想学习的每种技能,从编程语言到网页设计各个方面[......]

阅读全文>>

程序员的十大无奈

1、有人曾说,做程序员的人,都是疯子,做长了往往入戏太深,成天与代码打交道,话都很少说,所以评论程序员们都是以后连妞都泡不到的人,我听后,我可以这样说,泡妞好比一个方法,他人是学习方法,而程序员呢,是能制造方法。

2、做程序员的女朋友幸福不?这个问题记得以前有人问过我女朋友,我当时当场回答那人,我说:“做程序员的女朋友,不一定幸福,而做我的女朋友呢?绝对幸福”所以说呢,事在人为。

3、程序员的生活单调不单调?对于生活,我无法用单调这个词来形容,因为每个人都有自己喜欢的生活,可能我呢,喜欢看书,研究程序,听歌,爬山,但其他人不一定。到底什么样的生活不单调呢?我们说不清楚,今天平淡,明天激情,后天浪漫,这个我相信很容易做到,但一年 365 天,有那么多花样供我们娱乐吗?所以呢,人还是坚持在一块领域比较好!

4、程序员都不帅?做程序员呢,长期与电脑打交道,天天饱受辐射的摧残,很多人就这么认为,怪了,难道上帝创造人类的时候,总给懂得用脑的人一个丑陋的外表?我想不是吧,每个人的魅力都因不同角色而得到不同的结论。俗话说得好:萝卜白菜各有所爱!

5、做程序员累不累?累,真的很[......]

阅读全文>>

如何不被程序员嫌弃——写给那些血气方刚的产品经理

最近有位刚做 PM(产品经理)的小伙跑来跟我控诉,说公司技术部的 RD 们(程序员)个个不给力。需求过了千百遍还是理解错,或者就是简单回一句“做不了”,表情如死灰。

这位 PM 血气方刚,张牙舞抓,脑子里总有一千万个新产品需求的想法扑腾着。他咄咄不停的抱怨 RD 们不配合,能力差,懒惰,没思考能力,没品位,顺带连抠脚味儿太大这种事也强烈谴责了。“擦,老子明天就去学编程!” 哎,我发现 PM 们都特喜欢说这句无比励志的话呢!

面对他,我的心突然惆怅起来。几年前的自己也差不多是这个模样,懵懂如白纸,但谁又知道这样的 PM,在很多 RD 的眼里就是个傻逼吧。身为一位女性 PM,我至今为止并肩合作过的 RD 团队超过 8 组共 200 多人(动荡曲折的职业生涯啊),受过的委屈流过的泪就不在这里赘述了,打算留着以后写小说。今天我只想浅谈一些自己总结的 PM 与 RD 相处之道,所谓人艰不拆,希望大家看完后能更理解彼此“都不容易”的立场。

PM 眼里的 RD 分成两种:能沟通的,和不能沟通的。后者占 90%。(呵呵)

如果你跟我一样,是个没有技术背景的 PM,估计你[......]

阅读全文>>