`

迷路的程序员

    博客分类:
  • 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  
    这个是相对的,如果你想做个领域专家,技术肯定要抛弃一些,去做业务,正所谓术业有专攻,如果你想做个技术专家或者技术培训讲师,需要把技术好好整理和提升下。
    决定一个发展的,最终还是脖子上面的那部分。

相关推荐

    程序员相关的笑话[总结].pdf

    在问路的笑话中,有一个驾驶热气球的人发现他迷路了。他降低了飞行的高度,并认出了地面上的一个人。他继续下降高度并对着那个人大叫,“打扰一下,你能告诉我我在哪吗?”下面那个人说:“是的。你在热气球里啊,...

    程序员刷题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前端的小伙伴们不迷路,事半功倍

    初一英语课PPT课件.pptx

    对于初一学生的职业规划,无论选择公务员、军人、医生、记者、外交官,还是IT行业的程序员,甚至是其他任何行业,英语都是必备技能。大学教育中,英语四级证书往往是获取学位证书的必要条件。即使你不直接从事英语...

    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将其添加 通过...

    Bitter Java

    《苦涩的Java》教会读者如何识别迷路的迹象,以及如何重新找到正确的方向。通过具体的代码示例,它展示了Java编程中常见的陷阱,并提供了重构后的代码及其解析,解释为何新解决方案更为安全。 知识点详述: 1. **...

    C语言经典程序100题(习题+答案)

    【C语言经典程序100题(习题+答案)】是针对C语言学习者的一份练习资源,旨在通过一系列编程题目帮助用户巩固C语言的基础知识。C语言是一门强大的编程...因此,对于想要熟练掌握C语言的程序员来说,这样的练习至关重要。

    LolnetSmartRedirect

    1. **自动路径规划**:LolnetSmartRedirect可能能够帮助玩家快速找到目的地,通过分析地形并生成最佳路径,减少迷路的可能性。 2. **聊天重定向**:当玩家在聊天中输入特定指令或关键词时,插件可能会将他们的消息...

    编译原理课件 王容波

    7. **错误处理**:在整个编译过程中,编译器需要检测并报告语法错误、类型错误和其他编程错误,帮助程序员定位和修复问题。 王容波教授的课件可能涵盖了这些领域的理论基础和实际案例,通过实例讲解和练习,帮助...

    FreeImage.h,FreeImage.dll,FreeImage.lib

    FreeImage是一个开源库,专为处理图像文件而设计,它提供了C++接口,方便程序员在他们的应用程序中集成图像处理功能。在C++编程环境中,FreeImage库通常包含三个关键组件:`FreeImage.h`头文件、`FreeImage.dll`动态...

    C程序设计语言(中文版)

    总的来说,《C程序设计语言》是一本对C语言进行了深入浅出介绍的经典教材,适合所有希望系统学习C语言的读者,无论是初学者还是有经验的程序员。通过学习这本书,读者可以掌握C语言编程的基本技巧,为进一步学习...

    c51时钟程序

    它继承了标准C语言的基础语法,并针对微控制器的特点增加了对硬件寄存器的直接访问支持,使得程序员能够更加灵活地控制硬件资源。本程序就是基于C51语言编写的。 ### 二、程序结构分析 #### 1. 宏定义 ```c #...

Global site tag (gtag.js) - Google Analytics