作为软件开发人员生活和职业指导,我需要和很多程序员交流,帮助他们提升职业生涯,加速成长。时间久了,我发现很多程序员总是犯着相同的错误,前仆后继,却毫不自知。下面就是程序员在他们的软件开发生涯中最常犯的 7 个错误。
1. 没有明确的目标
心中没有终点目标,那就只会随波逐流。
如果你想在软件开发的职业生涯上获得成功,那么你需要有一个明确的目标。仅仅只是对遥远的未来有一个模糊的想法是不够的。相反,你应该有坚实的目标——在某个时间段内的首要目的——明确定义的目标。
我认识许多程序员和所谓的专业人士庸庸碌碌地在同一个岗位上干了几十年,是的,你没听错,就是几十年!这是一场悲剧,但如果没有目标,这就是你人生的默认选择。请引以为戒,否则下一个悲剧就会是你。
那么,我们能做些什么呢?
从今天开始,从现在开始,花一些时间,好好想想你的编程生涯,并决定自己的近期目标。我的意思是,明确当前的首要目标。一旦达到这个目标之后,再制定一个新的目标,但是现在,请好好想想,你的编程生涯需要实现什么目的?
你可以记下来,放到每天都能看到的位置,来提醒自己不断地朝着目标前进。
2. 不投资于非技术和“软技能”
我认识很多程序员其实真的很擅长于写代码。我也认识很多程序员在算法上确实远远优于我。他们理解和思考复杂架构的水平,是我所望尘莫及的。但你猜怎么着?
在我的软件开发职业生涯中,我超越了他们,不仅包括职位职务,还有工资,工作效率,性能等等。我说出来不是为了炫耀,只是想要说明软技能对我们的编程生涯有多重要,而不仅仅是那些大多数程序员重点关注的技术技能。作为一个软件开发人员,你肯定知道,你的工作并不仅仅是编写代码。还有其他许多必要的重点技能。
我们得时常与人打交道,所以人际交往能力是必须的。紧张的时间期限,快速的变化则需要稳定的心理,能够全神贯注,并懂得自我激励。在一个不断变化的环境中,在一个充斥了各种繁多和意外的环境中,我们要学会如何优先安排,并尽可能地富有成效。此外我们也不能忽略健康以及经济因素,如果忽略它们的话也同样会导致失败甚至是毁灭。
相关方面的内容还有很多,我就不一一赘述了,感兴趣的话,可以阅读《Soft Skills: The Software Developer’s Manual》 做深入的了解。总而言之,不管你做的是哪方面的工作,软技能几乎总是比硬技能、技术技能更重要——所以一定要好好学习这方面的知识。
3. 不参与社区
我做的其中一件让我的编程生涯受益无穷的事就是,参与社区。这不但让我有了归属感,不再感觉孤单,还能帮助我提高技能,敢于设定更高的目标。所以,我强烈建议你加入到编程社区中。
众人拾柴火焰高,参与社区,是一种积极的成长方式。如果你发现自己的软件开发职业生涯停滞不前,那么加入社区吧,里面的一些志同道合之人会为你提供助你克服困难,冲出困境的种种建议。成为社区的一份子,还可以让你获得关注,增加知名度,这将会大大有利于你的事业发展。
那么,怎么加入社区呢?
这很简单。世界各地都有这一类的团体,你可以简单地加入一个并参加聚会。比如说,你可以加入一年一次的,免费的,当地的 Code Camp 活动,那时许多软件开发人员会聚集到一起分享他们的工作心得。并且通常任何人都可以报名发表他们想要谈论的话题。如果你不喜欢这种聚会方式,也可以加入虚拟社区。
对于初学者来说,不妨加入码农社区。社区里面提供技术开发交流,也有很多资讯和信息,非常不错。你也可以写博客,这也是参与社区的一种方式。说,就是博客让我在社区众多程序员中脱颖而出的。
4. 不专业
如果你曾经看过我写的博客,或者读过我的书,你就会发现我几乎每次都会提到这个话题,因为它真的非常重要。
专业化。为自己选定一个方向,然后专心致志地朝着这个方向发展。但这并不意味着你无需具备广泛的知识基础——我非常热衷于通晓多门编程语言——我的意思是,你应该选择某个区域,然后孜孜不倦一心一意于挖掘更深层次的内容。成为某种形式的专业人士是非常重要的,尤其是职业生涯的早期。
专业人士的需求高,所以他们拿到的薪资也高,并且通常而言,他们还能够更快地塑造起威望来。另外,如果你的老板知道你在软件开发领域和技术上面钻研得很深,肯定会对此非常开心。你应该成为小池塘中的大鱼,而不是大池塘中的小鱼。
或许最终你会因为个头太大而不再适合这个池塘——那个时候你可以大胆潜入到更深的水域——但是,以一个专业人士的身份开启你的软件开发生涯,可以在这一行中为你自己树立个人品牌和声誉。(关于这一点,下面我会详细说明。)
最后,不要担心自己专业化了之后会被对号入座——这种事很少发生。并且,你也不需要真的研究得太深。话说,这么多年,我也没碰到有谁是太过于专业化的。
5. 不投资于个人品牌
生活中的许多事情来来去去,犹如过往云烟。你可能会换工作,又或许甚至要换配偶;突然一夜暴富,也可能穷困潦倒;可能身体很健康,但也有可能会发胖——但无论生活中发生什么,有一样东西会永远与你同在……你的名字!
所以,既然你的名字将贯穿你的一生,为什么不在这上面花些精力呢?
你的名字,或者说你的个人品牌,是非常宝贵的财富,也是许多软件开发人员没有意识到的财富。你的名字,或者说你的个人品牌,是你找工作、升职、挖掘潜在客户、甚至是自己创业的强大工具。哪怕你的名字从字面上看并不与众不同,但只要你有良好的知名度和声誉,那么有时候搞定诸多麻烦只是举手之劳而已。
我认识很多的软件开发人员因为已经具备了坚实的个人品牌,所以再也不必担心就业问题。因为无论发生什么事,他们都有把握找到另一份工作,因为他们的声誉众所周知。
我们都听说过推销产品和服务,但你可曾想过推销自己?
想在软件开发行业打造个人品牌,我的建议是写博客,选择一个特定的领域或专业,然后做到让你的名字如雷贯耳就行了。最好办法之一就是写一些对其他人有用的内容。
就拿博客举例。我写的博客可以在互联网上构建了我的品牌和声誉。如果你觉得这篇文章,甚至是我的网站有价值,那么你可能会分享。也可能会为此页添加书签,或者订阅相关邮件,这样你就不会错过任何好的资讯。这只是打造个人品牌的方式之一。
你还可以创建 YouTube 视频,发表自己的播客,写文章写书,在活动中发言。
这并不意味着你必须做上述所有这些事情,这只是我认为不错的一些点子而已。
6. 不搞点业余项目
我们手头应该总是有个业务项目在做。业余项目有很多你可能不知道的有益之处。
首先,业余项目是改善技能的有效方式。并且,这远远比你朝九晚五的工作能更快地提升你的成长速度。开发业余项目也是学习新技能新技术的好方法,有助于你寻找新工作。常常有很多程序员抱怨说现在千篇一律的工作没法让他们学习新技术,使得他们跟不上市场的脚步。听到这样的话,我总是劝他们不妨试着用心仪的新技术去开发业余项目,这绝对是个学习相关技能的好办法。
而且,业余项目还可以让你赚点外快。可能你一开始不会想着用业余项目赚钱,但是业余项目的确是能让你获取额外的收入。
我大概在 4 年前开始开发 Android 和 iOS app 作为我的业余项目,并且至今它们依然在为我创造财富。我也认识不少软件开发人员最终将业余项目当作了他们的全职工作。
开发业务项目其实很有趣。当你工作累了厌了,写一会自己喜欢的业余项目能很好地消除疲劳和压力。并且业余项目也是一个很好的出路,也许哪一天让你赚了大钱呢。
7. 没有自我教育的规划
每次我面试软件开发人员时,问的第一个问题往往是关于他们自我教育和自我完善的规划。
有没有去做点什么以便让自己成长得更为优秀呢?我经常会问他们用什么措施来跟上总是在不断变化的领域。我经常会问他们最近读了什么书,以及哪些是他们认为值得推荐给所有软件开发人员阅读的好书。
我想从他们的答案中知道他们是否有一个用于自我教育,用于不断成长的确切规划。我之所以这么做是因为我知道一个致力于不断自我完善的人不仅会成就自己,也能带动周围的人一起朝着成功前行。然而,很可惜的是,很多程序员都没有任何形式的自我教育规划。
如果你还没有用于学习和提升自我技能的规划,那么是时候为自己制定一个了。想听听我推荐的一个简单规划吗?保证每个月阅读一本技术或职业发展类的书籍。一年下来你就能累计阅读 12 本。我个人的话,每天至少投入 45 分钟到阅读上。
请记住,千里之行始于足下。哪怕一天 30 分钟,持续一两年之后,就能给你带来巨大的改变。
行动吧,骚年!
希望这篇文章列举的这 7 个错误能警示各位,但是,如果你不采取任何行动,那么即使是灵丹妙药,也不会有一丝作用。所以,阅读完了之后,不要抛之脑后,请从今天就开始行动。先将定为至少改正自己已知的一个错误。
欢迎留下评论以及分享你的成果。
真正的勇士,敢于直面自己的不足之处,然后积极改正它们!