该书“我们的代码。 工艺,专业,艺术“

图片 成为一名程序员可能很有趣,但成为一名软件开发人员却是地狱。 电脑是合乎逻辑的,人不是。 las,在现代软件行业中,他们无需为编程付费。 他们为软件开发付费,这意味着与其他人一起在团队中完成任务。 命令由任性的人员组成,而不是Java类和方法。

软件项目的成功取决于聪明的工程师,这些工程师通常是懒惰,愚昧,自私,易怒且简直是悲惨的。 成功取决于经常不知道如何交流,分享知识,领导和服从并遵循指示的人。 这取决于我们组队和参与其活动的能力。 而且还来自我们的社交技能-有时比技术技能要大得多。

话剧 我同意 这部戏适用于我们这个行业的每个兄弟,因此,如果您想在这样的行业中生存,请阅读本书。 艾格·布加坚科(Egor Bugaenko)

今天的软件开发不仅仅包含编写代码。 这与算法,公式,字节,文件或协议无关。 与指令,操作员,单元测试,用户界面或部署方案无关。 甚至与性能,可伸缩性,容错性或可靠性无关。 所有这些组件都很重要,但是它们并不能使一个程序员比另一个程序员更有效,或者某个开发人员团队比竞争对手更成功。 在现代软件和硬件世界中,决定性的角色还由其他因素来发挥:这些不是计算机,而是人。

一个软件项目的成功取决于那些经常懒惰,无知,自私,烦恼和不高兴的人。 这取决于那些通常不知道如何交流,分享知识,管理和服从并遵循指示的人。 这取决于我们组队和参与其活动的能力。 而且还来自我们的社交技能-有时比技术技能要大得多。

在这本书中,您将遇到一小部分程序员,建筑师和高管,他们为此付出了创造软件的报酬。 在接下来的200多页中,他们将解决问题,规避冲突情况并讨论团队合作的特点。 我希望他们的对话和独白会帮助您了解软件开发的社会方面的重要性,并因此成为更好的开发人员或领导者。

第一章
阿德里安


成为一名程序员可能很有趣,但成为一名软件开发人员却是地狱。 电脑是合乎逻辑的,人不是。 las,在现代软件行业中,他们无需为编程付费。 他们为软件开发付费,这意味着与其他人一起在团队中完成任务。 命令由非理性的人组成,而不是Java类和方法。 我将在其中一个团队中找到一份工作并在其中生存。 我可以用Java编写,但这还不足以取得成功。 那里将需要其他技能。 其中一些我还没有发展。

矿工和矿工


我告诉秘书:

-我和克里斯开会,他在等我。

总有一天,我将有我的秘书,办公室,程序员,与投资者合作的初创企业,以及我们将要遵循的重大使命。 我将成名并取得成功。 同时,我不需要支付住房费用。 这些人似乎很有钱,可以在接下来的几个月中与我打交道,而且他们似乎也喜欢我的简历。 现在,我必须说服他们,我梦想着永远和他们在一起。

由于任何软件体系结构都是人们活动的产物,因此,为了改进产品,首先必须改进人们。

“实际上是她,”秘书干涩地回答。

一分钟后克里斯出现了。 我们去会议室,她提供咖啡,但我要一杯水。 她出去了,我自动把我的电话拿出来,检查Facebook。 克里斯回来时喝了一杯水,并带了一个穿着带有GitHub标志的深色T恤的家伙。 她说很高兴见到你并离开。 Dude的名字叫Adrian,他是一名开发人员。 我们正在开始对话。 带着他的问题,他给人以相当有经验的印象。 我感到很自在-很明显,我在技术上胜过他,所以显然没有什么可担心的。

“我们需要有人来修复我们的体系结构,”艾德里安(Adrian)半小时后总结道。

我想:“相反,您需要有人对您进行纠正,然后才能对建筑进行处理。”但我大声说:

-我很乐意提供帮助。 在我看来,您的项目在技术上和从业务流程的角度来看都很有趣。 我不喜欢从事无聊的项目,无论他们为此付出了多少。 我更喜欢对自己的业务充满热情,所以我想做一些有趣而现代的事情。

阿德里安忧郁地微笑。 也许他是从坐在这个房间里的第二个人听到这个消息的。

他问我一个难题:

“你什么时候准备开始?” 您需要多少时间才能完成正在进行的项目? 我们正在寻找一个专职人员。

