如何学习一门新的编程

工作之后要学习Verilog,从来没有接触过这门语言,于是发起了一个提问:如何学习一门新的编程语言?

收到的答案有几种:跟着B站学习,看官方文档,直接用,做几个感兴趣的小项目,还有个姐妹说她是硬着头皮学的!

这种基础的问题困扰了我的整个学生生涯,我总是很疑惑学习代码到什么程度才算是真正掌握了呢?今天在网上做了一些调研,总结归纳如下,也算是一个解惑的总结~!

最困扰的一个问题大概是直接用还是先看书,看书看到什么程度开始做项目呢?什么程度可以开始做项目了?这些都是非常个人的学习方法和思路,但这里想给出一些可以做选择的思考,而不是一个按照唯一的方法学习的标准答案,编程实践的方法没有标准答案。

  • 在选择学习什么语言之前,首先选择一个感兴趣的项目,为了实现项目的需求,将需求分成一个一个小的需求,需求分割的步骤:

    • 识别一个问题
    • 理解这个问题
    • 列出所有可能的解决方案;
    • 评估所有可能的解决方案;
    • 找到一个最佳解决方案;
    • 设计最佳解决方案;
    • 准备算法;
    • 准备伪代码;
    • 写主要代码;
    • 使用尽可能多的测试用例测试代码;
    • 测试,然后移除可能出现的错误;
    • 最后,得到一个完整的关于开始问题的解决方案。
  • 选择项目开始学习的好处:

    • 增加简历上的项目经验
    • 你会更加清晰地了解在实际的开发环境中该使用什么编程语言,以及各个编程语言的特性;
    • 兴趣是最好的老师,最开始的问题总是会驱动着你去探索
    • 在实际的项目中,不可避免地会遇到各种问题,这时需要Debug代码块,而Debug的能力是每个程序员必须具备的。
  • 一个误区:你永远无法完全学会一门编程语言

    • 即使是一位从业二十年的资深工程师,也会在解决实际问题时遇到新的挑战,每一天!
    • 所以其实即使是顶尖的程序员,也没有完完全全掌握一门编程语言。(这个打破了笔者的认知!一直以为可以掌握来着!)
  • 先掌握语言本身,再掌握其框架。

    • 有可能一开始就要跳到中级的水平,但其实基础是非常重要的,如果进阶到了更加难的项目中,回过头来不断翻书看基础知识,是非常浪费时间的;
    • 比较好的方式是学习并使用新的框架和技术包;
    • 编程并不是在编写循环,找出数组中的最大最小元素,编程是在解决一个实际的问题。
  • 根据特性学习编程语言:

    • 如果注重性能,可以学习C++;
    • 如果有稳定的第三方支持,可以考虑Python;
    • Python是最容易上手的编程语言,但在实际的应用中,企业通常比较注重性能,所以C++是其首选;
    • JavaScript也很好——在机器学习,移动APP等领域都有广泛应用;
    • HTML——如果要应用在网页上,这是首选。
  • 从哪里开始学习编程语言:

    • 从互联网上半年的学习,也许比大学四年的学习更加有效;(笔者:啊,那大学四年白读了吗?)
    • 学习官方文档,所有的书,课程,以及该编程领域的技术专家,其出发点都是官方文档;
    • 在技术更新速度极其迅速的今天,如何有效且简洁地阅读官方文档是一门技能,非常重要;
    • 在Github上找一些项目的代码来学习,从资深工程师的代码中学习如何规范书写代码
    • 手写代码——手写代码可以让你更好地理解代码中的逻辑,也会更清晰地知道你写下的代码的算法和结构,在技术面试时,这也是一项重要的技能。
  • 设置清晰的,能够得着的学习目标,并坚持去做,不要放弃:

    • 知道自己的局限,实际一点,设置能够实现的目标,这样学习的自信心会日益增长;
    • 保持耐心,当你能够理解代码的一部分时,给自己鼓励,并持续更高阶的学习;
    • 为自己设计一些意义感,编写代码大概是非常有创造力的一项工作
  • 与他人分享你的代码和学到的知识,讨论让学习变得流动起来,所谓“为有源头活水来”。

参考文章:

[1] 牟连佳,李丕贤,邵洪艳.初级编程大学生学习方法研究[J].高等工程教育研究,2014(02):184-188;

[2] How To Learn a New Programming Language/Framework,Ishan SharmaJune 08th, 2020;

[3] 6 Steps to Learn and Master a Programming Language, Jan 07th, 2021;

[4] 7 Tips to Help You Learn a New Programming Language Fast,PUBLISHED 3 DECEMBER 2021/ UPDATED 1 MARCH 2022;

一些官方文档:

[1] cppreference.com

[2] Verilog

[3] Python

 

posted on 2022-09-04 21:32  SunnyBai  阅读(308)  评论(0编辑  收藏  举报