it-swarm.cn

新程序员如何打动软件工程师(老板)?

我正在做第一份编程工作。我的老板是一位非常聪明的软件工程师,与他相比,我觉得我提供的东西很少。问题是,他总是很忙,需要有人帮助他。我觉得自己不够出色,但我仍然想成功。我想成为一名优秀的程序员。

我能给他留下什么印象?

谢谢。

98
Pablo

我有没有告诉过你阿什顿?

阿什顿是你经典的玉米喂养的农场男孩。他的父母是嬉皮士,直到他的母亲在密歇根州的一个农村地区继承了15英亩的土地,他们才真正团结起来。一家人搬到那里去,买了几头奶山羊,并在向安娜堡农民市场的雅皮士卖有机山羊奶酪方面挣扎谋生。

从他十岁那年起,阿什顿每天早上4:00醒来,给那只该死的山羊挤牛奶,筋疲力尽。阿什顿(Ashton)喜欢上学,因为那意味着他没有像山羊大便一样工作。在整个高中期间,他一直在研究自己的屁股,希望能获得一所好的大学的奖学金成为他出农场的门票。他发现大学比农业生活容易得多,以至于他不明白为什么其他人都不会像他那样直率的A。他主修软件工程专业是因为他无法想象曾经需要工程师在凌晨4:00醒来。

Ashton确实是从学校毕业的,实际上对软件行业并不了解,所以他参加了招聘会,申请了三份工作,被三份工作都接受,然后选择了薪水最高的一份:每年疯狂的费用,例如32,000美元,工作在该州西南部的一家大型家具公司工作,该公司为全世界的公司制造了隔间农场。他再也不想再去农场了,所以他下定决心要给老板查理·谢尔曼(Charlie Sherman)留下好印象。

“这绝非易事,”他的小卧室小伙伴杰夫(Jeff)说。 “她在这里有点传奇。”

“你什么意思?”他问。

“好吧,你还记得几年前,什么时候对Y2K充满了骚动?”

阿什顿可能还太年轻。 “ Y2K?”

“您知道,没有人期望1960年代编写的所有旧计算机程序在2000年仍然可以运行,因此,它们一年中只能容纳两位数的空间。他们没有存储1999,而是存储了99。然后在2000年1月1日这一年结束时,计算机系统崩溃了,因为它们试图用两位数表示“ 100”。

“真?我以为那是神话,”阿什顿说。

杰夫说:“在世界上其他所有公司中,都没有发生任何事情。” “他们花费了数十亿美元来检查每一行代码。但是,在这里,它们当然是便宜的混蛋,因此他们无需进行任何测试。”

“一点也不?”

“ Zilch。零测试。娜达而且瞧瞧,当人们在1月2日交错投入工作时,没有一件事情奏效。他们无法打印生产时间表。他们甚至无法打开一半的装配线。而且没人知道他们应该做些什么工作。工厂真的停了下来。”

“你在开玩笑,”阿什顿说。

“我不拉你。工厂完全沉默。现在,查理,她那时还很新。她曾在Microsoft或NASA等公司工作过……没人能弄清楚为什么像她这样的人会在我们公司的小办公室里工作。但是她坐下来,开始编码。和编码。和编码。

