前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >转型全栈时不待 狼书一开好运来

转型全栈时不待 狼书一开好运来

作者头像
用户1682855
发布2019-07-08 10:28:05
5390
发布2019-07-08 10:28:05
举报
文章被收录于专栏:前沿技墅
狼叔:网名i5ting,Node.js 技术布道者,“Node全栈”公众号作者,全栈技术实践者。曾就职于多家知名IT企业,从事前端开发、后端开发、数据分析等工作,目前负责公司内的Node.js开发和基础框架开发工作。

前端攻城狮要想做到全栈,核心在于以下两点:一是要掌握后端不会的UI(界面);二是要掌握前端不会的DB(业务)。当然,不是倡导大家每一点都接触一下,然后号称自己是全栈专家。这样的作死行为,就好比在简历里写“精通”某项技术,面试时一定会被问到。全栈是一种信仰,不是拿来吹牛的,而是用来解决更多问题、应对更多变化的,做到全栈可以让自己的知识体系不留空白,享受自我实现的极致快乐。

我的全栈之路

说起我的全栈之路,大概可以概括为以下几个阶段。

  1. 就业之痛:没有目标就向“钱”看,有目标就向前看。
  2. 迷茫之时:既然无法逃避,就热爱,最后变成兴趣。
  3. 而立之年:人生不只有代码,但它能让我快乐,终生受益。

在这个过程里面,我也曾懵懂,也曾迷茫,但我一直信奉“一次只做一件事,尽力做到极致”,短时间内是比较枯燥的,但一旦坚持下去,就会发现技术其实是门手艺,厚积才能薄发。

我没办法说自己最擅长什么,但我知道在什么场景下应该用什么技术。或者说,应变是我最大的本事。很多框架、新技术我都没见过、没用过,但花一点点时间浏览一下,我就能用已有的知识快速理解,这其实是长期学习带来的好处。

现在越来越忙,写代码的时间越来越少,技术发展也越来越快,我能做好的就是每日精进,用这些已有的知识储备跟年轻人比赛。我不觉得累,相反我很享受这种感觉,确认自己还没有被时代淘汰,这是一件多么幸福的事啊!

从后端转

做后端开发的人对数据库是比较熟悉的,无论MongoDB,还是MySQL、Postgres,而对前端理解比较薄弱,可能只会基本的HTML、CSS、模板引擎等。因此,若想从后端人员变为全栈专家,要牢记——4阶段循序渐进,build与工具齐飞!

前端开发的4阶段,我的感觉是,按照顺序循序渐进学习的效果最好。

从前端转

从前端往后端转,API接口非常容易学会,像Koa这类框架大部分人一周也能学会,最难的是对DB、ER模型的理解,即对业务需求落地的理解。

我们来想想一般的前端开发人员具备什么技能。

  • HTML。
  • CSS(兼容浏览器)。
  • JavaScript会一点(可能更多的是会点 jQuery)。
  • PS切图。
  • Firebug和Chrome Debuger会的人不太多。
  • 用过几个框架,大部分人是仅仅会用。
  • 英语一般。
  • 会一点SVN或Git。

那么他们如果想在前端领域做得更深入,有哪些难点呢?

  • 基础薄弱,如面向对象、设计模式、命令行工具、shell编程、工程化构建等。
  • 对编程思想的理解不够,MVC、IoC、约定大于配置等。
  • 区分概念困难。
  • 外围验收困难,如H5和Hybird等。
  • 难以追赶趋势,不知如何学习新东西。

以上皆是痛点,所以比较好的办法应该是下面这样的。

  • 玩转npm、Gulp这样的前端工具类(此时还是前端)。
  • 使用Node.js进行前后端分离(此时还是前端)。
  • 掌握Express、Koa这类框架。
  • 掌握Jade、EJS等模板引擎。
  • 使用Nginx。
  • 玩转后端异步流程处理。
  • 玩转后端MongoDB、MySQL对应的Node.js模块。

从我们的经验来看,这样做是比较靠谱的。先做最简单的前后端分离,里面没有任何和DB相关的内容,前端可以非常容易地学会。半年后,接触异步流程处理和数据库相关内容,学习后端代码,这样就可以做到全栈了。

从移动端转

看一下移动端的发展过程:Native(原生开发)→ Hybrid(混搭开发)→ React Native/Weex →H5。

目前React Native和Weex开发逐渐变得主流,组件化写法已经由前端主导了,国内强运营需求刺激新技术不断产生,这些新技术非常有前途。以前iOS和Android程序员占比很高,但现在只留一两个写插件的人足矣,真是差别很大。

那么面对这样的转变,该怎么办呢?要么忍!要么转!在温水里舒服了几年,也该学点东西了。Hybrid或组件化开发,总要会一样。无论会哪种,你都离前端很近,因为H5或组件化都是从前端走出来的。组件化在前端领域先行,无论借鉴还是学习都不可避免。如果没时间就直接学习组件化,如果有时间就好好学学前端的完整体系,但最终也还是要学习组件化的。

所以从移动端转为全栈最好从Cordova开始,先学习Hybrid开发。

  • 只要关注www目录里的H5即可,比较简单。
  • H5不足以应对的情况下,可以编写Cordova插件,即通过插件让JavaScript调用原生SDK里的功能。
  • Cordova的CLI可以通过npm安装,是学习npm的好方法。
  • 学习Gulp构建工具.

只要入了H5的坑,其实就非常好办了。先学习H5|Zepto|IScroll|FastClick 等,然后再来学习WeUI|Vux(Vue+WeUI)|JMUI(React+WeUI)等微信开发常用的技术,接着“玩”点框架,比如 jQuery Mobile|Sencha Touch,接着来点高级货,比如Ionic Framework(基于 Angular、Cordova),随后进入前端4阶段,依次“打怪升级”,最后掌握Node.js。

这个基本上是我走的路,是我从2010年写iOS和PhoneGap(当时是0.9.3),一路走到现在的总结。

以前技术发展还不是那么快,写Java代码的时候,Apache的开源用得比较多,那时开源的代码托管SourceForge,Google Code也凑合用,自从Git和GitHub出现,代码社交兴起,极大促进了开源的发展,使得大量明星项目脱颖而出。这是好事,如果没有开源,中国的软件水平可能要落后好多年。那么问题也来了,如何能在技术快速发展的今天,同时获得更好的个人成长呢?

学习有3种层次,跟人学最快,其次是跟书(或者博客)学,最慢的是自悟。但是牛人不容易遇到,遇到了也未必有精力教你,书本或者博客上的知识也有限,而对于自悟,如果没有深厚的积累,也是有相当大难度的。

对于开发者来说,代码是一切的基础,在掌握了一定的计算机基础后,人与人之间的差别就在于代码编写能力和眼界。编程没有捷径,能够做到每日精进就是极好的。现在开源代码非常多,能够从中获取自己所需的知识,也是一种本领!如果能够坚持每日精进,其实根本不需要向其他人学习。

大家可以在GitHub上随便打开一个前端项目,里面有一半以上都是与Node.js相关的,各种包管理、测试、CI、辅助模块,如果大家对这些基础信息掌握得非常好,那么学习一个新的框架就会比别人快很多,最重要的是可以“学习一次,到处使用”

很多人问我怎么才能成为一个Node.js专家,我的回答是“如果能在CNode论坛上坚持写文章和开源项目两年,一定能轻松进入 BAT,不用你找他们,他们自会找你”。那么,从今天起,开始重视开源项目,重视Node.js,做到每日精进吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前沿技墅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档