开始
不知不觉发现本身已经快30了,古人说三十而立,在这个岁数是应该找到本身安身立命之本了,可是此时此刻的我感受确十分迷茫,为何?由于我是个程序员,是个小前端开发(哈哈哈);正如同不少前端开发那样,迷茫的是前端开发将来的出路是什么?前端
技术or管理
不少人面试的时候,十有八九都会被面试官问到你的职业规划是什么,笼统归纳,通常都是:有人继续想深耕技术,有人想带人作管理。这也是大多人可以想到,或者说可以达到的一个将来发展,那么从本身我的的角度来分析,技术路线or管理路线,哪一个会更加适合本身。node
技术路线
前端这几年发展十分迅速:jquery
- 前端框架从jquery到mvc,再到mvvm框架;
- 开发语言从coffescript到es6/7,再到ts;
- 脚手架从grunt到glup,fis3,再到webpack等等;
- 领域也从传统web前端,到服务端(nodejs),到移动端(rn,weex),再到桌面(electron);
既然发展那么迅速,涌现了那么多新的技术,为何前端危机感仍是十分之大尼?android
- 前端技术入门槛依然比较低,这对于一项技术来讲或许是一件好事,可以让更多的人进入这个领域;
- 前端技术天花板也比较低,固然这个观点不必定你们都赞成(毕竟前端有nodejs,有webgl,这些技术天花板并不低);
- 前端技术离核心业务和数据太远,这其实与管理路线关联更加之大,不过这里既然谈危机感,就不得不提到这点;
- 最后一点,在移动互联网时代,web前端并有分享到这块大饼(缘由不少),因此一样是客户端技术,安卓/ios开发在公司话语权都比web前端要大(毕竟江山都是他们打下的),甚至有的公司会把web前端纳入到安卓/ios客户端管理里面去。
如今再慢慢分析为何会有这些问题:webpack
- 入门门槛低;js自己就是一门很是容易学习的语言,甚至我我的以为之后小孩子入门编程,均可以从js上手;js发展曾经一度十分滞后,不少语言特性都是最近这几年疯狂打补丁上去的(async/await,es module等等),其实这一点也成为后面nodejs发展的一个隐患;对于js这门语言,我以为有一个更加大的隐藏杀手是webassembly,不知道为啥,不少人都以为wasm不会对js形成多少的冲击,他们的理由大都是引用文档(wasm是js的一个补充并不是替代),wasm当前没法直接操控dom;先不说wasm是否是js的一个补充或者替代,毕竟使用用技术的是人嘛,你想要替代就替代补充就补充,历来不须要受文档限制;但可能最根本的一点就是wasm没法直接操控dom(目前仍是要经过js间接操做,会抵消wasm的性能优点),这也是大部分jser以为能够高枕无忧的一个缘由,可是从wasm发展目标来看,直接操控dom会有的,gc也是会有的,只要有那么一点可能性其实都不该该掉以轻心。
- 前端技术天花板比较低,若是是过往几年或许没人会反对,可是最近这几年前端发展迅速,观点就有点变化了,因此最近这几年,前端把js关联的技术:nodejs,rn等等都归入到前端范围了;这固然有了新的技术,也有了新的领域,咱们的技术天花板又提升了一些;可是我我的认为,大前端最大的问题是整个都是围绕js生态的,js生态强天然就会有市场,因此关于第一点,wasm会不会动摇这根柱石真的很难说;并且咱们看到前端的一些技术选型通常也是以围绕js去选的,搞服务端就找nodejs吧,别无二选,甚至愿意花费精力从零开始搭建一些监控或者发布平台(其实我的了解的一些公司确实没有成体系的nodejs开发设施);搞移动端跨平台吧,选rn,weex,也基本无视flutter这样的框架(以前不少人吐槽就是dart不是js,还要多学一门语言);我我的感受前端如果想把技术的天花板提得更高,或许须要跳出js的生态圈,有时候背靠后端团队,或者android/ios团队去选型技术会更好,为啥搞前端搞后端开发就不能选个go,移动端搞跨平台就不能选个flutter,从技术评估来讲,上手难度也不高,将来几年发展潜力也不错。
- 前端技术离业务比较远,这个几乎没法反对了,因此感受在第二点的时候,有些团队会强力推行落地nodejs,其实nodejs能不能在服务端开发占有一席之地,某乎上也是撕逼了好久;不过尼,我所了解到的,有成体系node开发的公司真的很少(也多是我孤陋寡闻吧);因此我才想到,若是咱们落地nodejs这项技术,若是目标是为了接触到业务的核心,或许大可没必要选nodejs做为切入点(固然前端选nodejs,彻底合情合理),选个go语言也不错,学习成本不算高,也没有太多历史包袱,或许你的后端团队或许也已经有计划或者已经在利用go搞些项目在开发,彻底能够共同交流,共同建设基础设施(这多是个人我的一厢情愿的想法,哈哈哈)
- 移动互联网时代,前端开发确实没有吃到这块大饼,毕竟咱们的体验一直比不上原生开发,不管是使用体验仍是功能特性;但愿最后半场,咱们这个机会遇上吧。
总的来讲,走技术路线,若是一直围绕的js来走,感受未来会愈来愈窄;或许多作一些其余技术的储备更加好。ios
管理路线
管理并非本身擅长的领域了,可是我知道的时候人的管理有时候会比代码难写多了;不过尼,前端开发当前端技术的管理是能够的,可是当项目组的技术管理,这个你们都知道,项目组技术的管理大可能是后端出身,毕竟刚刚也说到,后端开发更加接近核心的业务和架构;还有做为技术出身,是不该该选择纯管理的路线,除非在一家至关稳定的公司;感受更倾向于技术+管理这种路线,既要保有本身的核心竞争力,又要拓展一些本身的附加能力。程序员
结束
说了那么多,其实仍是没有一个很明确的结论,只抛出了问题,或许往后我会知道答案吧。es6