“查理连续九天编码。九天不睡觉,不吃饭,有人甚至声称她从未去过洗手间。她从一个系统到另一个系统,并从字面上固定了所有这些。值得一看。天哪,那里有[〜#〜] cobol [〜#〜]系统需要修复。整个工厂都处于停滞状态,查理将人们送到安阿伯的大学图书馆,以查找旧的COBOL手册。流水线工人站着发抖,因为即使thermostats也有Y2K错误。查理喝着一杯咖啡,然后像个疯女人一样打字。”

“哇。她从来没有去洗手间?”

“好吧,那部分可能是夸张的little。但她确实确实连续24天工作了9天。无论如何,在1月11日,应该开始轮班的大约五分钟之前,她从小隔间里出来,去了行式打印机,按了一下按钮,就热闹起来!产生了生产进度表和团队进度表,一切都完美无缺,格式完美,使用了较小的字体,因此“ 2000”适合以前所说的“ 99”,她甚至编写了新的优先级优化系统,帮助他们赶上了9天的误工而又不会激怒太多的客户,所有的装配生产线都开始运转,就像没有任何错误一样,而且热量不断增加,而发票却以“ 2000”作为年份打印出来到“ 19100年”,那天之后,没有人发现一个bug。”

“哦,拜托!”阿什顿说。 “没有人编写没有错误的代码。”

“她做过。我亲眼看到了它。回来的第一天,他们没有打h就跑了两天的小卧室。”

阿什顿很傻。 “那是史诗般的。我怎么能做到这一点?”

杰夫说,“你不能,伙计,没有人可以。”回到他的计算机终端,在那儿,他继续进行在线火焰战争,讨论谁在战斗中获胜了,无论是Spock还是Batman,这场斗争已经持续了四个多月。

没有人放弃,阿什顿发誓他有一天会做一些传奇的事情。但事实是,再也没有Y2K了。在密歇根州的那个地方,没有人对良好的程序设计大吃一惊。实际上,程序员几乎没有什么可做的。阿什顿得到了一些愚蠢的小项目分配给他……有一次,他花了三个星期的时间来处理一个特定县的销售税是错误的,因为一些邮政编码跨越了两个不同的销售税区。有趣的是,它是在纽约州的一个人烟稀少的地方,没有人买过办公室隔间,他们在那里从来没有客户,所以他的代码永远不会运行。

曾经.

两年来,Ashton热情而激动地工作,并渴望有所作为并做一些很棒的事情,而他的同事们则上网冲浪,向他们的朋友发送即时消息,玩了几小时的纸牌游戏。

他的隔间同事Jeff仅负责一项:更新每周的Excel电子表格,以指示当周有多少人在工作中受伤。从来没有人。每周一次,Jeff打开电子表格,转到页面底部,输入日期和零,然后单击保存,就是这样。

Ashton甚至为Jeff编写了一个宏,该宏使该任务自动化。 Jeff不想被抓住,所以他拒绝安装它。在那之后他们再也没有说话了。真尴尬.

在隔间公司成立两周年的早晨,阿什顿意识到自己的事情后便开车去上班。

他编写的代码中没有一行运行过。

他在两年的工作中所做的一件事情都没有对世界产生任何影响。

在密歇根州的那个地方,他他妈的在24度旋转,那是灰色,又臭又臭,他的本田车很烂,他在城里没有任何朋友,他什么都没做。

当他沿着林肯大街行驶时,他看到左边的家具公司。公司校园前飘扬着三面旗帜:一面美国国旗,密歇根州的一面旗帜和一面带有公司徽标的白色和红色旗帜。他在转弯车道后面排成一排排等待左转的汽车。在高峰时段,总是需要四到五个交通信号灯周期才能转弯,因此阿什顿(Ashton)有足够的时间去记住他写的任何代码ever是否是ever任何人使用。

而且没有。然后他打退了眼泪。

而且他没有向左转,而是直行,几乎造成了事故,因为他忘记了左转灯并不意味着你可以直行。

然后他开车沿林肯大道(Lincoln Avenue)行驶,进入杰拉德·福特(Gerald Ford)高速公路,然后一直开车直到到达大急流城的机场为止,然后他将笨拙的老本田(Honda)留在了航站楼前,非常清楚它被拖走了,甚至没有关上车门,他就走到边境航空公司的柜台前,他在下一班飞往旧金山的航班上给自己买了票,那是在20分钟内要离开的,他得到了在飞机上,他永远离开密歇根州。

189
Joel Spolsky

还记得Aladdin中的场景,那里的Aladdin想要打动茉莉花,那个精灵告诉他他会更好地专注于做自己?这里的原理相同。

如果老板比你强得多,而你知道的话,他可能也知道。他不希望您有任何编程摇滚明星的壮举。由于这是您的第一份工作,他很可能雇用了您,因为他看到了成为您中优秀编码员的潜力。因此,如果您真的想打动他,learn。学习语言,学习您正在使用的系统,学习来龙去脉以及黑暗的角落。专注于学习正确的原则,按顺序依次学习,良好学习和快速学习。

记住,学习的一部分是复制他人已经拥有的知识。不要害怕向您的同事或在StackOverflow上提问,或在Google上研究事物。无论您做什么,都不要假装自己什么都不知道,以免显得愚蠢。任何优秀的开发人员都会很快注意到,这会让您在他们眼中显得更加愚蠢。谦虚仍然被工程师视为一种美德。

做好那件事,就会打动老板。

97
Mason Wheeler

两个词:可靠。

在您的职位上,您没有被聘为团队中最聪明的人。您因发挥潜力而被录用,因为有些任务需要适合您的技能水平才能完成。

证明您首先可以实现这种信任,并且随着对代码和公司的了解,找到超越他们对您的第一印象的方法。后者可能需要一段时间,但不要误以为自己是次等。

47
Joost Schuur

似乎永远以前,我在一个充满了令人惊叹和成就卓著的程序员的工作室里从事了一项了不起的工作。每个人都是摇滚明星,最初的Macintosh团队有几个人,那里几乎有一半的人都出版过书籍,这是一个很棒的地方。

所以我在那里度过的第一年试图打动每个人。我觉得我不得不做一些令人惊奇的事情,这驱使我在很短的时间内学到了比我想象的更多的东西。在第二年,我冷静了下来,对自己的所作所为更加自信,对自己的观点也更加直言不讳,当我环顾四周时,我对我们正在生产的实际产品越来越悲观。

那是该项目获得全部资金的最后一年。那些令人敬畏的工程师,我至今仍然仰望着他们,花了5年时间和数百万美元在一个又一个的框架下构建框架,一个用于在尚未真正交付的应用程序之上构建应用程序平台,最后是没有人能做的UI和工作流理解,甚至是建造它的人。

智能被高估了。作为“摇滚明星”被高估了。这是增加复杂性门槛的真正容易的借口。它使您认为,重新编写一个工作系统以使其更“干净”,而不是实施客户要求的下一件事情,这一点更为重要。

雅各布·卡普兰·莫斯(Jacob Kaplan Moss)曾经对我说过一个我不愿透露姓名的程序员的事,他说:“他太聪明了。他编写了这些非常聪明的复杂库,由于我不够聪明,所以无法使用。愚蠢的人应该编写库这样愚蠢的人就可以使用它们”。

“有成就的”工程师的程序员往往不屑一顾,那些写Ruby和JavaScript和其他“玩具”语言的人,这些人制作产品,然后他们就可以了。这些代码可能很难看。 ,其架构可能不会像您想要的那样纯净整洁,但是它们可真是天命之宝,而在这个行业中,这才是真正重要的。

如果我是您,我会放弃尝试成为这个摇滚明星,而专注于运输和制造产品。您不应该通过代码的聪明程度来判断您的贡献,而应该通过每天运行它并感到幸福的人来判断。

27
mikeal

编写清晰可靠的代码。

16
leed25d

敲他的门。询问他是否有他一直拖延的工作,您可能会处理。告诉他,如果他现在没有时间,请稍后将您开除。

15
SnoopDougieDoug

阅读克努斯

(推论:很多人拥有 Knuth,但没有人阅读 Knuth)

与我合作的所有真的好的程序员都有一些共同点:

(1)即使您没有have擅长于进行编程的数学,他们仍然是(而且他们喜欢)

(2)他们欣赏我会称之为“优雅”的品质-与简洁相混淆(!!!)

(3)他们擅长设计软件(即使我们没人能解释什么是好的设计)

另外,我个人认为以下特征很方便:

(一)享受解决难题

(b)编写可读代码

(c)良好的记忆力

(d)可以轻松地从表面上适应其他编程语言(广度)

(e)深入学习您的主要语言(例如Java认证,如果Java是您的环境(对于无知的批评者,他们从不这样做,但会放弃认证)由于Microsoft的认证真的很差(......)真的很糟糕...好处是not拥有一张纸,所以好处在于(研究))

(f)考虑到可以选择先做简单又容易的事情,然后继续前进,或者做一些超级复杂的事情,而这将需要数周/数月的时间,所以我就做简单的事情。我喜欢简单,因为它趋向于鲁棒性,而且在中步变化时它也更加灵活,并且与其他团队成员的交流也更容易

(g)如果您认为自己特别狡猾,请记录下污迹

有人(Djikstra?)说过,调试的难度是编码的两倍,因此,如果您编写的代码在能力极限内,则按定义不够聪明,无法调试它。

========

话虽如此,成为一名精明/更好的编码员并不等同于发展您的职业。

真正的职业发展只需要一种“秘密成分”,那就是人际交往能力。

如果您真的想进步事业,那么最好的办法就是戒烟,然后卖掉6-12个月的汽车。

13
Rick

我从事编码已有20多年了,目前有10位程序员与我合作。我必须说,给我印象深刻的是那些干得好,按时交付且质量高(错误少)的人。经常交流,显示激情都是重要因素。

多数民众赞成在那,我现在可以分享。 ;)

