昨天是我一同学结婚的好日子,同学们大家聊各自的工作,有个同学突然问了我一句:我们同学中好像做软件的不多?如果再细分,好像做网络相关的更少?

回想起当时为何读计算机信息管理的专业,是因为那时听说读电脑未来很有出路,所以计算机是我中专的第一志愿,而我的第一台电脑就是那时买的,还记得那时买一台 486 电脑花了我妈五万块,在 20 多年前它是一比不小的数字。

毕业后专科考上电子系,当完兵后大学考上资管系,理论上我同学里应该会有不少人从事软件工程师,但事实上真的少之又少,要很认真的想才好不容易凑到十个,其中不少还是写硬件的…

之前天下杂志有一篇文章科技之岛找不到软件工程师 以教育的角度讨论软件工程师短缺的问题,而下面的留言却大多集中在薪资的问题上,我总觉得这有点瞎子摸象的感觉,好像有提到问题又感觉不够到位。

我从本科系毕业,出社会第一份工作就是软件工程师,一路升到项目经理,创业后成为老板,当然也变成了 Sales,需要卖服务给更多的老板,以下就我看到不同的面向与大家分享台湾软件工程师的困境。

教育的问题

学生的天份

其实程序设计像艺术一样是需要有一些天份才会学的好,偏偏学校的课程有该有的进度,老师无法因为你听不懂就卡在那个章节太久,所以跟不上的同学只好死背,背不起来就开始讨厌,所以读到最后只是让来不及发现自己天份的同学更早放弃当软件工程师这条路。

师资的培育

学程序设计需要天份,想当然的,要能教好这堂课的老师也需要这样的天份、能力还要知道怎么教,但通常这样的老师很少,即使有,他也需要不断地学习,和业界保持同步,不能脱节。这真的很难。

所以我们常会看到学校会教一些现在比较少用到的语言,因为那是老师自己最擅长的程式语言而不是业界最需要的。

软件工程师的问题

薪水与价值的不对等

工程师认为自己该拿多少薪水是以对公司的价值来思考,如果我一年能帮公司赚到或省下一千万,那我年薪百万不为过吧?老板认为工程师该拿到的薪水是以工时来思考,如果我每天正常上下班,那要和老板要求年薪百万真是难上加难。

最后,为了生活不得已,很多工程师如果不是在干私活就是偷偷在接私活,如果不是偷偷在接私活就是在接私活的路上。不相信?我之前写了一篇《软件工程师的创业陷阱:接私活》,感受到大家不小的怨念迴响 XD

价值的错估

很多工程师会用对原公司的价值来对新公司要求更高的薪资,但价值通常是需要搭配其它的客观条件才成立。例如团队、资源… 等

如果新公司没有这些条件,工程师是否能发挥该有的价值?通常新公司会抱持怀疑的态度。

即使高薪也无法选择小公司

虽然有些小公司愿意提出高于市价的薪水,但这薪水能持续多久?里面有能一起讨论的同事吗?未来的发展好吗?写在履历上好不好看?朋友都没听过这间公司?….

除了薪水以外的一堆疑虑都跑出来了。最后大部份的工程师还是留在大公司等待机会比较保险。

升迁制度的问题

无法跳脱的彼得原理

「彼得原理」是指:在组织或企业的等级制度中,人会因其某种特质或特殊技能,令他在被提拔到不能胜任的地步,相反变成组织的障碍物(冗员)及负资产。

好的工程师为了拿高薪,不得不往管理层升迁,变成管理层后再也不需要写代码,所以为什么好的工程师这么少?因为他们都变经理了。

可惜的是,代码写的好的人不代表会管理人,最后反而因为管理绩效不好需要离开公司,但也回不去以前工程师的状态了。

CTO (技术长) 的问题

CTO 决定了公司的技术天花板

每间公司只会有一位 CTO,基本上也不会写代码了,也就是说 CTO 如果离开公司要找工作没那么容易。基于这样的原因,你觉得 CTO 会找比他能力好的人进公司吗?CTO 能接受后面进来的人拿比自己还高的薪水吗?那你知道如何审核 CTO 吗 ?

主管的问题

追求 KPI

请工程师会花到当月的部门预算,但可能要等到半年后才会有明显的成效,为了兼顾每个月的 KPI ,无法花太多钱请工程师。

老板的问题

投资与成本的混淆

对很多老板来说软件工程师就像水一样,没有的时候很痛苦,有了后就没感觉了,什么?水要卖这么贵?不就只是水而已吗?老板总认为软件工程师是固定成本,而成本就是要控制在越低越好,如果换你当老板,很可能你也会这样做。

如果工程师一直想的是加薪、老板一直想的是省成本,这双方永远都会是对立无解,但如果工程师想的是帮公司赚钱,老板想的是投资工程师,最后这结果应该会好很多。

就是赚不够多

就算有好的软件工程师,但他要的薪水老板就是给不起。好的软件工程师老板请不起,请的起的都是不好的工程师,老板说市场上都没有好的工程师,其实是说市场上怎么都没有利害又便宜的工程师。

不用钱的迷思

你知道卖软件或服务比卖硬件困难吗?我曾经想要卖一套软件给一个老板,我说这可以提升员工的工作效率,他回说:我为什么要花钱提高员工的效率?他干不完就加班啊,反正我每月都固定付他的薪水,又不用多花钱。

