写在前面

截至2016年底,是我毕业后进入工作的第2.5年。2014年7月拿着毕业证书,便真正开始了我的软件行业生涯。
我喜欢软件行业,喜欢程序世界中的种种元素萦绕在自己的脑海里,吃饭、睡觉,大脑总是在运转着。可是我又有点愤青,我认为软件行业中从业人员的焦虑感和不幸福感,是整个行业氛围以及整个行业里的人所造成的。
入行两年多,除了纯技术的感想,没有想过其它。就像突然走进瓢泊大雨的街中,没有雨伞,便只能不停的跑。从来没有停下来思考为什么,是躲进商店的屋檐下,还是继续跑?
薪酬跟刚毕业时相比,是刚毕业时的3倍,也许这就是为什么不停奔跑的原因,这原因虽然有点苍白,但我想大多数人都是因为这样才不停地奔跑着。

关于北上广深

目前base是广州,但工作中偶尔需要出短差,一般都是临时性去解决什么问题。北京、上海、深圳这些城市都去过,也许是因为每次去这些城市都是带着任务和带着解决问题的焦虑,所以我对这些城市都不太有好感,总觉得这里的节奏怎么这么快,还是喜欢广州多一点。但这个行业,尤其是互联网行业,发展得比较繁荣昌盛的一般是北上深,我也认为广州的软件行业是有点畸形和尴尬的。广州还是一个以贸易等传统行业为主的,因此在广州的大型互联网公司并不多,几乎可以数出来,居多的是各种行业性软件公司,偶尔想想,机会也一定程度上少了许多。广州好在节奏并不像深圳那么快,物价也可以接受,当然对于软件行业来说,大多数时候节奏都是快的。

关于开源软件

开源软件给整个行业带来的影响自不必多说,特别是Java的世界里,几乎就是一个以开源为核心的生态系统,各种各样的开源框架层出不穷。毕业前的实习,也用过那著名的SSH框架“骗取”每月的实习工资,虽然用着框架能带来许多便利,但偶尔也会因为被框架各种繁杂的配置和各种底层的黑盒子所困扰。于是我总是在思考一些问题,比如说:

  • 写出这个开源框架的人到底是什么人?为什么有些人被称作大神,有些人自诩软件“民工”?

  • 是否应该就只做使用框架的人,一碰到问题,就上google或者baidu查找答案?

  • 如果我也来写一个开源框架,我还欠缺什么技能?为什么我现在写不出大家觉得有用的开源框架?

  • 等等...

我想大多数原因是因为虽然同处一个软件行业,但是大家的信息都是不对称的。这里的信息不对称,我觉得体现在以下几个方面:

  • 每个人的知识面的不同,大神有大神的知识面,弱菜有弱菜的知识面

  • 知识理解的程度不同

  • 动手能力不同

  • 所处行业环境不同,硅谷的人有硅谷的行业环境,北京有北京的行业环境

我觉得自己也很无聊,比如说我经常在想,为什么国外的大牛很多,有些基本上是大师界别。客观上来讲,也许能找到原因,比如说,有人可能会解释说,人家七八十年代就是在玩Unix,大学里的课程也是以Unix系为知识背景,而国内在八九十年代,那时是计算机环境才刚刚是dos的时代,windows时代,大学里的教育也清一色以windows为主。这也许是一个原因,但我想,这些问题都很无聊。

我认为,真正在行业里有主动感的人,都是不愿做开源框架奴隶的人,要么使用一个框架前吃透它的原理,甚至在源码层次上吃透它,要么是自己写一个。就不用总是在google或者baidu上搜索某某问题的答案,经常在技术问答网站上能看到这类问题,“紧急求助,为什么xxx框架报了这个错,有人遇到过吗?”

开源的世界里也有一些比较坑的软件,比如说最近在研究的一个分库分表中间件,创始人只能说精于营销,官网上对软件吹嘘这也能做那也能做,官方QQ群里,都是官方的人的各种广告,“给我们多少多少钱,我们能免费提供技术支持”,“我们最近开了一个培训班,欢迎大家报名”......我认可开源软件需要商业来推动,但是还没见过商业气氛这么浓的。翻开这个软件的源码,却发现一团乱,编码风格不统一,官方所宣传的许多功能其实都有坑,有些基本上不能用。这也导致了2016年下半年,我的主要工作就是在重构这个软件,到目前,这个软件的重构工作基本完成了。

开源软件是好的,但是不要做那个为了在自己的简历上写上自己是某某开源项目的commiter,而不断堆砌垃圾代码的人。也不要沉浸在商业中,脱离了开源精神去做开源软件。

关于博客

很奇怪,对于这个行业的牛人的认识,大多数人都是通过博客。这里就有一个逻辑问题,你所认识的大神,一般是做了一些个人的推销工作,比如说微博,博客,论坛等等的抛头露面,之后你认识这个大神。也就是说,这个行业里的大神很多,而我们通常认识的大神,仅仅是所有大神里面比较爱写博客,发微博以及逛论坛的那部分。实际上我进入行业时,公司里也有大神,但他们却都活的不想传统意义的大神,没有博客,平日里言行都不像个程序员,不爱抛头露面,但写的代码、做的方案,却是一流。

就像开放的互联网一样,其实只是整个互联网中的冰山一角,真正的“暗网”,才是整个互联网的形态,只不过我们很少能接触到。

现在很多公司的招聘要求都加了一项:有个人博客或者个人开源项目的优先考虑

难道这就是很多纯粹为了写博客而写博客的博客那么多的原因。为了在简历上写上自己的博客地址,并在博客上贴上几篇口水文。

关于程序员的焦虑感

我认为如果从事这个行业的人都热爱这个行业,热爱软件开发,并且是踏踏实实做事的人,那么整个行业不会存在焦虑感。我觉得程序员的焦虑感是整个行业的从业人员自己造成的。
这个行业的人总是在思考着各种各样的问题,30岁以后是否还能做开发?到底是做技术还是做管理?为什么加班现象这么严重?

个人经历来说,遇到过一个同事,一开始以我们做的产品有问题为借口,然后实际上上为了让我们给他提供如何用JDBC连接数据库,如何处理事务的代码。
我想做软件的人都对政治深恶痛绝,不想走的路,就是别人的套路。

焦虑感还来自对新知识学习和掌握缺少的勇气。依赖性强,能依赖框架就依赖框架,能依赖别人就依赖别人,能推卸责任就不主动承担。这样的人焦虑感最强,从而也把焦虑感带给那些真正热爱软件开发,认真做事的从业者;并且,软件开发的理论性和工程性的东西,无论是多么厉害的大神牛人,也不敢说自己全部通晓,但可悲的就是往往是不太懂技术,不太懂计算机科学的人管理着技术人,“这个东西怎么就不能做了呢?”,“怎么可能是这个原因呢?”。因此我认为行业的焦虑感是由这个行业的从业人员做造成的。但大家都是雨中的人,只顾着往前跑。

程序员也是普通人

程序员都有点偏执,性格上有些明显的缺陷,“怎么可能是我的代码的问题呢?”,“他是傻逼,他也是傻逼,他们全都是傻逼”。一般人对程序员的性格上的缺陷,有一些容忍度,认为,程序员嘛,理工男嘛,这样子才是他自己。但我总觉得,失去了别的一些东西。程序员总是面容憔悴的人,也是戾气很重,并且虚弱的人。

写在最后

从来没有写过关于行业感想的文章,不知道写的东西会不会引起一些人的不适,也担心看文章的人以为我站在了道德的制高点。其实,有些内容写的也是我自己。如果想喷,轻点,因为怕疼。