Total Pageviews

Wednesday, 20 December 2017

怎么掌握一门编程语言



闲得蛋疼,睡不着.因为接触不少的编程语言了,究竟怎样叫基础掌握一门编程语言呢,怎么样达到及格基础水平呢?应该掌握一些什么基础知识呢? 随便写写吧.

数据类型

数据类型来来去去基础的就是整型,浮点,字符/字符串,布尔型(有些居然没有).额外还有什么日期型,二进制数据什么的都是非标准,额外记记就好了. 接触一种新语言,起码要了解数据类型有几种,约莫占几字节,是否对象化(像java,对象化就要了解属性和方法),额外注意事项等.一般整型都是4字节,双浮点8字节.还有short什么的.布尔型都比较低端,一个bit就够了,但还是占个一字节 ╮(╯▽╰)╭.
数据类型中最重要的是字符串(区分于char).每种语言都有字符串的定义,方法,掌握好才能操作好数据,毕竟日常数据还是字符型而非2进制的.
了解了数据类型,你就能构建自己的数据.因此是最TM基础的了.

变量和常量

一般就是要了解怎样声明.一般命名法则都类似,什么常规字母/数组/_,不能数字打头.一般常量用大写比较好,变量嘛,懒的循环变量i就好了,正经常用的还是要解析其作用,我习惯首词小写,后面每个词首字母大写,根据个人喜好.脚本语言甚至可以不声明就用,也不限定变量类型;中低级语言(正规语言)一般都需要声明,像c/cpp/java/vb都得声明,脚本化python/php/js/vba就很随意了.现代语言都加入了类型自动识别,但好的习惯还是先声明(包括类型)再使用.
常量一般就是const,但不同语言有不同规定,甚至可以取消常量属性 ╮(╯▽╰)╭ 常量就是一般都不能变.C/C++还有常量指针呢.
然后就要了解每种语言的变量作用域,就是局部还是全局,跨文件/模块时的情况等.变量的生存期与之相关.很基础的知识.
随后就要了解变量的类型了,什么一般变量,全局变量,静态变量,都得知道,尤其静态变量比较奇葩.

数组和数据结构

一般语言都具备数组,就是一个一个数据列在一起.数组调用一般用索引号,此时索引号开始0/1就要区分了.数组声明,动态/固定数组,数组赋值,语言都有差异但又大同小义.高维数组要弄清楚从左到右还是从右到左,区分好就好了.C/C++数组名也是指针,用法就更多元化,其余的都比较简单了.
除了数组还有别的数据结构,像python的list/map/set,和数组都有差异;JS还有所谓关联数组,说白了就是字典.常用的储存数据的容器莫非那几种,连续的(C++的vector),链表型list的(处理随意,但较慢),字典型(索引号是个名字而非数字,JS/PHP又叫关联数组了).另外还有矩阵了.对象和其对应的属性其实也可以认为是一种字典了,像JS就傻傻的把关联数组当作一种只带属性的对象,其实也是很好理解的了.
然后要了解对应的数据结构的方法,调用,分片,局限.用好基础的数据结构才能做好事情嘛,毕竟我们不是处理单个变量为主的.如何增删元素,修改元素,插入一堆元素等等基本操作,还是必须掌握的.

表达式和语句

一个”运算”,一个”执行”;一个为算,一个为做.表达式一般就有返回值.表达式关键点就是四则运算啊,比较啊,二进制操作啊,and/or/not/xor啊,三元表达式啊等等.其实也没什么难点,都大同小义,难道1+1还等于3咩..
语句更没啥好说的了,执行某个动作,例如最基础的print helloworld了.一般语句没有返回值,但也有返回值如(a=3)这样返回a的.语句还有语句块,除了python按缩进算,其余一般就是大括号或者end某某了.

控制和循环

来来去去就是if,switch case, for, for in, foreach, while, do, goto 几种,加上break,continue,return,exit几种控制.控制是最基础的了,循环是你编程的基础需求,难道还一个一个写?! 这部分应该是最基础的了…不过不同语言还是有差异.主要体现在for是变量控制呢,还是列表值呢? 这部分都掌握不了就可以吃翔了..

函数

函数最重要就是如何声明,形参实参不定参,返回值.高级点函数类型如什么friend函数什么的,其实都是对象相关的了.另外,递归函数,回调函数,函数模板,函数继承衍生,还是要好好掌握的.后面的东东就要复杂点,其实也没什么了.

对象

面向对象是现代语言的精髓,也是难点所在.最基础要了解对象声明(属性+方法),声明对象变量,对象的构造和构析这都最基础了.this也是基础的了.复杂点就是对象的权限和对象-对象间关系了,publish/private/friend,子对象的继承等等.这些都是难点和精髓,要掌握好,就去学C++吧! 最复杂的语言,也是让你最了解什么是对象的语言.

文件操作

其实文件操作不难,就是怎样打开,打开类型(文本/二进制),追加/覆盖,文件handle,格式化控制,文件指针.来来去去就那几样了.二进制读写难一点,但也难不到哪里去..像JS由于权限打开文件就麻烦一点,也要注意.文件这么基础的内容,大学基础教学居然不讲,也够逗比的了.

模组,库,头文件等外部源

其实就是掌握怎么调用,也没啥的了.当然调用也有注意点了,例如避免重复调用.

异常

比较复杂和高级与语言都带有异常处理机制,而不是print某某变量/结果.异常的机制好处在于告诉用户错在哪了,调试修改也方便,来来去去也就try,catch,throw机制了.

基础函数/对象/库

基础函数/对象/库每个语言都差异很大,或者说是每个语言的基础精髓.你用C也能写出php效果来,你愿意嘛!这个是要慢慢花时间掌握的,也是慢慢积累的过程.IT狗的好坏基本在于这里的差异了.

额外的

例如指针,迭代器,引用等等,每个语言都有差异了.部分脚本语言还带有出图功能,调用数据库等等.这些都是特色了,不掌握特色,也算不上很好的掌握了一门语言.

No comments:

Post a Comment