软技能 代码之外的生存指南(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-24 01:37:18

点击下载

作者:[美]约翰 Z. 森梅兹(John Z. Sonmez)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

软技能 代码之外的生存指南

软技能 代码之外的生存指南试读:

前言

也许我可以给你演绎一个玄幻故事,说说我是如何开始写这本书的。我可以跟你说,当我在沙漠中打坐的时候,一只老鹰飞了下来,落在了我的肩上,小声在我耳旁说:“你必须为软件开发人员写一本关于软技能的书。”我还可以告诉你,这本书是在梦中来到我身旁的——夜半时分,我被这本书的构想惊醒了,于是开始奋笔疾书,写下每一章,试图捕捉我在梦中看到的一切。

但是,真相其实就是——我写这本书,是因为我觉得我必须写这本书。

作为一个软件开发人员,在我的生活中,我经历过许多不同的旅程。我曾走在阳关大道,也曾误入歧途,还有一些路我至今仍不知是对还是错。这一路走来,我并没有得到太多的帮助和指导。我从来没觉得有谁为我披荆斩棘,开辟出一条小路使我可以因循,也从来没觉得有谁可以告诉我如何成为一名最成功的软件开发人员——不能只编写代码,还要有精彩的人生。

当然,也曾有过许多人影响了我的人生,也有许多人教导我各种各样的有关软件开发的事情(以及更多)。毋庸讳言,我一生中取得的成功,部分应归功于他们。但我确实从来没有发现某位人士或某个导师,能够把以下信息汇集在一起,例如:

如何管理职业生涯,如何在职业生涯中做出正确选择;

如何以更好、更有效的方式学习,以及如何尽可能富有成效,以及在缺乏动力而心灰意冷的时候该如何去做;

有关理财的基础知识,有关身心健康的基础知识,以及——作为一个软件开发人员,乃至于作为生活在这个星球上的一个“人”,这些事情会如何影响到我。

我写这本书是因为我希望能够提供这方面的指导,或者至少可以尽我所能分享我所学到的一切,它们来自我自己的个人经验,或者来自我遇到过和互动过的其他成功的软件开发人员、财务专家、健身大师和励志演说家……的经验。我写这本书是因为我觉得如果不把这些我学到的和我经历过的分享出来,是一种浪费。

我写这本书,是为了:

让你的旅程更轻松;

帮助你成为更好的自己;

而且,最重要的是,让作为软件开发人员的你在漫漫人生旅途中不再感到孤独寂寞。

读到这些让你感到欢欣鼓舞了吗?

好吧,让我们开始这段旅程吧!作者致谢“如果我比别人看得更远,那是因为我站在巨人的肩膀上。”——艾萨克•牛顿

罕有哪本书是在缺少他人帮助的情况下写成的。当然,也没有哪本书不是仰仗很多人的帮助才得以出版和发行的。这本书也不例外,所以在这里我愿意花一些时间感谢我生命中的“巨人”们。

首先,我要感谢那些对我的生活产生了积极影响的人,是他们助我成为今天的我,也正是他们助我意识到我还有很长的路要走。

我要感谢我的同事和老板。我要感谢在我的整个职业生涯中,那些诘责过我的人、指导过我的人、让我尽情发挥的人和在大事不妙之前助我悬崖勒马的人。要感谢的人太多了,无法一一列举姓名,但你们都知道我指的是谁。

我要感谢我读过的那么多书的作者,这些书使我成为一个更好的人,给我新的人生视角。同样,要感谢的人太多了,无法一一列举姓名,但是,如果必须要列举几个,Robert C. Martin(Bob大叔)、Steven Pressfield和Dale Carnegie(戴尔•卡内基)的名字浮现在我的脑海中,这些都是我阅读过的作者中最有影响力的。

Robert C. Martin在百忙之中拨冗来为我的书作序,即使我请求他写序的时间太晚,因此我要特别感谢并深感荣幸。我也非常高兴,Scott Hanselman同样也是在最后一刻受托作序,他与我分享了很多关于开发人员所需要的软技能的看法。我真诚地感谢他们两人赞同我书中的观点。

我要特别感谢我的家人,尤其是我的妻子Heather和我的女儿Sophia——她们被迫要应对我的情绪波动,忍耐我经常无法兑现的承诺,忍耐我在写作这本书的过程中的种种疯狂。我的妻子同时也是本书的校对者,她认真研读了其中每一个章节,纠正其中的错误,然后我才敢发送给编辑——上述工作让我看起来比我自己有才得多。

我还想感谢我的爸爸Sahin。他教会我努力工作的价值——没有这个,这本书将永远不会被排入写作计划的首位,就算是排了也不会有什么可写的呢!

我不能忘记我的妈妈Laura。她比谁都更令我懂得:不管别人怎么说,一定要相信我自己——这正是一个企业家不可或缺的素质!

我还要感谢Derick Bailey、Josh Earl和Charles Max Wood,他们以“Entreprogrammer”(程序员企业家)播客(http://entreprogrammers.com)而著称。他们都是我的每周策划组的一员,正是他们的鼓舞、激励、鞭策乃至质疑推动了我在写作本书中的每一步。

当然,我要感谢Manning出版社的每一位员工。没有他们,这本书就不会被出版,或者即使出版也可能面目全非。

首先,感谢Manning的出版人Marjan Bace,他有先见之明,认识到这本书正是软件开发人员所需要的。

接下来,我要感谢本书的编辑Robin de Jongh,他使我成为Manning的作者,帮我想出了“软技能”这个概念,并且在写作本书的过程中提供支持和鼓励。

我也想感谢我的责任编辑Cynthia Kane,她审查本书最初版本的稿件,她的反馈和建议更加激发了我继续写作的勇气,而不是泄气。

多亏了Candace Gillhoolley,他为本书的市场营销做出了杰出的工作,他教给我的有关市场营销的几个技巧,我在未来将会继续使用。 非常感谢Jodie Allen和Mary Piergies,她们完成了艰巨的工作——协调本书在生产环节的各种事务。一并感谢Jodie校对了整本书稿。

还要非常感谢Rebecca Rinehart,是她协调MEAP(Manning Early Access Program,Manning早期访问计划)能够发布本书。她还要应对我对本书封面极端吹毛求疵的挑剔。最后,她还促成Manning进行了一项客户问卷调查,由预订本书的读者选择封面的最终版本,这在Manning所出版的众多的书籍中留下了历史性的一页。

还要感谢图形艺术家Višeslav Radović,他完整无误地将我在本书中传达的信息以插画形式呈现出来。同时一并感谢为出版本书而辛勤工作的Manning出版社的所有工作人员。

特别感谢阅读了本书早期草稿的评阅者们,他们的评阅意见有助于改进本书:Heather Campbell、Ionel Condor、Luke Greenleaf、Robert Hanson、Rebecca Jones、Anita Lugomer、Matthew Margolis、Javier Muñoz Mellid、Edward G. Prentice、Alvin Scudde、Craig Smith、David Stanek、Lourens Steyn和Jerry Tan。

最后,我要感谢Simple Programmer网站的所有访问者。你们中许多人向我提问,提供反馈意见,鼓舞和激励我,正是你们的这些贡献让我可以完成每一项工作。关于本书

嗨,我很开心你能挑选这本书。但是,没准儿你还正犯懵呢。这本书到底写的是什么?到底什么是“程序员必备的软技能”?这是一个很棒的问题,我来尝试着言简意赅地回答一下。

试着设想一下这种场景:这儿有一大堆好书,这本教你如何写出更好的代码,那本可以让你学习一种新的技术,那边几本是关于团队合作和项目运营的,或许你还可以找到几本讨论如何改善职业规划的,还有几本直接就是教你如何解答面试题目的。但是,你可曾看到过这样的一本书,告诉你如何成为一个比现在更棒的软件开发人员?

你可曾看到过这样一本书,不仅告诉你如何谋到更好的工作、赚更多的钱,而且还会告诉你如何花钱、如何最终摆脱那份差事成为一名企业家?——如果你心怀此愿的话。

你可曾看到过这样一本书,告诉你在软件开发行业构建自己声望的各个步骤,教会你如何在身体上、精神上和心灵上更强大、更健康?

我尚未看到过,而这就是我决定要撰写本书的原因——阐述上述所有问题,以及更多。

不管你是谁,这本书都是为你而作的。我可不是轻描淡写地随便说说哦!这本书里的各个章节包罗万象,从揭秘面试的流程到精耕细作出一份杀手锏级简历,从创建受欢迎的博客,打造属于你自己的个人品牌,到提高自己的生产效率,与倦怠做斗争,甚至包括如何投资房地产,如何减肥。

你还会发现,本书中有一整篇专门探讨我自创的关于快速学习的方法。使用这种方法,我在不到两年的时间里为在线教育公司Pluralsight创建了55门在线培训课程。

严肃点说,无论你是谁,不管你在自己的软件开发职业生涯中身处何处,这本书对你都是大有裨益。本书中甚至有一章在论述如何约会某位“特殊人物”——你懂我的意思!

在第1章里,我将会告诉你关于本书内容的更多细节,以及它们之间是如何组织的。但是,在你沉浸其中之前,我要列出一些对你阅读本书或许有所帮助的在线资源。你会发现本书各章散落着一些有用的链接,下面这些是对你大有帮助的一些网站。在线资源“Simple Programmer”博客:http://simpleprogrammer.com

在这里你会看到与本书里许多话题都相关的海量博客文章,它也是与我本人联络的最佳方式。每周我都会在这里免费发布一些有用信息(当你浏览博客的时候,确保你注册了我的邮件列表,这样你就可以获得各式各样的赠品和我每周创建的别的好东西)。

我在YouTube上的自建频道:http://youtube.com/jsonmez

在这里你将会看到与本书里许多话题相关的视频材料,全都是免费的。如果你对我在本书中讲述的某个话题感兴趣,试着搜索一下YouTube中我的自建频道——十有八九你都能找到我上传的相关视频材料。“软件开发人员如何营销自我”课程:http://devcareerboost.com/m

如果你对本书中“如何自我营销”这一章特别感兴趣,可以到这个网站上购买全套课程,深入了解如何构建个人品牌使你自己在软件行业中占有一席之地。到目前为止,这是我的著作中最受欢迎的部分。因为你已经购买本书,所以我要给予你特别折扣——使用代码SOFTSKILLS将获得100美元的抵扣。“十步快速学习法”课程:http://simpleprogrammer.com/ss-10steps

这是另外一门深入课程,探讨我在本书“学习”篇中教你的方法之细节。如果你对这一篇内容深感兴趣,想更加深入地了解该主题,关注这个课程,可以发现更多内容。“Entreprogrammers”网站:http://entreprogrammers.com

如果你立志成为一名企业家,或者已经开始创业了,可以关注这个免费的每周播客,这是我和其他3位开发者/企业家(或曰:开发者企业家)联合开发的。

-“Get Up and CODE”网站:http://getupandcode.com

最后,如果“健身”篇令你眼前一亮的话,那你也会喜欢这个免费播客。这是我为软件开发人员和IT专业人士专门准备的。作者在线

购买本书可以免费访问由Manning出版社运营的专属网上论坛,在这里你可以发表针对本书的各种评论,提出问题并获得来自作者和其他读者的帮助和反馈。要想访问该论坛,请从浏览器上登录www.manning.com/SoftSkills并注册。

该页面提供了以下信息:注册后如何登录本论坛,论坛将提供哪些帮助,论坛的行为规范。只要本书一直在售,“在线作者”论坛及既往讨论的备份文件都可以在出版社的网站上访问。第一篇职业

你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感已然尽失。职业发展的驱动力一定是来自个体本身。记住:工作是属于公司的,而职业生涯却是属于你自己的。——厄尔•南丁格尔

很少有软件开发人员会主动管理自己的职业生涯。可是,成功的软件开发人员之所以能成功都不是偶然的。他们目标明确,为了达成目标,他们制订了坚实可靠而又深思熟虑的计划。如果你真的想在软件开发这个充满竞争的世界里脱颖而出,那么你要做的远远不止一份光鲜靓丽的简历,以及任何碰巧获得的工作。你需要通盘考虑之后再决定——要做什么,什么时候做,以及如何义无反顾。

在本篇中,我会带你体验决策过程:你要决定自己想要从软件开发这个职业中获得什么,以及如何去获得。第1章 为何这本书与你先前读过的任何书籍都迥然不同

多数软件开发的书都是有关软件开发本身的,本书却不是。有大量的书论述如何编写优质代码、如何利用各种技术,但是很难找到一本能够告诉我“如何成为一名优秀的软件开发人员”的书。

当我说到“优秀的软件开发人员”时,我并不是说要精于编码之道,善于解决缺陷,通晓单元测试。相反,我所说的“优秀的软件开发人员”,是那些能够把控自己的职业生涯、达成目标、享受生活的人。当然,其他技能都很重要,不过我还是假定你已经精通如何使用C++语言实现排序算法,或者知晓如何确保写出的代码不至于让你的后继维护者恨不得驾起他们的小汽车从你身上碾过……

毋庸置疑,这本书并不是在讨论“你能做什么”,这本书讨论的是“你自己”——关于你的职业生涯、你的生活、你的身体、你的思想以及你的灵魂——如果你确信灵魂存在的话。现在,我并不希望你把我想象成为某种类型的疯子。我不是一个持超验主义思想的和尚,能坐在地板上一边冥想一边抽着仙人掌叶子做成的卷烟,还试着帮你提升到更高层次的顿悟。恰恰相反,我觉得你会发现我是一个非常脚踏实地的人,我不过恰好正在思索——作为一名软件开发人员如何超越编写代码本身?

我拥抱所有的软件开发方法。这意味着,我认为,如果你想真正成为一个更好的软件开发人员(或者其他真正优秀的人才),你需要把重点放在整个“人”上,而不只是你生活中的一两个领域。

这就是这本书的由来,也是这本书的初衷。现在,显然我不可能在这本书的短短篇幅里包罗万象、涵盖生活当中的方方面面,我也没有丰富的经验或智慧来解决这个如此广泛的课题,但我可以通过将本书的内容聚焦于软件开发人员的生活主要方面,在这里我恰好有一些经验和专业知识也许可以让你最大可能地受益。

在这本书里,你会发现不少看似无关的主题串联在一起,但这种无序的背后其实另有深意。本书共分为七篇,每一篇都聚焦在软件开发人员生活的不同方面。如果你想为这些内容分类和分组,最简易的方法是将它们看成是事业、思想、身体和精神四个方面。

我们将从谈论你的职业生涯开始,因为我觉得这是大多数软件开发人员所要关注的最重要的领域之一。我发现软件开发人员很少真正充分积极地考虑过如何管理自己的职业生涯。在第一篇“职业”中,我想要站在你的立场上帮助你解决这个问题。我将教你到底该如何主动地管理自己的职业生涯,从而达到自己追寻的结果:可能是正在企业内部“攀登职场阶梯”,也可能是开创自己的咨询业务,甚或是成为一名企业家创造自己的产品。我已经亲身历经了所有这三种。我也曾经面试过数不清的软件开发人员,你将学习到这些经验教训,从而避免在前进的道路上盲目行走。我还会论述你需要具备的一些与职业目标无关但依然很重要的技能,例如,如何创建一份令人过目不忘的简历,如何掌握面试技巧,如何远程工作,以及如何获得当前大家都在津津乐道的优秀的人际交往能力。

在第二篇“自我营销”中,我们会触及一个我自己很心仪的话题:如何推销自己。“市场营销”,听到这个词组你会有什么感觉?当我提到这个词组时,大多数软件开发人员会觉到很不爽,可能还会有点恶心。但是,当这一篇结束时,你会对这个词组有一个全新的评价,明白它为什么如此重要。人人都是推销员,只是有些人把销售这项工作搞得臭名远扬。在这一篇中,我会帮助你学习如何成为一个更好的销售人员,确切地了解你要“销售”什么。这与阿谀谄媚毫不相干,也与发送“如何一夜暴富的秘诀”之类的垃圾邮件这样的小把戏风马牛不相及。相反,它会包含很多切实可行的具体建议:如何打造个人品牌,如何打造一个成功的博客,如何通过演讲、教学、著书立说的方式让你扬名立万……所有这一切你可能从来就没有考虑过。如果你拥有了这些技能,就相当于为你从第一篇学到的东西插上了一个倍增器,可以用来取得更加丰硕的成果。

与职业生涯相关的内容讨论完毕,这一次将过渡到你的心灵境界,我们来到第三篇“学习”。学习是每一位软件开发人员生活中的重要的一部分。可能并不需要我来告诉你,软件开发人员或者任何一位IT专家最常见的特质之一就是学习。学习如何学习,或者说如何自学,这是你能掌握的最有价值的技能。掌握自学能力能够让你做想做的事情。遗憾的是,在我们成长过程中,我们被迫接受的大多数教育体系是支离破碎的,因为它们都依赖于一个错误的前提:你必须要有老师去教,学习只在一个方向上流动。我并不是说教师或导师不重要,但是在这一篇中,我将向你展示如何依靠自己的能力和常识、辅以一点点的勇气与好奇心,就能获得更好的成果,这比通过聆听空洞的说教或是疯狂记录笔记所能取得的效果更好。我还会带你领略我自己开发的“十步学习法”,通过使用该方法,我学会了如何在两年内为在线培训公司Pluralsight开发出50多门在线开发者培训课程。另外,我还将介绍一些关键的话题,例如,如何找到一位好导师,如何成为一位导师,以及你是否需要借助传统的教育和学位而取得成功。

接下来还是与心灵有关的主题,第四篇“生产力”。你猜对了,这一篇是关于如何让工作更加富有成效的。这一篇的目的就是助你一臂之力,督促你让你火力全开。对于许多软件开发人员来说,生产力都是一场巨大的斗争,也是阻碍你成为成功人士的最大障碍(没有之一)。你可以让生活中的一切都井井有条,但是,如果你不知道如何克服拖延症、混乱症和懒惰病的话,你将很难开足马力全速前进。我曾把自己的那份动力消磨殆尽,好在最终我想出来了一个方法,令我可以在人生的高速公路上以最快的速度巡航。在这一篇中,我将与你分享该方法。另外,我还将解决一些困难的课题,例如倦怠,看电视太多,如何寻找动力去探究并完成那些无趣老套的脏活累活。

在第五篇“理财”中,我们又会论及另一个常常被完全忽略的话题——个人理财。你可以成为这个世界上最成功的软件开发人员,但如果你不能有效地管理你赚到的钱财,可能终究会有那么一天,你要站在街角,举着一个牌子,上面写着“写代码换晚餐”。在这一篇中,我会带你来一场有关世界经济形势和个人理财的疯狂之旅,我会告诉你“做出明智的理财规划”所需要知道的基础知识,令你可以真正开始规划自己未来的财务。我不是理财规划师,也不是专业的股票交易员,不过除了作为软件开发人员,从18岁开始我就是一名专业的房地产投资者了。所以关于“理财”这个话题,我可是有好多好主意呢!关于这个话题我们不会探讨得很深入,因为论述这个话题的书籍可谓是汗牛充栋。我想教给你的是如何管理收入的基础知识:股市如何运作,如何投资房地产,如何避免债务。作为额外的奖励,我还要跟大家分享我的故事:我是怎样利用这些原则有效地实现在33岁时退休的(可不是通过高价卖掉一家创业公司)。这真的不是那么难,任何人都可以做到这一点。

现在,我们得谈谈这个有趣的篇了——关于你的身体。你准备好参加新兵训练营了吗?在第六篇“健身”中,我将教你如何减掉脂肪、增加肌肉、给身体塑形。我认识的大多数软件开发人员,不是超重就是亚健康或者体虚乏力……好吧,“知识就是力量”,作为一个参加过健美比赛、主持了一个程序员健身播客的软件开发人员,我很高兴与你分享我所学到知识——为了使生活最终尽在你掌控之中,你需要这些知识。在这一篇中,我将带你浏览饮食和营养的基本知识,解释你吃的东西是如何影响到你的身体的。我还会告诉你如何制订一项成功的健身计划,如何通过饮食来减肥、增加肌肉,或者两者兼顾。我甚至还会涉及一些具体的话题,比如站立式办公桌和极客用健身装备。

最后,在第七篇“精神”中,我们将一头扎进形而上学的世界,来找寻海市蜃楼般的“机器中的精灵”。尽管这一篇的标题是“精神”,但是别被它骗了。我给大家介绍的,都是会影响情绪状态和态度的真实的、实用的建议。我假设你可以将这一篇称为本书的“自助部分”,虽然我不是特别喜欢这个词。在这一篇中,我将主要专注于帮你重新连接你的大脑,从而创造出通向成功之路所必需的积极态度。我们也将简要介绍恋爱和人际关系,因为即便许多技术上出类拔萃的人,也会觉得这两样都是难以捉摸的。我也会给你提供一份我的成功学私房书单,这个书单列出的是过去这些年来我已经读过的书,而这些书也是这些年来我遇到那些知名人士向大家推荐阅读的。

所以,继续前进吧,让自己陶醉其中吧,让善于分析的头脑迎接变革到来的这一天吧,准备好钻研这本有关软件开发的与众不同的书吧。第2章 从非同凡响开始:绝不要做他人都在做的事

想象一下,炎炎夏日,你席地而坐,欣赏一场美妙的烟火表演,在你的四周各色烟火接二连三地升腾炸开,绽放成蓝色、红色、紫色和黄色的绚烂花朵,震耳欲聋。这时你注意到一支特别的烟火,它拔地而起跃入空中,然后呢……它没有爆炸,也没有“嘭”的那声巨响,哑火了。你希望自己的软件开发职业生涯更像是其中哪朵烟花?腾空而起一鸣惊人,还是虽然到达了某个高度,但之后就悄无声息地回归地面?拥有商业心态

大多数软件开发人员从职业生涯一开始就犯了几个严重的错误。截至目前,最大的错误就是没有把自己的软件开发事业当作一桩生意来看待。不要被愚弄了,当你为了谋生一头扎进写代码的世界时,其实你和中世纪小镇上开铁匠铺的铁匠没什么差别。确实,时代或许已经改变了,我们中大多数人现在为公司工作,但是我们的技能和生意都还是自己的,我们随时都能换个地方另起炉灶。

这种心态对于管理职业规划至关重要。因为只有你开始把自己当作一个企业去思考时,你才能开始做出良好的商业决策。但是,如果你已经习惯于领取一份固定的薪酬(注意,你的工资还真不是取决于你的表现),这会很容易导致你产生另一个心态——你只是在为某家公司打工。尽管在你的职业生涯的某个特定时间段里,你可能确实是在为某家公司打工,但是千万不要让那个特定的角色固化了你和你的整个职业生涯——这一点非常重要!

把雇主当作是你的软件开发企业的一个客户吧。当然,你可能只有这么一个客户,你所有的收入都是从这一个客户处得来的,但是这种诠释雇用关系的方式可以将你从仰人鼻息的弱势地位转换成为自我治理和自我引导的主动地位。(事实上,许多真正的公司也就只有一个大客户,这个客户给它带来了大部分的收入。)提示

这是你职业生涯中必须要做的第一要务:转变你的心态,从被一纸“卖身契”束缚住的仆人转变为一名拥有自己生意的商人。在起步阶段就具备这种心态会改变你对职业生涯的思维方式,将此铭记在心,并积极主动地管理自己的职业生涯。如何像企业一样思考

现在,仅把自己当作一个企业来思考并不会给你带来太多的好处。要想从中有任何收获,你必须弄明白如何思考。让我们来谈谈如何将自己当作一个企业,以及这究竟意味着什么。

我们可以先从思考企业是由什么构成的开始。大多数成功的企业都需要以下几样东西。首先,要有一个产品或服务。不能提供东西的企业是没办法赚钱的,因为没有东西可卖。你有什么可以卖?你的产品或服务是什么?

作为一名软件开发人员,你也许有一款真实的数字产品可以卖(这个话题我们会在第13章中谈到),但是,大多数软件开发人员卖的是开发软件这项服务。“开发软件”是一个含义很宽泛的术语,可以覆盖各种各样的活动和个性化服务。不过,通常软件开发人员售卖的就是他们把一个想法变成一个数字化的现实产品的能力。注意

 你所能提供的服务就是创建软件。

即使只是想一想“作为一个企业我能提供什么”,就会对你如何考量自己的职业生涯产生深远的影响。企业需要持续不断地改进和完善自己的产品。你也应该这么做。作为一名软件开发人员,你提供的服务具备有形价值,你要传达的不仅是这款软件的价值是什么,还有它与别的成千上万款软件开发人员提供的服务有何不同。

如此这般,我们就把自己推向了营销,关于这一点我们将在下一篇中展开讨论。同时,有一点很重要:你需要认识到仅有服务或产品是不够的。想赚到钱,你就必须能让潜在的客户了解该产品或服务。全世界的公司都认识到了商业社会的这一核心真理,这也是他们在市场营销上投入重金和精力的原因。作为一名提供服务的软件开发人员,你也要关注市场营销。产品营销做得越好,你就能给服务定越高的价格,也越有机会吸引更多潜在的客户。

你可以想象,大多数软件开发人员在开始的时候并不是以这样的方式来规划自己的职业生涯的。他们伴着一首声音低得几乎听不见的流行音乐一头扎进工作中,根本不能做到“非同凡响”。所以,千万别像他们这样。

相反地,你需要做到:

专注于你正在提供怎样的服务,以及如何营销这项服务;

想方设法提升你的服务;

思考你可以专注为哪一特定类型的客户或行业提供特定的服务;

集中精力成为一位专家,专门为某一特定类型的客户提供专业的整体服务(记住,作为一个软件开发人员,你只有真正专注于一类客户,才能找到非常好的工作)。

另外,还要想想如何更好地宣传你的服务,如何更好地找到你的客户。大多数软件开发人员在写好一份简历之后就随意丢给一些公司和招聘人员。但是,当你把职业生涯当作一个企业时,你真的认为这就是你拓展潜在客户的最佳途径或唯一方法吗?当然不是。大多数成功的公司都会开发出让客户主动上门购买的产品或服务,它们才不会一个接一个地追逐客户。

在本书第二篇中,我们将讨论一些技巧,运用这些技巧,即使你做同样的事,也可以助你变成更具市场敏锐度的软件开发人员。即便还没有讨论到这些细节,那么跳出思维定势,开始像企业一样思考,也是关键所在。能够吸引客户的最佳方法是什么?如何将你的服务告知你的客户?如果你能回答这些简单的问题,你将开创出属于自己的非同凡响的职业生涯!采取行动

想象一下:有一家企业,拥有某个产品或服务。他们将如何推广这一产品或服务从而可以做到卓尔不凡?

如果只用一句话来描述你能为潜在雇主或客户提供怎样的特定服务,这句话是什么?● 把你的职业当作是一个企业,将会影响到你的:工作的方式;处理自己的财务的方式;寻求新工作或新客户的方式。第3章 思考未来:你的目标是什么

现在,你已经将你的软件开发职业当作是一个商业活动,那么,是时候着手定义你的业务目标了。

每个人都是独一无二的,你为自己设立的职业目标肯定与我的不同。但是,要实现任何目标,都必须先知道目标是什么。当然,说比做要容易得多。我发现大多数人,包括软件开发人员在内,要么缺乏对自己人生目标的具体认知,要么没有尽力去实现自己的人生目标,浑浑噩噩混过一生。这是大多数人的自然状态。我们通常不会充分思考自己该关注什么,因而我们的行动也就漫无目标、无的放矢。

想象一下你登上了一艘即将横渡海洋的大船。你会像大多数人那样,一跳上船就升起风帆。但是,如果没有选定明确的目的地,你就无法掌舵让这艘船朝着目标方向航行,而只能在大海上漫无目的地漂流。或许你的船能偶然到达某个小岛或者某片陆地,但是,如果没有确定自己的目的地,你永远都不会取得实质性的进展。一旦明确了目的地,你就会向着目标全力以赴。

这看起来似乎很显而易见,但确实鲜有软件开发人员能够为自己的职业生涯设定目标。为什么呢?我只能揣测。我要说,大多数软件开发人员都害怕为自己的职业生涯设定一个长远的蓝图。因为惧怕选定后要一往无前,他们希望自己有各种选择。“如果这条路错了我该怎么办呢?”“如果我不喜欢自己选的路又该怎么办呢?”这些问题确实有些可怕。

有一些开发人员甚至都没有花太多心思去仔细思考这个问题。为了安逸,我们倾向于遵循已经设计好的路线。要创造自己的路线非常艰难,所以我们不会去做。事实上,我们会接受第一份录用通知提供的工作,一直待下去,直到有更好的机会出现,或者被解雇(我的意思是“下岗”)。

无论因为何种原因你没有为自己的职业生涯设定目标,现在都是时候设定目标了。不是明天,也不是下周,就是现在。没有明确的方向,你走的每一步都是徒劳的。不要随心所欲地生活,不要随遇而安地行走在职业生涯的漫漫长路上。如何设定目标

好了,现在我已经说服了你,你需要设定一个目标,那么接下来你该怎么做呢?起步阶段最简单的就是在心中树立一个大目标,然后再建立能帮你达成这个大目标的小目标。因为很难清晰地界定远期可能发生的事情,所以大目标通常不是非常明确。不过没关系,当你制订远期的大目标时,不一定要非常具体。大目标只要足够具体到给你提供清晰的方向即可。让我们回到前面关于航海的类比。如果我想航海去中国,我没必要立刻知道要驶向的港口的精确的经纬度。我可以跳上船,向着中国的航向前进。随着离目标越来越近,我就能获得更具体的数据。启航后我需要知道的就只是自己离中国越来越近,还是越来越远。

大目标并不需要那么具体,但是必须足够清晰,能够让你知道自己是在向它前进还是离它越来越远。想一想你的职业生涯的终极目标。想成为一家公司的经理或主管?想在某一天走出去开拓自己的软件开发业务?想成为一名企业家创建自己的产品并将其推向市场?对我来说,我的目标一直都是最终能凭自己的能力走出去,为我自己工作。

这一切都取决于你确定的大目标是什么。你希望从职业生涯中收获什么?你希望自己5年或10年后在哪里?来吧,花点儿时间思考一下——这的确非常重要。

一旦你想通了自己长远的大目标是什么,下一步就是设定路线,制订通往大目标的小目标。有时还可以运用一下逆向思维,反推一下如何从大目标到当前的情况:如果你已经达到了大目标,那么沿途你都经历了哪些里程碑?你能想象出哪条路径可以让你从大目标反推到你现在的情况?

有一段时间,我给自己设定了一个大目标——减掉100磅。我不能让自己身材走形,我想重回正轨。我还为自己设定了小目标——每两个星期减掉5磅。每两个星期我都能达到我的小目标,推动我向着大目标前进。

如果你可以驱动小目标逐渐前行并靠近你的大目标,那么最终你一定会到达目的地。设定大小不同的目标,确保你向着自己的大目标前进,这一点非常重要。例如,你设定了一个年度目标,阅读很多技术书籍,或是学习新的编程语言。这个年度目标可能是引领你走向“成为一名高级开发人员”这个大目标的小目标。同样,每年的目标可能被分解成更小的目标,比如每月阅读一本书,或者每天读多少页。设置目标的步骤

较小的目标可以让你航行在自己的轨道上,激励你保持航向朝着更大的目标前进。如果你准备达成一个大目标,却没有分解为小目标,那么当你偏离航向时也不会有时间去校正。达成较小的目标也能经常奖励自己,帮助并激励自己。每一天、每一个星期的小胜利会让我们觉得自己正在取得进展、达成目标,这让我们感觉良好,帮助我们继续前进。较小的目标似乎也不像大目标那样令人望而生畏。

想想这本书的写作。我给自己设定的目标是:每天要写多少,每周要写多少。这样,我就不会再纠结写完整本书这一大目标,相反,我从自己的每日目标的角度出发,清楚地知道自己每天要做什么,最终实现了写完这本书这一大目标。

如果你还没有足够的时间去思考自己的未来,你还没有一个清晰、明确的目标,那么赶快放下这本书,为自己确定一些目标。这并非易事,不过你会很高兴自己那么做了。不要成为大海上漫无目的随波逐流的船。启航之前总要规划好航海图。追踪你的目标

你应该定期追踪并更新自己设定的目标,必要时还要调整。你并不想偏离航海图数英里之后才发现自己走错了方向,也不想沿着一条路线走了很远却发现这条路是错的。

我建议你定期核对自己的目标。这有助于在必要时进行调整,让你对自己负责。你可能愿意在每周末为下一周设定目标之前先检查上周设定的目标。这同样适用于每月、每季和每年。

反思自己在短期和长期取得的成果是大有裨益的,你能够弄清自己是否取得了合理的进展,或者是否需要进行某些调整。采取行动

坐下来,为你的职业生涯设置至少一个大目标。

将大目标分解成相应的若干小目标,例如:● 月度目标;周目标;每日目标。

把你的大目标写在自己每天的必经之地,每日三省吾身——我在追求什么。第4章 人际交往能力:远比你想象的重要

在一定程度上,这本书全都是关于人际交往能力或曰“软技能”的。作为正在阅读本书的一名读者,你可能至少在某种程度上意识到了人际交往能力对你的生活和职业生涯的重要性。不过在本章中,我将更深入地阐述为什么人际交往能力如此重要,以及你做哪些事情来获取这种能力。别管我,我只想一个人安静地写代码!

我曾经对软件开发人员的工作的印象就是写代码。我知道自己不是唯一一个抱有这种“罪恶”想法的人。

事实是,在软件开发领域,我们大多数时候是与人而非与计算机打交道。甚至我们所写的代码首先是供人使用的,其次才是让计算机可以理解的。如果不是这样,我们干脆直接把代码写成0/1这样的机器语言好了。如果你想成为一名出色的软件开发人员,就得学会高效地与他人相处(即使写代码是你工作当中最为享受的一部分)。

仔细想想自己在工作中有多少时间用在了与人互动上,你马上就能意识到改善人际交往能力的价值——早上上班,你坐下来之后干的第一件事情是什么?没错,检查电子邮箱。那是谁给你发邮件呢?是计算机吗?是你的代码给你发邮件,要求你去完成它、优化它吗?都不是!邮件是人发的,任务是人布置的。

白天你会开会吧?你会与同事商讨你正在处理的问题,制订解决策略吧?当你终于坐下来写代码的时候,代码要写什么?需求从何而来?

如果你还是觉得自己的工作就是写写代码,那你最好要三思。作为一个软件开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。学会如何与人打交道

许多优秀的书籍都已经论述了“如何与人打交道”这个主题,我也会在第七篇列一个我本人的书单,列出我认为其中最好的书,所以我并不打算在本章这短短的篇幅里做到面面俱到。但我想介绍一些你应该了解的基本概念,这样可以事半功倍。我会大量引用我永远的最爱——Dale Carnegie的《人性的弱点》(How to Win Friends and Influence People)[Gallery Books,1998]一书中的观点。每个人都希望感到自己很重要

当你和别人打交道的时候,你应该知道的最重要的一个概念就是:以自己为核心,每个人都希望自己很重要。这是人类最深邃、最致命的欲望之一,也是社会和生活中取得伟大成就的主要动机。

每当你与他人交流时,请谨记这一准则,并时刻洞察自己将会对人类的这一基本需求有何影响。一旦你贬低他人,削弱他们的成就感,在某种程度上就如同切断了他们的氧气补给,获得的回馈将完全是抓狂和绝望。

我们常常容易犯的一项错误就是,轻率地否决同事的想法,以便于可以提出自己的想法。然而随着你作出这样的错误判断,你往往会发现他们对你的想法充耳不闻,仅仅因为你让他们感觉自己是无足轻重的。如果你希望人们接受你的想法,并认可其中的价值,首先你最好先主动给他人相同的礼遇。如果你不能保全他人的自尊,那你永远也不可能赢得他的心。永远不要批评

理解了第一个概念后,你应该能马上意识到“批评”是一项很少能够达成你期望结果的工具。我曾经是一个“伟大”的批判者。我曾经认为,相较于奖励,处罚是一个更有效的激励手段,但我大错特错了。

一项又一项的研究表明,奖励积极行为要比惩罚消极行为有效得多。如果你身处领导管理岗位,这是一条值得遵守的重要原则。如果你想激励他人做出最好的表现,或者希望达到改变的目的,你必须学会管住自己的舌头,只说些鼓励的话。

也许,你目前的老板或者曾经的老板缺乏对这一原则的清醒认识,他们对所有的错误行为总是报之以直接而又严厉的批评。对此你的感觉如何?批评能否让你感到被激励,从而将工作做得更好?不要指望其他人对批评会有截然不同的反应。如果你想去激励团队鼓舞士气,那么就用表扬代替批评吧。换位思考

在人际交往方面获得成功的关键在于:停止用“我”和“我想要什么”来思考。你应当开始思考对他人而言什么才最重要,什么才是他们需要的。通过这种换位思考,你会避免让他人觉得自己不受重视,你也能少批评人。被你用这种方式对待的人,也更可能用讨人喜欢的方式与你打交道,也更认可你的想法的价值。

当你第一次与某位同事或者老板谈话的时候,请试着将注意力从自己身上转移到他们身上,试着从他们的角度来思考问题。是什么让他们感到索然无味?什么对他们又是至关重要的?聚精会神地聆听,当轮到你发言的时候,娓娓道来,一语中的。(实际运用中,你可以提前排练一下这种场景,提前准备好如何进行这种谈话。)

直截了当地告诉老板为什么你喜欢想用某种方式实现某个功能,这并不明智。更好的办法是从对方的心态出发提出建议,阐明为什么采用你建议的方法实现该功能对老板非常有用。理由可能是“让软件更稳定”,或者“能让软件按时交付”。避免争吵

作为软件开发人员,我们有时候倾向于认为所有人都是从逻辑角度来思考问题的,这很容易让你落入陷阱,错误地认为严谨的推理足以使他人接受你的思维方式。

事情的真相是:尽管我们为自己的智慧感到骄傲,但我们依然是情感动物。我们就像那些穿着西装、打着领带、四处游荡的小孩,假装自己已经长大,其实任何轻微的伤害都能让我们号啕大哭,或者大发雷霆,我们只是已经学会了如何控制和隐藏这些情绪。

出于这个原因,我们必须要不惜一切代价避免争吵。既然逻辑和纯粹的理性无助于说服一个尖声大叫的小孩明白睡觉能让他得到充分

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载