新手如何快速学习一门编程语言?了解TA,三周学好C语言

时间:2022-10-09 17:37:58 | 浏览:1965

前言很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程语言包打天下是不现实的。这中现状也造成了一种现象,一

前言

很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。

每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程语言包打天下是不现实的。这中现状也造成了一种现象,一个程序员往往要掌握多种编程语言。

学习任何一门编程语言,都会面临的第一个问题都是:如何学习 XX 语言?

我不想说什么多看、多学、多写、多练之类的废话。世上事有难易乎?无他,唯手熟尔。谁不知道熟能生巧的道理?

我觉得有必要谈谈的是:如何由浅入深的学习一门编程语言?学习所有编程语言有没有一个相对统一的学习方法?

曾几何时,当我还是一名小菜鸟时,总是叹服那些大神掌握多门编程语言。后来,在多年编程工作和学习中,我陆陆续续也接触过不少编程语言:C、C++、Java、C#、Javascript、shell等等。每次学习一门新的编程语言,掌握程度或深或浅,但是学习的曲线却大抵相似。

下面,我按照个人的学习经验总结一下,学习编程语言的基本步骤。

学习编程语言的步骤

基本语法

首先当然是了解语言的最基本语法。

控制台输出,如 C 的 printf,Java 的 System.out.println 等。

普通程序员的第一行代码一般都是输出 “Hello World” 吧。

基本数据类型

不同编程语言的基本数据类型不同。基本数据类型是的申请内存空间变得方便、规范化。

变量

不同编程语言的声明变量方式有很大不同。有的如 Java 、C++ 需要明确指定变量数据类型,这种叫强类型定义语言。有的语言(主要是脚本语言),如 Javascript、Shell 等,不需要明确指定数据类型,这种叫若类型定义语言。

还需要注意的一点是变量的作用域范围和生命周期。不同语言变量的作用域范围和生命周期不一定一样,这个需要在代码中细细体会,有时会为此埋雷。

逻辑控制语句

编程语言都会有逻辑控制语句,哪怕是汇编语言。

掌握条件语句、循环语句、中断循环语句(break、continue)、选择语句。一般区别仅仅在于关键字、语法格式略有不同。

运算符

掌握基本运算符,如算术运算符、关系运算符、逻辑运算符、赋值运算符等。

有些语言还提供位运算符、特殊运算符,视情节掌握。

注释(没啥好说的)

函数

编程语言基本都有函数。注意语法格式:是否支持出参;支持哪些数据作为入参,有些语言允许将函数作为参数传入另一个参数(即回调);返回值;如何退出函数(如 Java、C++的 return,)。

数组、枚举、集合

枚举只有部分编程语言有,如 Java、C++、C#。

但是数组和集合(有些语言叫容器)一般编程语言都有,只是有的编程语言提供的集合比较丰富。使用方法基本类似。

常用类

比较常用的类(当然有些语言中不叫类,叫对象或者其他什么,这个不重要,领会精神)请了解其 API 用法,如:字符串、日期、数学计算等等。

语言特性

语言特性这个特字反映的就是各个编程语言自身的"独特个性",这涉及的点比较多,简单列举一些。

编程模式

比较流行的编程模式大概有:

面向对象编程,主要是封装、继承、多态;函数式编程,主要是应用 Lambda;过程式编程,可以理解为实现需求功能的特定步骤。

每种编程模式都有一定的道理,我从不认为只有面向对象编程才是王道。

Java 是面向对象语言,从 Java8 开始也支持函数编程(引入 Lambda 表达式);C++ 可以算是半面向对象,半面向过程式语言。

语言自身特性

每个语言自身都有一些重要特性需要了解。例如,学习 C、C++,你必须了解内存的申请和释放,了解指针、引用。而学习 Java,你需要了解 JVM,垃圾回收机制。学习 Javascript,你需要了解 DOM 操作等。

代码组织、模块加载、库管理

一个程序一般都有很多个源代码文件。这就会引入这些问题:如何将代码文件组织起来?如何根据业务需要,选择将部分模块启动时进行加载,部分模块使用懒加载(或者热加载)?

