如何学习编程语言

   任何一种编程语言的学习,无非就是这几个方面,一是熟悉其语法结构、语言特性, 二是熟悉其常用基础API。除此之外
要实现一个具体功能,还要了解数据结构,算法,设计模式等。而这些对任何一种编程语言来说基本都是通用的,可称之为编程思想吧。
对于语言本身的语法结构及语言特性一般都包含以下几个成分:
数据成分:基本数据类型,常量,变量,全局/局部变量。
运算成分:运算符及运算规则。
控制成分:语言允许表达的控制结构,包括顺序、选择、循环结构等。
传输成分:语言允许数据传输的方式,赋值、输入,输出等。
函数:包括函数的定义、声明、调用,传参,委托(回调)等。
面向对象相关:包括类(内部类,静态类,分部类)、接口定义,继承,重载等,对于有些语言则没有类相关的概念。

基础API 其实就是已经封装好的基本类库。不同语言根据其使用场景不同,这些基础API 也有差别,但是一般都有如下这些应用场景:
1. 处理数据相关,基本数据结构支持的API,如列表,字典,链表等
2. 字符串处理相关。
3. 基本数学函数api。
4. 文件处理相关。
5. 实时更新相关。如时间相关、定时器、线程等。
6. 线程安全相关。指的是多个线程运行时,他们的调度顺序不影响最终结果,就是运行时发生了 先写后读相关写写相关先读后写相关等,解决办法是加锁。
7. I/O、网络相关。包括IO模型(阻塞IO,非阻塞,多路复用),长连接Socket,短链接Http

对于前端表现的场景
8. 显示对象(或叫显示元素)相关api,控制位置,大小,旋转,透明,隐藏,层级等。
9. 显示布局相关Api,包括排列,大小调整,自适应对对齐等。
10. 渲染相关API,程序绘制,像素控制,图片操作等相关api。
11. 交互相关API,事件触发,事件管理等。

编程思想
1. 数据结构及算法。 线性结构、树形结构,图结构。以及对应相关的算法实现。
2. 算法主要包括,查找,排序,遍历、递归,分治算法,动态规划,贪心算法、回溯算法,分支界限法,概率算法,近似算法,AI 算法等
3. 设计模式相关:
    创建型模式:抽象工厂(Abstract Factory)、工厂方法(Factory Method)、生成器(Builder)、原型(Prototype)、单例(Singleton)
    结构型模式:适配器(Adapter),桥接(Bridge),组合(Composite),装饰(Decorator),外观(Facade),享元(Flyweight),代理(Proxy)
    行为设计模式:观察者(Observer), 解释器(Interpreter), 模板方法(Template Method), 命令(Command),
                             中介者(Mediator),策略(Strategy)。
4. 基本原则:
    抽象:重点说明一个实体本质方面,忽略或掩盖非不重要或非本质方面。将复杂现象简化到可以分析,实验或者可以理解的程度。
    模块化:将软件分解成若干小的简单部分——模块,每个模块可以独立开发、测试,最后组装成完整的程序。这是一种复杂问题“分而治之”的原则。
    封装:定义一个模块时尽量少的暴露其内部处理的过程。划分模块是将一些可以能发生变化的因素隐藏再模块内部,使其他模块与此因素无关。
    模块独立:模块间降低耦合性,模块内部增强内聚性。
    自顶向下原则:首先抓住系统总功能目的,然后逐层分解,即先确定上层模块功能,再确定下层模块功能。
    一致性原则:保证软件设计过程中具有统一的规范,统一的标准和统一的文件模式。
    明确性原则:每个模块必须功能明确,接口明确,消除多重功能的无用接口。
    模块扇入系数和扇出系数要合理:扇出系数指一个模块调用其他模块的个数。扇入系数指一个模块被其他模块调用的个数。
    模块规模适当

对应具体语言CSharp 
数据成分:
 基本数据类型,整数,浮点数,布尔,字符串,枚举,委托,数组。
 作用域及修饰,static,const,public,private,protected,
运算成分:+,-,*,/,%,>,<,>=,<=,==,&&,||,&,^,<<,>>
控制成分:if,switch,while,for,foreach
传输成分:=,Console
函数:函数定义、函数传参:ref,out,Action,Func,delegate,
面向对象:class, static class, internal class, partial class, 单继承,get,set,interface,override
基础API:
List, Queue, Stack, ArrayList, Hashtable, HashSet, Dictionary,BitArray。
string, ToString, StringBuilder, Encoding
Math,
Stream, FileStream, File, Directory
Timer, DateTime, Thread,ThreadPool
Socket,WebSocket, HttpListener,HttpRequest,HttpListenerResponse。
线程安全相关:lock,async,await


 

发布了4 篇原创文章 · 获赞 1 · 访问量 160

猜你喜欢

转载自blog.csdn.net/h_13611950639/article/details/105317100