学编程有80%的人不知正确方法:这两套妙招助你事半功倍!
编程已经越来越多的出现在生活中,无论是火热的“少儿编程”,还是“数据分析”,亦或是从事软件测试的同学面试都会被问到“编程语言”。
当然,也有越来越多的小伙伴开始或者更早的进入了“编程学习”大军。编程学习是讲究学习方式方法的,总是听到小伙伴咨询”编程的代码总是记不住“这样的问题,今天我们主要聊聊编程语言的学习方法。
学习编程之前,我们可能对编程是没有概念的,很多人说起来就是一堆代码,可是也不能说明白究竟代码是什么。
然后就硬着头皮,对着各种教程、视频、书籍或者过来人的讲解进行敲写代码。
在这个过程中,往往经历无数次”代码运行不起来“的问题,主要体现在以下几个问题:
· 标点符号写错
· 标点符号写成中文
· 标点符号遗漏
· 英文大小写错误
· 英文拼错
· ……
遇到这些情况不要着急,初学者(尤其是没有计算机基础背景)的初学者是经常遇到这样的问题的,这个时候需要采用一定的方式方法来进一步学习。
从主流的两大类编程学习说起:少儿编程和职业编程。
· 少儿编程
很多时候,我们说小朋友学习快,其实是因为小朋友带着目的(玩)来学习的。
少儿编程的目的可以说是培养小朋友的“程序思维”或者叫做“逻辑思维”,培养解决问题的能力和思路。
一般来说都是用 Scratch (MIT 麻绳理工大学研发的少儿编程语言)这也是可视化编程语言,类似于小朋友搭积木,以“开发可用的游戏”作为学习目标,所见即所得。
小朋友一边拖拽类似积木的“代码”,组装成程序,一边生成对应的游戏来体验,学习会非常快。
参考资料:
[1]《介绍Scratch 3.0:扩展编码的创新可能性-麻省理工学院媒体实验室》;
[2]《Scratch少儿编程教程—全套免费教程》。
· 职业编程
很多时候,职业编程学习,往往开始于环境部署,终止于循环分支语句。为什么呢?因为你写了这些语句,你也不知道能做什么。
职业编程一般指的是 IT从业人员的工作,比如:后端开发,前端开发,测试开发,运维开发,数据挖掘等,这类学习的共同目标其实就是:升职加薪跳槽。
具体到这类的学习,我们如何学以致用呢?
1. 学习前端开发,快速做出漂亮的交互网页、交互小程序并展示给自己(朋友)。
2. 学习后端开发,确实没有很多快速的能够学以致用的的效果,好吧:后端开发不是每个人都可以快速学习的,甚至有的从业者做了多年,还是没有适应后端开发的岗位能力.
3. 学习数据挖掘(数据分析),可以快速的替代繁琐的 Excel 透视图,Excel 图表等,生成工作中所需要的报告,这也会让学习持续下去。
4. 学习测试开发,可以快速的编写脚本,替代日常中繁琐的“点点点”工作,岂不是也会引发兴趣和学习的动力。
在上面这几类的学以致用的驱使下,抱着这样的目的去学习编程,往往会有不错的效果。
不建议的一种学习方式就是:跟着教材、视频去一点点的像背诵英文单词一样,从 A 开始背诵,到最后你就记得 “abandon - 放弃” 这一个单词。
任何的学习,其实都不能脱离对原理的理解。
少儿编程,让小朋友更进一步的学习,需要教会小朋友来理解:
· 循环
· 分支
· 变量
上面这些基本的概念,然后才能进一步学习,比如用 Python 编写了常见的《贪吃蛇》的游戏。其实编程学习就是 “学以致用与理解原理”相互结合来开展的。
职业编程,其实也是需要理解原理的。接下来以测试开发为例来展开。
测试开发的最主流学习,就是 Python 自动化测试,网上充斥着各种各样的“教程,神器”等。自动化测试主要有两种:
· UI (界面)自动化测试
· API (接口)自动化测试
我们分别对这两种做最基础的原理理解。
界面自动化测试,使用的核心工具 Selenium,代码如下:
一共四句,其实初学的小伙伴就有很多问题弄不明白了:
· 第一句:selenium 后面的 .webdriver 是啥
· 第一句:Chrome 又是什么,为什么这里的 Chrome 没有括号 "()"
· 第三句:等号 = 是什么意思
· 第三句:Chrome 为啥又有括号 "()"
· 第四句:driver 为啥可以 .get
· 第四句:driver 的 .get 为啥有括号 "()"
· 第四句:driver 的 .get 为啥括号里面还有 网址,网址上面还有引号 ""
……
相信上面的问题,如果如果你不能全部回答,说明哪怕你在做测试开发,你可能也还有很大的提升空间。
并且,实际上测试开发做的测试方案中,是根本不会使用上面这也的代码的,是有架构设计,封装和分成层方案的。
接口自动化,我们也同样用接口自动化测试的核心工具 requests 来展示代码:
上面一共六句,其实依旧有很多问题,初学的小伙伴会弄不明白:
· 第三句:requests 为啥可以 .get
· 第三句:requests 的 .get 为啥有括号 ()
· ……
其实接口自动化测试的这个代码,也是不可能直接用在工作中的,都需要测试开发来进行架构设计,分层,封装等。
我们用上面的栗子来说明,学习的时候,千万不要贪多,要理解代码的每一行真正的原理后,再开展更多的代码编写。否则,你一定会学不到精髓,而是靠死记硬背在努力。
总结
学习编程,最不可靠的方法就是死记硬背。而应该采取的方法是:学以致用结合理解原理。