开发者应警惕的七种糟糕职业规划错误

那些心灵鸡汤式的说辞总爱美化失败:失败是成功之母啦、失败使人成长啦、别畏惧失败等等。但事实上,这种思路在软件开发领域也许并不适用——至少不完全适用。每位开发者在职业生涯中都不可避免会遭遇失败,但为什么不从他人的经验中汲取教训来避免惨痛的挫折?

在今天的文章中,我们将共同了解那些需要加以回避的职业规划陷阱。

错误一:在同一家企业待得太久

时至今日,很少有从业者会在同一家企业效力十年甚至更久。虽然这足以体现大家的技术水平,但长期处于同样的环境下也许最终会导致各位成为某次“人员精简”的牺牲品。

“在同一职位上待得越久,技能与薪酬就越是僵化,最终会让人感到无聊且烦躁不安。”——管理顾问 Praveen Puri

作为管理顾问,Praveen Puri在自己的开发者及项目经理岗位上工作了25年,最终选择建立自己的公司。“在同一职位上待得越久,技能与薪酬就越是僵化,最终会让人感到无聊且烦躁不安,”Puri指出。“但如果大家总是不到两年就换工作,同样是种危险的信号。我最长的岗位效力时间是14年——我本该在工作6年时就跳槽的。其它岗位的工作时长平均是4年,属于比较正常的水平。”

长期从事同类工作会带来两大弊端:其一是限制自己接触新的工作方法与技能,其二是产生工作惯性而难以适应其它团队或企业的实践方针。而且事实上,对于技术行业这一人员流行性较大的领域,雇主往往更希望从业者能多经历一些环境,从而更明确自己到底想要什么样的工作环境。

错误二:频繁跳槽

再看另一个问题:跳槽太过频繁。

“频繁跳槽往往是种危险的信号。”——艾迪生集团IT部门经理 Hilary Craft

虽然更换工作能够帮助从业者接触到更多解决思路与技能,但同时也会导致他们无法适应特定企业文化的制约与要求。

更重要的是,频繁跳槽可能令我们失去全程追踪项目生命周期的机会。反复更换工作会让我们变得像是雇佣兵,只负责完成任务而没有任何稳定的信任与合作关系。无论技术水平如何高超,大家仍然需要站在客户的角度看待问题,而这种能力要求我们在同一岗位上拥有一定的从业时间。

艾迪生集团IT部门经理Hilary Craft提醒称,一部分专业人士倾向于强调单位时间内的收入水平,但却因此错失了储备长期合作关系与完整技术经验的机会。

错误三:急于升迁

每位开发者最终都将面临这样的选择:我们到底是更爱编写代码,还是站在台前领导企业事务?

进入管理层应当源自谨慎而细致的考量——这是一种职业的变化,而非单纯的逻辑性提升,意味着我们需要使用不同于以往的技能。很多企业都会选择出色的技术人才担任管理职务并将此作为一种奖励,但这往往会造成严重后果。

“每个人都应当在从业经历中至少体验一下管理职位,从而更深入地了解领导者与企业的运作方式。”——Automic 公司产品营销主管 Scott Wilson

每个人都应当在从业经历中至少体验一下管理职位,从而更深入地了解领导者与企业的运作方式。但并不是每个人都适合长期担任领导者职务,特别是对于不少技术从业者而言,繁重的文书工作与会议任务使他们脱离了自己所擅长的方向,而又体会不到应有的成就感。

错误四:疏于引导新手

作为开发人员,很多朋友可能不太重视规划自己的职业道路。事实上,很多企业发现年轻的开发者更需要团队领导者的引领。

引导新手开发者有助于提升领导者水平,因为领导者在身体力行的过程中能够更快地积累经验。另外,由于开发者的人际交往能力一般较差,因此领导者也就有更多机会巩固自己的沟通技巧。

“如果老鸟们没时间指引新人,我对此完全理解。但请别用‘我不擅长跟人打交道’作为借口。”——JAMF 软件公司专业服务主管 Charles Edge

错误五:过分坚持原有积累

现有积累无疑能够帮助大家稳握现有职位——但其是否有利于长远职业发展?或者说,将过多精力投入单一方向是否反而会影响职业灵活性?