最基本的引用文件就不提了,如C、C++的#include,Java 的 import 等。

针对代码组织、模块加载、库管理这些问题,不同语言会有不同的解决方案。

如 Java 可以用 maven、gradle 管理项目依赖、组织代码结构;Javascript (包括 Nodejs、jquery、react 等等库)可以用 npm、yarn 管理依赖,用 webpack 等工具管理模块加载。

容错处理

程序总难免会有 bug。

所以为了代码健壮性也好,为了方便定位问题也好,代码中需要有容错处理。常见的手段有:

(1)异常

(2)断言

(3)日志

(4)调试

(5)单元测试

输入输出和文件处理

这块知识比较繁杂。建议提纲挈领的学习一下,理解基本概念,比如输入输出流、管道等等。至于 API,用到的时候再查一下即可。

回调机制

每种语言实现回调的方式有所不同,如 .Net 的 delegate (大量被用于 WinForm 程序);Javascript 中函数天然支持回调:Javascript 函数允许传入另一个函数作为入参,然后在方法中调用它。其它语言的回调方式不一一列举。

序列化和反序列化

首先需要了解的是,序列化和反序列化的作用是为了在不同平台之间传输对象。

其次,要知道序列化存在多种方式,不同编程语言可能有多种方案。根据应用的序列化方式,选择性了解即可。

进阶特性

以下学习内容属于进阶性内容。可以根据开发需要去学习、掌握。需要注意的是,学习这些特性的态度应该是不学则已,学则死磕。因为半懂半不懂,特别容易引入问题。

对于半桶水的同学,我想说:放过自己,也放过别人,活着不好吗?

并发编程:好处多多,十分重要,但是并发代码容易出错,且出错难以定位。要学习还是要花很大力气的,需要了解大量知识,如:进程、线程、同步、异步、读写锁等等。

反射:让你可以动态编程(慎用)。

泛型:集合(或者叫容器)的基石。精通泛型,能大大提高你的代码效率。

元数据:描述数据的数据。Java 中叫做注解。

库和框架

学习一门编程语言,难免需要用到围绕它构建的技术生态圈——库和框架。这方面知识范围太庞大,根据实际应用领域去学习吧。比如搞JavaWeb,你多多少少肯定要用到 Spring、Mybatis、Hibernate、Shiro等大量开发框架;如果做 Javascript前端,你可能会用到 React、Vue、Angular 、jQuery 等库或框架。

小结

总结以上,编程语言学习的道路是任重而道远的,未来是光明的。

最后一句话与君共勉:路漫漫兮其修远,吾将上下而求索。

想要在程序员生涯内有更高的成就的话,最最重要的是尽可能的提升自己的编程能力,并且,与其想着怎么去提升,不如从现在开始动手动脑,如果对于C/C++感兴趣的话,可以关注+私信小编【C/C++编程】有一些视频希望可以帮助到你,学习不怕从零开始,就怕从不开始。


相关资讯

2022年奢侈品界的大事件,你都了解吗

2021是喜忧参半的一年有前所未有的创意汇聚一堂有全新的行业领域从中崛起也有众多名设计师告别人世随着除岁的钟声响起告别了跌宕起伏的2021年走向了蕴有全新可能的2022今天就让胖丁与你一同展望未来了解潮流圈中在2022年的种种发展虽然奢侈品

知识贴,这展馆了解鼓浪屿→

鼓浪屿是来厦门旅行的必打卡之地你想知道她为什么会被称为“历史国际社区”?想了解它是如何成为“万国建筑博览馆”的?想了解它的人文故事吗?图|晶衣夜行那么岛上这座鼓浪屿历史文化陈列馆你一定不要错过了不仅内容丰富,而且还免费图|鼓浪屿鼓浪屿历史文

株洲举行2022年度“质量月”活动启动仪式暨园区企业赴长沙考察学习活动

株洲新闻网9月13日讯(通讯员 谭嘉豪)近日,株洲举行2022年度“质量月”活动启动仪式暨园区企业赴长沙考察学习活动。此次活动由市市场监管局主办,石峰区市场监督管理局承办,湖南省知识产权协会协办。近50家市区园区企业和石峰区中小企业负责人赴

