程序员编程生涯中会犯的7个错误

英文原文:7 Mistakes You’re Making In Your Programming Career

  作为软件开发人员生活和职业指导,我需要和很多程序员交流,帮助他们提升职业生涯,加速成长。时间久了,我发现很多程序员总是犯着相同的错误,前仆后继,却毫不自知。下面就是程序员在他们的软件开发生涯中最常犯的 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 个错误能警示各位,但是,如果你不采取任何行动,那么即使是灵丹妙药,也不会有一丝作用。所以,阅读完了之后,不要抛之脑后,请从今天就开始行动。先将定为至少改正自己已知的一个错误。

  欢迎留下评论以及分享你的成果。

  真正的勇士,敢于直面自己的不足之处,然后积极改正它们!

本文借鉴http://blog.const.net.cn/a/17887.htm

译文链接:http://www.codeceo.com/article/7-mistakes-programmer-do.html

时间: 2024-11-08 23:19:08

程序员编程生涯中会犯的7个错误的相关文章

当心!程序员在职业生涯中最易犯的7个错误

当心!程序员在职业生涯中最易犯的7个错误 概述:本文的作者是软件开发领域著名的职业规划导师,他的工作是通过对程序员当前职业状况的了解,向他们提出改进职业规划发展的建议.在与程序员们长期的接触之后,他总结了程序员们最易犯的7个错误. 1.没有明确的职业目标 没有目标的人生,就像无根的浮萍,水流到哪里就飘到哪里,一生漂泊. 如果你想要在软件开发领域获得真正的成功,那么就必须知道该何去何从.或许面对遥远的未来,你已经有了一个粗略的目标了.但是除了这点还不够,你应当坚实自己的目标--清楚的定义在实现过程

作为一个程序员编程中经常碰到且觉得难的事是什么?

作为一个程序员编程中经常碰到且觉得难的事是什么?有人说,感觉最难的是 trade-off:也有人说,给函数和变量起一个不用写注释的名字:架构师说,预测需求的变化比较难:一线码农说,写出可被长期维护并持续产生价值的代码是最难的.你觉得编程中经常碰到且觉得难的事是什么? 比如用新技术做项目,编写到80%-90%左右,发现了更优的方案,然后在重构和继续之间取舍......变量命名难:编码进入超凡状态时被打断 ? 还是双方对接,涉及到加解密算法,对方又不给你提供明确说明的,比如RSA吧,虽然都叫RSA,

程序员编程时喝什么

最近我越来越觉得喝咖啡对我而言没什么用.咖啡的提神作用来得快,去得更快. 白天喝一杯咖啡提神后,往往会令我更加困乏.这是恶性循环.咖啡让人兴奋,无法觉察到身体其实很疲劳. 意识到这一点后,我时常在想,对于像我们这样的程序员来说,还有什么方法能给我们充充电. <<<-------------  <_< 向左看 我们中有一些人是功能饮料的重度使用者.有人靠喝茶,还有人依赖糖分.不要忘记了,包括酒精在内的这类成分在刺激提高我们创造力的同时也会让人精神涣散. 在我的职业生涯中,以下这

【程序员编程艺术】学习记录3:字符串包含问题

[程序员编程艺术]学习记录3:字符串包含问题 题目: 假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些.什么方法能最快的查出所有小字符串B 里的字母在大字符串A里都有? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

程序员编程语录

程序员编程语录 1. 一个好的程序员是那种过单行线马路都要往两边看的人.(Doug Linder) 2. 程序有问题时不要担心.如果所有东西都没问题,你就失业了.(软件工程的 Mosher 定律) 3. 程序员的麻烦在于,你无法弄清他在捣腾什么,当你最终弄明白时,也许已经晚了.(超级计算机之父 Seymour Cray) 4. 我想大部分人都知道通常一个程序员会具有的美德.当然了,有三种:懒惰,暴躁,傲慢.(Perl 语言发明者 Larry Wall) 5. 编程时要保持这种心态:就好象将来要维

有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?

一.“银弹” 首先在这里解释一下“银弹”的概念,顾名思义就是银质的子弹(Silver Bullet),是古老的欧洲民间传说中能杀死狼人的利器.当然现实中是没有狼人的,但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段,被比喻为具有极端有效性的解决方法,作为杀手锏 .王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表

有人认为“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?

有人认为“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?首先,百度给出“银弹”是这样的解释:能杀死狼人的利器 在古老的传说里.狼人是不死的.想要杀死狼人有几种方法: 1.像杀死吸血鬼那样用木桩钉住狼人的心脏. 2.将月光遮住 3.用银子做的子弹射穿狼人的心脏或头 当然现实中是没有狼人的.但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段. 我不认中文编程是

中文编程不是解决中国程序员编程效率的银弹

按照<人月神话>的定义,软件工程中的银弹指的是软件生产效率有指数级提高的方法. 像我题目中所说的那样,我认为,中文编程并不能使中国中国程序员的编程效率有指数级的提高 首先,从一个大的逻辑角度来看.中文编程对中国程序员的意义和英文编程对英语国家程序员的意义是一样的,无非就是使用自己的母语进行程序编写.那么在英语国家的程序员使用英语(现在的高级编程语言接近英语的表达习惯)编程的效率还没有显著地高于我们非英语国家的程序员,那又为什么说中文程序员使用中文编程后编程效率就会显著的提高呢?而且在实际情况中

“中文编程”会是解决中国程序员编程效率的秘密武器,成为中国软件工程的“银弹”么?

一.“银弹” 首先在这里解释一下“银弹”的概念,顾名思义就是银质的子弹(Silver Bullet),是古老的欧洲民间传说中能杀死狼人的利器.当然现实中是没有狼人的,但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段,被比喻为具有极端有效性的解决方法,作为杀手锏 .王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表