举例来说,让一位拥有十年Java开发经验的从业者突然转而编写JavaScript代码,那么其开发成果将与拥有十年Python经验的开发者完全不同。我们掌握的每一项技术都会影响开发中的决策。有些人认为经验过于丰富反而不好——如果将Java当中的面向对象方法引入JavaScript这类松散型语言,显然起不到预期效果。

每种技术堆栈都有着自己的文化与观点。不少C#开发者只了解微软生态系统,而对外界一无所知。事实上,很多Java开发者反而能够在C#当中发挥更出色的表现,因为他们的视野更加广阔。

当然,盲目跨越技术堆栈也不可取。大家最好能拥有一项真正拿得出手、远高于平均水平的技能储备,而后再考虑涉猎其它领域。

错误六:忽视软技能

程序员通常比较内向,至少远比销售人员更内向。大家终有一天会发现,这类性能特质或者说思维方式会影响到自己的职业生涯。

“软技能与沟通能力同样能够提升软件构建水平,这能帮助我们真正思考客户的需求,而非一味过度开发。”——MediaMath 公司工程技术副总裁 Ben Donohue

“顺畅的交流能够提升软件水平。软技能与沟通能力同样能够提升软件构建水平,这能帮助我们真正思考客户的需求,而非一味过度开发。”

要提升软技能,互联网、电子课程、朋友与导师都是非常宝贵的资源——当然,前提是我们保持谦虚的态度及开放的心态。另外,编程绝不仅仅是开发工作中的一个侧面,其同时也是沟通并理解业务目标及思路的重要体现——其中涉及多个部门以及技术储备有所区别的大量相关人员。很多IT人会在管理层交谈时涉及大量技术细节,这显然不利于双方的相互理解。

错误七:疏于制定发展路线图

制定发展目标,并随时间推移加以调整——或者反过来,设计一套固定前进路线,并以此规范自己的发展进程。

“我建议大家将自己希望获取并掌握的经验与技能整理成一份发展路线图,且至少每年对其进行更新。”——Talent 有限公司 CTO Michael Henderson

当然,同样重要的是如何避免自己走上与计划相悖的道路。

在早期职业生涯中,很多从业者往往羞于说“不”。这意味着大家可能接受了很多根本不可能完成的项目。事实上,如果能以更加自信的方式表达自己的观点,那么企业也许能够节约下被非技术人员的随意承诺所浪费掉的时间与金钱。

Automic公司的Wilson援引了阿拉巴马大学足球教练Nick Saban的讲话:“我们要把注意力集中在获得成功身上,并将整个过程作为约束自身行为的依据。要制定可行的过程,大家需要找到适合自己的导师,理解他们做了什么、为什么这么做以及为什么这样能够带来成功。以此为基础,再对具体细节进行个性化调整并严格遵守。”

长按识别二维码关注我们
开发者应警惕的七种糟糕职业规划错误

转载于:https://blog.51cto.com/13561855/2063774

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HTML学习】——一个网页HTML编程的构成

目录 1、html网页构成介绍 2、HTML标签介绍 全部的html标签: HTML: HyperText Markup Language | MDNhttps://developer.mozilla.org/en-US/docs/Web/HTML 一个网页文件一般由.html结尾的文件组成,主要由不同的标签对和内容组成,常见的html…

hbase里插入big int数据用Phoenix查看的报错问题

Phoenix建表create table "test_big_int"("ROW" varchar primary key,"ci"."column1" bigint) 在hbase里put数据hbase 里面进行put: put test_big_int,001,ci:column1,1 在Phoenix里进行查看(问题出现)第二个尝…

机器学习:利用卷积神经网络实现图像风格迁移 (一)

相信很多人都对之前大名鼎鼎的 Prisma 早有耳闻,Prisma 能够将一张普通的图像转换成各种艺术风格的图像,今天,我们将要介绍一下Prisma 这款软件背后的算法原理。就是发表于 2016 CVPR 一篇文章, “ Image Style Transfer Using Co…

博客园自定义样式

碎碎念: 已经很长时间没有更新过博客了,分析一下,一个是太懒了。。。所以很久没整理一下了。还有就是嫌弃博客园默认的博客界面真的太丑了,作为颜控的我真的无法忍受啊。个人比较喜欢用makedown来编写博客,但是博客园自…

【CSS】——cascading stylesheets层叠式样式表

目录 0、CSS介绍 1、CSS语句组成 2、CSS选择器的选择方式 1)CSS选择器的方式和选择器大全: 2)常见的三种方式: 3、添加CSS方式 1)外部样式表 html调用css代码 css文件 html文件 展示 2)内部样式表…