专题学习“强”动力!自流井区高质量推动“两区”建设

4月14日,自流井区召开区委中心组专题学习(扩大)会,传达学习市委书记范波在市委理论学习中心组专题学习(扩大)会上的讲话精神并解读成渝地区双城经济圈建设配套文件,围绕区委十一届十次全会精神、深化成渝地区双城经济圈作建设讨论交流。区委书记黄志

想提升网站排名,这些seo技术你一定要了解

对于很多客户来说,时间要求一直是会问的问题,关键词优化一直是追求的目标,不仅是对于客户,对于seo技术也是一种考验,有些人使用正规合法的seo技术,而有些公司则是不管网站后期发展,只追求现阶段的效果,那么你知道实现关键词优化可以通过哪些SE

商标申请难点在哪里?如何快速通过商标注册?

很多人向小编反应,商标注册一提交就被驳回,自己也不知道问题出在哪里?感觉十分心累。其实,这是很多做商标注册的企业经常会遇到的问题,今天我们就一起来看看商标注册的难点在哪里?怎么做才能快速通过商标注册?商标注册难通过,原因主要有以下几点:1.

舞阳县辛安镇:落实“项目为王”,助企快速发展

大河报·豫视频记者 刘广超 通讯员 明奇 帅鹏 晓媛“我们坚持把‘万人助万企’活动作为检验能力作风建设的重要标准,持续转作风、优服务,领导干部亲自带头、深入一线,为企业发展理思路、解难题、谋发展,全力帮助企业纾困解难。”9月21日,舞阳县辛

12张地形图,快速了解河南省焦作各市辖区县市

焦作,别名怀庆府、山阳城,地处河南省西北部,市名源自焦作村名,是指焦姓人经营的作坊。焦作市的市树是国槐,市花是月季。市境内地貌类型多样,主要包括山地、丘岗、平原和滩涂。2019年底,焦作市共有国家A级以上旅游景区27处,其中3处为国家5A级

三亚最“不坑”的景点,南山寺了解一下?

要说三亚的旅游景点,可能很多人都会觉得很坑。很多人都觉得是三亚各种宰客,消费景点各种不值。不过,今天小姐姐说的南山寺,说是三亚不坑的景点之一,多数人应该是赞同的吧?南山寺处于我国最南端的城市,观音的塑像高达108米,看起来震撼人心。而且三面

金台区传达学习中国共产党宝鸡市第十三次代表大会精神

(宝鸡新闻网 惠耀辉)4月9日晚,金台区召开区委常委会(扩大)会议,传达学习中国共产党宝鸡市第十三次代表大会精神。金台区区委书记、蟠龙新区党工委书记薛建恩主持会议并讲话。会议指出,市第十三次党代会是在“两个一百年”奋斗目标历史交汇的关键节点

友情链接

天天财经元宇宙中国SEO域名抢注宝宝起名网网站监控手机数码网围炉煮茶官网娱乐圈网今日亳州交友征婚信息网马耳他旅游网今日日照嘉兴新闻头条网塞浦路斯旅游网朋友圈说说网南宁分之道官网深圳新闻资讯网今日蚌埠同城鲜花配送网美食菜谱网紫金矿业股票宜春今日新闻网绵阳新闻网今日网今日渭南捷克旅游网怀化今日新闻网湖北旅游网汕头新闻资讯网美容整形网今日廊坊奥运会资讯网泉州新闻资讯网生肖虎运势网中华家谱族谱网南宁交友相亲网
c语言中文官网-零基础c++从入门到精通pdf、c语言编译器、C/C++开发工具、c语言入门自学零基础、c++入门自学、c/c++软件下载、c语言编程软件、c语言自学免费网站、c语言零基础自学视频教程、c++手机编程软件、c语言入门程序设计、初级编程视频教程、c语言在线编程平台、C语言线上作业网站。
c语言中文官网 chuxinxin.cn©2022-2028版权所有