一直以来,发了一些个人开发的网站作品,然后陆陆续续有设计师来请教关于如何学前端,于是我也大致找了一圈,从设计角度出发的开发教程非常少,基本很难给到一个系统的学习教程和路径。 (推荐一下 “好奇代码的三木”,更适合设计师食用。)
一般的开发教程更注重功能实现和系统开发,所用的实战案例不考虑 UI 视觉,甚至只是其他产品的半成品复刻,可以学会写业务代码,但是对于设计而言,实用价值低,视觉实现和交互动画的内容太少。
作为一个设计师,开发一直是我的兴趣爱好所在,主要是前端开发和视觉交互实现方面。 从早期接触开发以来,那时候还没有现在这么多的学习课程和资源,磕磕碰碰踩过的坑不少。 因此我觉得可以把我接触开发和正在开发踩过的坑和经验分享一下,作为一个 设计师的开发笔记/设计师的开发经验心得 之类的系列也挺好,这篇文章可以作为一个序章。
序章:学前端之前的建议
明确目标和细分化领域
如果有人上来第一句话问我:我要学开发,要怎么学?我大概会瞬间失去所有回答的激情和欲望。换一下视角,如果是设计这行,有人上来问你我想学设计要怎么做,也会觉得窒息。设计是个大行业,UI/UX/UE、WEB、APP、动画、插画、品牌、电商等等,甚至还可以再细分多几个领域,要学什么首先得理清楚自己的需求和目标。前端也是一样的大领域,APP、WEB、B端、可视化等等,还可以从技术栈的角度去划分,Vue、React、UE5、安卓、IOS 等等。
因此,想象和你接需求文档一样,给自己的诉求也列一个文档,自己想要的是网页开发、3D视觉、APP或者独立开发,然后找对应方向的知识和教程,不要广而泛的进行提问,这是大忌,也没有人能够回答。
最好的教学老师 - AI
编程 AI 影响和受益最大的领域之一。对于编程学习者而言,起步最劝退和折磨的是,代码你照着写了,不知道为什么跑起来了,也不知道为什么跑不起来,但是自己找不到问题点,无法检索无法询问,耗时费力。跟**一样,不可认知,不可描述的恐怖,劝退了很多新人。
**(每个初学者都试过只因为一个中英文标点符号的差异,烧掉无数脑细胞。) **
但是AI,你可以把整篇代码直接贴进去,它会仔细的给你介绍解释每一行的用法和意义,每一个细微的错误以及不同的优化方案。秒输出同个功能的四种不同写法。我这个互联网早期的学习者,看了都要和孔乙己抱起来流泪。
AI 大大降低了编程学习的门槛,并且代码补全工具也成熟了,只要准确的描述需求,连代码都帮你写好,你需要的只是甄别、调试、修正需求描述而已。(所以现在很多挂着零基础开发应用的名头,但是也没这么神,还需要自己的甄别和知识储备。)
善用AI,你的学习效率已经比前人高出十倍不止。
不必要追求实体化书籍,最好的学习教程是官网
有些设计师会喜欢追求实体书的文字质感和学习方式,我自己也收藏了很多实体设计书籍。但是开发是一个更新迭代很快速的行业,一本实体书籍,从编写到面世,一般都有两年左右的滞后期,尤其口碑发酵也需要时间。而就算现在热门的技术栈,也都是一直在更新迭代的,不断会添加新的技术淘汰旧的知识。(在框架学习阶段)大部分的编程类实体书不适合新手学习阶段。
最好的学习网站是官网。比如当前最流行的 Vue、React,以及我喜欢的 Astro,齐全的中文文档、从浅到深的学习路径,有实战有踩坑说明。官网教程是对于新手来说最好的学习起步。
开发者是最喜欢折腾的群体,而他们在想让你学会这方面的渴望,比你自己还强烈。
当然,经典的红宝书和犀牛书等原理类经典著作还是建议入手的。框架类型的就没必要。
高效的提问是一种能力
遇到问题、分析问题,描述问题和解决问题,这些能力不是生来具备的。永远不要太高估自己的提问能力,在提出一个问题之前,先自己想一下有没有完整的描述问题产生的背景、过程、结果。编程上解决问题经常是需要抽丝剥茧的一个过程。 遇到一个问题,找各种方法去解决它,在过程中你会遇到更多小问题,当代码量上去了,代码也就越写越熟练和高质了。
见识过太多新人盲目低效的提问之后,我坚持认为高效学习的一个重点是培养解决问题的能力,在开发过程中,遇到问题是常态。学会查阅文档、搜索解决方案、在Stack Overflow等社区提问,都是提升自我、解决问题的有效途径。
注重实践和成果激励
前端开发是一门实践型技能,仅仅依靠看视频、阅读教程和理解概念是无法真正掌握前端技能的。事实上,堆代码量真的能越过前期学习的大部分困难,但前提是不需要你照着“字典式”的文档把每一个标签和属性都抄一遍。最好的方式,是实现一个个小的项目积累起来。不需要纠结于理解一个项目的原理,而是先让项目跑起来,先会用再慢慢理解。前端不复杂,Learning is doing.
绘制自己的前端知识地图
学习知识是有记忆遗忘曲线的。一是本职作为设计师,不可能将太多的时间和精力都投入在前端学习上,再来前端知识多而杂,如果没有计划的东学一点,西学一点,不容易记忆,遗忘速度加倍。因此不要一上来就着急的直接开学,把时间多花些在前置的准备工作上。可以比方是设计一套系统,你要先规划好结构原型,然后把学习过程的知识作为设计规范和组件,有序的搭建,使得知识系统足够完整。