他似乎为所说的事情感到骄傲。 显然,他们认为全职工作对我来说绝对是一件好事。 我已经意识到我必须从九点到五点坐在这个办公室里,算出我的薪水。 虽然我没有自己的创业公司,但显然会如此。 这是我接受采访的第三家公司。 前两个还没有回答我,尽管看起来我很适合他们。 这个家伙看起来更加绝望了。 我怀疑它的服务器几乎每隔一个晚上就会崩溃,而这在我签订合同后便成为我的问题。 我要小心一点

“也许一个星期足以完成所有工作。”

我说我必须说的,尽管现在我没有项目,没有工作,没有收入。 我不能告诉他真相-您必须遵守游戏规则。 我看起来很受欢迎,很忙。 但是,另一方面,在一周之内完成所有事情的承诺是否合乎逻辑呢? 现在我可以在一周内完成的工作是什么样的项目? 当然,我们俩都明白这是谎言……但我们也明白我们对此无能为力。

承诺忠于一家公司的人将立即不再忠于另一家公司。

-您在这家公司工作了多长时间? 我请他改变话题。

“两年,”阿德里安回答。

-您创建了公司的大多数项目吗?

-是的,我是第一个开发人员。 两年前,我遇到了我们的联合创始人兼技术总监Tony。 您将在下次面试中见到他。

我看到阿德里安(Adrian)对他的讲话表示敬意。 为什么,托尼给他钱。

-很高兴见到他! 我回答了,我们结束了谈话。

克里斯三个小时后给我写信。 托尼想明天早上见我。 她说阿德里安正面评价我。 显然,他们很感兴趣。 前两家公司仍然保持沉默,因此我可以为Tony工作。 尽管我什至不知道他们愿意支付多少,但该公告说,工资是“体面的”。
我什至不想幻想自己为别人工作。 我在他们的办公室里感到很自在,假装对我很有趣,嘲笑托尼的笑话,问阿德里安的孩子们过得如何。 但是我不想为他们编写代码,或者更糟糕的是,对他们的技术故障负责。 这就是他们将尝试做的:将尽可能多的事情移到我的肩膀上。

我根本不是一个懒人。 我喜欢编写代码,但是这样做是为了让另一个人成为百万富翁-不,谢谢。 我的生活比他们所能提供的薪水更有价值。

“雇主可以支付多少?” -专家应该问自己的正确问题。

老实说,我认为正是我的这种态度才是我以前的作品(以及之前的几幅作品)遇到问题的真正原因。 每个人都希望我成为一名优秀的员工,我想做自己喜欢的事情:通过用Java编写代码来翻译自己的想法。 我已经被解雇了四次,但我只有29岁。到目前为止,这并不是一个令人印象深刻的职业。 我做错了什么?

我听到过很多不同的人的话:雇主面试您时,您还必须面试他。 在我看来,这种方法是正确的,但并不是因为您在选择我们想加入的公司时需要挑剔-它们在初始阶段都是相同的,只是名称,市场和预算不同。 我们必须“采访他们”,以表明我们对他们特别感兴趣。 这就像认识一个女孩2:您需要提出问题并假装对她的灵魂感兴趣,而不仅仅是对她的身体感兴趣。

首先,每个新的公司,团队或项目都是一个谜。 您对他们的DevOps流程,管理原则和静态分析有多少问题都没关系,因为任何答案都可能是谎言,他们的发明或一切都无法像他们想象的那样起作用。 我从没听过他们在第一次采访中说的话。 我要注意的是:1)他们愿意付给我的钱; 2)团队规模; 3)我将被提供的职位。

钱的问题很明显:薪水越高,就越好。 不仅是因为我很贪心,并且更喜欢梅赛德斯-奔驰而不是雪佛兰,而且还因为良好的融资意味着该项目非常有价值和有趣。 从市场角度考虑这一点:如果他们能支付比其他人更多的钱,那么他们从某个地方就有钱。

薪水是您对市场做出贡献的重要性的主要明确指标。

也许他们设法吸引了大投资者(这意味着他们相信自己的想法); 也许他们已经获得了可观的收入(由此得出的结论是,消费者对他们的评价要高于竞争对手。) 或者,也许是创始人继承了数百万美元,并将其投资于一家疯狂的初创公司(这意味着这些钱并没有在拉斯维加斯被浪费,而是通过我受邀参与的业务推动了市场发展)。

无论如何,金钱是该特定业务在市场中重要性的指标。 资金越多,该项目的市场需求就越大。 当您正在从事的项目的资金用完时,就该转移到另一个对市场更重要的项目了。 这种方法似乎不忠,但是如果您关心客户,而不是关心每两周削减工资的老板,那仍然是正确的。

