这篇博文先从一段对话开始。
Q:从你的博士专业学习来看,机器代替人写代码,还需要多久?
A:已经可以了
Q: 那么,还有哪些方向 暂时不会被机器人替代?
A:心理咨询
Q: 离我太远,有离我近一点的吗?比如:有哪些代码 机器人比人写的差?
A:当manager.
Q:这么说来,中级十八湾的程序员机会,很快就会飘走了?
(link:http://zhu1.blogspot.com/2016/07/it-role-trending.html)
A:从大局说 决定做什么的职位很难自动化 执行怎么做的职位很快飘走.
技术角度来说 深度不如广度 .
十年java编程经验 不如十种语言各一年.
Oracle 五年经验 不如五种数据库各一年.
Q:开始在哪里找这样的机会入门呢?
A:各人性格经历不同吧。
Q: 自己创造机会?
A: 现在忙,回头慢慢说.
正文开始:
现在有空了 说说我的想法 抛砖引玉.
技术出身的,不想做纯程序员了有三个方向:管人,管设计,管进度.
管人是管理资源调配,简单说是要把好钢用在刀刃上。关键是要定义什么是好钢,什么是刀刃。资源包括钱,人员,时间。对手下的人要能看出来有没有能力(没能力的不招,有能力的培养),对平行的组要有交流沟通谈判的能力,对上级要有建立良好个人关系(拍马溜须)的能力。
管设计是管理技术生态系统,title往往是architect, team lead, specialist 之类的,这个要求对技术有广度的了解,对外会评估供应商产品的优劣(难点在于定义评估标准),对内评估解决方案的具体设计(如果现有的不好,要能说出来怎么改就好了),对上级要能说明白要钱要人来干什么(向无技术背景的人科普),对技术人员要建立信任关系,作为能解决技术难点的高大形象出现。
管进度是管理输入和产出效益。软件行业的生产资料是人,而每个人不一样。有个笑话说一个女人生孩子要十个月,认为十个女人生孩子要一个月的是项目经理。管进度的人最大的挑战是identify 关键路径。什么可以并行操作,什么必须先后顺序执行,谁可以有效接替谁的工作,在关键路径的人忙得不亦乐乎的时候,非关键路径的人应该做什么(为下一步作准备?培训新技能?)管进度的人将定义整个团队的最大产出。这个产出是团队相关(每个人不一样),产品相关(每个需求不一样),时间相关(第一次做和第二次不一样)。
在亚麻(AMZ)里,管人力资源的是manager,管产品资源的是product manager, 管设计的是architect, 管进度的是TPM. 各个公司title不一定相同,文化不一定相同,所以肯定job description 有出入。不过基本分这几类.
作为纯技术人员,从十万到二十万容易,再往上基本要走leadership 路线。从技能角度,要学习communication communication communication. 怎么建立信任,怎么建立个人关系,怎么交流,谈判,劝说,鼓励,培养,怎么很客气的说不,怎么很礼貌的骂人,怎么很优雅的说草泥马你丫白痴你老子怎么没把你射墙上。
说完管理路线,再说说技术路线。很多技术人员宁可跟技术打交道也不愿跟人打交道,因为技术更可靠,输入输出对应更合理更可预期。这是个人性格决定的,没有好不好,只有适不适合。技术路线最大的好处是从一家公司到另一家公司几乎完全transferable. 这家三年Java经验,几乎跟另一家三年Java经验水平完全一样,所以换工作几乎没有经验损失。但这个transferable 硬币的另一面是几乎完全replaceable. 这个有三年经验的人换成另一个有三年经验的人公司也几乎没有技术损失。因为replaceable 所以工资不会太高,也有被新技术取代的风险。比如软件测试工程师曾经占到软件从业人员的一半,现在越来越被自动测试取代,这个职业已经像电话接线员一样要慢慢退出历史舞台了。
管理职位因为有大量的投入在relationship, 所以从一家公司换到另一家损失很大,公司和个人都损失很大,所以管理层往往比技术人员更稳定。同样的,管理层找新工作难,找到同样工资的新工作更难,因为很多东西带不到下家。难的另一个原因是公司的金字塔结构决定管理职位要比技术职位少得多。因此如果走管理路线,要有在一家公司多待几年的打算。
全文完。
咋样?有启发吧? ~ 木匠