`

迷路的程序员

    博客分类:
  • talk
阅读更多

 好久没看书的热情,好久没有完整研究过一个技术,现在天天赶业务,希望自己做出来的东西是个精品,结果在某一天,部门卖给京东了。过年的时候,阿里打了几个电话过来,我接了其中一个,发现自己好多问题答不好。相对地,另外一个同事,他做的一个文档系统非常坑爹,编辑后代码和图片老丢失,但是他找到了一份更高薪水的工作。我和他之间存在一个非常大的区别:他的目标不是把业务做好,而是把技术能力提升上去,把没有尝试过的东西拿来用,甚至无视组长的要求;而我关注的是业务体验,业务功能。在组内,他绩效是B,我绩效是A。但是面对试官,他可以说出N个高大上的技术方案,而我根本无法表达出自己在业务功能上花费的心思。

第一结论:业务不重要。
这是我最直接的想法。一个人真的好难把一个业务从默默无闻变成纵所周知,很难清晰地展现在面试官面前。面试官基本不懂你做的业务。

第二结论:清楚自己的定位。
第一结论几近脑残。其实认真思考下自己所做的和自己所追求的,是自己错了。
我是个java工程师,实际上做连产品设计、界面构建的工作都做了。去到面试官的面前,业务对他毫无意义,他要的是你的技术,处理问题的思路。我大部分时间在考虑怎么设计让客户体验更好,怎么调优小细节,还有维护工作,怎么可能得到面试官的欢心呢。并发,JVM调优,可用性,监控,缓存,分布式等等这些非功能非业务的需求才是我需要考虑的事情。尽管说业务还没起来,不需要这么NB的架构,但是这才是我的工作,我的追求。一心做好业务,做所谓全能选手,才是我的悲剧。即使业务做起来了,出名了,面试管最想知道的还是你的技术,那才是你的第一品牌。

第三结论:我必须马上继续写博客,写总结。不能停留在解决问题层面,而是需要提升认识问题的深度和广度。
记得由此面试官问我问我选这个技术做这个玩意,我回答说:旁边刚好有本书,就用它了。ORZ,多老实,多可爱。如果是我同事来回答,肯定是搬出N种类似的技术,优劣对比,业务具体分析,balabala...~实际做得好不好面试官不管,也无从验证。尽管实际上大家都知道,只要熟悉一项具体技术,都能解决好多问题,不需要太多的对比选型,做得差只是自己水平问题。选MINA还是NETTY,选THRIFT还是PROTOBUF,选HIBERNATE还是MYBATIS,根本无关重要。博客和工作总结停了将近一年没写,因为自己把更多的时间放在了业务功能实现,遇到问题没有像以前那样系统的研究,而是GOOGLE后马上简单解决。大半年下来,回头望去,业务功能是做得不错,已经推广到其他小组,但是技术没啥提升。我再次回想,为何当时我要来到这里?一是薪水,二是技术。总想着来到这里,自然而然能学到大并发,大数据,现实再次告诉我太天真了,应该是我主动学会了,再根据具体业务往上套。现在沦为一个蹩脚设计+CRUD码农,实在太可笑了。我熟悉JS面向对象没多大用,我熟悉基本的JAVA没多大用,别人上来都问我项目的架构设计和分布式计算了。。。

第四结论:成功产品的前期,必有用心的开发,但是技术往往不厉害。我的那个同事和组长一致认为微信后台架构就只是业界常用的套路,没有创新,不过如此。
做过业务的同学都知道,把一个业务功能做好,是花费巨大心思和时间的事情,期间各种小调整小变更,大调整大变更,甚至后面功能删掉,结果2/3的时间都花在支持业务变更,剩下1/3的时间够你来技术学习和创新吗?
我觉得业务和技术肯定会经历一个过程:
1.业务起步期,用最简单的架构最简单的技术去实现,尽可能的支持业务,这个阶段用户体验和业务功能最重要(JD初期用的.net,据说当初选型原因很简单,因为刚好身边有几个人会.net);
2.业务发展期,访问量和数据量都上来了,接入层,逻辑层,数据层面临着压力,这时候使用业界成型技术框架就进入议程了,这个阶段技术的重要性就显现出来了;
3.业务爆发期,这个时候,业界的框架觉得不行了,就搞自己独立框架来支持自己特定业务吧(淘宝是代表,研发自己的框架)。
相信大部分的互联网业务都是在第一个阶段,许多人都像我一样重复着低级的码农工作,做着没有技术含量的活儿,没有高并发、海量数据处理的经验,只能似懂非懂地看一些文章。

 

为了生存,我的内心挣扎着。每当自己写完一个CRUD,心里就多了一份沉重的羞耻感和危机感,我感觉我在浪费自己的时间,重复劳动让我恐惧。我并不是喜欢的技术的人,只是刚好喜欢钻研。我甚至对技术有些抗拒,技术体系太庞大了,而且有时候连某一项技术的一些小细节也很难搞懂。实际上,路很多,我可以选择更换环境,让环境推动我去做真正的技术,我也可以调节时间,学习工作暂时用不上的技术,然后写写总结,吹吹水。

唠叨完,感觉清晰多了。这段时间研究下CSS3动画 + JAVA concurrent包吧,有兴趣的同学可以关注我的博客, 更新速度会至少赶上09的DOTA视频,而且必须是精品。

 

最后,总结一句: 为了生存,技术比业务重要!

27
17
分享到:
评论
33 楼 Noplea 2014-05-19  
楼主很强悍
32 楼 happygao521 2014-05-14  
09的DOTA视频真的学到不少东西呀! 期期必看 3年多了!
31 楼 richyzhang 2014-03-31  
zhang_xzhi_xjtu 写道
james_lover 写道
博主不用太纠结。对业务知识的理解力和广度决定一个人的收入上限,而技术水平的高低则决定起点的高低。技术很快就会到天花板,但业务的天花板非常高。


为啥技术很快就会到天花板?


在中国大部分公司,做技术的是算后台支撑的,企业的发展主要靠前台也就是业务来促进。我国的现状就是很少有公司是技术驱动的。所以技术人员的起薪是高,但在公司内部的地位并不高。但更实际的情况是,做技术的很多转去做业务往往也能做出不错的业务,而真的技术出色的员工拿到的薪水也基本还对得起行情。
30 楼 zhang_xzhi_xjtu 2014-03-31  
james_lover 写道
博主不用太纠结。对业务知识的理解力和广度决定一个人的收入上限,而技术水平的高低则决定起点的高低。技术很快就会到天花板,但业务的天花板非常高。


为啥技术很快就会到天花板?
29 楼 fhx007 2014-03-30  
我看楼主感觉选错了做业务的方向,在哪里做业务更合适,如果要是做银行的软件、电力的软件、电信的软件,那对业务的了解有时比对技术的了解更重要,而我看楼主所做业务只是对系统人性化方面的工作,因为我不是做互联网的,可能对互联网的业务了解不多,但对做银行系统来说,能做好一个软件需要对业务了解非常深刻,很多同行业的公司会花大价钱找对某类业务非常了解的人。但我却是一个作银行系统的技术宅,技术不能丢,还得不断学习,业务上还得多找机会学习,一样痛并快乐着。
28 楼 蛋炒饭加醋 2014-03-30  
博主加油啊,我也希望变强,但是可惜自己以前不努力,不知道自己能走多远
27 楼 richyzhang 2014-03-29  
博主,你又看偏了。在中国肯定是业务比技术重要。当然,具体情况要具体分析。

以你举的例子来讲,因为是去面试淘宝的职位,而淘宝在IT业已经算是巨无霸级别的,各个线条分的很细,前端工程师都有几百号人,做消息中间件的可能也要几十号人。这种公司的组织模式,决定了某些职位要招的就是只管技术不需要业务的。
你同事应聘的正好是这样一个职位。设想如果他上面有Team leder,在上面还有开发经理,然后再有pm、产品经理等人共同组建一个团队来做一些东西,面试官可能是tl也可能只是开发经理,他们当然不需要招来的coder会要懂很多业务逻辑。你的业务经验反而可能会给他们造成困扰,因为产品经理就够他们烦的了。

但是,你如果面试淘宝其他的职位,可能就又不一样了。至于其他各色公司的职位,那又完全两样。另外,我相信在一个有前途的公司里,你同事那种交付质量是吃不开的。其实换个角度看,你现在的公司赏罚也有问题。
26 楼 tianhaoleng 2014-03-29  
你的那个同事才是真傻逼。

软件的意义,在于为客户提供价值,提高人类的生产效率,所以不以该目的研发出来的产品都是垃圾。

你重视业务体验的思想,注定你是一个产品经理,而不是一个coder。
25 楼 eyeyin 2014-03-28  
CRUDing,too.
干的很纠结,换组了,新的小组没有交流技术的文化,感觉组长只是把人当畜生使。
自由成长吧,如果还没有放弃治疗,应该会有不错的结局。
24 楼 學會☆~Snow 2014-03-28  
找工作遮個百分之八十是靠运气+百分二十是经验。上个星期面试一家公司技术PASS了,跟技术老大也面谈好PASS了,然后在接下来的一个星期人事完全就没有下文了。有种被坑的感觉
23 楼 hyj1254 2014-03-28  
运气很重要。不同的面试官,不同的公司,面试内容和方式是很不相同的。
22 楼 zhongli 2014-03-28  
第一眼看到业务不重要,千万别这么认为,以后会麻烦,技术是为业务服务的
21 楼 nannan408 2014-03-28  
  你们tx分工不合理,业务变更应该是运维程序员做的事情,研发程序员和运维程序员还是要分开的。深圳的企业都是希望一个人做完所有事情,这是没前途的想法。一个人一辈子能做好一件事情,已经不错了。
20 楼 xiayh04 2014-03-28  
得失勿忧,去寻找内心的自我——同为技术男,谨上
19 楼 niedj 2014-03-28  
对于业务来说,我觉得很重要,如果你要换行业,那就另当别论了。个人觉得跳槽损失半年时间,但是换行业的跳槽则损失的时间是3年。如果有可能尽量少换行业,真心伤不起啊。
18 楼 long_ltoy 2014-03-28  
你还是社交能力不足,你的同事既然被人家面上了,肯定有优势.
你想想,他能随便给几个高大上的技术方案,你为什么没有想到呢?

是你没有想到,还是想到了嘴笨没说出来?这两点无论哪一点,都是你的缺点,这就是你的不足.
17 楼 tianzt 2014-03-28  
第一结论:业务不重要。
⇒为什么不重要,这是你的工作,而且如果有相关公司希望使用你现在做的业务,你懂得,不是更容易找到下家
  PS:面试关不关心业务,你怎么知道,往往都是从以前做的业务工作来总结出你的经验和能力


第二结论:清楚自己的定位。
⇒让客户体验更好,怎么调优小细节,还有维护工作,这个难道不是技术
  你能给我解释下什么叫做技术,在解释下,我们用技术做什么工作
  PS:你给我的感觉是你真实的技术很不好,说不出什么技术概念,所以你用了上面几点来掩饰


第三结论:我必须马上继续写博客,写总结。
⇒“ORZ,多老实,多可爱。”你这就是给自己找理由,我个人不反对,遇到什么就用什么,但是用完之后,你没有什么体会嘛,用了就用了,什么技术都有自己的优缺点,你用了之后,没有反应,没有体会,你还能说自己可爱吗。
   PS:这里你给我的感觉就是干活不求甚解,就同我常说我们组里的人,项目干了两年了,业务是比较熟悉了,现在连明确分层和实现方式都不知道。


第四结论:成功产品的前期,必有用心的开发,但是技术往往不厉害。
⇒你从哪里看到初期技术不厉害,初期的目的是什么,是实现功能化,基本功能实现的时候需要什么特别技术吗

个人感觉您就属于一个工作比较认真,但是不求甚解的人,在一个固定开发方式的环境下可以比较的投入工作,可以创造很多,但是换了新的框架新的项目可能作用就不会太大了

以上纯粹个人意见,可以参考下
16 楼 hyj0903 2014-03-28  
作为一个打工者,要时刻把握好技术和业务的边界,万不可走火入魔,至于如何把握,在不断实践中慢慢积累经验。
楼主肯定对业务走火入魔了,甚至有种得意的感觉!以这样的心态去参加面试,必然会碰得体无完肤,除非遇到一个真懂你的面试官。

以上只是个人看法,楼主不要激动
15 楼 finallygo 2014-03-28  
楼主难道是腾讯的? 如果是的话,握个爪吧, 我估计过几天我可能也和你一样了,另外看你想学多线程,我推荐一个我前同事的博客吧,写的很好,http://www.blogjava.net/xylz/
14 楼 yinxiangbing 2014-03-28  
    这个是相对的,如果你想做个领域专家,技术肯定要抛弃一些,去做业务,正所谓术业有专攻,如果你想做个技术专家或者技术培训讲师,需要把技术好好整理和提升下。
    决定一个发展的,最终还是脖子上面的那部分。

相关推荐

    程序员刷题app排行榜-full-stack-app:帮助构建全栈应用程序的结构

    这可以作为结构化指南,指导您如何构建全栈应用程序,以防您迷路或不知道如何开始。 现在,这将在一个非常高级的概述中编写。 这应该是语言不可知的,没有深入研究框架或哪种语言可以优化您的应用程序。 这些决定...

    JavaHub:Java程序员学习之路,持续更新原创内容,欢迎Star

    原创内容公众号【JavaQ】首发,关注不迷路。 目录 持续更新中,内容列表较多,善于使用Ctrl+F 基础篇 Java基础 网络基础 Linux MySQL基础 MySQL架构学习笔记 温故而知新-MySQL数据类型 MySQL索引实战经验总结 提高篇...

    Troika:游戏给予 28

    三驾马车Ludum 敢于 28 三驾马车是一款关于寻找迷路者的游戏 - 在你的环境中穿梭并用火力、切换块的力量或重力本身的原始能量战胜敌人,以找到 Zwei! 但是,正如主题所暗示的那样,您一次只能获得一种力量! 在任何...

    美丽网站设计

    如果你对娇气选择颜色,手感表现平平一片空白的浏览器窗口,或者迷路试图选择合适的字体,这本书是给你的。我拿一个系统的方法来展示传统因为它适用于当今的网站开发行业平面设计理论。而内容是针对网络程序员和开发...

    highchars.js

    highchars.js便于找不到的程序员

    augur-core:一个Truecoin协议。 https

    Truthcoin-POW 如果您不是程序员,那么您会迷路,应该单击以下链接: : 将真币项目的功能添加到基本币中。 我在播客采访中描述了这个项目: : 捐款:1GbpRPE83Vjg73KFvTVZ4EnS2qNkiLY5TT =====安装Mac版sudo pip ...

    码匠编程2020最新前端学习路线

    码匠编程2020最新前端学习路线,学习路线是比较细致的,帮助正在学习web前端的小伙伴们不迷路,事半功倍

    LabVIEW虚拟仪器教程设计教程

    LabVIEW超详细教学视频,内附书中源代码及一些程序员必备专业书籍

    matlab资源分配的代码-soral:SORAL:SARBayes最优资源分配库

    Library,一个程序员的优化算法 API,专为 Search And Rescue (SAR) 量身定制。 用 C++ 编写(快速) Python 和 Node 包装器 单一资源的 Charnes-Cooper 算法 Washburn 的多资源JOTA算法 JOTA算法也在 MATLAB 中 ...

    vuenut:用于vue js(Vuex)的:gear:开发人员工具

    该组件旨在改善工作流程并帮助喜欢简单,快速,有效工具的程序员。 只需单击一下,您就可以使用Vuenut做出伟大的事情。 将整个商店可视化为节点树,以免迷路 获取数据的最终路由,并使用简单的ctl v将其添加 通过...

    C#创建.xlsx文件.rar

    C#利用EPPlus创建.xlsx文件 1、内部包含word文档,详细介绍如何创建Excel文件及其内容读写代码 2、内部包涵EPPlus.dll文件 3、亲测可用,仅用来帮助那些迷路的人

Global site tag (gtag.js) - Google Analytics