选择一个价格较低,“看起来更有趣”的项目既不公平也不合逻辑。 由程序员决定这是多么有趣和多么有价值。 此类决定应由有偿付能力的客户或投资者代表的市场做出。 他们将在薪金的帮助下做出的决定传达给我们。 当薪水上涨时,市场为我们所做的感到高兴。 当薪水下降时,就该问一个问题:如果市场不再升值,为什么还要为市场做这项工作?

对我而言,第二个重要指标是公司的规模。 太小和太大都不好。 当公司规模太小时,技术专家被迫承担很多责任,执行各种工作:编写代码,配置服务器,为投资者准备演示文稿,甚至安排家具和安装咖啡机。 从职业角度来看,这就是退化和浪费时间的风险。 结果,您将不得不做很多与当前职位无关的工作,只是为了帮助团队生存。

大公司太政治化了,小公司太混乱了。

而且,小公司的生存机会很小(如统计数字所示)。 我宁愿远离雇用少于20名技术人员的项目。

另一方面,所有大公司都有另一种问题:政治。 人们不在那儿工作-他们彼此斗争。 我要么会在公司层级的较低层中生存,要么拥有“高级开发人员”的头衔,每年我的生日每年都会喝一杯,或者我会成为一组特定克雷丁人的精通大师。 没有一种选择吸引我。 因此,我不想去拥有超过一千名员工的公司。

我要注意的第三个因素是提供给我的职位。 我指的是层次结构中的实际位置。 所有公司都具有员工等级制度,无论拥护者怎么说。 总会有一个上级,然后有人服从他(降至最低级别)。 始终保持较低的水平,我总是尽量避免。 不仅因为我有自尊心,还因为我很懒。 您的层次结构越低,您要做的工作就越多,您得到的钱也就越少。 行动分工(不仅限于软件领域)。

因此,建议的职位越低,技术性越高,就会遇到更多的困难:我将不得不为某人而不是为我自己工作。 这正是我讨厌做的事。 当我知道结果将是我的时候,我准备好努力工作。 但是在管理层较厚的开发团队中,较低级别的收入会被较高级别的收入所消耗。 那么停下来的目的是什么呢?

您是否听说过Didier Desor和他的同事在南锡大学进行的实验吗?2他们采取了十个相同的细胞,每个细胞植入了五到六只雄性大鼠。 为了获得食物,啮齿动物必须穿过一个小洞,穿过水族馆到食槽,取些食物然后游回去食用(不可能直接从食槽进食)。 在实验结束时,将所有笼子中的大鼠分为两组:猎物和非猎物。 矿工游泳觅食,矿工从他们那里偷走了这种食物。

这个故事教给我们什么? 你要么工作要么偷东西。 老鼠不知道这十诫。 他们不知道盗窃是一种罪过。 似乎大自然对盗窃没有任何帮助(对她来说,这是角色的自然分布)。 同样,对于某些人来说,工作是首选活动。 对于其他人,盗窃更为普遍。

我们当然不是老鼠,我们的行为要复杂得多,但是总的原理是相同的:我们要么工作,要么分配他人工作的结果。 为了控制这一过程并避免持续的战斗(如笼中老鼠之间的战斗),发明了控制等级。 我们不再与老板打架,我们只是给他们带来的好处,他们相信正义。 当然,他们自己也会产生一些东西,但是他们带来的收益显然更少,薪水更高。

您在层次结构中越高,则需要做的事就越少,其他人也将获得更多的荣誉。

基于此,对我来说,在现代的“矿工和矿工”系统中,最方便的位置是看起来像矿工,但作为矿工获得报酬。 换句话说,看起来像一个努力工作的软件工程师,实际上什么也没做。

软件开发领域的绝大多数团队都无法让程序员尽其所能。 该手册,尤其是最高级别的手册,不了解Java和JavaScript之间的区别。 另一方面,在较低的级别上,通过假装编写代码来愚弄老板是比较困难的,但是实际上在那时发布了新的Facebook帖子。 这就是为什么我的职位越高越好。 没有人会明白我在做什么,所以我可以做我想做的。 我参加了需要付费的项目,但是我更愿意在需要和确实有需要时去做。 不在早上九点。

»这本书的更多信息可以在出版商的网站上找到
» 目录
» 摘录

对于Khabrozhiteley优惠券25%的折扣- 我们的代码

Source: https://habr.com/ru/post/zh-CN451576/


All Articles