赞
踩
在今年制定的目标管理计划中,我把提高软技能作为今天的一个重点提升方向,因为毕业十年了,我的同事们,跟我一样的前后端开发或者测试、数据库工程师们,他们每年的目标大部分仍是如果提升自己的技术能力,也有一些想提升管理能力的,还有一些能提出来想陪家人旅游一趟或者好好照顾孩子的,但是很少见到有人提到我们这些科技工作者(理科宅男)比较欠缺的职场软技能,包括职场汇报做PPT啊,理财,健身,演讲口才,甚至心理学等,所以我打算写个专栏文章发表一下个人见解。当前个人见解可能有失偏颇,所以我还是得提前翻看阅读大量的相关文章,才敢写点感想,希望能对读者产生积极的影响,哪怕受到一点点的心里触动,我也会非常欣慰。
话不多说,本文思想的启蒙来自 John Sonmez导师,他由很多头衔,一生追求”将复杂问题转换为简单解决方案“的梦想,帮助非常多的软件工程师、程序员和其他专业技术人员推动事业进步,过上更充实的生活。
这是一本真正从”人“(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中”人“的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你的个人品牌,从提升自己的工作效率到如何与“拖延症”做斗争,甚至包括如何关注自己的健康,如何理财。
对,这本书讲到了生活工作的方方面面,除了代码。在冷酷无情的代码世界里,一切都是那么容易测量。你能写多少行代码?你的生产效率怎样?今天做的功能都测试通过了吗?… 我们很容易就陷入这些数据中而忽视了技术中“人”为的不可测量因素。如果我刚毕业的时候读到这本书该多好啊…
本书包含七大章节内容
提示:这是你职业生涯中必须要做的第一要务:转变你的心态,从被一纸“卖身契”束缚住的仆人转变为一名拥有自己生意的商人。在起步阶段就具备这种心态会改变你对职业生涯的思维方式,将此铭记在心,并积极主动地管理自己的职业生涯。
如何将自己当作一个企业,以及这究竟意味着什么?我们可以先从思考企业是由什么构成的开始。大多数成功的企业都需要以下几样东西。首先,要有一个产品或服务。不能提供东西的企业是没办法赚钱的,因为没有东西可卖。你有什么可以卖?你的产品或服务是什么?
大多数软件开发人员卖的是开发软件这项服务,通常软件开发人员售卖的就是他们把一个想法变成一个数字化的现实产品的能力。即使只是想一想“作为一个企业我能提供什么”,就会对你如何考量自己的职业生涯产生深远的影响。企业需要持续不断地改进和完善自己的产品。你也应该这么做。
作为一名软件开发人员,你提供的服务具备有形价值,你要传达的不仅是这款软件的价值是什么,还有它与别的成千上万款软件开发人员提供的服务有何不同。同时,有一点很重要:你需要认识到仅有服务或产品是不够的。想赚到钱,你就必须能让潜在的客户了解该产品或服务。全世界的公司都认识到了商业社会的这一核心真理,这也是他们在市场营销上投入重金和精力的原因。作为一名提供服务的软件开发人员,你也要关注市场营销。产品营销做得越好,你就能给服务定越高的价格,也越有机会吸引更多潜在的客户。你可以想象,大多数软件开发人员在开始的时候并不是以这样的方式来规划自己的职业生涯的。他们伴着一首声音低得几乎听不见的流行音乐一头扎进工作中,根本不能做到“非同凡响”。所以,千万别像他们这样。
相反地,你需要做到:
每个人都是独一无二的,你为自己设立的职业目标肯定与我的不同。但是,要实现任何目标,都必须先知道目标是什么。当然,说比做要容易得多。我发现大多数人,包括软件开发人员在内,要么缺乏对自己人生目标的具体认知,要么没有尽力去实现自己的人生目标,浑浑噩噩混过一生。这是大多数人的自然状态。我们通常不会充分思考自己该关注什么,因而我们的行动也就漫无目标、无的放矢。
大多数软件开发人员都害怕为自己的职业生涯设定一个长远的蓝图。因为惧怕选定后要一往无前,他们希望自己有各种选择。“如果这条路错了我该怎么办呢?”“如果我不喜欢自己选的路又该怎么办呢?” 这些问题确实有些可怕。
有一些开发人员甚至都没有花太多心思去仔细思考这个问题。为了安逸,我们倾向于遵循已经设计好的路线。要创造自己的路线非常艰难,所以我们不会去做。事实上,我们会接受第一份录用通知提供的工作,一直待下去,直到有更好的机会出现,或者被解雇。无论因为何种原因你没有为自己的职业生涯设定目标,现在都是时候设定目标了。没有明确的方向,你走的每一步都是徒劳的。不要随心所欲地生活,不要随遇而安地行走在职业生涯的漫漫长路上。 那么接下来你该怎么做呢? 起步阶段最简单的就是在心中树立一个大目标,然后再建立能帮你达成这个大目标的小目标。因为很难清晰地界定远期可能发生的事情,所以大目标通常不是非常明确。不过没关系,当你制订远期的大目标时,不一定要非常具体。大目标只要足够具体到给你提供清晰的方向即可。举例如果我想航海去中国,我没必要立刻知道要驶向的港口的精确的经纬度。我可以跳上船,向着中国的航向前进。随着离目标越来越近,我就能获得更具体的数据。启航后我需要知道的就只是自己离中国越来越近,还是越来越远。
大目标并不需要那么具体,但是必须足够清晰,能够让你知道自己是在向它前进还是离它越来越远。想一想你的职业生涯的终极目标。想成为一家公司的经理或主管?想在某一天走出去开拓自己的软件开发业务?想成为一名企业家创建自己的产品并将其推向市场?对我来说,我的目标一直都是最终能凭自己的能力走出去,为我自己工作。
这一切都取决于你确定的大目标是什么。你希望从职业生涯中收获什么?你希望自己5年或10年后在哪里?来吧,花点儿时间思考一下——这的确非常重要。一旦你想通了自己长远的大目标是什么,下一步就是设定路线,制订通往大目标的小目标。有时还可以运用一下逆向思维,反推一下如何从大目标到当前的情况:如果你已经达到了大目标,那么沿途你都经历了哪些里程碑?你能想象出哪条路径可以让你从大目标反推到你现在的情况?
如果你可以驱动小目标逐渐前行并靠近你的大目标,那么最终你一定会到达目的地。设定大小不同的目标,确保你向着自己的大目标前进,这一点非常重要。例如,你设定了一个年度目标,阅读很多技术书籍,或是学习新的编程语言。这个年度目标可能是引领你走向“成为一名高级开发人员”这个大目标的小目标。同样,每年的目标可能被分解成更小的目标,比如每月阅读一本书,或者平均每天读多少页。
你应该定期追踪并更新自己设定的目标,必要时还要调整。你并不想偏离航海图数英里之后才发现自己走错了方向,也不想沿着一条路线走了很远却发现这条路是错的。
我建议你定期核对自己的目标。这有助于在必要时进行调整,让你对自己负责。你可能愿意在每周末为下一周设定目标之前先检查上周设定的目标。这同样适用于每月、每季和每年。反思自己在短期和长期取得的成果是大有裨益的,你能够弄清自己是否取得了合理的进展,或者是否需要进行某些调整。
我曾经对软件开发人员的工作的印象就是写代码。我知道自己不是唯一一个抱有这种“罪恶”想法的人。事实是,在软件开发领域,我们大多数时候是与人而非与计算机打交道。甚至我们所写的代码首先是供人使用的,其次才是让计算机可以理解的。如果不是这样,我们干脆直接把代码写成0/1这样的机器语言好了。如果你想成为一名出色的软件开发人员,就得学会高效地与他人相处(即使写代码是你工作当中最为享受的一部分)。
仔细想想自己在工作中有多少时间用在了与人互动上,你马上就能意识到改善人际交往能力的价值——早上上班,你坐下来之后干的第一件事情是什么?没错,检查电子邮箱。那是谁给你发邮件呢?是计算机吗?是你的代码给你发邮件,要求你去完成它、优化它吗?都不是!邮件是人发的,任务是人布置的。白天你会开会吧?你会与同事商讨你正在处理的问题,制订解决策略吧?当你终于坐下来写代码的时候,代码要写什么?需求从何而来?
如果你还是觉得自己的工作就是写写代码,那你最好要三思。作为一个软件开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。
你必须要突破常规,想尽办法与公司内部人员建立联系。我听说,曾经有一位开发人员想找到负责某个职位的招聘经理。他发现这位经理是当地一家俱乐部的成员,这家俱乐部每周都有聚会。于是这位聪明的开发人员也加入了这家俱乐部,成为这位招聘经理的朋友。我敢断定,他甚至都没有经过正式的面试就获得了那家公司的职位。
不管你现在是正在积极寻找工作,还是给自己保留选择的余地,再没有比现在更好的时机去开始准备你的下一场求职面试了。你应该做的第一件事是确保自己仍旧保持技术能力。如果你力所不及,那么世界上所有的面试技巧都不能帮助你找到工作。确保自己一直阅读技术书籍和博客文章,并会花些时间提升自己的技能。
目前软件行业的选择大概分三个方向,成为一个雇员、独立做咨询业务、创业。对大多数软件开发人员而言,特别是在职业生涯的起步阶段,做一名雇员是明智的选择。这个选择的风险最小,你不需要具备大量的经验。我倾向于认为:做一名雇员就像当学徒一样。即使你已经树立了“为自己工作”的志向,做雇员是学习并锤炼技能的良好起点。换句话说,如果你的职业生涯刚刚起步就有机会成为独立咨询师或创业者,并且你能接受随之而来的可能的风险,那么你就能够避免那些无可避免的失败和错误,给以后美好的职业生涯打好基础。
专业化的规则是:专业化程度越深,潜在的机会就越少,但获得这些机会的可能性越大。
在决定自己要去哪种公司工作的时候,另一个需要考虑的重要因素是下面两类公司之间的区别:一种是软件开发人员只负责内部软件或他们正在生产的部分产品的公司,另一种是生产软件或者做软件开发就是核心业务的公司。那些并非专注于软件开发业务的公司雇用软件开发人员只是为了开发自己系统的某些方面,对待软件开发人员的方式截然不同。如果公司的业务重心并非软件,那自然也不会给软件开发人员足够的尊重和发展空间。这些公司的软件开发实践极有可能非常松散。另一方面,那些以软件开发为生的公司则会更重视自己雇用的软件开发人员的价值。他们的工作环境不一定会更好,但会大不一样。
你可能也发现了,与雇用软件开发人员但核心业务并非软件的公司相比,软件开发公司会使用更为前沿的技术和工具。如果你想研究新技术,你应该直接去找一家软件开发公司。
1.当前的工作岗位上,你可以通过何种方式承担更多的职责?
2.对于你的老板和经理,你现在的“曝光度”如何?下一周,你可以采取何种具体方式来提升自己的“曝光度”?
3.目前你正在自己学习些什么?确定要自学的最有价值的东西是什么,制订一份下一年的自学计划。
专业人士会严肃对待自己的责任和事业,愿意作出艰难的选择去做自己认为是正确的事情——往往还要自己承担代价。
一切都始于习惯。习惯是成为专业人士的必不可少的部分。我们每天做的很多事情都是习惯性的。起床、上班、完成日常工作,大多数无需思考。如果你想改变自己的人生,那从改变自己的习惯开始。当然,说起来容易做起来难。坏习惯很难被打破,而新习惯又不容易养成。但是,如果想成为一名专业人士,你需要培养自己的专业习惯。有一次我在一个遵循Scrum过程的团队工作时,每天我们都有“每日站立会议”,说明自己已经做了什么、计划做什么、有哪些障碍。有位开发人员很特别,他总是提前写好要说的内容。每天在Scrum会议之前,他都会准备好自己的发言,而不是像我们大多数人那样开会时随口说。这是专业开发人员要养成的习惯。
有时候,专业人士必须对工作的优先级做出艰难的抉择。不专业的开发人员经常浪费时间去画蛇添足,因为他们要么不能确定下一步要做什么,要么他们得一直让别人来帮自己设定工作的优先级。专业人士会评估需要完成的工作,判定优先级后再开始工作。
作为一位专业人士,你必须不断改善和提高自己的工作品质。你或许不能一直达到自己期望的工作品质,但随着时间的推移,持之以恒地坚持下去,你终究会达到自己设定的标准。许多软件开发人员犯的一个巨大错误就是,当无法达到标准时,他们不是完善自己、迎接挑战,而是降低标准。
“没有一个切实可行的计划之前,我从不会贸然行事”,如果我这么说,我就是一个伪君子。我以前还真曾经冲动行事,结果一败涂地。最后我学聪明了。我想明白了:如果我真的想跳槽,唯一可能的方法就是,弄明白如何开展我的新业务(维持现有的工作岗位,把这个当作副业),并让它足够成功,这样即便薪水大幅减少,我依然能完成转型。
在考虑辞掉工作之前,你需要有一个切实可行的计划。我强烈推荐先在业余时间启动你想创建的业务,等能从这项业务中产生足以维持生计的收入时,你再转为全职。这种离职的过程漫长而又痛苦,但用这种方式做事非常重要,不仅是经济上的原因。
开启自己的一片天地开始自己的业务可以通过成为自由职业者或独立咨询师来实现。自由职业者不只为某一个客户工作,而是以固定价格或时薪的方式将自己“出租”给多个客户。
对软件开发人员来说,成为自由职业者极具吸引力,但是迈出这一步很难。在我的职业生涯中,作为一名雇员时我总是梦想着成为一名自由职业者,但是我一直不知道如何完成这个转变。我知道许多开发人员都以自由职业者的身份谋生,但是我不知道他们是如何设法找到客
户并推广自己的服务。
自由职业者需要通过营销自己来获得客户,可以通过以上三种方式做“吸引式”营销。
作为一名软件开发人员,你拥有成为一名企业家得天独厚的优势,不仅能提出概念或新想法,还能自己把它创造出来。正是出于这个原因,许多开发人员选择创业、选择自己创造产品,而别的企业家不得不雇用他人来实现自己的想法。正如你所知,开发定制软件可是价格不菲。
作为软件开发人员,你不仅能够开发软件产品,还可以开发书籍和视频这样的信息产品。
今天,越来越多的软件开发团队允许它们的开发人员在自己家里远程办公。有些团队甚至完全是虚拟团队,连真正的办公室都没有。虽然远程工作看起来可能像是一个梦想成真的故事,但是穿着睡衣工作的现实或许并不像想象中那么令人向往。在家办公的人必须要面对许多困难和挑战。
做“隐士”面临的挑战
当我说“假装自己能成功”的时候,并不是暗示你去撒谎或者假装拥有自己尚不掌握的知识和技能。相反,我的意思是,在你做事之前,可以暗示自己“我已经成功完成任务”。
所谓“假装自己能成功”,就是要有意识地让自己身处逆境,迫使自己学会拼搏。正是这种在生活中“假装自己能成功”的心态,带领自己勇敢走向未知领域,坚信挑战与机会并存。如果你想学会“假装自己能成功”,你就必须拥有破釜沉舟的勇气。
对软件开发人员来说,“假装自己能成功”通常最适用的场合就是在面试的时候。通晓某一岗位所需的所有技术的专家几乎不存在。不同的技术太多,你很难全部掌握,因此当你去面试一个岗位时,这个岗位所需的某些技能是你尚未掌握的。这里的关键词是“尚未”。许多开发人员参加面试时表现得紧张、很胆怯,表明他们缺乏自信,因为他们一旦工作中遇到自己没掌握或没见过的技术,他们就会怀疑自己完成工作的能力。他们相当短视,因为他们只会以现在的视角看问题。当下转瞬即逝,还没仔细看上几眼就成了过眼烟云。我们更应该着眼于未来。的确,在眼下你正在面试的这个时间里,你可能并未掌握出色完成工作所需的全部技术。但是你并非打短工的,公司也不是要短期雇用你。其他开发人员面试工作的时候也会欠缺某些技能或经验,只是领域不同而已。正因为如此,你要散发出自信和能干的气场,知道自己曾经面对挑战迎难而上,并且更有理由相信自己将来也会那么做。
有的人为了卖出去100美元的东西,不惜工本对广告内容精雕细作,有的人却想凭借粗制滥造的广告卖出去要价6万多美元的东西,在我看来这实在是不可思议。现在,别误会我,我可没说你的简历是一堆垃圾,我想说的是,如果你的简历跟大多数软件开发人员的简历一样乏善可陈的话,你得花一点儿功夫。
也有很多职业拓展的书籍和课程教你怎么写出漂亮的简历。这两种我都不推荐。为什么呢?因为你并不需要成为一名专业的简历写手,为什么你不去雇一位专业的简历写手,反而要浪费自己的时间去掌握他们的专业技能呢?
对软件开发人员来说,简历不一定要花哨好看,但一份专业的简历非常重要。如果你想对自己十年前写好的充满错误拼写和蹩脚语句的Word文档简历进行一下删减,我建议你三思而行。如果你想找一份新工作,你能做的最好的投资就是写一份专业的简历。
如果不想雇专业写手呢,以下是对自己修改建立的一点建议
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。