我正在做第一份编程工作。我的老板是一位非常聪明的软件工程师,与他相比,我觉得我提供的东西很少。问题是,他总是很忙,需要有人帮助他。我觉得自己不够出色,但我仍然想成功。我想成为一名优秀的程序员。
我该怎么做才能打动他?
谢谢。
我正在做第一份编程工作。我的老板是一位非常聪明的软件工程师,与他相比,我觉得我提供的东西很少。问题是,他总是很忙,需要有人帮助他。我觉得自己不够出色,但我仍然想成功。我想成为一名优秀的程序员。
我该怎么做才能打动他?
谢谢。
Answers:
我有没有告诉过你阿什顿?
阿什顿是你经典的玉米喂养的农场男孩。他的父母是嬉皮士,直到他的母亲在密歇根州的一个农村地区继承了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手册。流水线工人站着发抖,因为即使是恒温器也有2000年错误。查理喝着一杯咖啡,然后像个疯女人一样打字。”
“哇。她从来没有去洗手间?”
“嗯,那部分可能有点有点夸张。但她确实确实连续24天工作了9天。无论如何,在1月11日,应该开始轮班的大约五分钟之前,她从隔间里出来,去了行式打印机,按了一下按钮,就热闹起来了!产生了生产进度表和团队进度表,一切都完美无缺,格式完美,使用了较小的字体,因此“ 2000”适合以前所说的“ 99”,她甚至编写了新的优先级优化系统,帮助他们赶上了9天的误工而又不会激怒太多的客户,所有的装配生产线都开始运转,就像没有任何错误一样,而且热量不断增加,而发票却以“ 2000”作为年份打印到“ 19100年”,那天之后,没有人发现一个bug。”
“哦,拜托!”阿什顿说。“没有人编写没有错误的代码。”
“她做过。我亲眼看到了它。回来的第一天,他们没有打two就跑了两天的小卧室。”
阿什顿很傻。“那是史诗般的。我怎么能做到这一点?”
“你不能,哥们,没有人可以,”杰夫说,回到他的计算机终端,在那里他继续进行在线火焰战争,讨论谁在战斗中胜出了,无论是Spock还是Batman,这场斗争已经持续了四个多月。
没有人放弃,阿什顿发誓他有一天会做一些传奇的事情。但事实是,再也没有Y2K了。在密歇根州的那个地方,没有人对良好的程序设计大吃一惊。实际上,程序员几乎没有什么可做的。阿什顿得到了一些愚蠢的小项目分配给他……有一次,他花了三个星期的时间来处理一个特定县的销售税是错误的案件,因为一些邮政编码跨越两个不同的销售税区。有趣的是,它是在纽约州的一个人烟稀少的地方,没有人买过办公室隔间,他们在那里从来没有客户,所以他的代码永远不会运行。
曾经
两年来,Ashton热情而激动地工作,并渴望有所作为并做一些很棒的事情,而他的同事们则上网冲浪,向他们的朋友发送即时消息,并玩了几小时的纸牌游戏。
他的隔间同事Jeff仅负责一项:更新每周的Excel电子表格,以指示当周有多少人在工作中受伤。从来没有人。每周一次,Jeff打开电子表格,转到页面底部,输入日期和零,然后单击保存,就是这样。
Ashton甚至为Jeff编写了一个宏,该宏使该任务自动化。Jeff不想被抓住,因此他拒绝安装它。在那之后他们再也没有说话了。真尴尬
在隔间公司成立两周年的早晨,阿什顿意识到自己的事情后便开车去上班。
他编写的代码中没有一行运行过。
他在两年的工作中所做的一件事情都没有对世界产生任何影响。
在密歇根州的那个地方,他他妈的在24度旋转,那是灰色,又臭又臭,他的本田车简直是胡扯,他在城里没有任何朋友,他没事。
当他沿着林肯大街行驶时,他看到左边的家具公司。公司校园前飘扬着三面旗帜:一面美国国旗,密歇根州的一面旗帜和一面带有公司徽标的白色和红色旗帜。他在转弯车道后面排成一排排等待左转的汽车。它总是带着四个五个红绿灯周期,在高峰时段,使变故,让阿什顿有足够的时间来尝试要记住,如果他有任何代码曾经写了以往任何时候都使用的人。
而且没有。然后他打退了眼泪。
他没有向左转,而是直行,几乎造成了事故,因为他忘记了左转灯并不意味着你可以直行。
然后,他开车沿林肯大道(Lincoln Avenue)行驶,进入杰拉德·福特(Gerald Ford)高速公路,然后一直开车直到到达大瀑布城的机场为止,然后他将笨拙的老本田(Honda)留在了航站楼前,非常清楚它被拖走了,甚至没有关上车门,他就走到边境航空公司的柜台前,他在下一班飞往旧金山的航班上买了一张机票,该航班在20分钟后离开,他得到了在飞机上,他永远离开密歇根州。
还记得阿拉丁(Aladdin)想给茉莉(Jasmine)留下深刻印象的场景,那个精灵告诉他,他会做得更好,只专注于做自己?同样的原则。
如果老板比你强得多,而你知道的话,他可能也知道。他不希望您有任何编程摇滚明星的壮举。由于这是您的第一份工作,他很可能雇用了您,因为他看到了成为您中优秀编码员的潜力。因此,如果您真的想打动他,请学习。 学习语言,学习正在使用的系统,学习来龙去脉和黑暗的角落。专注于学习正确的原则,按顺序依次学习,良好学习和快速学习。
记住,学习的一部分是复制他人已经拥有的知识。不要害怕问您的同事或StackOverflow上的问题,或在Google上研究事物。无论您做什么,都不要假装自己什么都不知道,以免显得愚蠢。任何优秀的开发人员都会很快注意到,这会让您在他们眼中显得更加愚蠢。谦虚仍然被工程师视为一种美德。
做好那件事,就会打动老板。
两个词:可靠。
在您的职位上,您没有被聘为团队中最聪明的人。您因发挥潜力而被录用,因为有些任务需要适合您的技能水平才能完成。
证明您首先可以实现这种信任,并且随着对代码和公司的了解,找到超越他们对您的第一印象的方法。后者可能需要一段时间,但不要误以为自己是次等。
似乎永远以前,我在一个充满了出色而又成就卓著的程序员的房间里工作了惊人的工作。每个人都是摇滚明星,最初的Macintosh团队有几个人,那里几乎有一半的人都出版过书籍,这是一个很棒的地方。
所以我在那里度过的第一年试图打动每个人。我觉得自己不得不做一些令人惊奇的事情,这驱使我在很短的时间内学到了比我想象的更多的东西。在第二年,我冷静了下来,对自己的所作所为更加自信,对自己的观点也更加直言不讳,当我环顾四周时,我对我们正在生产的实际产品越来越悲观。
那是该项目获得全部资金的最后一年。那些令人敬畏的工程师,我至今仍然仰望着他们,花了5年时间和数百万美元在一个又一个的框架下构建框架,一个用于在尚未真正交付的应用程序之上构建应用程序平台,最后是没有人能做的UI和工作流理解,甚至是建造它的人。
聪明被高估了。作为“摇滚明星”被高估了。这是增加复杂性门槛的真正容易的借口。它使您认为,重新编写一个工作系统以使其更“干净”,而不是实施客户要求的下一件事情,这一点更为重要。
雅各布·卡普兰·莫斯(Jacob Kaplan Moss)曾经对我说过一个我不愿透露姓名的程序员的事,他说:“他太聪明了。他编写了这些非常聪明的复杂库,因为我不够聪明,所以我无法使用它们。愚蠢的人应该编写库这样愚蠢的人就可以使用它们”。
“有成就的”工程师的程序员往往会nose之以鼻,那些编写Ruby和JavaScript以及其他“玩具”语言的人,这些人生产的产品,然后他们就可以了。代码可能很丑陋,体系结构可能不像您想要的那样纯净干净,但是它们真是天生的,在这个行业中这才是真正重要的。
如果我是您,我会放弃尝试成为这个摇滚明星,而专注于运输和制造产品。您不应该通过代码的聪明程度来判断您的贡献,而应该通过每天运行它并感到幸福的人来判断。
编写清晰可靠的代码。
敲他的门。询问他是否有他一直拖延的工作,您可能会处理。告诉他,如果他现在没有时间,请稍后将您开除。
阅读克努斯
(推论:很多人有高德纳,但没有人读克努特)
与我合作的所有真正优秀的程序员都有一些共同点:
(1)即使你不具备善于数学做节目,他们反正(他们喜欢)
(2)他们欣赏质量,我会叫“优雅” - 不与简洁混淆(!!!)
(3)他们擅长设计软件(即使我们谁也不能解释什么是真正的设计)
另外,我个人认为以下特征很方便:
(一)享受解决难题
(b)编写可读代码
(c)美好的回忆
(d)可以轻松地从表面上适应其他编程语言(广度)
(五)学习你的主要语言的深度(例如做Java认证Java是否您的环境(对于从来没有这么做过,但脱渣认证,因为微软的认证(是?)真的不好无能的批评者...的优点是没有在有一张纸,好处是在研究中))
(f)可以选择先做简单又容易的事情,然后继续进行,或者做一些超级复杂的事情,而这将需要数周/数月的时间,我会做简单的事情。我喜欢简单,因为它趋向于鲁棒性,而且在中步变化时它也更加灵活,并且与其他团队成员的交流也更容易
(g)如果您认为自己特别狡猾,请记录其中的污迹
有人(Djikstra?)说过,调试的难度是编码的两倍,因此,如果您编写的代码超出了您的能力范围,那么就定义而言,您就不够聪明,无法对其进行调试。
========
话虽如此,成为一名精明/更好的编码员并不等同于发展您的职业。
真正的职业发展只需要一种“秘密成分”,那就是人际交往能力。
如果您真的想发展自己的职业,最好的办法是辞职,并卖掉6到12个月的汽车。
我从事编码已有20多年了,目前有10位程序员与我合作。我必须说,给我印象深刻的是那些干得好,按时交付且质量高(错误少)的人。经常交流,显示激情都是重要因素。
多数民众赞成在那,我现在可以分享。;)
好吧,我只是在福音中加上这句话:
“谁能得到很少的信任,谁也会得到很多的信任,谁能得到很少的信任就不诚实,谁也会得到很多的信任。”
正如史蒂文所说,梅森是正确的-专注于自己的游戏。要记住的是,老板只是希望您做好自己的工作。他可能实际上喜欢他比你更好的事实-如果他不喜欢,他可能最终会感到不安全(老板是人!)。现在,您处于学习他的经验的理想位置-不要浪费时间与他竞争,而应该向他咨询有关事情的建议。如果您曾经阅读过48部《电力法则》,那么关键之一就是“永不超越大师”。
解决魔方。老板会知道您喜欢挑战性难题,并且会给您艰巨的任务。
在我看来,除了现有的技术技能外,绿色程序员可以带给他的最大财富是主动性和激情。如果您向老板表明自己对学习新事物充满热情,对学习公司,代码库,工具和同事的态度充满热情,则表明您对自己的工作充满热情,那会给人留下深刻的印象。除非您正在为一个糟糕的经理工作,否则无论如何您都想要。
我也建议把一些注重“软技能”的东西。证明您不只是一个在任何类型的人际互动中都没有用的怪胎。在销售,市场营销,支持,业务发展,项目管理等方面与人们交朋友。表明您是一个很好的沟通者,并且是可以与他人一起完成工作的人。
不要去打动别人或老板。只是讲话给所有人都没有留下深刻的印象。而是专注于运输代码。确保您参与了将由人们使用的项目或应用程序。生产中使用的代码越多,相关性就越高。您与人们的关系越密切,他们就会越依赖您。休息全是魔术表演。
努力工作。尽一切所能,学到一切。您很幸运能在一个比您了解更多的人的陪伴下工作,一直努力直到追上来。
除了努力工作,并成功完成您现在所从事的工作外,我还想提供一些建议,这可能是对您不问的问题的解答。(当我获得第一份软件工作时,甚至还没有意识到)。
互联网是由像您这样的人建立的。像您这样的人可以在互联网上赚钱。
找到您感兴趣的东西。建立它。卖掉 做你自己的老板。
打开http://news.ycombinator.com并开始阅读文章。您将看到来自像您这样的人的无休止的故事浪潮,他们有一个想法,建立了一个网站,并设法赚了一两美元。令人鼓舞和大开眼界的是,有一个人通过将宾果卡生成器卖给老师而赚取了可笑的高薪……另一个人以数百万美元的价格将网站卖给了Google。还有很多其他有趣的技术东西。
“富爸爸,穷爸爸”在一些地方他得到了很好的建议。
“四小时工作周”用一小撮盐就可以了,但是他确实有一些有趣的方式看待工作和生活。
继续向您所处的家伙学习。在“您的第一份真正的工作”中有很多东西要学,我什至无法开始。从长远来看(三,五,十,二十年),如果您学会了如何自己赚钱,您将不必担心给别人留下深刻的印象。
我喜欢答案中发布的故事,但比可靠的答案有趣。
每个人都像您一样是正常的:努力做到更好,这是人类。但是,可怕的事实是,您将是最好的机会。
关于我自己,我一直担心自己会感到谦卑,因为我只是讨厌那些关于谁是对,谁不是的幼稚斗争,这就是为什么。
只要您不是最优秀的人之一,您就最好努力工作,以获取更多的经验,将您所知道和做的事与最佳程序员所知道和做的事进行比较。
您可以说我将自己与最好的程序员进行了比较,但这只是一半:-我最好将自己与最好的程序员进行比较,知道与他们相比我只是荒谬的,所以这使得比较愚蠢和无用的原则成为了现实。 -我不是考虑他们的名声,而是考虑他们取得的名望,因为实际上,当您知道诸如业务运作之类的真实事实时,大多数天才神话就消失了。他们所做的出色工作并没有改变,但请记住,如果您考虑工作条件,则经验很难评估。-最后,该过程避免了真正困扰我的竞争过程,并帮助我专注于重要的事情:通过实践学习,而且借助良好的好奇心引擎学习。
您可以佩服所有想要的人,以为他比您遇到的所有其他员工或其他程序员都要好,但是您必须记住,世界辽阔,与其他人相比,您佩服的人实际上相当普通那里有经验丰富的人,所以一旦给他留下深刻印象,您也许会感觉更好,但是与比他有更好经验的其他人相比,您会感到相同,所以这一切都将一事无成。
退出这个小游戏,尝试找到您可能听说过的更多有趣的主题,因为您正在谈论的这位工程师肯定忙于为您所想不到的出色工作。
我必须同意这里的其他观点,因为您可能无法实现目标-因为您专注于错误的问题,或者至少您的关注点太狭窄。
您想成为一名优秀的程序员-一位软件工程师的主观意见是否赋予您这种头衔和能力(乔尔除外)?如果您只专注于给老板留下深刻的印象,那么您就不会专注于工作或提高技能,也不会专注于成为一名优秀程序员的目标。您试图获得尊重而不是赢得尊重。
让我们以最坏的情况为例(因为程序员喜欢这样做)-您的老板绝对无缘无故地恨您(不管您是第一天戴上爱国者的帽子)。他只是永远不会对你有好感。如果您专注于完成分配的任务,高效,优雅地解决问题以及进一步提高技术技能-您将不断提高自己-那么最终您就是赢家-与老板的想法无关。
Ashton的工作之所以失败,并不是因为他的代码没有被使用,而是因为该工作除了给Maslow层次结构带来安全性之外,没有给他带来任何实际的好处。他在学习新技能吗?否。他的工作能让他发挥创造力吗?不,这赢得了他的尊重吗?没有。
由于这是您的第一职位,因此默认情况下它将为您提供大多数这些属性。您将拥有专业的编程经验,将面临技术和非技术方面的新挑战。但是有时候您会超出职位,或者职位超过您,并且您需要不断提高自己,以免措手不及。
还有一件事,如果阿什顿仅通过使用他的密码的人数来衡量他的自我价值,那么我建议他加入一个常客俱乐部。生命中唯一持久的幸福就是我们为自己创造的幸福。严格按照别人对我们的看法生活,会产生悲剧性的,不真实的人。