全栈算法工程师是青春饭吗怎么学?

教你如何做“爆屌”的全栈工程师 - 魔乐科技
MLDN学习笔记视频学习平台 - 用技术改变命运,JAVA工程师、架构师、大数据研发人员在线学习平台 - Powered By EduSoho2017年如何成为全栈工程师,这些技能是你必须具备的!学完全部辛苦至极
作者丨Daniel Borowski
译者丨夜风轻扬
【编者按】根据Stack Overflow 2016 Developer 调查,全栈(Full-Stack)Web开发是当前最受欢迎的开发职业。难怪有很多在线和现场培训项目帮助培训对象成为新的全栈开发人员,甚至协助这些新手获得高薪编程工作。以下为译文:
在这篇文章里,我不准备讨论哪一个网站或者代码训练营有最好的开发培训项目,但是我会提供明确的指南,说明哪些是我相信成为全栈web开发者所需要的最重要技能,并且帮助那些从来没做过编程工作的人找到工作。我会以下面这三件事 为依据。
2017年培训学生最多的内容组合。
我个人的经验来自于过去在多家公司对开发者岗位求职者的面试,以及现在我公司全栈开发者岗位求职者的面试。
来自于那些在Coderbyte上接受编码训练营培训,并且找到编程工作的人的故事和反馈。
明确的指南
全栈web开发者是能够同时承担前端开发和后台开发工作的人。前端一般是指应用中用户可见或者是进行交互的部分,后台是指应用里处理逻辑,数据库交互,用户鉴别,服务器配置等等。做为一个全栈开发者并不意味着你已经掌握了从事前端开发和后台开发所需的所有技能,只是表明你能够在这两部分工作并且知道开发一个应用该做哪些事。
如果你在2017年成为一个全栈Web开发者并且谋求到你的第一份职业,下面列出的就是你应该学到的参考指南。
1. HTML/CSS
能够解释CSS盒模型
CSS预处理器的用处(你不必明白如何深度使用它,你只需要了解它们的用途以及如何帮助开发)
面向不同装置的CSS媒体查询以及写响应CSS
trap(是一个框架,用于设计和页面上内容的布局,很多在线培训或者学校把重心放在教授Bootstrap上,实际上深入理解CSS的基础知识比特定的Bootstrap特征及方法更重要)
Stack Overflow 2016 Developer 调查(https://insights.stackoverflow.com/survey/2016)
理解如何使用DOM,了解JSON是什么以及如何使用它。
重要的语言特点,例如功能组成,原型继承,闭包,事件委托,范围,高阶函数。
异步控制流,承诺(promises),和回调。
学习如何正确构造你的代码以及将其模块化,可以借助webpack,browseify,或者类似gulp的构造工具来理解。
知道如何使用至少一种常用框架(很多培训重点培训一种库或者如React或者AngularJS这样的框架,但是在现实中,深刻理解Java语言更重要,而不必将精力过多的放在特定框架的特点上。一旦你充分熟悉了Java,掌握一种框架也不会有问题。)
尽管有人会说jQuery代码用的少而且会逐渐淘汰,但是在大多数应用中仍然在使用它,牢固地掌握它还是有帮助的。
一些测试框架的知识以及为什么这些知识重要(一些人甚至声称这个主题不是必须的)
学习一些重要的新的ES6特点(可选的)
3. 后台语言
一旦你感觉已经掌握了HTML/CSS和Java,你会想继续学习后台语言,用于处理数据库操作,用户鉴别和应用逻辑。所有的在线培训和代码训练营通常会专注于某个特定的后台语言,实际上你学哪一种(后台语言)并不重要,只要你明白其如何工作并且你了解所选择语言的细小差别。如果你问别人哪一种后台语言最值得学习,你会收到大量不同的答复,所以在下面我已列出一些常用的组合。一个重要的提示:无论你准备学哪一种,只需坚持学下去,并且尽可能深入-下列所列的语言都有大量的工作机会。
Node.js:这是一个很棒的选择,因为Node.js本身就是Java环境,这意味着你不必学习新的语言。这也是为什么很多在线或者现场培训选择教授Node.js的原因。最流行的也是你最可能学到辅助你进行web开发的框架是Express
Ruby:Ruby中的常用框架有Rails 和 Sinatra。许多培训
都是以Ruby作为第一个教学的后台语言。
Python:在Python中常用的开发框架是 Django 和 Flask。
Java:在全栈式web开发培训中,以Java为学习内容的并不多,但是一些公司确实是使用Java作为他们的后台语言,Java依然是非常受欢迎的语言(见上面的图)
PHP:虽然现在很少教授PHP了,但是正如Javas,PHP依然很受欢迎,并且PHP是web的基石。
4. 数据库与数据存储
理解关系型数据的用处,如SQL。
学习NoSQL数据库,如MongoDB。
理解在特定场合哪一种更合适。
了解如何使用你选择的后台语言(如Node.js + MongoDB)连接一个数据库。
理解诸如Redis和memcached等内存数据存储的长处。
web存储保存sessions, cookies和浏览器中缓存的数据。
可伸缩数据库,ACID和ORM(都是可选的)。
5.HTTP和REST
HTTP是一种无状态的互联网应用层协议-它允许客户端与不同的服务器进行通信(例如你的Java代码能够通过HTTP协议,向运行在服务器上的后台代码提交AJAX请求)。
REST是什么,为什么它对于HTTP协议和web应用很重要。
设计REST风格API的最佳实践。POST/GET请求。
学习如何使用Chrome DevTools会非常有用。
SSL证书是什么。
HTTP/2 & SPDY (optional).HTTP2和SPDY(可选的)。
WebSockets, Web Workers, Service WorkersService Workers(都是可选的)
6. Web应用架构
当你觉得已经掌握了HTML/CSS,Java后台开发,数据库和HTTP/REST,就到了这个稍难的部分。在这里如果你想创建稍微复杂的web应用,你需要知道如何组织你的代码,如何划分你的文件,哪里存放你的大媒体文件,如何组织数据库中的数据,哪里去执行确定的计算任务(客户端对服务器端),等等。
网上可以找到很多最佳实践,但是真正学习到应用架构的最好方法是你本人参与一个大型应用,这个应用包含多个有效的部分-甚至更好,在一个团队里工作并且一起开发过有一定规模和复杂度的应用。
这就是为什么有些人有7年多的经验,对于CSS或者Java的理解还不如那些只有两年经验的人,但是,在这些年里假定他们参与了所有类型不同应用和网站的开发,并且已经学习了如何架构和设计让应用最有效率(还学习了其他重要的事),在开发中也可以看到重点。下面你可以读到一些内容,有助于你学习如何有效率的架构你的web应用。
学习普通的平台即服务,如Heroku和 AWS。Heroku能使你轻松上传你的代码,以非常少的配置或者服务器维护就可以让应用启动运行,AWS提供大量的产品和服务有助于存储、视频处理、负载均衡等等。
为应用和现代浏览器进行性能优化。
一些观点关于一个web应用架构应该包括哪些
微软设计的web应用。
最为重要的是,你努力应该与他人在项目中分工协作,多学习GitHub上流行项目的代码库,并且尽可能多向高水平开发者请教。
Git是一个版本控制系统,能够协助开发者团队合作,跟踪开发过程中的所有更改,并将这些更改记录在代码库中。了解与Git相关的重点很重要,这样有助于你如何获得丢失的最新代码,代码的更新部分,进行修改,修改别人的代码而不会破坏别人的工作。你确实应该学习Git背后的概念并且自己能玩转它。
这里有很可能用到的git命令的参考列表(https://git-scm.com/docs)。
这里有适合初学者的使用Git 和 GitHub的教学课程(http://product.hubspot.com/blog/git-and-github-tutorial-for-beginners)。
8. 基本算法和数据结构
这个主题在开发世界里有点极端,因为在web开发中,有些开发者认为不应该将注意力放在诸如树遍历、排序、算法分析、矩阵操作等计算机科学主题上。然而,很多如谷歌那样的公司,喜欢在面试中问这些类型的问题。一些人谈论的的谷歌前台工程面试。
也就是说,如Ryan McGrath提到那样:我们的前端(FE)工程师,应该像我们所有工程师那样,具有坚实的计算机科学背景。
尽管有一些公司在现实中要求求职者具有计算机科学学位或者同等学力,如果求职者不具备这些技术资格,却能证明他们知道如何开发应用,并且展示其对于整个领域的理解,仍会大量的公司会雇用他们。但是,成为一个合格开发者的一部分,不写低效率的代码或者不使用错误的工具,都是对于基本算法和数据结构的理解,能够分析均衡。所以这有一些你应该学习的内容:
学习各种哈希表并尝试深层次理解它们。这个数据结构构成Java对象的基础(在Python中是字典,Ruby中是哈希数)
理解树和图作为数据结构带来的益处。
理解Big-O分析的基础,以便于你不会编写实际上并不需要的三层嵌套循环。
知道何时使用对象还是数组,并且理解均衡。
学习在处理大规模数据缓存的重要性。也要学习内存数据库与磁盘存储的各自优缺点。
学习队列和堆栈之间的差异。
学习这些所有的内容是项辛苦的工作,但是最终会收获颇丰并且全栈开发本身也很有趣!请在下面留下你的评论,并且检出coderbyte(https://coderbyte.com/),来进行算法练习。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点为什么未来是全栈工程师的世界?
谨以此文献给每一个为成为奋斗的人。技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快。今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了。同时,由于公司组织结构的变迁,以及到变化的适应度,也决定了赋予每个人的职责将会越来越多。尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变革。正是这种变革让越来越多的专家走向全栈,让组织内部有更好的交流。你还将看到专家和全栈的两种不同的学习模式,以及全栈工程师的未来。技术的革新史从开始的CGI到MVC模式,再到前后端分离的架构模式,都在不断地降低技术的门槛。而这些门槛的降低,已经足以让一两个人来完成大部分的工作了。CGI二十年前的网站以静态的形式出现,这样的网站并不需要太多的人去维护、管理。接着,人们发明了CGI(通用网关接口,英语:Common Gateway Interface)来实现动态的网站。下图是一个早期网站的架构图:当时这种网站的URL类似于: https://www.phodal.com/cgi-bin/getblog(PS:这个链接只是为了讲解而存在,并没有真实存在。)用户访问上面的网页的时候就会访问,cgi-bin的路径下对应的getblog脚本。你可以用Shell返回这个网页:#!/bin/sh
echo&Content-type:&text/plain
echo&hello,world各种代码混乱地夹杂在一起。不得不说一句:这样的代码在2012年,我也看了有一些。简单地来说,这个时代的代码结构就是这样的:这简直就是一场恶梦。不过,在今天好似那些PHP新手也是这样写代码的。好了,这时候我们就可以讨论讨论MVC模式了。MVC架构我有理由相信Martin Fowler的《企业应用架构模式》在当时一定非常受欢迎。代码从上面的耦合状态变成了:相似大家也已经对这样的架构很熟悉了,我们就不多解释了。如果你还不是非常了解的话,可以看看这本书后面的部分。后台服务化与前端一致化架构在今天看来,我们可以看到如下图所示的架构:后台在不知不觉中已经被服务化了,即只提供API接口和服务。前端在这时已经尽量地和APP端在结合,使得他们可以保持一致。软件开发的核心难题:沟通软件开发在过去的几十年里都是大公司的专利,小公司根本没有足够的能力去做这样的事。在计算机发明后的几十年里,开发软件是大公司才能做得起的。一般的非技术公司无法定制自己的软件系统,只能去购买现有的软件。而随着技术成本的下降,到了今天一般的小公司也可以雇佣一两个人来做同样的事。这样的演进过程还真是有意思:在这其中的每一个过程实质上都是为了解决沟通的问题。从瀑布到敏捷是为了解决组织内沟通的问题,从敏捷到精益不仅仅优化了组织内的沟通问题,还强化了与外部的关系。换句话说,精益结合了一部分的互联网思维。瀑布式在最开始的时候,我们预先设计好我们的功能,然后编码,在适当的时候发布我们的软件:然而这种开发方式很难应对市场的变化——当我们花费了几年的时间开发出了一个软件,而这个软件是几年前人们才需要的。同时,由于软件开发本身的复杂度的限制,复制的系统在后期需要大量的系统集成工作。这样的集成工作可能要花费上大量的时间——几星期、几个月。当人们意识到这个问题的时候,开始改进工作流程。出现了敏捷软件开发,这可以解释为什么产品经理会经常改需求。如果一个功能本身是没必要出现的话,那么为什么要花功夫去开发。但是如果一个功能在设计的初期就没有好好设计,那么改需求也是必然的。敏捷式现有的互联网公司的工作流程和敏捷软件开发在很多部分上是相似的,都有迭代、分析等等的过程:但是据我所知:国内的多数互联网公司是不写测试、没有Code Review等等。当然,这也不是一篇关于如何实践敏捷的文章。敏捷与瀑布式开发在很大的区别就是:沟通问题。传统的软件开发在调研完毕后就是分析、开发等等。而敏捷开发则会强调这个过程中的沟通问题:在整个过程中都不断地强调沟通问题,然而这时还存在一个问题:组织结构本身的问题。这样的组织结构,如下图所示:如果市场部门/产品经理没有与研发团队坐一起来分析问题,那么问题就多了。当一个需求在实现的过程中遇到问题,到底是哪个部门的问题?同样的如果我们的研发部门是这样子的结构:那么在研发、上线的过程中仍然会遇到各种的沟通问题。现在,让我们回过头来看看大公司的专家与小公司的全栈。大公司的专家与小公司的全栈如果你经常看一些关于全栈和专家的技术文章的时候,你就会发现不同的人在强调不同的方向。大公司的文章喜欢强调成为某个领域的专家,小公司喜欢小而美的团队——全栈工程师。如我们所见的:大公司和小公司都在解决不同类型的问题。大公司要解决性能问题,小公司都活下去需要依赖于近乎全能的人。并且,大公司和小公司都在加班。如果从这种意义上来说,我们可以发现其实大公司是在剥削劳动力。专家我们所见到的那些关于技术人员应该成为专家的文章,多数是已经成为某个技术领域里的专家写的文章。并且我们可以发现很有意思的一点是:他们都是管理者。管理者出于招聘的动机,因此更需要细分领域的专家来帮助他们解决问题。全栈相似的,我们所看到的那些关于成为全栈工程师的文章,多数是初创公司的CTO写的。而这些初创公司的CTO也多数是全栈工程师,他们需要招聘全栈工程师来帮助他们解决问题。两种不同的学习模型而不知你是否也注意到一点:专家们也在强调“一专多长”。因为单纯依靠于一个领域的技术而存在的专家已经很少了,技术专家们不得不依据于公司的需求去开拓不同的领域。毕竟“公司是指全部资本由股东出资构成,以营利为目的而依法设立的一种企业组织形式;”,管理人们假设技术本身是相通的,既然你在技术领域里有相当高的长板,那么进入一个新的技术也不是一件难的事。作为一个技术人员,我们是这个领域中的某个子领域专家。而作为这样一个专家,我们要扩展向另外一个领域的学习也不是一件很难的事。借鉴于我们先前的学习经验,我们可以很快的掌握这个新子域的知识。如我们所见,我们可以很快地补齐图中的短板:在近来的探索中发现有一点非常有意思:如果依赖于20/80法则的话,那么成为专家和全栈的学习时间是相当的。在最开始的时候,我们要在我们的全栈工程和专家都在某个技术领域达到80分的水平。那么专家,还需要80%的时间去深入这个技术领域。而全栈工程师,则可以依赖于这80%的时候去开拓四个新的领域:尽管理论上是如此,但是专家存在跨领域的学习障碍——套用现有模式。而全栈也存在学习障碍——如何成为专家,但是懂得如何学习新的领域。解决问题的思路:不同的方式有意思的是——成为专家还是成为全栈,取决于人的天性,这也是两种不同的性格决定的。成为管理者还是技术人员看上去就像一种简单的划分,而在技术人员里成为专家还是全栈就是另外一种划分。这取决于人们对于一个问题的思考方式:这件事情是借由外部来解决,还是由内部解决。下面这张图刚好可以表达我的想法:而这种思维依据于不同的事情可能会发生一些差异,但是总体上来说是相似的。当遇到一个需要创轮子的问题时,我们就会看到两种不同的方式。对于全栈工程师来说,他们喜欢依赖于外部的思维,用于产生颠覆式思维。如Angular.js这样的框架便是例子,前端结合后端开发语言Java的思维而产生。而专家则依赖于内部的条件,创造出不一样的适应式创新。如之前流行的Backbone框架,适应当时的情况而产生。全栈工程师的未来:无栈全栈工程师本身不应该仅仅局限于前端和后台的开发,而可以尝试去开拓更广泛的领域——因为全栈本身是依赖于工程师本身的学习能力,正是这种优秀的学习能力可以让他们可以接触更广泛的知识。全栈的短板如果你也尝试过面试过全栈工程师,你会怎么去面试他们呢?把你知道的所有的不同领域的问题都拿出来问一遍。是的,这就是那些招聘全栈工程师的公司会问你的问题。人们以为全栈工程师什么都会,这是一个明显的误区——然而要改变这个误区很难。最后,导致的结果是大家觉得全栈工程师的水平也就那样。换句来说,人们根本不知道什么是全栈工程师。在平时的工作里,你的队伍都知道你在不同领域有丰富的知识。而在那些不了解你的人的印象里,就是猜测你什么都会。因此,这就会变成一个骂名,也是一个在目前看来很难改变的问题。在这方面只能尽可能地去了解一些通用的问题,并不能去了解所有的问题。在一次被面试全栈工程师的过程中,有一个面试官准备了几个不同语言(Javascript、Java、Python、Ruby)的问题来问我,我只想说Ciao——意大利语:你好!除了这个问题——人们不了解什么是全栈工程师。还有一个问题,就是刚才我们说的成为专家的老大难问题。无栈让我毫不犹豫地选择当全栈工程师有两个原因:这个世界充满了未解的迷,但是我只想解开我感兴趣的部分。没有探索,哪来的真爱?你都没有探索过世界,你就说这是你最喜欢的领域。当我第一次看到全栈工程师这个名字的时候,我发现我已然是一个全栈工程师。因为我的学习路线比较独特:中小学:编程语言 -& 高中:操作系统、内核、游戏编程 -& 大学: 硬件、Web开发 -& 工作:后端 + 前端而在当时我对SEO非常感兴趣,我发现这分析和Marketing似乎做得还可以。然后便往Growth Hacking发展了:而这就是全栈学习带来的优势,学过的东西多,学习能力就变强。学习能力往上提的同时,你就更容易进入一个新的领域。参考书籍《精益企业: 高效能组织如何规模化创新》《企业应用架构模式》《敏捷软件开发》《技术的本质》更多内容欢迎关注我的微信公众号(搜索Phodal)。
转载请注明:文章转载自 开源中国社区
本文标题:为什么未来是全栈工程师的世界?
本文地址:
我也这么认为!
引用来自“CoderLyp”的评论数据库设计
后台代码 web
前端都会就是全栈 引用来自“__zero__”的评论我晕,以前这些难道不都是后端搞得吗?web前端不是
交互什么的这是前端的活
引用来自“CoderLyp”的评论数据库设计
后台代码 web
前端都会就是全栈 我晕,以前这些难道不都是后端搞得吗?
数据库设计
后台代码 web
前端都会就是全栈
引用来自“ihuotui”的评论敏捷开发是改善流程,不要为了写代码而写代码uwg
敏捷开发是改善流程,不要为了写代码而写代码1前言在职业规划咨询过程中经常会被问到这样的问题:老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师?类似问题的变种还有,老师我是不是该30岁最迟35岁就要转管理了,是不是技术年龄大了就没有优势,精力跟不上了?这是一个从业者普遍存在的问题,反应了技术发展的两个方向,一种是纵向一种是横向的,横向的是瑞士军刀,纵向的是削铁如泥的干将莫邪。 到底选哪个呢?要想弄明白这个问题我们要说清楚,全栈是什么?说道这个我想起我以前的职位还闹了一个笑话。有人问我:你什么职位啊?我说:前后端开发工程师。然后他说:是前端开发工程师?我说:不是。他说是:后端开发工程师?我说:不是。他说:啥叫前后端开发工程师啊?我说了那个我很不愿意说的词儿,尽可能让他明白,全栈工程师。他说:就是啥都会干呗?我说不是。2前端、后端、全栈是什么?然后我岔开了话题,是的,前端后端全栈很多人都有着误解。比如很多人按能力排名是这样的:前端>后端>全栈,然后人们都喜欢最牛掰的,就像没人知道第二个登上月球的人一样,然后全栈就火了。我先把这三个工种该做什么不该做什么,大家就清楚怎么做了。前端:所有你能看到的东西都是前端做的,比如界面,比如交互,当然还有数据从后台读取展示和向后台发送数据。(具体对比如图,一图抵万言。)后端:所有跟业务逻辑权限控制数据处理有关的都是后台做的,比如权限控制,订单管理,数据库交互。全栈:前端后端都有一定的了解和能力,能够前后端独立工作。通过三者的综述,大家可以清晰的分出前端和后端的工作内容和所需技术,但是对全栈还是不是很了解,至少他不是简单的前端+后端技术的叠加。那么全栈到底工作内容是什么呢?他的价值又在哪呢?我们是否需要成为这样的人呢?3全栈工作内容是什么?首先全栈是掌握多种技能,并能利用多种技能独立完成产品的人 。他们掌握着独立完成产品常用的20%技能,另外的80%需要的时候有能力获得。而另外两个工种是掌握着专业领域80%的技能,甚至是90%,另外的10%通过其他渠道获得。4全栈价值是什么?全栈工程师的工作内容和价值融在一起。全栈工程师就算是各方面都是80%(确实有这样的人存在),但是精力有限,他一个人不能长期干3-5个人的活儿。所以他们工作的大部分内容在全局性把握和沟通,特别优秀的全栈能做到关键性技术指导。全局性把握现代项目的开发,很少说只用到一两种技术的,特别是移动互联网大潮下。随便一个互联网项目中用到的技术,就会需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFulAPI设计和OAuth等等,一些比较前卫的项目,可能会用到SinglePage Application、Web Socket、HTML5/CSS3这些技术,还有像第三方开发像微信公众号微博应用等等。Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。在恰当的时机用恰当的技术开发实现恰当的产品常常要远比具体某个功能实现要复杂和重要的多,而这是全栈工程师需要考虑的。沟通成本项目越大,沟通成本越高,做过项目管理的人都知道,项目中的人力是1+1而全栈工程师的成本几乎为零,因为各种技术都懂,胸有成竹,一不小心自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,你让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。全栈工程师的机会创业型公司和中小型公司的发展,尤其是万众创业的风潮,会促进全栈工程师的发展,也会更加凸显他们的价值,因为虽然单个全栈工程师的工资很高,但是远比专业性分工团队的成本要低得多,而且全栈工程师更能应对多变的创业公司需求,降低团队沟通成本。5全栈面临的困境是什么?但是,很多人为了成为全栈工程师或者已经是全栈工程师面对着巨大的困境。1.一个工作两年的切图都比一个全栈工程师切图好,一个8k的java都比3W的全栈写的代码快,他们经历着博而不精的煎熬。2.成为全栈很多人需要花费大量的学习时间,到最后依然是无功而返。最后造成了一个现象是,你确实什么都会,问题是我要的是一个8k的切图,而不是一个3万什么都会一点的全栈。造成这两个现象的原因有内因和外因两个方面。内因看个人定位不清晰,在该专精的时候选择了全栈。不管是前端还是后台,全栈的意思是你能够独立工作,不是你前端会切个图,后端你会写个sql就行的,而一个领域没有三年是达不到上述情况的,而很多人工作三年切图或者js就想着全栈了。全栈不是一不小心成为的,是你的工作经验堆出来的,不是学出来的。举个例子大家就明白了,大家都看过武侠小说,大家知道哪位顶尖的武林高手一出师门就励志学会武林各门各派武功的?相反提起东邪,大家想到的是他吹笛子能吹死人,说到西毒立马想到蛤蟆功,说到南帝一阳指,说到北丐打狗棒,那为啥到你就得工作三四年就全栈,前后端啥都会呢?武侠里面有两个全栈工程师,一个是鸠摩智,号称会少林七十二绝技,结果呢,最后变成了“打残哥”,虚竹来了把他打残了,段誉来了把他打残了,最后乔峰来了又把他打残了,所以想通过学习变成全栈肯定会死的比鸠摩智还惨。那怎么办?武侠最强全栈是扫地僧,这家伙是bug级存在,但是大家发现人家是靠年头熬出来的。所以这个是正路,全栈是经验不是课本,是一种思维。为什么说国外全栈很多呢。因为很多人都是10年以上工作经验,一开始是后台工作,工作了几年跳槽了换了一家工作发现需要数据交互又做数据交互了,这个时候也会简单的切图了,然后工作又变动发现切图和套js太麻烦了。用vue试试一不小心又会vue了,vue写多了,发现后端是不是也可以用js啊,有了node和koa,那数据库是不是可以呢,上MongoDB,最后发现这个语言不好用,我自己写个吧。所以很多全栈都是大胡子中年。全栈应该是业务需求催出来的,而不是学出来的。可是现在很多提全栈的人都是什么人呢?大部分是工作3-5年想转管理的。其实全栈和技术大牛是殊途同归的,就像《人月神话》里面技术专家和手术刀其实最后都融合了。你学吃饭的过程想过是只学用筷子还是勺子吗?因为当专到一定程度的时候自然就融会贯通了,反过来当你博采众长的时候,自然就知道哪里自己薄弱需要加强了,全栈和专业并不冲突,他们的目的都是为了完成工作这件事。从外因看,?科技节奏的飞速发展,万众创业催生出了一系列小型公司,?从成本催生了对全栈的热捧,另外知识行业的贩卖焦虑,培训行业的推波助澜,?加剧了前端行业对全栈的急功近利的追求。所以所有前端从业者应该明白,技术是为解决问题服务的,找准自己的位置,通过时间去不小心成为全栈,而不是成为书本里的全栈,做一个务实的技术从业者,那么他的明天一定是光明美好的。最后一句,技术是为解决问题服务的。·END·面包理想学院让涨工资变得简单
Copyright & 1998 - 2018 Tencent. All Rights Reserved}

我要回帖

更多关于 算法工程师是青春饭吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信