唉呀!忙得要死。不要问我在忙啥,不好意思说,嘿嘿……
看着我草稿箱里一堆的随笔文章,飞哥这心情啊,好吧,无论如何,今天一定要写完一篇,最紧急的那一篇!
上周星期五,一起帮收到了上线以来最大的一笔捐赠:
如果不是因为QQ群里有聊天记录,是大家一起见证的这个过程,很多人恐怕一定会以为这是飞哥找的“托”!
但这位同学和我纠葛确实比较深,和他的故事也写在园子里的:写在员工离职之后。
其实他的主要问题就是现在“佛系”了,呵呵,他们公司请了个活佛给他们讲了一天的经……真事!但飞哥法力浅薄,三观问题确实没办法,只能请人家吃顿饭,从程序员的技术发展和职业生涯规划上和他聊一聊。
刚好昨天,QQ群里一个网友xx(他昵称就是xx),也有类似的问题,他自己的原话:
每天不知道自己干了什么,就这么一天天过去了,总想把工作做好,技术学好,但是没感觉自己有什么进步,看见什么都想尝试想去学,有没那么多精力,感觉我进入了一个迷茫期。
上面这个同学,工作一年多,所以还“尝试着想去学”。dk更进一步,已经工作了两三年,所以是“神马都懒得学”了。因为一般的工作都能应付,乱七八糟学的东西也没啥卵用,不管是流行的新技术,还是什么底层基础……
说到底层基础,我就得提一提我的上一篇博客:内功!又是特么的内功?!,感谢大家的评论,给了我灵感,所以有了这一篇文章:确立你的目标(二)领域之内。而且,“确立你的目标”,其实也就是xx同学和dk同学的一剂药方。因为他们问题的本质就是“没有了目标”嘛!
但目标在哪儿呢?这才是最重要最重要的问题啊!我特么不就是找不到目标才迷茫才佛系么?
解决这个问题,有非常多的办法。这里,我说一个最俗最俗的:
学你的老大。
道理很简单,你想往上爬,那就要以你上面那个人为目标为榜样啊!
好了,到这里,就会出现几种情况,我们分别说。
第一种,觉得老大其实也没什么本事,甚至还不如我呢!
如果你这样想,我不得不非常遗憾的告诉你:在大部分情况下,这是你的错觉。老大能成为你的老大,一定是有他的道理的。为了同学们的茁壮成长,飞哥只有晒出自己的黑历史啦:李全懂(《折腾》卷一·青涩)。虽然是法务工作,但道理其实是想通的,你觉得老大错了,其实是你没看到老大看到了但你没有看到的东西,呵呵。
第二种,确实是老大技术还不如你。
这里面又分两种情况,
a)你们老大技术不行,但其他方面强。诶!这其实是好事。程序员年轻的时候,就会觉得“技术第一”,因为这时候你又要靠技术吃饭,又没技术,所以你会有一种错觉:有了技术就会拥有一切。其实,哪里是这么回事?厉害的,工作两三年,或者一般点的,三五年过后,技术就是那个样子了,单靠技术,你又能强到哪里去?BAT三大巨头,他们老大这么有钱,是因为他们技术最强么?做事不如做人,哪怕是科技文明昌盛如今天,仍然是绝对真理。所以,还是要向你们老大学,多套套近乎,多揣摩揣摩人情世故,绝大多数时候,比你再新学一门技术强!用文绉绉的话说,技术的边际效益随着工作经验的增加递减,所以要开辟“第二战场”。
b) 你们老大就凭年纪大资历深,甚至有关系有背景这些外在条件忝居高位。这种情况,没有办法,你学不来,所以最好的办法就是“赶紧挪地方”吧。走人,趁着年轻,还有锐气。真的,到了飞哥这种年纪,上有老下有小,很容易向命运屈服,很多时候,就是饮鸩止渴了,/(ㄒoㄒ)/~~
第三种,老大技术确实比你强。
看起来,这就很简单了,向他学习就是了。
但是,这里就有一个很尴尬的问题:我知道他比我强,但我不知道他为什么比我强!?( ⊙ o ⊙ )
憋笑,真的,这就是在我QQ群里的同学提出的问题。
有一些开发经验的同学应该能够想象这种场景:
语法、类库、第三方框架插件……两个人都会。但是,
- 差不多的功能,张三写得又慢又容易报bug,李四写得又快又好,没什么bug。
- 中途碰到了一个稀奇古怪的问题,张三折腾来折腾去一直都搞不定,但李四接手倒腾一会儿,耶!就搞定了。
- 对开发进度、使用三方代码风险的预判,李四就是比张三准确一些。
- ……
很明显,张三不如李四,但究竟是差在哪里呢?
有些同学马上就用算法、数据结构、计算机组成原理……之类的所谓“基础”“内功”来解释了。我看过的最搞笑——不,应该是“气人”的说法:“(有些同学)不懂数据结构和算法,所以代码的可读性差……”骚瑞!少年,你确定代码的可读性是数据结构和算法决定的?你不懂嘛,谦虚一点,还拽得个二百五似的,我知乎第一个拉黑的家伙。
这种差距的原因很复杂,要具体情况具体分析。比如说,你的工作就是开发AlphaGo,那当然是和算法紧密相关的,可能你们的差距就是数据结构和算法(甚至就是智商)上面的差异。但对于绝大多数进行业务逻辑开发的程序员同学而言,这种差距是一种“经验”上的差距。
所谓经验,是必须要用时间,用经历去换取的,几乎没有捷径可走,所以经验是非常非常宝贵的。
以前dk问我:“为什么你能想到,我就想不到呢?”我告诉他,其实很简单,“因为类似的坑我以前踩过”——这就是经验。
我在《折腾》里写过我在上海和社区那些老头老太婆打乒乓球,上蹿下跳的被虐得很惨,我弟弟给我总结的:那是人家经年累月积累出来的手上功夫……
很多同学(尤其是知乎上的网友)和我说:“我想要提高……技术,推荐一本书吧!”我真不知道该怎么回答。知乎的这种风气我不知道怎么评价:看书 = 提高,好像什么事情都可以通过看书来解决似的。有些东西,看书是没用的,而书本上得不到的那些东西,才是最为宝贵的。
书,能够记录能够传播的,只是知识;
而解决问题,需要的是能力。
知识本身是廉价的,尤其是信息时代的今天,稀缺的是能力,能够解决具体问题的能力!
把知识转化为能力,只有一个途径:练。
有些同学和我说:“我看了……,又看了……,还看了……,头都看晕了,感觉什么都明白了,但就是一写代码代码就傻眼,为什么呢?”不为什么,正常啊!你没练过呀!那我看了《乒乓球入门》,我就能打乒乓球了?我看了《乒乓球实战技法》,我就能进行实战了;我看完了《乒乓球高级攻防》,我就有乒乓球高级水平,可以称霸乒坛了么?这不是笑话么?!你必须拿起球拍开始打,不停的打,技术才会慢慢的增长。哪怕不看书,打得多了,也可以打得不错;要是只看书不打球,哪怕你把书都倒背如流,你也是菜鸟中的菜鸟。
真以为是武侠小说里写的,就在图书馆看看书,就自创《九阴真经》,天下无敌?同学,小说啊!知不知道什么叫小说?假的,假的,假的啊!真想拍怕你的小脸蛋:你是一个程序员,理科生啊!醒醒吧……
好像又跑题了?嗯,没有,还好。
我的意思就是:弥补你和你们老大之间的差距,办法只有一个,脚踏实地的把手头的工作干好。不要觉得它“没什么技术含量”,等你真正游刃有余的时候再来说这话;不要说什么“反正都是增删改查”,能把”增删改查“做好就已经相当不容易了。无数大牛,整出那么多的框架(比如ORM, MVC),搞出那么多的理论(什么DDD,TDD),以及花样繁多的最佳实践(比如敏捷、重构、代码规范),都没有解决软件复杂度的问题,你算老几?就敢说什么”没有技术含量“”不过是增删改查“?
讲真,技术含量是有的,不过是你写的代码没有技术含量,就是增删改查而已。
ʅ(‾◡◝)ʃ
差不多了,所有的分支都走完了吧?
其实这也回答了上一篇博客的问题,如果真要说有什么“内功”的话,在开发过程中点滴积累的体会,长年累月磨练形成的能力,这才是真正的内功。
最后的最后,可能还有同学会问:工作中的那点锻炼还是太少了点,我想“弯道超车”,多找点机会练练,肿么办呢?
嘿嘿,这可是你逼我的,三个字:一起帮。O(∩_∩)O哈哈哈~