专栏首页前沿技墅转型全栈时不待 狼书一开好运来

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

狼叔:网名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,做到每日精进吧!

本文分享自微信公众号 - 前沿技墅(Edge-Book),作者:狼叔/著 奇俏/编

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Machine Learning哪家强 强化学习So Strong

    博士毕业于电子科技大学,美国西北大学访问学者,现执教于河南工业大学。中国计算机协会(CCF)会员,CCF YOCSEF郑州2018—2019年度副主席,ACM/...

    用户1682855
  • 程序员职业发展的要命Bug

    用户1682855
  • 衔尾之蛇:前端技术架构与工程的持续演进

    衔尾蛇(Ouroboros),一个存在于多种文明、宗教和神话故事中的符号,一条吞食自己尾巴的蛇,形象要么是一个圆环,要么是一个类似莫比乌斯环的闭合纽带,后者非常...

    用户1682855
  • 听说你想学前端?--非同寻常的前端入门法

    但是,学习的效果并不好。最近我读了些关于学习方面的书,觉得学习需要方法。下面我按照重要程度一个个来说。

    Joel
  • NodeJS模块研究 - dns

    最直观的体验是,当在浏览器中输入网址时,浏览器能够找到网址对应的服务器的 ip 地址。这个过程就是依赖 DNS 域名解析。

    心谭博客
  • 人工智能学习产品的三个核心要素

    图 Zack Seckler 拍摄于非洲 深度的思考总是由好的问题驱动。 这大半年,有这样几个问题一直在脑子里:学习产品中“内容”和“产品”二者的边界在哪里...

    企鹅号小编
  • 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1)

    机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) 注:机器学习资料篇目一共500条,篇目二开始更新...

    Albert陈凯
  • 【资料分享】500篇干货解读人工智能新时代

    500篇干货解读人工智能新时代 本文主要目的是为了分享一些机器学习以及深度学习的资料供大家参考学习,整理了大约500份国内外优秀的材料文章,打破一些学习人工智能...

    Angel_Kitty
  • 【简明 Python 教程】学习笔记【函数】 原

    函数通过def关键字定义。 def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,...

    donghui
  • 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)

    我是攻城师

扫码关注云+社区

领取腾讯云代金券