[随笔] 前端自学杂谈

81 阅读4分钟

入门前,我觉得前端作为搭建设计界面和后端程序的桥梁,主要的工作内容是通过代码实现界面设计师和后端程序员开发设计出的程序和界面效果。学到现在,之前的理解自然显得浅薄了些,把前端是做工具人是对技术的轻视,也是对前端行业的低估。

作为一个还很菜的新人,我觉得前端还挺有意思的。这种有意思体现在几个方面:

  • 一是成就感的建立,入门者可以通过短期学习做出可以看到进步的阶段性成果;
  • 二是资料可利用程度高 (availability),适合持续的学习和自我提升;
  • 三是语言/知识点的开放性和关联性强,一个问题可能有多种解决方法;
  • 四是编程中的不确定性多,灵活与严谨并存;
  • 五是实用性强。

成就感 | Achievement

成就感的建立来源于前面的入门课程,学习html标签、css布局方式和动画方式就可以实现静态页面分布和一些动态页面的效果。每行代码都是实现界面的指令,画面性强,直观且方便理解。像css的flex、float、grid布局样式,不懂的地方看教程或者自己边写边看效果就可以做出想要的排列效果。因为我以前工作时候做项目不管是autocad还是adobe design suite调整图纸、文字分布都要输入行/列参数或者一根一根线/图片来排布,比较繁琐,学了前端以后发现可以用代码推导出直观的版面效果,感觉又快又清楚明白,学了就能用上,也就更愿意继续往后学了。

可利用度 | Availability

资料的可利用程度得益于优秀资源的引导吧,不是说所有的资料都好,但是优秀的教程和参考资料对学习提高很有帮助。像informative的教程,还有文档mdn,阮一峰等大佬的博客、csdn、掘金等等,把知识总结得很好,所以无论是遇到问题自查,还是想要自学什么,都有资料可查可用。还是拿我本行建筑对比,虽然也有很多资料,但实际项目所需基本都要靠工作去实践、找senior带你去学。因为优质但资料可获得度(availability)高,所以对于想要持续自主教育、自我提升的人来说也比较友好。

开放性 | Open-ended

语言/知识点的开放性强,是指一个问题可以用多种方法(多种API或是解题思路)解决。比如期中考的数组去重题,可以用ES6 Set去重、for嵌套+splic去重、indexOf、sort()、includes、hasOwnProperty判断是否存在对象属性、filter、递归思想排序后去重、reduce+includes、Map数据结构等十多种方法去做。关联性强,是指知识要综合运用;比如前航项目是jQuery+CSS布局+媒体查询+阻止冒泡+JSON序列化等知识点的结合,css、html和js语法都有用到。

不确定性 | Fluid

不确定性多,一方面是常态中的变态多,要注意的细碎的知识多,不确定的要时刻查文档/博客等可靠资料;另一方面是会写bug…现在是自查自改,以后要和队友穿插着查改bug,想必是既打磨技术,又锻炼意志品质。

实用性 | Practical

实用性强可能是我对学习编程的一个整体理解,信息化时代,生活中太多东西都和编程有关。学习前端以后,我去银行自助服务的机器时候会想起监听点击事件,取号等吃饭想到教程里的手写简易取号系统,玩游戏的时候一些小bug会去想有没有学过的知识可能能解决这个问题(顺便猜测ta是不是偷懒不想解决才留这个bug的)。总之是生活各个方面都有可能用到编程,虽然我前端知识学习的面还不够广,基础还不够牢,不过这种实用、且能激励我的学习体验很好,也很有意思。