初学者的信念

探究:初学者编程语言的选择

2023-09-09  本文已影响0人  北极的大企鹅
日期 修改人 修改内容
2023年2月12日 北极的大企鹅 添加了C语言的新比喻

前景提要

编程语言选择面临的问题

零基础的理解可能不一样?

真正初学者编程语言选择面临的问题

序号 问题 描述
1 难易程度怎么样? 这里的难易程度,不是对已经有一门编程语言入门的人来讲的难易程度,很多介绍的机构,个人,教授都是以自己已经会了编程的评价标准来衡量的,已经会了编程有了基础的人看待问题的思维逻辑已经系统化了,跟真的零基础的人理解事物的概念是不同的,虽然我是一个会编程的人,但是,作者进行了深入思考和回顾自身初学时遇到的痛点问题,进行了反向思维推导,来看待这个问题,作者的标准就是初学者是否具备计算机基础知识,这个基础知识就比较多了,并不是你会打个游戏,你会看个电影,用个百度就是你有基础知识了,基础知识本身就很多,作者认为计算机专业最难的也是基础知识,抽象的基础知识很多数据结构,操作系统,在计算机领域都叫做基础知识,但是,它们也是最难的,就算从事多年的计算机开发,依然需要反复研读和理解的基础知识,所以,是否掌握基础知识的评价标准确实是可以验证你对编程入门的难易掌握程度。
2 环境配置是否复杂? 这个问题真的是累哭了多少开始信心满满的初学者,本来怀着百分之二百的热情来加入编程队伍,结果一上来你不是教我怎么写出可以搞定一切qq账户的代码,而是来个一个莫名奇妙的环境变量配置,很多小伙伴满脸黑人问号的问what,这就好比你本来去跟小哥哥/小姐姐去相亲,结果去了不是相亲,而是先讲讲财产怎么分割,离婚后孩子归谁一样,让人即莫名其妙又无可奈何,初学编程的小伙伴有多少人被环境变量搞得痛苦哀嚎呢?只有他们自己知道. 所以,一门语言是否有个复杂的(相对初学者)环境变量配置也是很多初学者痛苦的源泉,他们不想去做环境配置工作,因为经常出现一些他们无法搞定的问题,因此,这个问题也成为选择学习编程语言的一个难度门槛.
3 是否可视化界面? 这也是劝退更多初学者的一大难题,也是编程入门的一项基础工作,一门语言一开始就用一个黑漆漆的运行界面,让很多初学者都很畏惧,毕竟大家在多年的使用计算机的习惯中,已经被微软的可视化界面征服了,形成了使用可视化界面的习惯,如果一门语言的开发是使用一个黑漆漆的运行界面,也会使得一些小伙伴迅速放弃,并自我催眠认为这门语言学起来好困难啊!
4 编译器操作复杂度? 很多初学者平时知识浏览浏览网页,看看视频,对于一款专业的软件的使用一般都很困难,毕竟很多人无法熟练的使用word排版,制作精良的ppt和生成优美的excel表格图标,现在让他们使用一款全英文的编译器,对于那些英语不是很精通,不喜欢英语的初学者,一下就像一座大山一样压倒了他们对于编程语言的选择,所以,编译器是否操作复杂也是要作为选择编程语言的一个重要参数指标.
5 学习的时间成本? 大家总是对很多事务存在着开始新鲜,久处厌烦的状态,因此,能不能是一门短时间学会的编程语言,也是成为对于编程语言的选择的一个指标,这个时间成本可以参考很多培训机构的时间表,他们的官网或者咨询会告诉你培训多久能学会这门语言,一般的都是半年左右,压缩了课程,每天要学习八个小时以上,这样也会拖得很多初学者失去了昨日的热忱,因此,能否快速的学会一门编程语言,也是成为了编程语言选择的要素
6 相关性学习时间的长短? 有些东西就会分散初学者学习主语言的注意力,这就跟你同时学多门课程分散注意力一样,比如既学数学又学物理,对于理科思维好的人是锦上添花,但是,对于理科思维不那么活跃的人来说就是痛苦,同样的就是既学文言文又学英语,也是对于另一些人同样的痛苦,这也会或多或少的拖慢一个初学者对于主要编程语言的学习,有时会起到促进作用,而其他的时候就是滞待作用。因此,选择一门编程语言的时候,要去了解其要学习多少相关性的知识,这些相关性的知识可能跟当前学习的编程语言无关,比如学习Java的整套,除了Java还要学习MySQL,Linux,git,Redis,JSP .... 这些就跟学习Java本身是无关的,你不会因为不会写MySQL而写不出Java本身的代码,但是,你要学习建立一个网站,又必须学习MySQL,这就会分散你学习Java的注意力,因此,你要探究一个编程语言是不是存在众多的分散你注意力的辅助语言,这也是一门语言选择的条件之一.

编程语言难易程度问题

形成编程思维的人和没有思维的入门者的区别

语言难度问题划分

image.png

你个人能够快速的理解的编程语言,就是最好入门语言

C语言并不适合所有初学者入门

c语言对于初学者在哪里?

