1.什么是编程语言
我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。
同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。
编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机。
可以将不同的编程语言比喻成各国语言,为了表达同一个意思,可能使用不同的语句。例如,表达“我爱你
”的意思:
- 汉语:我爱你。
- 英语:I love you.
- 日语:あなたのことが好きです
- C语言:printf(“我爱你”);
- C++语言:cout << “我爱你” << endl;
- Java:System.out.println(“我爱你”);
一条语句的最后要有
;
。你必须要这样写,这是固定的格式。
总结:编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。
这些具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code)
,也称源码
或代码(Code)
。
//这便是源代码 #include<stdio.h> int main() { printf("Hello World"); return 0; }
那么,C语言肯定规定了源代码中每个词汇、语句的含义,也规定了它们该如何组织在一起,这就是语法(Syntax)
。它与我们学习英语时所说的“语法”类似,都规定了如何将特定的词汇和句子组织成能听懂的语言。
编写源代码的过程就叫做编程(Program)
。从事编程工作的人叫程序员(Programmer)
。程序员也很幽默,喜欢自嘲,经常说自己的工作辛苦,地位低,像农民一样,所以称自己是”码农“,就是写代码的农民。也有人自嘲称是”程序猿“。
2.什么是C语言与我的强烈建议 - 先学C,而不是c++,java等
C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。C语言没学好,后面学数据结构
,操作系统
,体系结果
以及计算机网络
等等,都会很累,因为这些都是在与计算机底层打交道,我们的操作系统 windows
和 linux
都是用C语言开发的。
如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。有了足够的基础,以后学习其他语言,会触类旁通,很快上手。
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
软件行业的很多细分学科都是基于C语言的,学习数据结构
、算法
、操作系统
、编译原理
等都离不开C语言,所以大学将C语言作为一门公共课程,计算机相关专业(物联网,软件工程,计算机科学与技术等)的同学都要学习。
C语言被誉为“上帝语言
”,它不但奠定了软件产业的基础,还创造了很多其它语言,例如:
- PHP、Python 等都是用C语言开发出来的,虽然平时做项目的时候看不到C语言的影子,但是如果想深入学习 PHP 和 Python,那就要有C语言基础了。
- C++ 和 Objective-C 干脆在C语言的基础上直接进行扩展,增加一些新功能后变成了新的语言,所以学习 C++ 和 Objective-C 之前也要先学习C语言。
C语言是有史以来最为重要的编程语言,是计算机产业的核心语言:要进入编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。
3.C语言的发展史
谈到C语言的发展历程,就不得不从最早的二进制语言说起。大家都知道,二进制语言可以说是世界上最早的计算机语言,它只允许程序设计人员使用计算机能够直接识别和执行的二进制代码(即0和1)来编写程序。可想而知,这样的编码方式对程序设计人员来说是多么困难与枯燥。因此,为了提高程序设计效率并减轻程序设计人员的负担,所以后来很快便出现了汇编语言(Assembly Language)。
与二进制语言一样,汇编语言也是面向机器
的程序设计语言,不同类型的计算机上需要提供不同的汇编语言。使用汇编语言编写的程序机器并不能直接识别,而需要通过一种程序将汇编语言翻译成机器能够识别的二进制语言,这种起翻译作用
的程序就是汇编程序
。
相对于二进制语言,汇编语言不仅使开发效率得到了很大提升,而且它还具有许多优点。尽管如此,汇编语言依旧是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码。在实际应用中,它仍然暴露了一些不可避免的缺陷。
因此,我们更加需要一种设计描述简单,能脱离对机型的要求,并且能在任何计算机上运行的计算机语言,我们称这种语言为高级语言
。这样,程序设计人员就可以将问题及解决问题的算法过程描述出来,利用这种高级语言直接写出各种表达式来描述简单的计算过程,而无须针对不同的机型编写不同的代码。
❓ C语言是世界上出现的第一种高级语言吗
不是的,世界上出现的第一种高级语言是Algol语言
,它也可以算作C语言的前身。
著名的操作系统
UNIX
,最早也是由C语言的设计者之一的Ken Thompson
使用汇编语言
所写的,再后来随着C语言的诞生,两位C语言的设计者Ken Thompson
和Dennis Ritchie
又用C语言
重写了UNIX
,C语言也伴随着UNIX操作系统成为一种广受欢迎的计算机语言。补充:Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,由世界顶级黑客
林纳斯
发明的著名操作系统Linux
是微创新/改进了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。
对于任何一门语言,都有不同的版本迭代,存在着新特性、代码结构修改或者新标准制定。
美国国家标准委员会ANSI
(American National Standards Institute)是制定C语言标准的国家机构,C语言标准的发展历程如下:
K&R C:1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The C Programming Language》。这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。
在GCC编译器中,针对不同版本的C语言标准,可以通过在命令行中使用“-std”选项来选择所需要使用的C语言标准版本。
4.C语言难吗
和 Java、C++、Python、C#、JavaScript 等高级编程语言相比,C语言涉及到的编程概念少,词汇少,思想也简单。C语言学习成本小附带的标准库小,所以整体比较简洁,容易学习,初学者能够在短时间内掌握编程技能,非常适合编程入门。
5.学习编程难吗
编程是一门技术,我也没有权威说它到底难不难,因为对不同人来说这个难与不难的标准有所差别。但我知道,只要你愿意去学,愿意去花时间与心思,是肯定能学会的。每个人的思维逻辑水平有所不同,兴趣点不同,有的人可能学起来吃力,有的人觉得容易。但值得注意的是,任何一门编程语言都是有都是有道理与规律的,我们要在学习的过程中去摸索。
再牛逼的人学好编程也不是一朝一夕的事,浮躁的人搞不好技术的。你一旦开始学习编程,就必须做好投入大量时间与精力的准备。初学者可能总有一个疑问:我多久可以学完C?多久可以学完C++?多久可以学完Java? 其实你不要总想着赶进度,任何一门编程语言的学习不是说看几本书,学了几套视频就能搞定的,需要你不断的练习,编写代码,积累零散的知识点,代码量跟你的编程水平直接相关,没有亲手写过几万行代码,没有拿得出手的项目作品,不能说是一位合格的程序员。
每个人程序员都是这样过来的,开始都是一头雾水,连输出九九乘法表,金字塔,菱形都很吃力,只有通过不断练习才能熟悉,这是一个强化思维方式的过程。知识点可以在短时间内了解,但是思维方式和编程经验需要不断实践才能强化,这就是为什么很多初学者已经了解了C语言的基本概念,但是仍然不会编写代码的原因。程序员被戏称为”码农“,意思是写代码的农民,要想成为一个合格的农民,必须要脚踏实地辛苦耕耘。
不要压力太大,一切编程语言都是纸老虎,一层窗户纸,只要开窍了,就容易了。
6.英语和数学不好可以学编程吗
很多初学者认为,编程语言是由英文组成的,而且会涉及很多算法,自己的英语和数学功底不好,到底能不能学会编程呢?
6.1 英语不好可以学编程吗
首先,学习编程需要你有英语基础;但是,要求并不高,初中水平完全可以胜任。
编程语言起源于美国,是由英文构成的,其中包括几十个英文的关键字以及几百个英文的函数,除非需要对文本进行处理,否则一般不会出现中文。但是,它们都是孤立的单词,不构成任何英语语句,不涉及任何英语语法。
但是,如果你希望成为非常顶尖的“大神”,那么肯定是要阅读英文的技术资料,因为不是所有的国外资料都会被翻译成中文。
说一个事实,大部分的开发人员和培训机构(黑马,尚硅谷等)的主讲老师英语水平也不是特别优秀,依旧需要借助翻译工具来辅助开发项目。
6.2 数学不好可以学编程吗
编程语言确实涉及到很多算法,有一些还需要高等数学知识,但是,这些算法都已经被封装好了,你直接拿来用就可以,根本不用你重复造轮子。
你需要知道算法设计者都是顶尖的大牛,我们这些绝大部分平凡的人类是没有能力去创建一个优秀的算法的,只需要去学习他们发明的算法并应用就行,即使你看不懂,随着时间的累计很多你都可以选择去直接记住。
但当然,这些优秀的数据结构与算法都涉及很多巧妙与复杂的逻辑需要你去理解,想要学好数据结构和算法,这是一个需要长期学习的过程,每个人都是需要如此。
另外,这些算法都是在很深的底层为我们默默的工作,初级程序员根本不会涉及到算法,即使是别人已经封装好的算法,一般也没有机会使用,我们直接调用就可以了,所以,你就别瞎操心了。
一位顶尖的开发工程师(后转架构师)在谈到这个问题时曾说:我学编程八年了,至今都没有设计过什么真正的算法,大部分底层都给我安排明白了。
6.各种编程语言间的鄙视链
- 写汇编语言工程师的看不起写C语言的工程师
- 写C语言的工程师看不起写C++的工程师
- 写C++工程师的看不起写Java和C#的工程师
- Java工程师和C#工程师相互鄙视,并且看不起写Python的工程师
- 写Python的工程师看不起写PHP的工程师
- 写PHP工程师的看不起写前端JS的
- 前端程序员看不起美工
7.编程学习的心得分享(仅个人心得,仅供参照或选择忽略,勿喷)
7.1 学会做笔记,有自己的笔记库
你一定要学会做自己的笔记,无论你是用本子做笔记还是用电脑软件做笔记,都要有对知识点的总结,有在学习过程中或 编程/开发 练习中遇到的问题的思考。
随着时间的迁移,你的知识范围与知识深度都会大大提高,人的大脑能装的东西是有限的,你肯定会忘记许多曾经学过的知识。有人说我看书不就行了吗,书上讲的多详细与知识覆盖多广啊?但实际上,你所需要花的查阅成本比看笔记大的多,笔记上应当有你自己对于知识点的理解,有对需要注意的问题的标注。
7.2 🚩 代码不要死记硬背,关键在于理解是干嘛的
这里说的代码不要死记硬背,不是说的不要去记忆一些东西,当然还是有东西需要去记住的。比如说我们C语言的int、double、float、for、while、case、switch、break等等关键字还有C语言的语法等,这些肯定都是需要记的。就像学习英语你不知道单词,不知道语法能学好英语吗?我们的代码就相当于英语语句,记住了英语单词、词组、语法等那么写出英语语句就不会是件特别难的事情了。我们的代码也是如此,掌握了关键字、语法等写出代码也会很轻松。
那哪些东西不要去记呢?举个例子,无论是C语言,还是Java,还是数据库SQL语言等等,都有成百上千往上走的函数/类,这些其实除了一些常用的,其它的我们都不需要去记,你只需要知道在某个语言中应该有某个功能的函数就够了,那我们要用的时候怎么找这个函数呢?其实很简单,到CSDN、博客园、稀土掘金等程序员社区去找就行了。
比如说我想在C语言中生成随机数,但是忘记代码是怎么写来着,直接搜索“
C语言生成随机数
”之类的关键词到程序员社区找就行了,肯定是有的,都是前人的经验。
我以C语言为例,带大家来浅浅探讨一段令无数程序员肾上腺素飙升的代码:
#include<stdio.h> int main() { printf("Hello World"); return 0; }
【为什么要写#include<stdio.h>】
#
是预处理命令,这里可以简单理解为就是标识在源程序编译前进行预先的处理工作。
那处理什么呢?我们接着往后看,后接单词include
,即包含
,包含
这个词和导入
差不多,在编程世界里导入
一词更为专业,因此我们之后讲解是我用导入
来代替包含
。
先提一个概念:C语言开发者们编写了很多常用函数,并分门别类的放在了不同的文件,这些文件就称为头文件(header file),以
.h
作为后缀名。头文件也是文本文件。
因此你应当能理解,stdio.h
就是一个文件名为stdio的头文件,在stdio文件中,包含了许多封装好了的函数供我们程序员使用。
stdio具体又是个怎样的文件呢?stdio实际是一个缩写,我们把stdio进行一个拆分:
- std:
standard
的缩写,翻译成中文为”标准
“ - i:
input
的缩写,翻译成中文为“输入
” - o:
output
的缩写,翻译成中文为“输出
”
因此 stdio 文件,即是 标准输入输出文件。
总结 #include<stdio.h>:在源程序编译前导入标准输入输出(流)文件到我们自己的程序(程序也是文件形式)中。
每个头文件中都包含了若干个功能类似的函数,调用某个函数时,要引入对应的头文件,否则编译器找不到函数。你需要知道的是标准输入输出文件中有两个特别重要的函数:
- printf:
输出函数
,作用是将内容输出
到控制台面板上 - scanf:
输入函数
,作用是通过键盘输入
内容到正在允许的程序中
所以,说到这里,你应当大概能理解我们为什么要我们需要写#include<stdio.h>
了吧,因为printf
和scanf
函数来自于stdio文件,我们想在自己的代码文件中使用到这两个函数,就不得不在源程序编译前进行预先处理 - 导入stdio文件,这样在编译完源程序进行程序运行时才是以合法形式使用printf和scanf。
暂时你只需要知道stdio文件有这两个函数,实际上该文件中还有许多其它常用函数,这里不做列举。
📝 根据我们上述分析,如果我们没有使用到stdio文件中的函数,是不是就不需要写#include<stdio.h>
呢?答案是不需要写的,我们举个例子:
//这个程序中就没有使用来自stdio文件的函数如printf //因此当我们编译运行时虽然没有在文件行首声明#include<stdio.h>,也是能够执行成功这个程序的 int main() { int temp; return 0; }
学会深度思考,这样即使你突然忘记了某个代码片段的编写,但回顾时是很容易轻松与上手的。
即使是工作了几十年的程序员,也会对于某些功能模块的代码拿不准记不清,也依旧会去网上搜索,把网上现成的代码复制下来加以修改就可以放到自己的项目中。为什么他们能很快速的知道某段代码是干嘛的,知道某段代码该如何修改呢?原因很简单,一方面是已经有了大量的实践经验,一方面是对这段代码所应该起到的作用,实现某个功能的代码逻辑理解很深刻。
7.3 养成良好的编程习惯
代码的可读性就显得尤为重要。这里的可读,不仅仅是对自己可读,也要对其他人可读。一段只有自己能读懂的代码,可以说价值很低,而且这样的代码随着时间的推移往往自己也读不懂。而可读性强的代码,不仅方便移植与交流,更给调试带来了难以估量的便利。对于一个团队来讲,制定统一的编程规范,好处是显而易见的。通常一个项目是由多个成员共同完成,在项目中,经常互相调用组内成员的代码。如果两个人的编程习惯和风格差异显著,那么将会浪费大量时间在读懂代码上。相反,一致而良好的编程规范,会让合作开发变得轻松而高效。
这里介绍几个我觉得比较重要的编程习惯:
7.3.1 一定要格式化代码
代码格式化,主要是整理原代码的缩进
,以及运算符的间隔
(比如通常在运算符左右都有空格)等。目的是使代码缩进清晰,更容易阅读。
❌ 未格式化的代码
#include<stdio.h> int main() { int a=0; if(a==1) printf("a的值为:");printf("%d", a); return 0;}
比如这样的代码,你觉得可读性好吗?特别是在实际开发中代码量远比这个多得多,如果程序有bug需要排查,这对修改代码的人无非是一种巨大的痛苦。
✅ 格式化的代码
#include<stdio.h> int main() { int a = 0; if (a == 1) printf("a的值为:"); printf("%d", a); return 0; }
7.3.2 标识符规范命名
标识符概念:
- 对各种变量、函数、文件等命名时使用的字符序列称为标识符
- 凡是可以自己取名字的地方都叫标识符
这里以变量
的规范命名为例:
- 命名应当直观且可以拼读,可望文知意,便于记忆和阅读。最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
- 命名的长度应当符合
用最少单词表达出最详细的信息
原则。C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长。 - 另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
- 当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如
StudentAge
、StudentFatherName
- 尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。
- 初学者总是喜欢用带数字的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。这个习惯初学者一定要改过来。
7.3.3 学会写注释
注释:用于说明解释程序代码的文字就是注解。被注释的文字,不会被编译器编译执行,注释就是给自己或其它程序员看的。
注解提高了代码的阅读性。会写注释 是 一个程序员必须要具有的良好的编程习惯。将自己的思维先通过注释整理出来,再用代码去体现。
试想一下,在项目开发中,如果遇到BUG,你或其它程序员需要对你的代码进行修改,可能随着时间推移你也早就忘了某段代码到底是干嘛的了,如果你写了注释,程序员能够快速把握你的代码编写思路,极大提高开发效率。写一手好的代码也是一个高级程序员必备的技能之一。
7.4 程序是用大脑写的,而不是用手写。
简单的说:做事之前,要先过遍脑子。
用大脑写代码的意思就是程序应该是在脑袋里成型的。首先,即便是上边那些混乱的写法,也肯定要过大脑的,毕竟不经过大脑,你其实很难下意识打出一行代码的,但问题就是过大脑的部分实在太少了,每次就那么几行上下文。真正高级的做法是,你能够在脑袋里把整套代码的流程推导一遍,让程序在你的大脑里运行一遍,这时候你会发现写下来会是非常轻松的体力活。有那么一些程序员几乎不加班,但是效率还是很高,那就是因为他们其实无时无刻都能在大脑里写程序。成为一个高级程序最重要的就是要有在大脑里完整的写完一段代码的能力。
如果接受了大脑写代码的说法,那么你会得到一个非常有意思的结论:用的哪种编程语言并不重要,重要的是思想。
7.5 一定要亲自写代码,能听懂与会使用是两码事
纸上得来终觉浅,绝知此事要躬行。
很多学习编程的人在学会某个知识点或者听懂某个算法后就说自己懂了,却没有去上机实验是非常不可取的。有的东西思想其实很简单,但用代码实现起来可能会让你无所适从,可你却没有去实操就不知道有这些问题,这是非常致命的。
代码是一切的基石,看看我们软件界的先辈们吧。Dennis M. Ritchie
决定创造一门“看上去很好”的语言时,如果只是站在高处呐喊,这门语言是划时代的,它有多么优秀,但不去实现,又有何用呢?没有Dennis M. Ritchie的亲自编码实现,C语言不可能诞生,UNIX操作系统也不可能诞生。Linux在聚拢成千上万的开源狂热者对它进行开发和扩展之前,如果没有Linus
的编码实现,仅凭他高声呐喊“我要创造一个划时代的操作系统”,有用吗?一切的一切都是以编码实现为前提的,代码是我们前进的基石。这是一个英雄辈出的年代,我们每个人都希望自己被顶礼膜拜,可是这需要资本和实力,而我们的实力体现了我们处理技术问题的能力。
无论你将来的职业发展方向是架构师、设计师、分析师、管理者,还是其他职位,只要还与软件打交道,就有必要打好能亲手写出一手好代码的技术基础。
一个程序员,如果没有亲手写过几万行代码,没有做过几个好的项目,不能说是一个合格的程序员。
8.回答初学者的一些关于编程的疑惑与理解误区(仅个人观点,如意见不同可忽略,勿喷)
8.1 学习C语言我应该用什么编程工具比较好
在学习C语言的过程中,编译环境和编辑器肯定是必不可少的。比如大家常见的VC 6.0
,Dev
,g++
等等,但是目前市场上使用最广泛,相对成熟的集成开发环境依旧是Visual Studio。
只是很多高校在教学实践中普遍采用VC或者Dev,因为文件小,安装便捷嘛!不过相对而言,这些软件对初学者往往不够友好,包括界面、提示符、文件系统等等。
而与之对应的,VS凭借它出色的界面、友好的操作方式和完备的体系得到很多开发者的青睐,所以也是奉劝一些仍在坚持学校的软件的学弟学妹入坑VS,只有四个字送给你们:绝对不亏!
8.2 认真上好学校的课程就够了吗
仅仅认真上好学校的课程是远远不够的,原因如下:
- 对有些老师而言,教学只是副业,真正花心思的是自己在校外的兼职/工作
- 学校课程的教学时长也就十几节课,这对学好一门编程语言只花这点时间教学是远远不够的
- 由于时间有限,大部分老师都是讲个大概/总结,只是对知识有个整体教学,没有做到小处着眼,但往往“小处着眼”是学好一门编程语言的关键环节。
8.3 有哪些好的编程学习视频,该如何选择
力推哔哩哔哩上的课程,其实像黑马、比特等IT教育机构都是非常不错的,总有人会问看谁的教学视频比较好,其实说实话,看播放量高的那几个其实都差不多,播放量高的都能说明经过了学长学姐的检验。如果非要说几个我认为不错的C语言教学视频,我比较推荐C语言鹏哥
和黑马
的。
8.4 我是应该先读书还是先看学习视频呢
我的建议是先看视频,看完视频再看书。
- 从视频获取知识的效率比看书来得快。
- 视频通常都是很明确的告诉你核心知识点是什么、哪些是重点、有哪些注意事项。
- 我觉得看书就是一个对视频知识点的补充以及对自己从视频上学到知识点的检测,用你在视频中的知识点去看书中所讲是否符合你的预想。
8.5 C语言学到哪个程度可以开始自己写代码
无论何时都可以开始写代码!!!
【你的第一个C语言程序】
Hello World是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。实际上,这个程序的功能只是告知计算机显示Hello World这句话。传统意义上,程序员一般用这个程序测试一种新的系统或编程语言。对程序员来说,看到这两个单词显示在电脑屏幕上,往往表示他们的代码已经能够编译、装载以及正常运行了,这个输出结果就是为了证明这一点。这个测试程序在一定程度上具有特殊的象征意义。在过去的几十年间,这个程序已经渐渐地演化成为了一个久负盛名的传统。几乎所有的程序员,无论是在你之前,或在你之后,当第一次实现与计算机成功沟通之后,在某种程度上,他们的肾上腺素就会急剧上升(激动不已)。
#include<stdio.h> int main() { printf("Hello World:你好,软件协会"); return 0; }
8.6 我应该要学习很多编程语言吗
不需要。在未来我们的职业生涯中,我们大部分人只需要掌握一门编程语言即可,每门语言都有广泛的业务范围。需要明白的是,想要把任意一门编程语言学好都需要花费很长的时间,即使已经工作几年的程序员也依旧要抽出时间对自己从事的编程语言进行深入学习。我们都没有精力去把每门语言都吃透,否则到头来你只是对每门语言有个大概了解,和别人聊起来,一旦涉及到更深入与底层的东西,你就会无所适从。
8.7 哪种编程语言更好,误区:我就想学最好的编程语言
世上没有最好的编程语言,存在即合理,只是每门编程语言所适用与擅长的范围不同。
比如 C/C++
适合去做底层开发、游戏、游戏引擎等,Java
适合去做web应用、安卓、大数据等,Python
适合去做人工智能等,PHP
适合去做网页开发等,Go
是区块链的主力开发语言。学习任何一门语言都需要十几年内功的积累,因此你必须要知道你到底对什么感兴趣,因为如果没兴趣这将对你来说是一个非常难熬与痛苦的学习过程。
8.8 大一上的我需要去纠结走哪个方向吗
完全不需要,就我个人的经历以为,大一上把C语言学好,把编程思想
与基础
打牢固是非常重要的,因为我本人是如此的,你在大一上学了C,在以后你会发现在很多地方你会见到C语言的影子以及数据结构和算法的学习我们更推荐使用C语言来训练,因为C语言是最干净纯粹的通用经典计算机语言,可以极大帮助我们一拳一脚地养成规范的动作习惯。
8.9 感觉自己初次刷题没思路没感觉怎么办
其实很正常,因为是初次接触当然会有点无所适从,就像你高中学习数学,初次遇到某种类型的题目,可能有坑,大部分人都会踩进去,但第二次、第三次呢,犯错的人会很少很少了,因此学编程刷题目也是一样,先照着写、熟悉套路之后自己再练习会快很多。学习任何东西都需要一个过程,但前提是你一定一定要把自己的基础打牢。
8.10 如果我在写代码中遇到问题怎么办
出现错误不可怕,发现错误并解决的过程是提升代码能力的关键点。你遇到一千个错误或bug,你的能力就能提升一千点。就我个人而言,其实很喜欢修改bug的过程,因为我加深了对这个知识点的认识,别人可能也会遇到同样的问题,我可以帮他点出来并解决确实能增加我学习编程的信息。那我们遇到问题应该遵循哪几个步骤呢?
- 一定要先自己独立思考,学会代码调试与debug
- 上程序员网站(比如CSDN、博客园等) / B站 找答案,都是前人的经验总结,有详细的解答与知识补充。
- 如果还解决不了,去与同学交流,学习编程一定不要闭门造车,要学会把你的想法说出来,不仅仅是对自己知识的检验,也能够帮助发现自己有哪些观点是错误的。
- 与老师交流,这是下下策。
8.11 非计算机专业可以学编程吗
完全可以。编程只是一项技术,与专业无关,你只要有正确的思维逻辑就可以学习编程。
如果是转专业到计算机类的同学,在有些方面还是具有优势的。比如你以前是从金融转到计算机的,现在你的老板要你和你的小伙伴们去做一个财务方面的项目,通常你们先要去了解学习一下金融财务方面的知识,但你以前是金融的,即使你现在不记得了,但现在再次学习肯定比其他人要更快掌握,可以指导他人与更快投入工作。这时你的老大肯定会对你刮目相看。在职场上领导对你赞赏是一件很重要的事情,特别是我们编程专业大部分人都是吃青春饭的,老板的青睐意味着升值,意味着可以往管理方向走,这基本是每个程序员都希望的事情。
🔖 小结
💬 我们总结了介绍了编程语言与许多初学者疑惑,遇到任何疑惑联系软件协会
🏠 了解更多关注软协官网:https://www.csuftsap.cn/
💚 来自软件协会编辑,注册会员即可获取全部开源.md资源,请勿转载,归软件协会所有。