四 Apache Axis2 部署 WebService

最新版本1.7.4发布日期2016-10-21 Axis2官网下载如下文件: axis2-1.6.2-bin:二进制的axis axis2-1.6.2-docs:帮助文档 axis2-1.6.2-war:axis.war 文件 axis2-eclipse-codegen-plugin-1.6.2:Eclipse axis client 插件 a…

安装OpenCV:OpenCV 2.4.8或OpenCV 2.4.9 +VS 开发环境配置

因为读研期间的研究方向是图像处理,所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容。眼看自己积累到一定的程度了,于是决定开始开设这个OpenCV系列专栏,总结自己所学,也分享知识给大家。 好了,这篇文…

powerdesigner中如何在自动生成建表SQL时添加模式名schema

1、在主菜单中选择“模型”→“users and roles”→“users”,新增一个user,其中"name"字段就是要添加的模式名。 2、在新增表时,在表属性的“general”页签中选择"owner",选择刚才新增的user,即可…

【django学习】——Django介绍和实战(开发简易版博客网页)

目录 0、视频链接 1、环境配置 2、django基本命令 1)常见命令 2)数据库相关的Django命令 3、Django项目 1)Django创建项目 2)项目目录介绍 3)运行初始化的Django项目 4、Django应用 1)Django项目和Djan…

求最大子数组03

题目: 返回一个二维整数数组中最大联通子数组的和。 要求: 1. 输入一个二维整形数组,数组里有正数也有负数。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 2.程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行…

纠错——【Singleton array array(0.2) cannot be considered a valid collection.】

# 将数据集按照比例划分为训练集和测试集 def split_datas(datas,labels,random_state1,train_size0.9,test_size0.1):train_data, test_data, train_label, test_label sklearn.model_selection.train_test_split(datas,labels,random_staterandom_state,# 作用是通过随机数来…

Android Studio 模拟器 不要皮肤,效果更好

新建或者编辑虚拟机时,皮肤选择“No Skin”即可,第二张图片就是无皮肤的效果,看着更爽啊。 转载于:https://www.cnblogs.com/toSeeMyDream/p/6265501.html

JAVA 笔记(三)

NullPointerException:空指针异常 原因:数组已经不再指向堆内存了。而你还用数组名去访问元素。对于查找问题,如果找到就返回其索引值,如果找不到就要返回一个负数(一般是负一)这是必须的,否则如果找不到&a…

安装Wamp后 Apache无法启动的解决方法

安装Wamp后 Apache无法启动的解决方法,网上的解决方案可以说是五花八门,有些说了一大推,一点作用都起不到。 其实解决方法只需两步: 1、安装路径不能包含有中文,这个我不知道为什么,总之如果安装路径中包含…

【Not all parameters were used in the SQL statement】

在添加游标的时候,添加preparedTrue cursor mydb.cursor(preparedTrue) 感谢博主: 【已解决】Python MySQL: Not all parameters were used in the SQL statement - MoonYear530 - 博客园一、事故缘起 今天构造了一个超过 50 多个参数的 SQL 插入语句…

解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0

问题描述 今天使用Android Studio 2.0打开我之前的项目时,编译报了如下错误: Error:Cause: com/android/build/gradle/internal/model/DefaultAndroidProject : Unsupported major.minor version 52.0 其中build.gradle文件内容如下所示: // …

SQL语句:从一个表里按年份统计条目数

比如一个数据表名称叫deploypool, 需要知道里面每一年的记录数, 而add_date字段里有增加记录时的时间, 那么语句如下: SELECT EXTRACT(YEAR from add_date),COUNT(id) FROM deploypool GROUP BY EXTRACT(YEAR from add_date);

Php 与 Json

PHP与JSON 在PHP中存在两个与JSON相关的函数: json_encode($array或$object)函数:把一个数组或对象转化为JSON格式的字符串 json_decode($json,$flag)函数:把一个JSON格式的字符串转化为数组或对象 $flag :true,代表转…

docker supervisor + compose

一: Supervisor Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面…

【pyqt5学习】——tableWidget学习

设置单元格列宽 self.tableWidget.setColumnWidth(0,200) 设置第一行和表头之间的表格线 self.tableWidget.horizontalHeader().setStyleSheet("QHeaderView::section{background:skyblue;color: black;}")