11
wsatp

好吧,我只想从福音中添加这句话:

“谁能得到很少的信任,谁也会得到很多的信任,而那些很少得到不诚实的人也将会得到很多不诚实的人。”

9
Jhonny D. Cano -Leftware-

作为程序员的老板,我可以告诉你没有什么比让我更高兴的当程序员修复了我懒得去修复的错误

因此,如果可以,请为他修复他的错误。

7
Lone Coder

正如史蒂文所说,梅森是对的-专注于自己的游戏。要记住的是,老板只是希望您做好自己的工作。他可能实际上喜欢他比你更好-如果他不喜欢,他可能最终会感到不安全(老板是人!)。现在,您处于学习他的经验的理想位置-不要浪费时间与他竞争,而应该向他咨询有关事情的建议。如果您曾经读过《 48条幂律》,那么关键之一就是“永不超越大师”。

6
Stuart Golodetz

解决魔方。老板会知道您喜欢挑战性难题,并且会给您艰巨的任务。

6
Manoj R

如果您想给老板留下印象,请诚实。在您的每周1-1中,问他对您而言最重要的是什么,然后去做。尝试了解他认为您的角色,并尽最大努力去实现它。他可能需要您执行某些任务,以便他可以专注于自己正在做的事情。如果您努力去做他正在做的事情,那么您可能做不到自己的任务。在团队中找到您的位置,然后在Excel上找到,然后扩大规模。告诉他你想帮忙。

