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

程序员在职业生涯中易犯的7个错误,第1张

1.没有明确的职业目标

没有目标的人生,就像无根的浮萍,水流到哪里就飘到哪里,一生漂泊。

如果你想要在软件开发领域获得真正的成功,那么就必须知道该何去何从。或许面对遥远的未来,你已经有了一个粗略的目标了。但是除了这点还不够,你应当坚实自己的目标——清楚的定义在实现过程中的每个重要时间点所需要达到的效果。

我认识许多程序员和其它方面的专业人士,数十年来他们都在相同的职位上反复地做着同样的事情。是的,你没有看错,是数十年。接受职业现状,不做任何改变,是造成这种悲剧的根源。对于未来,如果你没有明确的职业规划,这样的悲剧就很可能会发生在你身上。

面对于此,你该怎么做呢?

从现在开始,花一些时间来认真规划一下职业并确定最近的目标。一旦你达到了这个目标,你就要选择一个新的目标了。在职业生涯中,这样的目标会一个接着一个。你可以把这些目标写下来,放在一个每天都可以看见的地方,这样就可以让你随时回想起当前需要做的工作

2.不重视“软技能”或非技术的东西

我认识许多擅长写代码的程序员,他们可以用所写的算法把我耍得团团转,他们对复杂架构的理解力和思考能力令我自愧不如。

但是真实的状况却是:技术不如他们的我,软件开发领域的职业发展却全面超过了他们,除了职位,还包括薪水、生产力等诸多方面。

在这里我并不是为了吹嘘自己多了不起,而是为了向那些只埋头专研技术的程序员们说明“软技能”对于职业发展有多重要。

作为一个软件开发者,我相信你也清楚,编写代码并不是工作的全部。在通往成功的道路上,还需要学习很多其它技能。我们需要长期与他人打交道,所以必须学习为人处事;软件开发面临长期的赶工与不同的需求变化,所以需要学习对心态和注意力的调整;在不断变化的环境里有许多事情需要处理,所以应当学习对事情划分优先级以做到效率的最大化。另外,我们对待身体健康应当和对待自己收入一样敏感,这个才是革命的本钱。

我还可以继续列举出更多的东西,关于了解开发者应当掌握的“软技能”你可以去阅读我写的《SoftSkills:TheSoftwareDeveloper’sManua》一书。

总的来说,在生活中无论从事什么样的工作,那些软技能通常都比硬性的技术能力更为重要,所以请保持不断地学习这些技能。

3.不融入社区生活

在程序员生涯中有一样东西令我受益颇深,它就是社区的帮助。成为这个大群体的一部分,不仅让我拥有了归属感不再孤独,也帮助我改进了自身的技能,向着更高的平台发展。

如果你还没有参与社区生活的话,我强烈建议你融入这个圈子里来。它是一个比自我宽广得多的平台,有助于你的发展。

如果你感觉自己的软件开发工作停滞不前,费劲脑力也无法获得更大突破的时候,最好的方式就是加入社区,与一群有志同道合的人共同探讨所遇到的困难,获得有助于解决问题的建议。另外,融入社区生活还能够聚集人气,培养人脉,这对于提升自身的职业发展也有很大帮助。

但是,如何才能融入到社区生活中呢?

这很简单,世界各地都有很多开发者团体,你可以通过程序员网站找到并加入到他们当中去。你还可以参加开源夏令营,这是一个一年一度的免费地方性活动,众多开发人员会聚在一起分享他们的工作,任何人都可登记参加自己感兴趣的话题。

如果你不希望在现实生活中与过多的人接触,也可以选择加入虚拟社区。

那些大众的程序员社区会是你的第一选择。在社区中你会发现有一些非常厉害的程序员,他们会在自己的博客上写一些精辟的文章并解答大家的问题。除此之外,还有另外一些不错的在线社区,比如大牛们的博客网站、各种技术论坛、讨论群等。

当你开始学会分享,把自己的所知与所想都写出来的时候,你就真正的融入进了社区生活——而这个博客就是我为自己加入这个程序员社区所做的第一件事。:-)

4.没有专长

如果你过去常访问我的博客或者YouTube视频,你会发现我很多时候都在谈论这个话题。这个话题是如此重要,以至于我一有机会就会说到它。

俗话说,术业有专攻。你应当选择一项想要专精的技术并努力磨炼它。但这并不意味着你就可以放弃对其它技术的基本理解而一味地去专研某项技术——我对那些会数种语言的人是非常欣赏的。这一点非常重要,尤其是在你职业生涯的早期培养一技之长的时候。

专长可以满足更高级的需求,因此,在同等条件下,它会带来更丰厚的报酬并更快的积累声望——这些对于业界对你的认可是很有帮助的。

有专长的人好比是小池塘中的大鱼,受人瞩目。或许最终这条大鱼会跳入更宽广的池子,但是所累积的声望和名气同样有助于在软件开发行业的其它领域的发展。

