前端之路如何继续走下去呢?

作为一名前端妹子,从2018年开始实习,到现在已经工作2年半了,我有点迷茫。若是继续走下去,先深入学习技术积累经验(深入学习有什么建议嘛?),后面在这行中能选择转什么岗位呢?若是转行把,我也不知道除了这行还能做什么。希望给点建议

程序这条路,基础才是王道,万变不离其宗,你只要基础非常扎实,新的技术出来你也能很快的上手学习。跟着大方向走,你觉得你现在的技术还可以学学其它语言。涉及到程序的不仅仅只有前端。

美术天赋好的话可以转向ui,前提就是美术功底什么的要好,因为美学也挺深的。不然就是考虑转后端了,或者学一学炼丹?

在你两年多的工作种, 你熟悉了前端, 你也和各种用户打过交道吧,你觉得你在 “了解用户意图” 这方面感兴趣么? 如果你感兴趣, 你可以学习需求分析, 交互设计等领域, 以后可以考虑产品经理这个角色。 

非职业前端,一些看法,可以讨论下深入一层的可能。我想,前端开发三个基础: HTML/JavaScript/CSS。

 

CSS 本身要深入下去需要挖很多细节,不过我认为布局( Layout ) 是其中最关键的骨架,很简单,UI 开发的一个核心就是布局,无论是基于精细位置的布局,还是基于排版的布局,所谓纲举目张,有了布局之后,CSS 的其他部分,我认为都是“样式”,也就是如何修饰,装扮门面用的,那就细节要多少有多少,但那个不是本质困难了。

 

JavaScript 要深入下去,至少要掌握 ES6+ 的语言知识。以及建议学习 NodeJS,实践的建议是自己独立完整的做一个学习项目,这样后端部分你可以用 NodeJS 自己独立的写出来。使用 NodeJS 技术你可以前后端都用一个编程语言实现。这么做,你会脱离前端环境去使用 JavaScript,深入完整的学习 JavaScrpt 的现代特性。同时有助于你完整的理解 HTTP 协议。

 

HTML 好像像水一样自然,所谓深入下去,似乎就是用前端 “框架”, 例如 Vue/React,那么建议两种主流框架都能自己写一些独立的完整的应用。顺便,可以深入挖下 Vue/React 的实现原理,也可以自己基于原生 HTML 考虑下如何实现一个仿照 React 的 “迷你框架”,来做 HTML 单页面的模块化开发,从学习的角度不需要实现精妙的算法,但是可以把一些基本的组件实现出来看看,支持单页面应用,可以让组件前进/后退,每个组件内有启动/退出/渲染等不同生命周期的调用。另外,有机会的话也可以使用 ReactNative 写下跨平台的移动应用。

 

前端框架里,MVVM 模式是一个常态了,需要去理解下它的原理,以及每种框架下各自有哪些状态管理库,这些库是如何实现的,解决了什么问题?如果没有这些库的时候,是不是就不能写代码了?不用这些状态管理组件,你自己来组织代码,应该怎么管理状态?这样你会开始考虑如何在前端里有模块化的组织代码,这就涉及到了编程的一个核心原理:封装。

 

当然,前端页面可能状态没那么复杂,因此涉及不到比较多的封装。因此,你需要刻意做一些“使用前端技术开发客户端”的项目,例如使用 ReactNative/Flutter 开发跨平台移动端应用,例如使用 Electron 开发跨平台桌面端应用。为什么要开发客户端应用呢?这是因为 纯网页状态复杂度 < 移动端的状态复杂度  < 桌面端应用程序状态复杂度。而一个程序员要成长,最重要的是TA 在程序开发中,是否逐渐掌握了处理更高复杂度代码的能力。怎么获得这个能力呢?做实际的有复杂度的项目,可能是需求的复杂,也可能是功能的复杂,也可能是技术的复杂。编程不是搬砖,程序员就需要在处理复杂时,不断重构代码,控制复杂,以小博大。

 

另外一个问题是,前端有很多框架,很多工具链。做现代的前端开发,不可避免你需要理解并掌握一堆的工具链。例如需要理解 WebPack 是做什么用的?它的原理是什么?是否深入阅读过 WebPack 的官方文档,知道它解决的问题是什么,这样你看任何一个有 WebPack 配置的项目时,都能看到项目的依赖结构(输入输出)。 以及,每个框架内也有自己的一些配置,例如 Vue 有自己的工具链,那么它的工具链又和 WebPack 是如何协同工作的?为什么它要发明自己的配置工具,既然 WebPack 号称能解决配置和转换的问题,其他框架为啥要自己发明一些配置工具呢?当然,还有 Gulp 工具链,它又是解决什么问题的?

 

然后,涉及 JavaScript 语言又有一堆的工具链,例如 babel 解决的问题是什么?TypeScript 解决的问题是什么?为什么有了 JavaScript ,还有人开发 TypeScript 。使用 TypeScript 有什么好处?为了使用 TypeScript 你又需要理解 TypeScript 的配置和工具。

 

到了这里,你会发现为了做一个项目太复杂了,“在 NodeJS 环境下,使用 TypeScript 开发一个使用了 XXX 框架的网站/移动端/桌面端应用,使用 WebPack 做了最后的转换。 在 NodeJS 的 package.json 里把这些工具链的编译都串起来,提供了一个 script, 最后只要 npm run build 把代码都编译后输出到 dist 目录下。 然后还要把 dist 目录下的代码打包,如果是网站还要部署到服务器上...”,说到底,这些工具之间构成了一个 “管道”,A工具处理代码后,交给B工具处理,B工具处理后交给C工具处理 ... ,最终生成的,还是,还是 HTML + CSS + JavaScript

 

于是,会发现,部署到服务器上,这个网站怎么被跑起来的又是怎么回事,这又是另外的部分了...

试试C语音了解,然后java,python,这个行业要一直学习,才不会被淘汰

毕业后参与前端开发,用的C#、as3这种脚本语言,语法相对简单。后来机缘巧合之下转岗服务端用的C++和lua,根据个人经验来说,要想走技术路线还是一条路走到黑,要么前端要么后端继续钻研下去。

以前没学过C的,建议花时间自学,对你的技术提升有不小的帮助。