A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 骑着小猪看雪 黑马粉丝团   /  2018-3-29 13:22  /  3663 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                                                                  

  程序员到底在恐慌什么?

程序员们会觉得恐慌么?有时候我会。
或者说,现在也会。
这种恐慌大概是在上学的时候就有了。
上学的时候我不知道怎么入门,去书店里看书,C,VisualBasic,Java,C#,C++,Pascal,这些语言让我困惑。
特别是学的数据结构,计算机网络,算法,这些东西学了之后,倒底能干嘛,我知道UDP是有可能不按顺序到达的,我知道数据链路层是在物理层之上的,
我知道了可以深度遍历,可以广度遍历一棵树,但是这跟写代码有什么关系呢?
Access,Mysql,Oracle这三种又该学什么呢?
还有JSP,PHP,ASP,这些书上讲的很多概念,都让我恐慌。
我觉得我是陷在了一个知识的海洋,不是知识的泥沼中,或者是知识的酒池肉林,迷宫,黑暗森林,折叠空间。
要找工作了,我该找什么工作?
迷失方向,无所适从,这是我作为初学者的恐慌。
好在我选择了考研,总算把这种恐慌,推迟了三年。
读研的时候,漫无目标的选方向,人工智能,那是什么鬼。
数据挖掘?挖掘机吗?
自然语言处理?我可不想当翻译。
信息安全?算了,看到那些加密解密我就头大,还是福尔摩斯密码有意思~~
网络安全?得,OSI七层协议我已经学的够够的,让滑动窗口见鬼吧。
图形图像处理。。。。。不想当一个画图的。
模式识别。。。难道以后我就要去当成一个鱼类分捡器吗。
我只是想老老实实写代码而已啊,嗯。基于Agent的软件工程,这个不错~~~
一直想知道软件怎么开发出来的,这个Agent的概念看起来好厉害的样子,而且也很容易和我以后的工作联系起来。
单只凭自己当年的认知,很难在分叉口决定倒底应该选择哪条路走下去。
然后,又到了找工作的环节。
鬼使神差的选择了Java。
大概惟一的原因,就是招聘网站上,招java的公司太多了。
我每天都在刷网站,每天都在认真的记录招聘网上倒底要什么技能。
我每次面试都要解释自己没有工作经验,只是做了一个兼职,会了点ASP。
我在北京的街头来回游走,在一个陌生的城市四处奔波,我学会了表达自己,但长进最大的技能就是问路。
保安可以问,打扫卫生的阿姨可以问,警察可以问。
年轻人不能问,过路的人不能问。
中关村图书大厦,就是我的图书馆。
把书按斤卖的二手书店,就是我的导师。
而每次面试,都是我纠正方向,贪婪的学习新知识的课堂。
到底什么样的水准,能让我找到一份工作?这是在找到工作之前,最大的恐慌。
终于入职了一家公司,然后就是铺天盖地的新知识点,新环境。
第一次上班,我也去看了一些职场上要注意的点,可是总觉得陌生又不敢尝试。
我害怕跟其他同事交谈,惟恐他们知道了我是一个菜鸡。
我连什么是IDE都不知道,一直分不清Eclipse和Myeclipse的区别,在那一个月里,我主动熬了两个通宵,
周末就是学写JDBCTemplate,Mysql,JSP,Html,CSS,Java,Struts,Spring。
各种In Action。
我觉得那一个月里,我弄明白了很多东西,这些都是以前我上学的时候没有学过的,我觉得自己是在尝还债务。
我想,科班出身的人,应该不会像我一样吧?毕竟我本科不是计算机专业啊。
学了这么多之后,我开始有了自己的思考。
我不喜欢那家公司的命名方式,也不喜欢现在他们做的事情,每天就是写CMS,每天就是写CMS。
入职以后,自己的个人成长应该往哪个方向走?
到了第二家公司,又学会了WebService,学会了Maven,学会了Shell,学会了解析XML,学会了版本命名。
到了搜狐之后学会的东西更多,哇,那个惊天地泣鬼神,无助,弱小,可怜的萌新菜鸡,在大神面前瑟瑟发抖。
他们展示给我看了一个优秀技术人员的素养:热情,主动,严谨。
而在这个时候,我不断的衡量自己和他们的差距,最终的结论就是,大概在五年之内,我都不可能达到他们的高度。
我该怎么办?最初是恐慌自己会不会被团队发现我是一个菜逼,然后被开除,被耻笑。
然后是困惑,自己看到了眼前有神一样的人,好像是无法突破的大山。
他们能够在两个星期之内搞懂Erlang,并且用到线上,还能够推广给全团队。
他们能够猜出来Facebook的开放平台是如何实现,讨论各种不同的技术方案最后整理出来了自己的一套标签库。
他们能够直接修改Tuscany的源码,把ActiveMQ完美的嵌入进Tuscany的框架里,让我们用到消息队列的时候,根本不用关注细节。
而我。。。刚入行一年的程序员,连JDK的源码都没看过。
而且,那个时候一直在有人说,程序员在30岁以后就没办法写代码了,我该怎么办?
我的同学,在毕业之后,一直做自然语言处理,而我也终于明白了自然语言处理是做什么的。
他们做分类,做聚类,每天抓取Twitter的内容,玩的很开心。
我想我应该选择去做算法,毕竟,做算法的人,越老越吃香,而程序员呢?总会有新的技术被代替。
在算法和架构之间,其实是程序员对于未来生存能力的恐慌。
于是我到了一家做算法的公司,在那里又开始了新的领域。
我学会了抓取,学会了分词,用CRF写了实体识别,还学会了Hadoop和Cassandra,顺带又学会了什么叫实时搜索。
到现在我都记得,这是跟原来当程序员的时候,完全不一样的体验。每天看英文文档,每天倒腾语料,每天调整参数。
而我身边的人呢,每一个都有自己擅长的领域,做搜索的小朋友手把手教我怎么调试Lucene的高亮算法,做Hadoop的小朋友告诉我一个Job倒底该怎么写,怎么跑。
而我做NLP的朋友,教会我如何生成语料,怎么样自动抽取新词,做去重的小朋友告诉我什么是Spotsig算法。
在那个时候,我能体会到的就是每个领域的深不可测,想在一个领域里做成专业,精通的人,都很困难。
我们老大告诉我说,公司里的每一个人,都是聪明人。
我认真的对比现在和当初的选择,不管怎么样,我知道很多人比我聪明的多,在这些专业的领域里,我比不上他们。
而在算法上的恐慌,就来自于根底不足,好后悔当初在硕士的时候,为毛没好好学习数据挖掘和算法。
不仅如此,我们还要做搭建一个知识库。什么是知识库?什么是OWL?
什么是三元组?
知识库又是一个新的大门,而我,在当时,可能是搭建了一个全国唯一的一个证券领域的知识库系统。
这套系统的价值,到现在都没被发挥出来,但是我对知识库的畏惧,从不曾消除。
老大找的是一个博士,来协助我做相关的工作。在跟那个博士交流的过程中,我越发的畏惧。
是对知识的畏惧。这些东西,恐怕我要在知识库领域里,沉淀很久才会明白。
可是在这个时候我有了一点厌倦,做了大概一年算法的时候,慢慢就明白,没有科研功底,想改变算法是完全不现实的事情。
算法更多的就是在调整参数,调优,优化,把正确率和准确率一点点的提升。
而我原来在搜狐的时候,未完全消化的团队协作模式,敏捷开发流程,系统架构能力,却又是当前公司最需要的。
除了我,他们都不懂这些。
而我这个时候其实是很害怕的,毕竟在搜狐是大神们搭好了框架体系,而我,现在是要自己来。
从使用别人的架构体系,到自己从头开始搭建一套体系,小心谨慎的犯错并解决问题,这是初级程序员走向中级程序员的畏惧之心。
在这个时候,我开始疯狂的刷Apache,Spring等各种开源框架,每天都想去看看,他们有没有新的版本,有没有新的框架可以应用在我们自己的领域上。
我用了QPID替代ActiveMQ做为自己小型系统中的消息队列,用了OSCache作了页面级的缓存,用MongoDB替代了Cassandra。
我还做了运维的工作,手忙脚乱的搭私服,搭Hudson,搭confluence,搭SVN服务器。
这些基础的东西,包括敏捷开发的流程,包括多团队并行开发的管理,线上Bug的修复,所有的这些,都在这段时间里,由搜狐留下的种子,慢慢生根发芽。
老大带我去参加Qcon大会的时候,跟我说,你就是我们公司的架构师。
我是么?我觉得有点不太可能。我只是一个工作不到三年的架构师,我跟原来的大神们比起来差远了。很多时候我只能反来复去的解决问题,我不知道问题的根源在哪里,我也没有时间也没有耐心去认真的读他们的源码。
又或者我看了他们的源码之后,根本不是自己喜欢的风格,我去读重构,去读设计模式,去学习什么是优雅代码,去看敏捷开发。一直都觉得自己太菜了,太弱小了,什么都不会。
身上有了责任之后,恐慌往往就来自于,你就是全公司最后的技术支柱,别人解决不了的问题,你必须解决,完成最后一击的人,必须是你。
而到了后来,因为个人对杀人游戏的喜欢,又迷恋上了规则引擎。早就对这种棋类游戏的开发看不惯了~~
这明显就是规则引擎应该处理的啊。
杀人游戏,象棋,捉鬼,完全就是规则的问题,于是又死命的学Drools,学RETE算法,欲仙欲死。
写了N多的规则,虽然不爽,但是很开心啊,很多底层的东西没弄明白,但是已经摸索出来一套可行的东西了。
在此期间又折腾了Erlang,Erlang的语法真心是。。。如果不是我刚好懂了点Drools,百分百不明白。为了配合公司的应用场景,保证不丢消息,实现Comet的过程中又改了点东西。
后来在做多人扫雷的时候,发现Comet完全支撑不了延时,一次点击大概会有18MS~38MS的延迟,根本无法达到实时游戏的效果,怎么办?
WEBSocket又横空出世,于是又去看WebSocket怎么做,看Jetty,还是Tomcat,还是Resin支持。
这个时候就特别的恐慌,太多东西不明白,太多底层的东西需要花时间理解,每一个方向上都能遇到比你了解更深入,更专业的人,我需要怎么做?
而微信公众号又出现了,去了解微信公众号的API,token机制,还顺便搭了一个OPENID的服务器,就是没用Auth。
不旦如此,我在管理上面的成长也非常快,而且对于PM产生了极大的兴趣。
厌倦了总是成为别人手里的工具,程序员代码写的再好,也弥补不了产品本身的缺陷,加班熬夜再多,也只能修复Bug,不能带来流量。
所以在做需求评审的时候,有一种冲动,想去做产品。
这个时候又是一个转折点,到底应该是继续做技术,或者是做管理,或者是做产品?
我选择了去学习产品和运营。
这种恐慌,还是来自于对技术的不确定性,总以为命运掌握在别人手里。
我还学了前端,JQuery,Bootstrap,AngularJS。
可是每过一段时间,就会出现一些新的知识点和概念。
当Go语言出现的时候,他们说Let’s Go。
当ReactNative出现的时候,当Swift出现的时候,当Kotlin出现的时候,当Vue出现的时候,当区块链出现的时候。
甚至连一直平静的算法界也出现了深度学习的时候。
Devops一直让人眼花瞭乱,从Docker,Ansible,到openstack,到现在的脱机运维,云服务的概念让运维升了仙。
灰度发布,弹性扩容,随着双11,春节,各种高并发的场景层出不穷。
而中国的互联网率先走向国外,异地数据同步的问题又扔到了人前人后。
还包括VR和AR,ibeacon还未能完全发挥热量,可能就已经被遗忘了,支付的快速发展,让支付宝和微信的支付SDK几乎成为了标配。
而IM的兴起,第三方统计数据的SDK更是占所一席之地,不用说分享组件和第三方登录组件了。
微信公众号不断的开放接口,小程序又落地诞生,科大讯飞的语音识别也越走越远,直播的兴起让技术又一次走上高潮。
Openresty+Lua在微服务的世界里开心了一会儿,Spring Cloud和Spring Boot 和Shiro 又出现在眼前。
Json快要成为标配的时候,yaml说我更简洁。
Maven在后端领域成为了标准的王者,Android的世界却打上了Gradle的烙印。
还不用说前端领域一片乱战。
这是一个技术让人疯狂的时代,每一项技术都爆发出来迷人的光辉和色彩,而我却在他们的照耀之下,面色惨白。
我到现在还有很多东西不明白,而这些又是让我无限恐慌的来源,很多时候,你被逼着要懂很多东西,是因为你要去做的东西,必须这么干。
Zabbix还没有完全获胜,各大云服务厂商已经推出来自己的监控API。
而如今你想做一个餐饮系统,对接美团,饿了么这些外卖平台的坑,是必然要走的。
还有万恶的金融,银行存管的事情,他们又有了各自的接口。
我们得知道,如何在O2O平台中,计算用户周边有哪些便利店,这样要用到MongoDB。
我们得知道,ElasticSearch能够做到实时索引,而且比Solr更简单。
我们还得知道,大数据那一套庞大的体系正在不断的孵化新的东西,Spark这些东西还在远方闪闪发亮。
我不知道这对于程序员来讲算什么,而我心里其实一直很恐慌。
我还在努力的学习PM,学习运营,学习公司管理,学习商务谈判,更重要的,在我熟悉的领域里,学习如何教导更好的程序员。
是不断的学习,或者是一个人的学习能力,最终能让一个程序员心安么?
还是各种东西触类旁通,我们不用太过担心,总是能轻易而举的在该用到的时候,会用到他们?
又或者,无论外界怎么变换,我都可以用我的SSH打遍天下无敌手。
还是说,我只需要在区块链上有深入研究,就足以让我做到退休。
与此截然不同的,又是大部分人的工作,都不会接触到这些东西。
是这个行业细分的越来越严重了么?
还是在20%的领域里才会这么细分,80%的人都不用关注到这些内容?
所以每每有前端工程师,大喊着我要用NodeJS打遍天下的时候,我都忍不住回想一下所有所有这些后端中我列出来的内容。
现在还有谁敢称自己是全栈工程师,全栈皮毛党都很难做得到吧。
在之前,这种恐慌,是我一直在努力学习的动力,因为恐慌而去掌控世界。
而现在,这种恐慌,很难让我再沉下心去学习,这又带来了新的恐慌。
这个世界,是属于这些90后的。
我对着自己说,对着自己身边的朋友说。
“总不能一直敲代码吧?”
“为什么不可以一直敲代码?可以的。”
“过不了多久,就可以用算法写代码了。”
“那到时候,我们干嘛?”
“我们可以写算法啊。”
“如果有一天,连算法都可以用算法写了呢?”
“放心,你活不到那一天。”

9 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
内容好多,大碗鸡汤
回复 使用道具 举报
666
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马