凡事只要七分就好,对于专长技术的研究学习同样如此。过度的投入会对程序员的时间与精力造成浪费,这是得不偿失的。

5.无视个人品牌价值

生活中充满着各种变数:搬家、结婚、换工作、一夜暴富、突然发福等等。无论如何,有一样东西始终会伴随着你一生,而这个东西就是——名字。

你的名字会贯穿于你的全部生活,难道它还不值得你去重视么?

你的名字或者也可以称作是你的个人品牌是一件非常有投资价值的东西,可许多软件开发人员对此却一无所知。

对于获得工作、取得晋升、客户端的登陆以及工作的开展等,名字无疑都展现了其强大的作用。毫不夸张的说,假如你臭名昭著的话,会万事难行,而如果你有良好的名誉的话,大多事情只需通过简单的握手就能搞定。

我认识很多的软件开发人员,他们从不担心自己会失业,这是因为他们投资了时间和精力来打造坚实的个人品牌。他们知道,无论发生什么事情,在他们失业后的几个小时内就可以获得一份新的工作,这是因为他们在业界有良好的声誉。

对产品和服务进行的投资看起来很正常,但是你是否考虑过自我营销的价值?要在软件开发行业建立起自己的个人品牌,我的建议是从创建自己的博客开始,选择将自己的专长或者有很深了解的领域作为提高自己影响力的跳板,学会把自己的名字一步步做成行业的金字招牌。如何快速的提高自己的影响力呢?最好的方法之一就是创建对别人有帮助的文章。

就拿这个博客为例吧。这个博客建立了我在互联网上的个人品牌和声誉,如果你认为我的文章或者网站是有价值的,你会选择进行分享。甚至你有可能把它列入收藏或者进行订阅,以方便以后继续访问。而这只是其中一种打造个人品牌的方式。同样的,你还可以选择视频网站、播客等媒体,或者在书刊上发表文章,在会议上演讲等方式。如果你对如何在软件开发领域深度挖掘自身的品牌价值很感兴趣,这个网站会告诉你如何去做。

6.荒废业务时间

在工作之余,你应当做一些项目来练练手。

做业余工作有许多你不知道的好处。首先,它可以有效的改进你的专业技能,特别是那些在平时的工作中很少用到的技术。相比起平时朝九晚五的工作,业余工作类型多变,对于专业技能的提高更有好处。其次,它有助于你对新的开发技术和技巧的学习。这对于日后你想从事新的工作是很有帮助的。我碰到过许多程序员,他们向我抱怨在当前工作中没有机会去学习新技术,这让他们今后无法在工作市场上立足。而我向他们建议工作之余去做一些小项目,使用他们今后想要立足的新技术——这种方式对于提高相关技术是很有帮助的。

除此之外,我们不要忽视做业余工作所带来的经济利益。人们常认为业余时间做的那些小项目是挣不到什么钱的,而事实上它却是额外收入的重要来源。4年以前,我在业余时间里开发了一个在Android和iOS平台上使用的应用程序,而到现在,这个应用程序还能为我创造价值。

我还认识一些程序员,他们从业余工作做起,最后把这些工作发展为了全职工作。而事实上我就是这些程序员中的一位。这个博客本身以及SimpleProgrammer周围的其它部分现在成为了我的全职工作。我喜欢称自己为程序员的生活导师,但是也有很多人认为我是一个专职的博客写手。

业余工作可以让你充满乐趣,它能够把你从那些你不喜欢但又必须去做的工作中解脱出来。作为一种释放工作压力的好方法,它会每天带给你新的希望。

7.没有自我学习的计划

在我面试软件人员的时候,我首先会问到的一个问题就是关于他们的自我学习和持续完善的计划——如何进行自我完善。程序员如何在这个快速变化的领域保持技术与观念上的更新?我希望获得的回答是他们能告诉我对于自我学习与成长他们有着一个实际可行的计划。因为一个致力于不断学习进步的人不仅能够让自己迈向成功还能影响到周围的人,使他们一同迈向成功。

然而,有如此之多的程序员对于自我学习没有任何计划。假如你是这些人中的一员,你就应该立即行动起来做一个自我学习的计划。

这儿有一个可供参考的个人简单计划:

坚持每月读一本关于技术学习或者职业发展的书籍。

这意味着一年时间里你需要阅读12本书。对于我来说,我会在每天用至少45分钟时间来阅读。当我在跑步机上运动的时候我会同时阅读一些与我个人职业发展相关的文章。

积沙成塔,集腋成裘。每天只需花费30分钟时间来阅读书籍,一两年时间之后你的人生境遇就会发生很大的改变。

不是我不明白,这世界变化快。俺当年入职时,一些公司的确会问代码量。当时的标准大约是每周40到400行代码,可以少,但不能多——换句话说,平均来说,每周多于400行代码的可能得不到工作机会。因为你的代码质量和工作态度让人家心里发毛。当然,也没人太较真。功能点完成了、代码质量可以(bug少、代码逻辑清晰、文档齐全),多点少点无所谓。

