为什么你应该尝试全栈
谨以此文献给想跳槽或是想进入互联网行业的小伙伴们!
技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快。今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了。同时,由于公司组织结构的变迁,也决定了赋予每个人的职责将会越来越多。尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变革。正是这种变革让越来越多的专家走向全栈,让组织内部有更好的交流。你还将看到专家和全栈的两种不同的学习模式,以及全栈工程师的未来。
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0x9e9p2j20d108mdfu.jpg
当时这种网站的URL类似于: https://mail.qq.com/cgi-bin/frame_html
用户访问上面的网页的时候就会访问,cgi-bin的路径下对应的frame_html脚本。你可以用Shell返回这个网页:
#!/bin/sh
echo Content-type: text/plain
echo hello,world
Blabla,各种代码混乱地夹杂在一起。不得不说一句:这样的代码在2012年,我也看了有一些。简单地来说,这个时代的代码结构就是这样的:
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0x9pc4qj205j08mjr7.jpg
相似大家也已经对这样的架构很熟悉了,我们就不多解释了。如果你还不是非常了解的话,可以看看这本书后面的部分。
后台服务化与前端一致化架构
在今天看来,我们可以看到如下图所示的架构:
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0xa33rij20ic08i75f.jpg
在这其中的每一个过程实质上都是为了解决沟通的问题。从瀑布到敏捷是为了解决组织内沟通的问题,从敏捷到精益不仅仅优化了组织内的沟通问题,还强化了与外部的关系。换句话说,精益结合了一部分的互联网思维。
瀑布式
在最开始的时候,我们预先设计好我们的功能,然后编码,在适当的时候发布我们的软件:
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0xainbfj20c206yt94.jpg
当人们意识到这个问题的时候,开始改进工作流程。出现了敏捷软件开发,这可以解释为什么产品经理会经常改需求。如果一个功能本身是没必要出现的话,那么为什么要花功夫去开发。但是如果一个功能在设计的初期就没有好好设计,那么改需求也是必然的。
敏捷式
现有的互联网公司的工作流程和敏捷软件开发在很多部分上是相似的,都有迭代、分析等等的过程:
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq0xavc4kj20d2025q3a.jpg
在整个过程中都不断地强调沟通问题,然而这时还存在一个问题:组织结构本身的问题。这样的组织结构,如下图所示:
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0xb7pimj20ic0apwf6.jpg
那么在研发、上线的过程中仍然会遇到各种的沟通问题。
现在,让我们回过头来看看大公司的专家与小公司的全栈。
大公司的专家与小公司的全栈
如果你经常看一些关于全栈和专家的技术文章的时候,你就会发现不同的人在强调不同的方向。大公司的文章喜欢强调成为某个领域的专家,小公司喜欢小而美的团队——全栈工程师。
如我们所见的:大公司和小公司都在解决不同类型的问题。大公司要解决性能问题,小公司都活下去需要依赖于近乎全能的人。并且,大公司和小公司都在加班。如果从这种意义上来说,我们可以发现其实大公司是在剥削劳动力。
专家
我们所见到的那些关于技术人员应该成为专家的文章,多数是已经成为某个技术领域里的专家写的文章。并且我们可以发现很有意思的一点是:他们都是管理者。管理者出于招聘的动机,因此更需要细分领域的专家来帮助他们解决问题。
全栈
相似的,我们所看到的那些关于成为全栈工程师的文章,多数是初创公司的CTO写的。而这些初创公司的CTO也多数是全栈工程师,他们需要招聘全栈工程师来帮助他们解决问题。
两种不同的学习模型
而不知你是否也注意到一点:专家们也在强调“一专多长”。因为单纯依靠于一个领域的技术而存在的专家已经很少了,技术专家们不得不依据于公司的需求去开拓不同的领域。毕竟“公司是指全部资本由股东出资构成,以营利为目的而依法设立的一种企业组织形式;”,管理人们假设技术本身是相通的,既然你在技术领域里有相当高的长板,那么进入一个新的技术也不是一件难的事。
作为一个技术人员,我们是这个领域中的某个子领域专家。而作为这样一个专家,我们要扩展向另外一个领域的学习也不是一件很难的事。借鉴于我们先前的学习经验,我们可以很快的掌握这个新子域的知识。如我们所见,我们可以很快地补齐图中的短板:
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq0xbiesyj20ic0anjrj.jpg
尽管理论上是如此,但是专家存在跨领域的学习障碍——套用现有模式。而全栈也存在学习障碍——如何成为专家,但是懂得如何学习新的领域。
解决问题的思路:不同的方式
有意思的是——成为专家还是成为全栈,取决于人的天性,这也是两种不同的性格决定的。成为管理者还是技术人员看上去就像一种简单的划分,而在技术人员里成为专家还是全栈就是另外一种划分。这取决于人们对于一个问题的思考方式:这件事情是借由外部来解决,还是由内部解决。下面这张图刚好可以表达我的想法:
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq0xbupllj20ic0cp3zn.jpg
而这就是全栈学习带来的优势,学过的东西多,学习能力就变强。学习能力往上提的同时,你就更容易进入一个新的领域。 围观 围观 沙发在哪里!!! 打酱油的人拉,回复下赚取积分 支持你哈................................... 我了个去,顶了 顶顶更健康 围观 围观 沙发在哪里!!! 看起来不错 我了个去,顶了 非常好,顶一下