6
akf

@梅森是正确的

  • 学习
  • 每隔一定的时间间隔问一些相关问题(例如每天两次,而不是每5分钟一次)
  • 放松自己
5
Steven A. Lowe

在我看来,除了现有的技术技能之外,绿色程序员可以带给他的最大财富是主动性和热情。如果您向老板表明自己对学习新事物充满热情,对学习公司,代码库,工具和同事的态度充满热情,则表明您对自己的工作充满热情,那会给人留下深刻的印象。除非您正在为一个糟糕的经理工作,否则无论如何您都想要。

我还建议将some放在“软技能”上。证明您不是just在任何形式的人际交往中都没有用的怪胎。在销售,市场营销,支持,业务发展,项目管理等方面与人们交朋友。表明您是一个很好的沟通者,并且是可以与他人一起完成工作的人。

5
mindcrime

如果您有这样做的自由:与新的合作伙伴签发赠款,从外部引入一些赠款或与他人建立具有商业价值的合作,这些新伙伴将您视为合格的程序员或至少有价值的员工。

3
knb

不要去打动别人或老板。只是讲话给所有人都没有留下深刻的印象。专注于运输代码。确保您参与了将由人们使用的项目或应用程序。生产中使用的代码越多,相关性就越高。您与人们的关系越密切,他们就会越依赖您。休息全是魔术表演。

3
user9631

努力工作。尽一切所能,学到一切。您很幸运能在一个比您了解更多的人的陪伴下工作,一直努力直到追上来。

除了努力工作,并成功完成您现在所从事的工作外,我还想提供一些建议,这可能是对您不问的问题的解答。 (当我获得第一份软件工作时,甚至还没有意识到)。

互联网是由像您这样的人建立的。像您这样的人可以在互联网上赚钱。

找到您感兴趣的东西。建立它。卖掉做你自己的老板。

  • 打开 http://news.ycombinator.com 并开始阅读文章。您将看到来自像您这样的人的无休止的故事浪潮,他们有一个主意,建立了一个网站,并设法赚了一两美元。令人鼓舞和大开眼界的是,有一个人通过将宾果卡生成器卖给老师而赚取了可笑的高薪……另一个人以数百万美元的价格将网站卖给了Google。还有很多其他有趣的技术东西。

  • “富爸爸,穷爸爸”在一些地方他得到了很好的建议。

  • 在“四小时工作周”中,这与一粒盐相提并论,但他确实有一些有趣的方式来看待工作和生活。