先后在多家公司担任技术专家;平均来说,每周代码量也就200行上下。当然,也搞过一次一天写了2000行代码的壮举,结果是之后一个多月脑袋嗡嗡响,眼花,恶心。这个东西我事先花了一周多做设计、写文档,然后第二周的某天一气呵成,写完bug;然后累伤了,一个多月没法工作。换句话说,相当于还是花了6周;平均下来,仍然是每周300来行代码。

代码有行可以数,有字符可以数,有字节可以数。乍一看通过数代码行的方式确实达到了客观可量化的标准。初入人力资源或初入法律行业的萌新可能会支持这种结论,但这实际上是与科学客观规律相背离。这年头可以注水的太多。合法的注水,比如某些影视剧、某些网文、鲜榨果汁等。违法的注水,比如将我这篇文章洗稿加点自己的东西即可。

作为程序员实际也一样。倘若企业以这种方式作为工作量,这是逼程序员做无效代码,最终不仅降低客户的体验感,而且还让行业加速内卷。可以用一个赋值语句作出的结果,干脆来一个循环语句。所谓内行人骗外行人,虽然达到同一个效果,多绕了几个弯子,有必要吗?言归正传,裁判者实际在说理论证时并没有以该理由不合理为由驳回了该公司的诉请。而是针对该公司并没有提前告知劳动者试用期的考核标准为由,且该理由过于主观认定,驳回了该企业的请求。

据此,不排除有法律工作者可能会支持以代码数量为试用期考呢核标准的。那么,试用期间劳动合同用人单位能否说解除就解除?对于用人单位而言在试用期期间解除劳动合同应注意以下问题。双方存在有效的试用期约定。根据劳动合同法的规定,双方口头约定试用期,或双方只约定试用期的,应当视为没有试用期。因此用人单位不能以此为由解除劳动合同。

用人单位作为劳动用工管理的主体,应在发布招聘信息时,明确录用条件、岗位职责等信息,入职约定试用期的,应明确试用期内的考核标准。另外,用人单位要对试用期的考核标准有具体的客观量化标准,不能过于主观增大恣意权从而滥用标准制定权损害劳动者的权益。录用条件应当符合劳动合同目的,与工作岗位、工作能力相联系,不能设定明显不能完成或超过一般劳动者平均水平、歧视性、违反法律法规规定等录用条件。

用人单位认为劳动者不符合录用条件,应在试用期满之前明确通知劳动者解除劳动合同。如果用人单位没有证据证明劳动者在试用期间不符合录用条件,用人单位就不能以上述理由与劳动者解除劳动合同,否则需承担违法解除劳动合同的一切法律后果。

单纯以代码量来开除一个工程师是不合理的。更应该让同行同事来衡量一下他整体的贡献、比如算法的难度、代码的影响力、在其他方面的贡献等等,给出更合理的评估。退一步说,就算这些方面都暂时差强人意,作为新员工,产出低一些是可以接受的,毕竟有一个学习过程,每个人的学习和产出曲线毕竟也是不一样的。

有的公司,直接凭主管领导或老板的一句话,“鉴于你试用期过程中不符合公司录用条件,你可以自行离职了。”事实上,对于试用期员工,公司除了明确列明员工应聘岗位的考核条件,且岗位要求合理合法以外,还应该让员工在入职试用之前明确知晓该考核条件,并在试用的过程中客观、公正地考核。同时,考核次数、不合格次数及比例、不合格的申辩机会等事项及流程,都应该清清楚楚,切不可迷迷糊糊、糊里糊涂。

提醒各位“打工人”,类似的试用期违法行为比较普遍,员工随时注意保留证据并合法维权。但有的朋友却觉得“理所当然”,拍拍屁股一走了之。殊不知,自己的合法权益正在受到严重侵害,包括但不限于违法解除的赔偿金、未签劳动合同的双倍工资等。公司在与李某某签订劳动合同时并没有明确规定要做到每天写代码的标准数量,所以至于要写多少代码公司并没有标准。

公司在与李某某签订劳动合同时并没有约定一定要进行深度学习识别算法代码编写,3D点云算法和多摄像头联合算法代码编写的具体工作内容,所以没有指明非要编写这些代码;拿什么同级别同行业的平均每日编写代码的统计数据来作为考核的依据,没有法律根据,任务不同,编写难度不同,不能以编写条数作为考核的依据;

至于工作内容,作为程序员并一定非要整天的在编写代码,也有可能在设计新的方案,或是对数据进行统计分析和总结等,不能以什么编码工作没有做,就认为李某某没有做出“成绩”;作为刚来才两个多月的程序员,前期的准备和熟悉是需要一个过程的,随着对公司的熟悉和项目的了解,编写代码的速度必然会提高,而不能在刚来两个月就以其他老员工的标准来进行考核;在发出解聘通知书后,马上将其办公电脑进行收回,这是严重的不尊重人,这属于单方面强制辞退,没有给李某某一点申辩的余地。以上,公司理应对李某某进行赔偿。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8129553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存