Soft Skills The software developer's life manual
总的来说,我们总想得到自己得不到的东西,我们总想得到别人也想得到的东西。
希望越大,失望越大,你就越不可能得到。
在行为上体现出自信,用一种自然随和且充满自信的态度与别人交往。“我自己感觉很好,我不需要你,但是我觉得你挺有意思的,所以我想更好地了解你。”(当然我不会真的说出这句话。)
需求最大的人在任何谈判中通常都会处于劣势。
获得工作的另一种方法是通过他人推荐。你认识一家公司里的某个人,他们亲自推荐你应聘某个职位,最终你获得了这份工作。这种方式绝对要比自己申请职位好很多。
没有要解决的问题的产品毫无意义,毫无意义的产品自然也就不会有用户,也就意味着你不会赚到钱。
许多软件开发人员一开始就深陷创业者最常犯的错误之中——在为产品找到客户之前就构建好产品。
只有你开始把自己当作一个企业去思考时,你才能开始做出良好的商业决策。
把雇主当作是你的软件开发企业的一个客户吧。
在一定程度上,这本书全都是关于人际交往能力或曰“软技能”的。
最重要的一个概念就是:以自己为核心,每个人都希望自己很重要。这是人类最深邃、最致命的欲望之一,也是社会和生活中取得伟大成就的主要动机。
在人际交往方面获得成功的关键在于:停止用“我”和“我想要什么”来思考。你应当开始思考对他人而言什么才最重要,什么才是他们需要的。
有的人不管怎么样就是无法相处,有的人就是抓住一切机会贬低别人,对生活中的一切抱有消极态度。我把他们称为“苛性碱”,你最好避开他们。
只有少数人才想雇一个“通才式”的律师。大多数潜在客户都倾向于聘请“专才”。
专业化的规则是:专业化程度越深,潜在的机会就越少,但获得这些机会的可能性越大。
从薪资和福利的角度评价一个潜在的工作机会是很容易的,但是从长期发展和工作环境的角度去评价可能对你更为重要。
要在大公司晋升,你必须学会如何在复杂的政治气候中独善其身。如果办公室政治不是你的菜,你想要完全置身事外,那最好栖身于扁平化管理结构的小公司。
在任何公司里能让你脱颖而出的最重要法宝就是承担更多的责任。
有时候你不得不去主动寻找机会,去负责一项任务,或者牵头一个项目。
保证“曝光度”——定期与老板会面,确保你经常被注意到。
找人修改简历:有的人为了卖出去100美元的东西,不惜工本对广告内容精雕细作,有的人却想凭借粗制滥造的广告卖出去要价6万多美元的东西。
先出价的人会处于明显的劣势。
被要求先出价该怎么办千万不要先出价。直接说“不”。
人的身体就是人的灵魂的最好写照。——路德维希•维特根斯坦
“如果我比别人看得更远,那是因为我站在巨人的肩膀上。”——艾萨克•牛顿
当我说到“优秀的软件开发人员”时,我并不是说要精于编码之道,善于解决缺陷,通晓单元测试。相反,我所说的“优秀的软件开发人员”,是那些能够把控自己的职业生涯、达成目标、享受生活的人。
你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感已然尽失。职业发展的驱动力一定是来自个体本身。记住:工作是属于公司的,而职业生涯却是属于你自己的。——厄尔•南丁格尔
当你为了谋生一头扎进写代码的世界时,其实你和中世纪小镇上开铁匠铺的铁匠没什么差别。
只有你开始把自己当作一个企业去思考时,你才能开始做出良好的商业决策。
把雇主当作是你的软件开发企业的一个客户吧。
职业生涯中必须要做的第一要务:转变你的心态,从被一纸“卖身契”束缚住的仆人转变为一名拥有自己生意的商人。
仅有服务或产品是不够的。想赚到钱,你就必须能让潜在的客户了解该产品或服务。
大多数人,包括软件开发人员在内,要么缺乏对自己人生目标的具体认知,要么没有尽力去实现自己的人生目标,浑浑噩噩混过一生。这是大多数人的自然状态。
在一定程度上,这本书全都是关于人际交往能力或曰“软技能”的。
别管我,我只想一个人安静地写代码!
我们所写的代码首先是供人使用的,其次才是让计算机可以理解的。如果不是这样,我们干脆直接把代码写成0/1这样的机器语言好了。
最重要的一个概念就是:以自己为核心,每个人都希望自己很重要。这是人类最深邃、最致命的欲望之一,也是社会和生活中取得伟大成就的主要动机。
一旦你贬低他人,削弱他们的成就感,在某种程度上就如同切断了他们的氧气补给,获得的回馈将完全是抓狂和绝望。
我们常常容易犯的一项错误就是,轻率地否决同事的想法,以便于可以提出自己的想法。
如果你希望人们接受你的想法,并认可其中的价值,首先你最好先主动给他人相同的礼遇。如果你不能保全他人的自尊,那你永远也不可能赢得他的心。
奖励积极行为要比惩罚消极行为有效得多。
在人际交往方面获得成功的关键在于:停止用“我”和“我想要什么”来思考。你应当开始思考对他人而言什么才最重要,什么才是他们需要的。
如果你因为“该怎么做某事”与他人产生分歧,那么在很多情况下,你最好先确定分歧点是否值得你去拼命维护。
有的人不管怎么样就是无法相处,有的人就是抓住一切机会贬低别人,对生活中的一切抱有消极态度。我把他们称为“苛性碱”,你最好避开他们。
面试是一项需要掌握的关键技能。
与主流观念相反,大多数面试官决定雇用某个人其实是基于各种各样的非技术因素。
通过面试的最快捷的方式是让面试官对你怀有好感。
大量工作岗位来自“个人推荐”。你要试图确保你申请的职位也适用于个人推荐。如果你是被他人推荐去面试,因为有推荐人的社会公信力做背书,面试官会自然而然地高看你一眼。推荐人的声誉及他与面试官的交情,有一部分就延伸到了作为应聘者的你的身上。当你进入面试环节,面试官早就对你有所偏爱,因为你是由他们喜欢和信任的人推荐来的。
如何找到推荐人?在我的例子中,我找到了已经在这家公司工作的开发人员的博客,并与他们建立了联系。于是当有新工作岗位时,获得他们的推荐也就轻而易举。
你最好尽早与面试官建立联系,尽最大可能做好如下工作:看看能不能在面试之前得到预面试的机会,在你坐下来进行真正的面试之前请求跟面试官见面,谈谈公司状况,或者问一些问题。你可以打一个5分钟的电话和对方简短地聊一聊。想方设法在能影响面试结果的人面前展示自己。
你也可以未雨绸缪,拓展自己的社交网络。开始与本领域不同公司的员工接触,建立联系,他们日后可能会帮到你。
即便你现在对换新工作毫无兴趣,为了获得面试经验,你也要去面试。练习得越多,你在真正的面试时也就越游刃有余。
作为创业者几乎没有稳定可言。
创业者的生活如同坐过山车一般:今天顾客购买你的产品,你感觉仿佛屹立在世界之巅,明天你的项目急转直落,你可能要为如何付房租而愁肠百结。
专业化很重要。
只有少数人才想雇一个“通才式”的律师。大多数潜在客户都倾向于聘请“专才”。
尽管看起来你有一大拨潜在客户,但现实上,身为一个“通才式”的律师,你的客户群会大幅缩减
从表面上看,身为“专才”后,潜在雇主和客户群都变小了,但是实际上你对他们更具吸引力了。只要你专业能力雄厚,市场没有过渡饱和,与那些自称为“软件开发人员”的人相比,你能更轻松地找到工作或者赢得客户。
在一个专业方向上拥有专长。
专业化的规则是:专业化程度越深,潜在的机会就越少,但获得这些机会的可能性越大。
能够使用多项技术和多种编程语言,有助于你的职业发展,能让你比那些仅了解一项技术或一种编程语言的软件开发人员更有价值。然而,这种“万金油”式的人才在市场上并不吃香。
团队里有一个全能的开发人员是件好事,但是很少有公司或客户会去寻找这样的人才。
从薪资和福利的角度评价一个潜在的工作机会是很容易的,但是从长期发展和工作环境的角度去评价可能对你更为重要。
如果你乐于看到自己的工作成效,那么小公司无疑是最佳场所。因为小公司员工很少,每个人的作用都能被注意到,甚至直接影响到公司收入。
中等规模的公司往往要比大公司还稳定,因为大公司往往还有大裁员或者周期性重组。
在为一家大公司工作时,你会注意到的最大的事情也许就是那里大量的规范和流程。
在大公司工作时,你要遵守这里已有的做事方式。鲁莽和“变节者”在这种企业文化里不受欢迎。
为大公司工作的一个显而易见的事情就是成长机会。当我为一家财富500强的公司工作时,我获得了许多培训机会,各种软件产品供我使用。许多大公司提供职业发展指导,帮助你在组织内部学习和成长。你也可能有机会做一些很酷的东西。中小规模的公司可没有如此庞大的预算去做改变世界的大型项目。
关于大公司的最后一点是:办公室政治。大公司通常有着复杂的政治体制,堪比大型政府机构。作为软件开发人员的你可以尽量避开政治,但即便如此,其他人的政治权谋也会以某种方式影响到你。
要在大公司晋升,你必须学会如何在复杂的政治气候中独善其身。如果办公室政治不是你的菜,你想要完全置身事外,那最好栖身于扁平化管理结构的小公司。
一个需要考虑的重要因素是下面两类公司之间的区别:一种是软件开发人员只负责内部软件或他们正在生产的部分产品的公司,另一种是生产软件或者做软件开发就是核心业务的公司。
那些并非专注于软件开发业务的公司雇用软件开发人员只是为了开发自己系统的某些方面,对待软件开发人员的方式也与那些主要专注于软件开发业务的公司截然不同。
我认识的IT行业人士里有不少人似乎从来就没晋升过。年复一年,他们工作在同一岗位上,停留在同一职位上。
承担责任
在任何公司里能让你脱颖而出的最重要法宝就是承担更多的责任。
有时候你不得不去主动寻找机会,去负责一项任务,或者牵头一个项目。
引人注目
如果你一直默默无闻,你的成就不为人知的话,即使你是团队中最聪明、最努力、最出色的开发人员,那也一文不名。如果找不到方法让你的老板或高层管理人员知道你在做什么,那你的所有努力都是徒劳的。
每当我开始新工作时,我所做的第一件事就是记日志,记录我每天都把时间花在哪儿了,完成了哪些工作。我会将这些信息汇总成周总结,在每个周五发送给我的经理。
还有其他许多方式能让你在所在的机构中更加引人瞩目。其中最好的一种方法就是做一个关于团队当前正面临的主题或者问题的演讲。
保证“曝光度”——定期与老板会面,确保你经常被注意到。
自学
在我职业生涯的早期,我感觉自己上升空间有限,于是决定去考取微软认证证书。我努力学习,通过了所有测试,获得了一个顶级微软认证。这并不容易,但我很快就看到它对我职业生涯的价值。通过这些额外的努力,我向经理表明:我严肃对待自己的职业生涯
成为问题的解决者
在任何组织中,总是有很多人会告诉你为什么这个想法行不通,为什么那个问题太难。这样的人不胜枚举。千万不要成为他们中的一员。
你真正工作的时间到底有多长
即使在那些我工作过的公司里我都是出色的员工,我每天努力工作时间其实还不到一半。
在一个8小时的工作日里,我们大多数人可能只工作4小时,我相信在有些日子里会更少。
问问你认识的人
你该怎样得到你的第一个客户呢?获得客户的最佳方式是通过你已经认识的人。
怎么收费
作为自由职业者,你大概需要收取每小时75~100美元的费用才能在净收入方面等同于你做员工时每小时50美元的薪水。
通用的规则是,成为了自由职业者之后,你的时薪水平应该是作为全职雇员时的两倍(见表12-1)。
如果你的营销策略是基于自己的服务可以为客户节省大笔开支或者提高他们的业务,你就可以根据自己的服务为客户带来的价值来定价。
找到受众
许多软件开发人员一开始就深陷创业者最常犯的错误之中——在为产品找到客户之前就构建好产品。
人类创造出的每个产品(包括这本书在内)都是为了解决某个特定的问题。没有要解决的问题的产品毫无意义,毫无意义的产品自然也就不会有用户,也就意味着你不会赚到钱。
不做大,毋宁回家
多数创业公司的创始人都有所谓的退出策略。典型的退出策略就是说,当公司成长到一定规模的时候希望公司被人收购
你可能想要创建一个能够长期持有的公司,但是你必须要认识到,愿意向你的公司注资的投资人都希望能够最终套现获利,得到属于他们的投资回报。
创业加速器
要想在创业启动时获得额外的帮助,申请加入创业加速器计划是个好方法。加速器是帮助创业型企业启动项目的计划,通过向创业公司注入小额资金来换取公司的一些股份。
获得投资
涉及放弃新公司的股权时,请你务必要小心。股权是你创业的命脉。没有股权,你的辛勤工作就无法获得回报,你也无法回报投资者。对于要对让出多少股权、让给谁这样的问题,你要非常谨慎。
假装自己能成功。
有的人为了卖出去100美元的东西,不惜工本对广告内容精雕细作,有的人却想凭借粗制滥造的广告卖出去要价6万多美元的东西
你不是专业的“简历写手”
你的简历如此糟糕,其实另有原因。很简单,你不是专业的简历写手,不以写简历为生。我打包票,那些制作出精美的帆伞广告小册子的姑娘小伙们,是以设计宣传册或其他广告物料为生的。
对技术虔诚的一大问题是,我们中的大多数崇拜某项特定的技术,只是因为自己熟悉这种技术。我们很自然地会相信自己选择的是最好的,然而这会让我们经常忽略任何反对意见。
营销就是一场争夺人们注意力的竞赛。——Seth Godin
你有去过酒吧夜店看过驻场乐队的演出吗?那些乐队的演唱水平丝毫不亚于原唱的艺术家们。
在生活中,仅仅拥有才华是远远不够的。伟大的音乐家和超级巨星之间的真正区别无非就是营销而已。
营销的核心在于将一些人所需要的所期待的产品或者服务与产品或服务本身连接起来。
“自我营销”也就是把希望得到你提供的产品或者服务的人和你自己连接起来。
自我营销的正确方式就是为他人提供价值。
成功进行自我营销的关键在于:如果想让别人喜欢你,想和你一起工作,你就必须要为他们提供价值。
在你职业生涯的某个时刻,你可能发现自己的技术水平已经能够与顶级开发人员并驾齐驱。其实许多软件开发人员经过大约10年的职业生涯都能达到这个水平。一旦达到这一水平,要想再提升会变得异常困难,因为你已经“泯然众人矣”。
品牌并不只是商标。品牌是对产品或服务的一整套预期。
品牌即承诺:承诺按照你预期的方式交付你所预期的价值。
要打造一个品牌,你需要四个要素——品牌所要传递的信息、品牌的视觉符号、品牌的一致性和品牌的曝光率。
坦白地讲,我职业生涯的大部分成功要归功于我的博客。如果我没有创建一个博客并且使它成功,你也不可能读到这本书。
当你申请一份工作的时候,你的简历通常大概只有两页的篇幅。当你接受面试的时候,你通常会跟面试官聊上一两个小时。以如此简短的简历和如此短暂的面试来评估一名软件开发人员的技能非常困难,所以雇主以此判定某个人是否适合某个工作岗位也颇具难度。
打造成功博客的最大秘诀有且仅有一个——持之以恒。我和许多成功的博主都谈论过,他们都有一个共同点——写了很多博客。
评论其他人的博客。找到撰写类似主题的博客的开发人员,在他们的博客写下有意义的评论,只要有机会就链接到自己的博客上。
在社交网络上分享你的博客文章,在你的电子邮件签名的底部以及所有的在线个人主页中添加你的博客链接。
社会媒体面临的一大挑战就是保持活跃度。如果你不能持续不断地在你的社交媒体上保持足够的活跃度,你将会丢掉大量粉丝。
除非你愿意每天都投入大量的时间,否则你不可能在所有的社会化媒体平台都保持很高的活跃度。那么,最有可能的情况就是,选择一到两个作为你最心仪的平台。
书籍和杂志都不赚钱许多软件开发人员误解了写书的原因。他们想当然地认为大多数图书和杂志作者能够通过写作赚大钱。但是,事实很简单,你不会为了赚钱而去写书。写书是为了提高自己的声誉。
不要指望可以直接通过写书或发表杂志文章致富,除非你碰巧非常非常幸运,轻松写出一本畅销书。
要想让自己有机会出书,最好的办法就是明确一个有市场需求的主题,同时也能够充分展示你作为该领域专家的学识。
成就我们的恰恰就是那些不断重复做的事情。因此,优秀不是一种行为,而是一种习惯。——亚里士多德
任何行动往往都比没有行动好,特别是当你一直停滞在不愉快的情势下很长时间的时候。如果这是一个错误,至少你学到了一些东西。这样一来,它就不再是一个错误。如果你仍然选择停滞不前,那么你就学不到任何东西。——埃克哈特·托利,《当下的力量》(The Power of Now)
我有个经营“发薪日贷款”业务的朋友,
有一次我问他,都是哪些人来找他贷款。我觉得大多应该是入不敷出、只能透支未来的穷人。但是,他的回答让我大吃一惊。他说,尽管他的大多数客户都生活在贫困线以下,但是医生、律师和其他年收入10万美元以上的高收入的专业人士也占有相当大的比例。
赚钱多并不能让一个人在财务上更精明。
获得工作的方式至关重要
你看到一份招聘启事,然后发送自己的简历去申请该职位,最好再附上一封优美的求职信。事实上,许多求职者想当然地认为这是获得工作的唯一方式。其实,这是获得工作最糟糕的一种方式。如果以这种方式获得一份工作,很难在薪酬谈判时占据有利地位,因为和雇主比起来,你处于明显的弱势。你是竭尽所能渴望求得那份工作的人。
需求最大的人在任何谈判中通常都会处于劣势。
获得工作的另一种方法是通过他人推荐。你认识一家公司里的某个人,他们亲自推荐你应聘某个职位,最终你获得了这份工作。这种方式绝对要比自己申请职位好很多。
先出价的人会处于明显的劣势。
被要求先出价该怎么办千万不要先出价。直接说“不”。
如果雇主坚持让你出价,那么他们没有理由不说出他们的心理预期,甚至是先说出来。所以,试着强硬一点,让他们先出价。
你可以这样说:“我无法给出一个确切的数字,因为这完全依赖于整体薪酬方案是怎样的。不过我希望找一份在7万~10万美元的工作。当然,这也取决于整体薪酬方案。”
被问及当前薪酬该怎么办
“我宁愿不告诉您我目前的薪水,因为如果它高于您为这个职位设定的预算,我不希望就因为这个就丢掉了本次工作机会——因为我愿意为了合适的职位适当降低收入水平。但是,如果它低于这个工作将会支付的薪酬,我也不想自贬身价。我相信您一定能够理解。”
你也可以说“我不想回答这个问题”,或者回答“因为我与现在的雇主签有保密协议,不能与其他人讨论具体的薪资数目”。
如果非得说出一个数额,尽可能通过谈论可以影响到整体薪酬方案的奖金、福利等,让这个数额灵活多变,或者告诉他们整体薪酬方案为X美元,再加上你现在获得的各种福利。
拿到offer的时候
“我很乐意为贵公司工作。这份工作听起来相当不错,能与您的团队一起工作我也很激动。不过,我仍然对这个数额有一点点犹豫。如果您能提高到X美元,我可以今天就确定并签约。”
最后一些建议
告诉他们你已经有几个offer,现在正在深思熟虑,希望做个最好的决定。但是,要小心,语气不要太傲慢。自信是好事,傲慢就是坏事了。
在所有个人可以做的投资中,我认为房地产投资是目前为止最好的。再没有其他投资方式像房地产一样能够保障长期收益,能够允许如此高的资本负债。
人的身体就是人的灵魂的最好写照。——路德维希•维特根斯坦
那些不能激励自己的人一定是甘于平庸的人,无论他们的其他才能有多么令人印象深刻。——Andrew Carnegie
总的来说,我们总想得到自己得不到的东西,我们总想得到别人也想得到的东西。
希望越大,失望越大,你就越不可能得到。
在行为上体现出自信,用一种自然随和且充满自信的态度与别人交往。“我自己感觉很好,我不需要你,但是我觉得你挺有意思的,所以我想更好地了解你。”(当然我不会真的说出这句话。)
你必须要对自己表现出足够的自信,你真的相信你不需要别人给你带来快乐。
如果你能明白大多数情侣关系其实是“你追我逃”的微妙心理游戏作用的结果,你就会更容易找到真爱。这不只适用于爱情问题,也适用于各种人与人之间的关系。
做一个绝望的、缺乏自信的人,你可能会发现自己真的孤立无援。如果你发现你面试的对象就像大街上一个垂死挣扎的乞丐一样祈求你施舍给他工作岗位,你也会觉得他很惹人生厌。