难点 描述
专业术语 很多想要入门的初学者都会在这一步上徘徊很久,找到一门入门书籍,每个字都认识,放在一起就是不知道什么意思,归根到底就是专业术语的储备不够,就像你读一篇英语文章,有你认识的单词,有你不认识的单词,何在一起必然你也很难连贯的理解整个句子的含义,熟悉专业术语就像理解众多单词一样,只不过这次不是记住单词,而是记住名词解释.
翻译 很多初学者学了编程,但是,看到编程题目很难将汉字转化为程序,究其原因就是难以将汉字的表达方式转化为程序的代码形式,这个就像你读数学题目,要找到已知量和未知量,而程序需要找到什么是变量,什么是值,在哪里变化,而这种操作,本博主认为就是在翻译自然语言到程序语言的过程.
数据结构 由于这门语言是一种强类型的语言,因此,你要想很好的使用必须能够清楚的知道一个量到底是什么数据类型,而这个类型就要学习一门课程叫做"数据结构",因此,学习前还要理解数据结构,才能很好的使用这门语言.
语法 语言号称是语法简介,但是,这门语言的语法灵活性很高,因此,变化的方式很多,很多初学入门者很难快速的找到语法规律,同样一个题目,可能有多种编写方式,而初学者对于这种变化是很难快速直观的感受到的.
数组 这个概念可以跟数学的集合概念相互映衬理解,同时还要有线性代数的基础,毕竟数组的很多操作都是在遵循线性代数的规律,线性代数学的好的小伙伴,在这里还是能够很好的驾驭
算法 这个概念在数学中叫做解题步骤,在计算机领域又进行了自己的定义和抽象化的描述,因为计算机的同一个题目很多时候,有多个解法,所以一般算法是不固定的,这样很多初学者就会产生困惑,到底应该怎么做这个题目,一个题目可以用for循环,可以用while,可以用do while,那么我该用哪个,也是初学者很困惑的问题
内存溢出 这个问题也是经常遇到的,因为这门语言比较靠近底层,因此,需要研究内存的问题,就要学习操作系统这门核心课程,因此,很多初学者也是不甚理解
指针 这可以说是C语言的灵魂也不为过,但是,指针的操作又涉及了很多内存,内存地址的问题,这些问题也是要理解一些计算机组成原理和操作系统才会更好的理解概念,因此,有这两门的基础,还是会更好的理解这个概念.
结构体 结构体本身就是在现有的数据类型不够的情况下,自定义一个数据类型,这里也需要有数据结构基础傍身,你才能快速理解使用.

面向对象语言的推荐

前端开发语言和后端开发语言

编程语言选择总体推荐

序号 重点 描述
1 难易程度怎么样? 前端难度<后端难度 面向对象语言<面向过程语言 高级开发语言<低级开发语言<机器语言
2 环境配置是否复杂? 前端环境 < 后端环境 < 系统环境
3 是否可视化界面? 前端开发语言的可视化程度大于后端开发语言的可视化程度
4 编译器操作复杂度? 后端开发语言的编译器操作复杂程度大于一些前端开发语言的编译器(比如HTML是记事本难度就比其他集成编译器简单很多)
5 学习的时间成本? 前段开发语言的入门学习时间少于后端开发语言的入门时间
6 相关性学习时间的长短? 网页三剑客学习的相关性时间学习少于整套后端语言的学习时间

入门初学者对于语言初期到底要的是什么

序号 重点 描述
1 代码能够运行起来 对于一个入门初学者,不需要深入全面的了解各种知识原理,最重要的第一步,是让自己写的代码都能够跑起来,跑起来能够带来信心,跑起来能够带来力量,跑起来能够支撑你继续努力的学下去.
2 能够处理简单的小问题 在代码跑起来的时候,一定会遇到这样的,那样的问题,比如少写了个分号,少写了个括号,单词拼写错误,这种常见的问题,自己能够找到并且改正,也是进步的原动力,这就涉及到认真,眼神好和会读报错信息
3 会使用百度工具 很多初学者入门之后,能够发现问题,能够找到问题,但是,解决问题能力还不够,因此,要学会使用百度,很多初期的问题都是可以在百度上找到的,每次遇到问题,也要记录总结,才能不断进步
4 熟练安装编译器和配置环境 这个难倒无数初学者的问题,真的是做个开发者必备的技能,所以,要把它的属性点点满,首先找到一个图文并茂,步骤清晰详细的安装文档,然后,比对安装的编译器版本,看看其可视化的界面是否跟文章基本一致,然后,按照文章的步骤仔仔细细一步步执行,很多时候就是细节出了小问题,因此要单独拿出一部分时间,就是反复的做安装这个工作,安装和配置环境真的是一个孰能生巧的事情,就跟你组装模型一样,反复多做几次,十次每次都认真做,一定能够将这个问题解决的
5 选择一门语言入门后,一定要把它完整学完 很多初学者选择一门语言后,今天看两个觉得好简单,然后,明天遇到困难了,就去学别的简单的内容了,这样是不对的,无论选什么语言,都要认认真真从头到尾完整的学完一整套,遇到不会的可以记录下自己的问题,很多前期的问题,都会在整套学完得到解答,不要死扣一个概念原理不放,初期的时候,由于知识储备不够,生扣一个概念和原理,是不明智的,就像考试遇到不能马上解答的题目,老师也是建议你先跳过,如果时间充裕在最后过来思考一样,计算机的学习也是遵循这个原则,先整体后局部,整体系统学过,再反过来思考曾经的问题,就会形成知识覆盖,因为学习了更高级的知识,所以,初级的知识问题就会迎刃而解,你学会了二十以内的加减法,让你做十以内的加减法,肯定是手到擒来.

总结

上一篇下一篇

猜你喜欢

热点阅读