扪心自问!15个IT技术人员必须思考的问题
行内人自嘲为程序猿、屌丝和码农,行外人也常拿 IT 人调侃。那么,究竟是 IT 人自身没有价值,还是他们未曾仔细思考过自身价值呢?
1. 搞 IT 的是屌丝、码农、程序猿?
提及 IT 人,人们往往会联想到他们呆板、不解风情,一心专注于 IT 技术,即便身旁有性感美女也不为所动。然而,事实真的如此吗?虽说不能完全否定存在这样的情况,但这能代表 IT 人的普遍特点吗?而且,其他行业也不乏此类人,为何人们总拿程序员说事呢?下图为 2013 年网上流传的一张屌丝分布图(图片来自 3dmgame.com),程序员行业位居榜首。
实际上,问题的关键不在于 IT 行业被贴上这些固有标签,而在于行业内人员如何看待自己。IT 行业工作大多十分辛苦,“朝九晚五”对很多 IT 人而言只是传说。鉴于工作的艰辛,部分程序员会苦中作乐,为枯燥的工作增添乐趣,这是可以理解的,毕竟生活不能像程序一样机械执行。
由于 IT 行业工作辛苦,从业者整日与机器打交道,逐渐变得不爱与人交流、不愿出门,不少程序员会在社交网络上吐槽。“程序猿”一词用于形容 IT 人呆板、情商低;“码农”则表示程序员工作如同农民般辛苦,且收入不高;“屌丝”则是前两者的结合。
程序员给自己贴上这些标签,主要有两个原因:一是找乐子,二是吐槽。那为何行外人也会参与调侃呢?多年前,笔者还是高中生时,特别崇拜程序设计师,在当时很多人心中,他们是社会精英,IT 行业充满神秘感。那时,从事编程工作要么需要有兴趣和天赋,要么毕业于相关专业,否则难以胜任。但如今,软件开发培训机构面向初中和高中毕业生招生,越来越多的人有机会接触软件开发。进入该领域的人员能力参差不齐、目的各不相同,有发展出色的,也有发展欠佳的。因此,行外人眼中的高薪、精英行业,行内却有不少人薪资不高,甚至觉得自己与工地搬砖工无异。
面对行外人的调侃,很多程序员表现得十分淡定。原因很简单,如果程序员自己都以调侃的态度看待自己,那么别人的调侃也就无所谓了,甚至还会表示欢迎或产生共鸣。
2. 如何看待工作中的加班以及确保自身健康?
加班可分为主动加班和被动加班。
主动加班的动机主要有两类。一类是热衷于自己的事业,愿意为其投入更多时间和精力;另一类是回家后找不到成就感和幸福感,留在公司既能工作,也能玩游戏,还能节省空调电费,部分公司还有加班补贴,所以他们觉得多在公司待几个小时也不错。
被动加班的原因较为复杂,可能来自公司、领导、团队、个人以及一些不可抗拒的因素。
在创业公司,业务变动频繁,公司决策和方向瞬息万变,团队成员需要花费更多时间应对这些变化,因此正常的八小时工作制通常难以适用,除非创始团队能力出众,能保证高效的工作效率、敏锐的市场洞察力和强大的执行力。而在大公司,业务频繁变动的情况相对较少,若出现这种情况,公司可能濒临倒闭。在国内某些互联网巨头企业,加班已成为常态,甚至可以用“变态”来形容。某 985 高校毕业生 A 毕业后进入某互联网巨头从事开发工作,试用期三个月内兢兢业业,每晚 24:00 左右下班,试用期结束后以优秀成绩通过转正考核。凭借较强的学习能力,A 对项目组的业务和技术十分熟悉,能提前完成领导安排的任务,还主动改进项目组程序。随着工作效率提高,A 开始提前下班,从 23:30 逐渐提前到 21:30。尽管他的工作任务保质保量完成,但在领导眼中却被贴上了“不尽职”的标签,月度考核从最初的 A 滑到了 C。
团队协作也可能导致加班。若团队协作频繁导致加班,可能是团队成员工作耦合度太大,技术架构或团队分工存在严重问题。
个人原因导致的加班,可能是对工作量预估不准确、拖延症严重或对技术不够熟悉等。不过,个人原因导致的加班相对容易解决,因为自己能够找出问题症结并加以解决。
此外,需求变动、硬盘永久性损坏等不可抗拒因素,也会带来额外的工作量。
目前,国内大多数 IT 技术人员属于被动加班,且多为强制性质,只有极少数公司提供加班费。因此,很多技术人员只能在适应和离开之间做出选择。在中国这样的发展中国家,很难期望政府强力干预这一现象。
前不久,“深圳 36 岁 IT 男猝死马桶盖上”的新闻在互联网上引起轰动。一位清华毕业的程序员,因长期连续加班,身体严重透支,年轻的生命就此消逝。从尊重生命的角度看,事业、公司和客户都比不上自己的生命重要。若必须在事业和生死之间做出选择,相信绝大多数人会选择生存。但如果有人认为“XX 比生命还重要”,且愿意承担长期过度加班带来的后果,甚至像革命先烈一样为事业献出生命,那也无人能够阻止。
3. 如何平衡工作与家庭?
笔者参加一期沙龙时,一位智能硬件公司创始人表示:“程序员根本就没有生活,他们的生活就是工作。”作为技术出身的创始人,他这样说可以理解,但这种说法并不完全正确。一方面,程序员需要争取家人的大力支持,没有家人的支持,事业发展可能会遇到诸多困难;另一方面,设想一下,若自己身患重病,守在病床边照顾你的会是公司领导还是家人呢?想清楚这些,或许就知道该如何平衡工作与家庭了。
4. 信息检索一定得用 Google?
在许多招聘广告中,常能看到类似“必须使用 Google 搜索技术资料,若用 Baidu 则不适合我们”的职位要求。不可否认,Google 的搜索引擎比 Baidu 更出色,对关键词的资源定位更精确。理论上,输入相同关键词,Google 能更快速、准确地找到答案。然而,研发团队是否有必要强制规定工具的使用,如必须用 Google 搜索、必须用 Linux 操作系统、必须用机械键盘等呢?这让我们联想到小学学过的文章《摔琴》,便宜的小提琴在某些音调上表现欠佳,但只要演奏者水平高超,听众根本不会在意琴的价格。
回到信息检索的话题,对于信息检索高手来说,即便使用世界上最糟糕的搜索引擎,也能找到 Google 上找不到的内容。也就是说,能否快速找到所需结果,并不取决于特定的搜索引擎。而且,使用 Google 和 Baidu 搜索相同的中文关键字时,搜索结果大同小异。有人认为 Google 的英文搜索比 Baidu 强,但与未被墙的 Bing、Yahoo 等搜索引擎相比,英文搜索结果也相差不大。因此,信息检索是一种能力,而非取决于搜索工具。
5. 技术牛人如何对待新手?
在公司(尤其是大公司)中,通常有一些技术大牛,他们是公司核心技术人员,支撑着整个公司的技术平台。那些称得上技术专家的员工,一般性情随和、态度谦卑,对技术新手的提问非常耐心。但也有少数技术不错的人,对职场新手十分瞧不起,对于新手程序员犯下的错误,会大声指责甚至谩骂,以此炫耀自己的技术。这种表现对于 IT 技术人员来说是不成熟的。高手和专家都是从新手成长起来的,今天的新手也许明天就会成为专家,没必要嘲讽职场新人,否则只会降低自己在同事眼中的魅力。
6. 如何看待 IT 鄙视链?
2014 年底,IT 界流传一篇名为“软件工程师的鄙视链”的文章,从编程语言、工具、OS、硬件和职场五个方面介绍了 IT 界的鄙视链。以编程语言鄙视链为例,静态语言鄙视动态语言,组合鄙视 C,C 鄙视 C++,C++ 鄙视 Java 和 C#,Java 和 C# 相互鄙视,C# 鄙视 VB 等。下面来看 CSDN 整理的编程语言历史排行榜:
Java、C 和 C++ 在 2002 年前后使用量较大,但 2014 年之后均有所下降,其中 C 的降幅较小。2002 年前后,php 刚问世便得到大量应用,但到 2014 年其应用量大幅下跌。Python 在 2002 年前后应用较少,到 2014 年应用量增多。这些变化表明,编程语言发展迅速,它只是一种工具,且编程语言之间相互借鉴,设计思想有很多相似之处。因此,只要精通一门或两门编程语言,学习其他大部分语言的成本就会很低。今天热门的编程语言,明天可能就会变得冷门甚至消失,没必要鄙视使用冷门语言的人,也许他们使用的语言明天会成为主流。很多对编程语言有情节的程序员不相信这一点,坚信自己使用的语言是世界上最伟大的,会长盛不衰。
其他类型的鄙视也同样不合理。从事运维的技术人员,能力未必比从事开发的差,也许街上的快递员曾经是比你更牛的程序员。社会分工不同,各行各业的职位都有其存在的价值,没有被鄙视的理由。不同的工作各有特点,你可能不会做别人的工作,别人也可能不会做你的工作。
7. 为何不自称工程师?
在中国,很少有程序员自称工程师。原因主要有以下几点:一是担心这个标签带来太大压力,自己的能力无法匹配;二是希望外界将自己视为普通的写程序人员;三是不喜欢被称为“程序猿”或“码农”,既不想被调侃,也不想被高估,更愿意低调行事。
8. 薪水在选择工作中的影响力有多大?
目前,很多 IT 行业求职者秉持“做多少事,拿多少钱”的信条。如果公司愿意支付更高的薪水,求职者通常会更愿意付出更多努力。当面临两个工作机会时,offer1 薪资高,但工作内容并非自己特别喜欢;offer2 薪资只有 offer1 的一半,但工作内容是自己擅长且喜欢的。网上经常会有求职者列出几个 offer 让网友提建议。其实,遇到这种情况很容易解决。如果当前最需要钱,就果断选择薪资高的;如果最需要一份喜欢的工作,就选择自己喜欢的。选择工作时,应选择自己最需要的,这样工作起来才会更有动力。若听从一些所谓牛人的建议(如应届生没必要在乎工资多少,能学到技术就好,实际上应届生到哪里都能学到技术,只是多少的问题),很难在工作岗位上全身心投入。如果当前急需钱,又没有兴趣创业,就不要接受创业团队低薪 + 画大饼的待遇,因为这对公司和自己都没有好处。
9. 编程语言不重要,重要的是设计思想?
这是一些所谓技术牛人给新手的建议,学校老师也会给出类似建议。当新手咨询学习哪门语言时,专家建议随便学一门,认为门门语言相通,精通任何一门语言都能找到好工作。这种建议有一定道理,但并不完全正确。不同的语言适用于不同的业务需求,例如企业开发更适合使用 Java 语言,Php 和 Python 在中小型网站开发中更高效,Objective - C 主要用于开发 iOS 应用。而且,不同语言有不同的特性,底层实现也不尽相同,开发者需要根据自己喜欢的业务领域选择编程语言,并深入了解所使用的语言。
10. 是否经常把自己的思想强加给同事?
程序员群体普遍存在一种现象,即总认为自己的想法是最好的。每个人都有自己的想法,只是有些人喜欢表达,有些人则藏在心里。允许他人评判自己的想法,并客观分析他们的观点,而不是强行将自己的想法强加给他人,这是一种个人魅力的体现。
11. IT 人可以做多久的技术?
大学期间,经常听到有人说 IT 人是吃青春饭的,过了 35 岁就无法写代码了。如果到 35 岁还只停留在写代码层面,可能确实竞争不过刚毕业的年轻人。
12. 什么技术热门或赚钱,就学什么技术?
曾经,Hadoop 技术非常火爆,很多公司开出高薪招聘 Hadoop 技术人员。但如今,Hadoop 热度减退,该职位的薪资吸引力也大不如前。热门或赚钱的技术往往时效性较强,学习自己喜欢的技术才是关键。
13. 如果某一天开始计算机不需要人类编程了,你还可以做什么?
随着人工智能技术的发展,未来机器有可能代替程序员进行编程。计算机和互联网的发展已经消灭了很多传统职位,程序员这个职位也有可能在未来消失。当全球 IT 公司都宣布废除人工编程时,程序员该何去何从,是回家还是转行呢?
14. 业务驱动型还是技术驱动型
目前,O2O 在中国非常火爆,但严格来说,O2O 公司并非传统意义上的互联网公司。O2O 将传统行业部分业务从线下搬到线上,例如以前需要去餐馆吃饭,现在只需在网上下单,餐馆就会送餐到家。显然,O2O 是业务驱动型公司,在这类公司中,技术只是业务的支撑部门,一般不需要复杂的技术,但要求技术人员了解较多的线上线下业务。而百度这样的公司则是典型的技术驱动型公司,他们使用和研究高深的技术,公司里有很多科学家级别的人物。因此,如果想在技术上达到专家级别,在技术驱动型公司更容易实现;如果想利用简单技术改变传统行业,业务驱动型的 O2O 公司是不错的选择。
15. 如何定义成功
毕业多年后,同学之间总会讨论谁混得好谁混得差。评判标准各不相同,有人以赚钱多少、是否在北上广深买房、官职大小、是否在 BAT 工作等来衡量。多数人以金钱来评判一个人是否成功,但成功的标准不应如此单一。如果一定要给成功下一个定义,成功可以这样计算:
成功度(S)=(工作快乐度×工作快乐权重 + 工作薪资×薪资权重 + … + 生活快乐度×生活快乐权重 + 家庭和睦度×家庭和睦权重 + …)/n
这里 S 最大者才是最成功的人。