产业的问题

成功的网络公司太少

二个一样是三年工作经验的软件工程师,一个做过可以同时 100 人在线的网站和另一个做过可以同时 1,000,000 人在线的网站,这二个人的技术能力就差非常的多,薪水当然也会差很多。但有多少网站需要作到同时 1,000,000 人在线上?所以能有相关经验的人一定是少之又少。

如果成功的网络公司越多,里面就能培养出更多有实际经验的工程师,当这些工程师换工作时,会把身上的技术及观念带至另外一家公司,久而久之,好的软件工程师就会越来越多,产生正向循环。

结语

以上种种问题一个卡一个,造成了软件工程师的困境,如果当初有一间公司愿意让我写一辈子代码,薪水可以因为我的价值一直往上加,不会因为职位而有限制。我想我应该就不会创业了。市场上也不会少了我这个好的软件工程师 XD,我的力量很难改变整个环境,但至少还能从自己的公司慢慢作起,期许能成为市场上的成功案例。

[No00004D]深度思考好文:软件工程师的困境的更多相关文章

  1. 软件工程师所需掌握的“终极技术”是什么?

    软件工程师所需掌握的"终极技术"是什么? http://yunli.blog.51cto.com/831344/1019990 最近,我在微博上看到@程序员邹欣老师发的一条微博 - ...

  2. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者”        15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...

  3. CEO应向软件工程师学习的7个技能

    软件工程师的哪些技能是值得CEO学习的?显然,软件工程师是逻辑的,高效的,注重细节的,有计划的,并且大多数CEO也是如此.但是,软件工程师还有一些更微妙,甚至是令人懊恼的品质,那么CEO是否可以从中学 ...

  4. Google前工程经理王忻:如何准备软件工程师的面试

    http://t.jobdu.com/thread-368-1-1.html 导读:原文作者王忻,Google前工程经理,2003年月加入Google,是Google Lively背后的主导力量,是G ...

  5. 转载:CEO应向软件工程师学习的7个技能

    软件工程师的哪些技能是值得CEO学习的?显然,软件工程师是逻辑的,高效的,注重细节的,有计划的,并且大多数CEO也是如此.但是,软件工程师还有一些更微妙,甚至是令人懊恼的品质,那么CEO是否可以从中学 ...

  6. net软件工程师求职简历

    Net软件工程师求职简历 姓    名: 王静静 性    别: 女 出生日期: 1991-12 籍    贯: 河北 居住地: 北京 学    历: 专科 E-mail: 335659753@qq. ...

  7. JavaSE 软件工程师 认证考试试卷2

    JavaSE 软件工程师 认证考试试卷   笔试   考试时间150分钟 总分 100分   姓    名_______________________ 身份证号___________________ ...

  8. Java 初级软件工程师 认证考试试卷1

    Java 初级软件工程师 认证考试试卷   笔试(A卷)   考试时间150分钟 总分 100分     姓    名_______________________ 身份证号_____________ ...

  9. MySQL 5.7 优化SQL提升100倍执行效率的深度思考(GO)

    系统环境:微软云Linux DS12系列.Centos6.5 .MySQL 5.7.10.生产环境,step1,step2是案例,精彩的剖析部分在step3,step4. 1.慢sql语句大概需要13 ...

随机推荐

  1. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  2. Android Action Bar简介

    Android Action Bar简介 Design: Action Bar Action Bar是在屏幕顶端的一部分内容,通常在整个app进行中都保持存在. 它提供了几个关键的功能: 1.使得重要 ...

  3. CLLocationManagerDelegate不调用didUpdateLocations (地图)

    这是因为xcode升级造成的定位权限设置问题.升级xcode6以后打开以前xcode5工程,程序不能定位.工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位.解决方法:首先在 in ...

  4. IOS沙盒中的Documents、Library、tmp区别

    1.Documents: 用户生成的文件.其他数据及其他程序不能重新创建的文件,iTunes备份和恢复的时候会包括此目录. 2.Library/Caches: 可以重新下载或者重新生成的数据,数据库缓 ...

  5. 【代码笔记】iOS-显示图片的各种方式

    代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UI ...

  6. iOS开发之UIAlertView与UIAlertController的详尽用法说明

    本文将从四个方面对IOS开发中UIAlertView与UIAlertController的用法进行讲解: 一.UIAlertView与UIAlertController是什么东东? 二.我们为什么要用 ...

  7. iOS带动画的环形进度条(进度条和数字同步)

    本篇写的是实现环形进度条,并带动画效果,要实现这些,仅能通过自己画一个 方法直接看代码 为了方便多次调用,用继承UIView的方式 .m文件 #import <UIKit/UIKit.h> ...

  8. 转载文章----C#基础概念

    转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...

  9. jQuery中find和filter的区别

    本文来自:http://blog.csdn.net/woshixuye/article/details/7255260 这是jQuery里常用的2个方法. 他们2者功能是完全不同的,而初学者往往会被误 ...

  10. vmware克隆虚拟机eth0网卡无法启动

    概述: 通过vmware克隆安装好的虚拟机之后,出现了网卡未启动的问题. vmware安装虚拟机请看:<vmware快速安装linux虚拟机>. 定位过程: 1.通过ifocnfig命令只 ...