积累素材

写在前面

有些人认为进步是可以 直接且主动 的,于是保持着 刻意练习 的学习方法,一字不差地硬抄 Demo 代码、算法,然后不断地临摹别人的示范页面,以图达到熟读唐三百首的效果。这种刻苦的精神与毅力,值得欣赏,但在技术相关的领域,并且是倾向于应用型的技术,倒有点南辕北辙了。

技术上的进步,一般是曲线、以及被动的。
我们不要去想着如何提升自己的技术能力,而是要想着如何完成一个产品、如何更好地实现当前工作任务中的需求,那么,在这个过程中,很容易遇到自己的技术瓶颈。
遇到了瓶颈,怎么办呢?不就很自然地会自己寻找资料,可能会引入一些现成的 package,除了阅读文档之外,经常还会去翻前人的源代码,如此一来,问题得到了解决的同时,代码上的一些手法也会得到启发,具体的能力也得到了实际的增强。

刻意练习是一个很好的思路,但是如果不考虑场景,空荡荡的努力不过是东施效颦。
或许,此时我们需要重温本课程最开始的一个问题: 你觉得『编程』是什么?
编程最核心的问题是去借助逻辑的能力,将我们的思考固定下来,并进行反复重用,以提升效率,量变最终产生质变,我们将拥有创造一个新产品的能力。
编程的最重要的问题,从来不是程序语法的问题。

有哪些素材可以积累

《Level 1 知之 > 使用工具》中其实有过大概的介绍,我们现在再简要重复一遍。
大抵有这些素材,是我们可以进行积累的:

  1. 别人的设计稿: dribbble.com 上设计师的设计稿,或者自己看到欣赏的网站,截图之;
  2. 无版权的图片: Unsplash 上,不过一般这些图片的适用场景有限,或者说,在技术实践过程中,对图片的依赖度并不高;
  3. 代码片段: 在个人技术成长过程中,遇到了一些常用的代码片段,或者别人的或者自己的,可以将其收集起来以备后用。

对了,并不太提倡全记录式地记笔记,如果要,就记那些重要且自己不能领会的内容,一些技术细节、属性的含义,真没有记录的必要,用到时候使用搜索引擎就可以了。

己所不欲,勿施于人

本节的内容,我们讲的应该是 积累 的范畴,其实也是蛮让我犯愁的。
因为就自身而言,我并不刻意去 积累,甚至说有些慵懒。不会去收集 Unsplash 的图片,需要用到的时候,搜索下就好了;也比较少去收集别人的设计,一般真要用到的时候,也不过是浏览、扫一扫,作为灵感的触发,因为桎梏于视觉能力的不足,自身已经衍生了简洁的风格;而代码片段,更无从谈起了,真正有价值的代码,都形成在自己的 package 中了,而不是别人的某个片段。

说到不会收集 代码片段,其实跟我主要精力在后端也有关系。
真正有价值的,不会是片段,都是现成的解决方案转为 package 的方式了,你可以直接拿来用,或者在此基础上进行修改。如果没有解决方案,那么就需要自己完成一个。
重点是自己判断的能力。比如,我更喜欢可控、轻量的 package,当然新手阶段的时候,也同样相信 package = solution;其实不是的,有些看似成熟的 package 代码量过万,而同样实现你自己所需,可能不过几百行代码而已。

本课程的主要内容,是聚焦在 HTML+CSS 上,而这又是我技能树上不算什么像样的技能点,不过会用而已。在产品实现的过程中,虽然也有不少前端的代码量,但也算不上高明,不过是花了时间的自然产出。
印象中,也并未有什么实质 直接积累 的过程。

己所不欲,勿施于人。
本节的内容,不过是我的一些建议而已,如果没有更好的方法,就按照这些建议来,如果找到了更好的方法,就当弃之如贻。
本节内容如此,本课程内容,亦是如此。