继续向您所处的家伙学习。在“您的第一份真正的工作”中有很多东西要学习,我什至无法开始。从长远来看(三,五,十,二十年),如果您学会了如何自己赚钱,您将不必担心给别人留下深刻的印象。

2
Alex C

您很难通过打动别人来打动他们。只要您尝试打动别人,而他们似乎并没有留下深刻的印象,您的沮丧感就会加剧。

以一种让自己感到自豪的方式来做您的工作。不用担心任何人的想法。能让你快乐的唯一的人就是你。

2
Kristopher Johnson

我喜欢答案中张贴的故事,但比可靠的答案有趣。

每个人都像您一样是正常的:努力做到更好,这是人类。但是,可怕的事实是,您将是最好的机会。

关于我自己,我一直担心自己会感到谦卑,因为我只是讨厌那些关于谁是对,谁不是的幼稚斗争,这就是为什么。

只要您不是最优秀的人之一,您就最好努力工作,以获取更多的经验,将您所知道和做的事与最佳程序员所知道和做的事进行比较。

您可以说我将自己与最好的程序员进行了比较,但这只是一半:-我最好将自己与最好的程序员进行比较,因为我知道自己与他们相比是荒谬的,所以这使得比较愚蠢和无用的原则成为了现实。 -我不是考虑他们的名声,而是考虑他们取得的名望,因为实际上,当您知道诸如业务运作之类的真实事实时,大多数天才神话就消失了。他们所做的出色工作并不能改变这一事实,但是请记住,如果您考虑工作条件,则很难评估经验。 -最后,该过程避免了真正困扰我的竞争过程,并帮助我专注于重要的事情:通过实践学习,而且借助良好的好奇心引擎学习。

您可以佩服所有想要的人,以为他比您遇到的所有其他员工或其他程序员都要好,但是您必须记住,世界辽阔,与其他人相比,您佩服的人实际上相当普通那里有经验丰富的人,所以一旦给他留下深刻印象,您也许会感觉更好,但是与比他有更好经验的其他人相比,您会感到相同,所以这一切都将一事无成。

退出这个小游戏,尝试找到您可能听说过的更多有趣的主题,因为您正在谈论的这位工程师肯定忙于为您所想不到的出色工作。

1
jokoon

我必须同意这里的其他观点,因为您很可能无法实现目标-因为您专注于错误的问题,或者至少您的关注点太狭窄。

您想成为一名优秀的程序员-一位软件工程师的主观意见是否赋予您这种头衔和能力(乔尔除外)?如果您只专注于给老板留下深刻的印象,那么您就不会专注于工作或提高技能,也不会专注于成为一名优秀程序员的目标。您试图获得尊重而不是赢得尊重。

让我们以最坏的情况为例(因为程序员喜欢这样做)-您的老板绝对无缘无故地恨您(不管您是第一天戴上爱国者的帽子)。他只是永远不会对你有好感。如果您专注于完成分配的任务,高效,优雅地解决问题以及进一步提高技术技能-您将提高自己-最终您将成为赢家-与老板的想法无关。

Ashton的工作之所以失败,并不是因为他的代码没有被使用,而是因为该工作除了为Maslow的体系结构提供安全性之外,没有给他带来任何实际的好处。他在学习新技能吗?否。他的工作能让他发挥创造力吗?不,这赢得了他的尊重吗?没有。

由于这是您的第一职位,因此默认情况下它将为您提供大多数这些属性。您将拥有专业的编程经验,将会面临技术和非技术方面的新挑战。但是有时候您会超出职位,或者职位超过您,并且您需要不断提高自己,以免措手不及。

还有一件事,如果阿什顿仅根据使用他的密码的人数来衡量他的自我价值,那么我建议他加入一个常客俱乐部。生命中唯一持久的幸福就是我们为自己创造的幸福。严格按照别人对我们的看法生活,会产生悲剧性和无助的人类。

1
Watson