您现在的位置:主页 > 疯狂设计 >自学程式门槛难突破?校正3个心态跨越学习障碍 >

自学程式门槛难突破?校正3个心态跨越学习障碍

栏目:疯狂设计 | 来源:http://www.062am.com | 时间:2020-08-01
自学程式门槛难突破?校正3个心态跨越学习障碍

近年来线上课程蓬勃发展,不少学习平台如 Udemy、Udaciy、Khan Academy 等,都提供多元丰富的软体开发课程,引领「自学程式」风潮。若是应用得当,半年以内就可以学有所成,让没有相关背景的新手,踏上软体开发之路,现在,想要转职到程式开发相关的工作,其实不需要再念四年大学或两年研究所。

儘管如此,在 AppWorks School 过去三年多来,辅导上百人转职成软体工程师,其中有不少申请者都是在自学途中,遇到难以独自突破的瓶颈,所以选择报名参加 AppWorks School 为期16 週的免费程式课程 。因此,我们想从实际的观察中,分享我们认为程式自学者应该校正的三个心态,希望能帮助更多人跨过学习障碍,早日成为心目中的软体工程师:

一、釐清学习目标,先专注在一个领域上

首先,软体开发新手在一开始接触程式开发时,很容易迷失在广大的 CS 知识中,不知道该从哪里下手。也经常会有各种道听途说:「听说 Python 很适合新手」、「听说前端比较好入门」、「听说 Java 的工作机会最多」,在各种资讯轰炸之下,许多初心者经常会一下学 Python,一下学 JavaScript,但都侷限在很初阶的程度,且往往学到一半,才发现跟自己预设的目标没有直接相关,花费了大把的时间跟精力,却徒劳无功。

我们建议,新手在程式开发上可以採取「目标导向式学习」,先设定一个清楚的目标,再去安排自学计画与步骤。例如,如果想要做网页应用,那幺应该直接从 HTML / CSS / JavaScript 入门;如果想要开发手机 App,则依开发的平台 iOS 或 Android 来选择学习 Swift 或 Kotlin,减少绕远路的时间成本。

如何安排自学路径?实际上,网路上已经有不少软体工程师的过来人,分享从事各种工作应学习的技能树 ,新手在学习的过程中,可不时确认自己正在学习的内容,是否与目标相关,若发现偏离目标,才能即时喊停,将学习的效益发挥到最大。

自学程式门槛难突破?校正3个心态跨越学习障碍
前端开发技能树 ,清楚描绘新手的学习路径。资料来源:GitHub

图说:前端开发技能树 ,清楚描绘新手的学习路径。资料来源:GitHub

二、检视学习瓶颈,增加时数或深度

选择要专注的领域后,另一个新手常见的误区,就是经常反覆学习「已知的知识」。变成一直在新手圈里跨不出去,我称之为「新手舒适圈」。举例来说,许多 Web 开发新手,经常反覆学习各种 HTML 标籤,却迟迟做不出想要的网页画面;Android 开发新手,则持续练习处理静态的画面、简单的按钮互动,却不知道怎幺串接后端资料、处理用户的网路行为。

之所以会有这个现象,背后通常来自两个原因。第一,许多新手都是透过影片或短期课程兼职学习,若投入练习的时数不够,很容易学了就忘,可能前一晚看了影片,隔天有事情没练习,后天就忘记了,只好重看一次複习,若这次又来不及複习,过几天可能又得重来一次,就这样无限循环,却迟迟无法突破。

这种情形通常是练习与实作的时间不足,必须重新安排学习计画。我们建议,若想兼职学习有成,每週至少需花 15-20 小时,一次至少安排连续两小时的时段,例如,平日晚上需有 2-3 天晚上,投入 2-3 小时,週末两天则需各投入 6-8 小时,才能有所累积。

第二个原因,则是当新手想挑战较进阶的题目、感到困难时,很容易会想「一定是我的基础不够好,才会不知道要怎幺做」。所以会反覆的观看已经看过的影片,花时间重複学习基础知识,但往往只能加深原有的记忆,对眼前的问题仍然一筹莫展。

在实务上,进阶的问题,很可能需要进阶的知识才能解决,原本的学习资源或许未能涵盖。因此,建议这时新手该做的事情,是搜集、阅读更多「进阶知识」,甚至在这个阶段,还需要观摩前人的做法,先模仿、再理解,才有机会突破瓶颈,让自己更上一层楼。

这不代表基础不重要。而是要提醒,如果发现自己总是一样的东西学了又学,或同样的影片看了三次,却说不出自己的成长、做不出想要的东西时,就该检视到底是投入的时间不足,或者该学习更深入、更进阶的内容。

三、多开口请教,从别人的经验中学习

通常初心者都有 1-2 个工程师朋友,当初也可能是受到他们的启发所以想学习程式。但是在自学的过程中,却往往不敢开口请教,以为是自己读得还不够多,所以不好意思麻烦别人,却导致在一个问题上花费了过多的时间,累积不必要的挫折感,终至放弃学习。

举例来说,许多开发环境都有系统 Bug,若待机久了运作上会失常,即使是没有缺失的程式码,也有可能跑不出应有的结果。此时有经验的工程师,会试着「重新开机」或着手解决系统的问题,不到 10 分钟问题就解决了,但缺乏实务经验的初心者,通常不会想到原来不是程式码的问题,纠结许久却苦无头绪,可能要等到两、三天后,意外将开发环境关掉重开,问题才突然解决。

这种心态,与其说是「怕麻烦别人」,通常往往是「怕自己问了笨问题」。但问题本身其实是中性的,越是去评价问题的优劣好坏,越容易让自己陷入不敢提问的困境。反之,若能将每一个问题单纯视为学习的机会,越快解决问题,就越快累积经验值,才越有机会成为合格的软体工程师。

当然,靠自己的能力解决问题,会有很大的成就感,但若发现自己已经困在同一个问题好几个小时了,不妨开口向工程师朋友请教,透过他们的经验,帮助自己更快速成长。如果真的觉得朋友很忙,网路上的技术讨论社群如 Front-End Developers Taiwan、Android Taipei、[email protected] 等,都很欢迎新手张贴问题,也会有热心的工程师前辈帮忙解答。

总结来说,拜网路产业开源风气之赐,程式开发相比于其他技能,有非常多的网路学习资源,却也容易让新手迷失,希望以上三点提醒,能够帮助初心者检视自己的学习问题,进而有所突破。


上一篇:
下一篇: