`
windybell
  • 浏览: 15495 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

如何学习编程

 
阅读更多
编程语言都相当多的共性,分享一下学习经验。就编程语言而言,我一般对它们内涵的知识进行分层,然后选择学习。

    初级:语法(必须掌握)
    中级:常用功能(建议掌握)
    高级:专业领域(建议选学)


知识体系很总要!知识体系很总要!知识体系很总要!重要的话要说三遍!
没有知识体系,你根本不知道自己有多少东西要学,为什么要学,到底学会了没有!

    初级:语法


指的是“类型、变量、表达式、符号、关键字、选择、判断、分支、循环、函数、闭包、注释”等一系列最基础的内容,自学任何语言都要优先掌握。

    中级:常用功能


这部分内容通常包含“I/O、图形、多线程、网络、数据结构、内存管理”等等。

    I/O包含设备(鼠标、键盘、操纵杆、触屏)、文件等;
    图形包含GUI(按钮、文本框等组件)、绘图(例如HTML5的Canvas、C语言的GDI);
    多线程包含同步异步、死锁、线程调度等;
    网络包括socket、http、url等;
    数据结构包括线性结构(Array、List、Stack)、哈希表(Map、HashTable)、集合(Set)、图(A*寻路)、树(XML、DOM)、自定义类型(结构体、类)等。


中级内容根本上就是为了实用,也就是让你能够基于它的语法来构建各种应用。从纯实践的角度来说,如果你用不着一方面的功能,大可以先不学。从学习者的角度来说,最好都学了,有益无害。因为这个层面的内容通常涵盖了软件专业的全部专业课,学起来也尤其容易出错。有时候你觉得一个语言的某部分太难,并不是因为这个语言很难,而是因为自己学识不够。有时候虽然代码能写出来,但并不是真的懂了。

很多语言都有大量的函数库、类库、插件之类的玩意来支持上述内容,也有一些语言直接把这些内容做到了语言自身里面。比如JavaScript的jQuery;比如做网站常用的Bootstrap;比如C的win32、gdi;比如C++的STL、MFC;比如Java的各种各样的jar包;比如3D开发需要的DX、OPENGL;比如...
我可以不重样地介绍一两个小时,但了解这个没有任何意义,重点是:实用。

    高级:专业领域


这部分的内容不是为普通人准备的,根据这个发明出来的目的不同而不同,对某些专业工作非常有效。比如C语言的预处理宏(你不学它也能写程序),比如Excel的公式;比如Matlab、比如PL/SQL,比如Java的POI(用来处理Office文档),比如...同样的道理,你学不会的话,通常都是因为缺乏专业知识。自学的时候,遇到这种东西的话就先扔一遍别管吧,没有专业领域的知识怎么学也学不会的。
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics