zoukankan      html  css  js  c++  java
  • 学习编程语言时需要注意的内容

    学习编程语言时需要注意的内容

    一.  方向

    1. 了解语言背后的“哲学”

    我在初次学习Java时,觉得它即冗长又存在不必要的复杂。那时,我还不是个经验的程序员,并且习惯使用C来编码。Java是一门伟大的语言,但我并不能体会其中的精华——甚至是它的用途,因为我无法理解Java的面向对象原理。

    后来,我理解了面向对象方法,并采用它进行编程。这对我更好地理解Java的核心思想以及编程方法起了非常大作用。

    如今已有成千上万个编程语言,不同的编程语言解决和优化不同类型的编程问题,并且在计算机系统中处于不同的级别。而你需要做的是了解你所学语言是什么、目标。理解是至关重要的,然后运用它来解决实际问题。

    2. 亲自输入所有的代码实例

    话说,实践是检验真理的唯一标准。学习一门语言,除了知道其中的原理外,最快的学习方法莫过于实践,编写代码,远远大于读书或看视频所产生的效果。输入代码并且让它们运行起来是学习一门语言至关重要的一步。即使你对该们语言是完全陌生的,在编写的时候你也会发现它们的语法结构,渐渐明白其中的含义。

    在编写的过程中,你肯定会犯错,发现错误并纠正它,这个过程也是不可忽视的,错误越多,你就会花更多的心思研究,这样理解就会越加深刻。

    3. 更进一步

    无论是做实验还是练习,都尝试着更进一步地了解与学习。经常这样做将会给你带来无穷的收获,驱使你不断查阅所学语言相关资料。这样做有两大优势:第一,学习该语言的文档结构并熟悉它;第二,加深概念,帮你解决一些细小问题。

    例如,你正在听一堂学习如何使用HTML5和JavaScript制作音频的课,那么你应该进一步问问自己:“该如何控制音量呢?”解决这个问题后,你就可以更加深入的掌握代码。

    4. 通过许多小例子学习——而不是大项目

    开发很多实用的小例子,最后把这些例子组合成一个项目。在早期常会犯这样的错误,没有进行相互隔离。

    其实,采用隔离的方式学习各种语言技能是很重要的。比起学习个人技能,集成是个更复杂的过程。在你对一门语言有了坚实的基础后,集成确实是最好的学习方式,否则很有可能会混淆概念。

    5. 让程序运行

    一定要让程序跑起来。即使出现多个bug,也要认真调试,直到能够正确运行。想要打开一扇门,则必须要关闭一扇门。当你学习一门新的语言技能时,肯定希望以后能有较高的技能水平。有时,你很容易放弃或者跳过某个小缺陷,使该问题一直处于悬而未决的状态——这样做很危险。

    除此之外,没有比这个更兴奋的事情了——第一次看到自己编写的应用程序跑起来。

    二. 注意点与方法

    1. 基本数据类型,如整型、字符串、静态数组、动态数组

    2. 集合(如队列、列表、Map、Set)

    3. 文件操作

    4. 网络(尤其是socket)

    5. 多进程

    6. 多协程(例如Go语言的goroutine,Java语言的Akka),可能你会奇怪我为什么没有提及多线程,那是为了强调协程的重要性,^_^

    7. 反射(如果该编程语言支持反射的话)

    8. 序列化,反序列化

    9. 数据库

    10. 主流的日志库

    11. 配置文件解析(普通键值对配置文件和 XML 格式的配置文件)

    12. 版本控制工具,如 GIT

    13. 编程规范,例如该编程语言约定俗成的注释风格

    14. 详细设计的层次最好不要超过 7 层,接口参数最好不要超过 7 个,单个模块的内部层次最好不要超过 3 层

    15. 学习一门函数式编程语言,例如 Lisp

    16. 学习一些脚本语言,例如 shell, javascript

    17. 学习主流的数据保存格式,如 JSON, XML

    18. 使用主流的工程组织结构来进行开发,如 Java 的 Maven 工程模板

    19. 一般,我们都会有一些工程开发必备的单例,Config:定义、保存工程编译后可变属性;Define:定义、保存工程编译后不可变属性;ErrorCode:定义开发所需的错误编码;GuiElemText图形用户界面上控件的文本定义(例如 Button 上的文本)GuiPromptMessage:保存图形用户界面上的提示信息Status:定义系统状态

    20. 使用该编程语言的主流框架,并探究其设计思想和源码

  • 相关阅读:
    分层图最短路(DP思想) BZOJ2662 [BeiJing wc2012]冻结
    动态规划 BZOJ1925 地精部落
    线性DP SPOJ Mobile Service
    线性DP codevs2185 最长公共上升子序列
    数位DP POJ3208 Apocalypse Someday
    线性DP POJ3666 Making the Grade
    杨氏矩阵 线性DP? POJ2279 Mr.Young's Picture Permutations
    tarjan强连通分量 洛谷P1262 间谍网络
    树链剖分 BZOJ3589 动态树
    二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
  • 原文地址:https://www.cnblogs.com/leonxyzh/p/7289173.html
Copyright © 2011-2022 走看看