武汉北大青鸟中南软件学院
400-027-0822

北大青鸟:程序员如何积累编程技术或编程经验?

2018-03-31供稿中心: 北大青鸟武汉中南软件学院

北大青鸟的老师总是被问到程序员如何积累编程技术或编程经验?首先我认为编程是一门实践性的很强的艺术,所以貌似唯有实践才能积累。然而把它当作一个个人软件过程(PSP)的问题,总感觉是有一些规律、规则或建议可以解答。思索良久,结合自己的工作经历,尝试给出一个自己对这个问题的解答。

北大青鸟的老师总是被问到程序员如何积累编程技术或编程经验?首先我认为编程是一门实践性的很强的艺术,所以貌似唯有实践才能积累。然而把它当作一个个人软件过程(PSP)的问题,总感觉是有一些规律、规则或建议可以解答。思索良久,结合自己的工作经历,尝试给出一个自己对这个问题的解答。

 

经验是什么?

程序写多了,总会发现有一些东西是不怎么变的,就是说你写一万遍也是这么个写法,而这就是所谓的经验。当然这些不变的东西有大有小,如果我们能给它分一下类,并取个好听的名字,然后在后续的编程实践中得以运用,那么这个过程就是所谓的积累。

经验分类

我们将小一些的不变的东西叫习惯用法(idiom),大一些的叫模式(pattern),再大一些叫框架(framework),再大一些就是技术栈(technology stack)了。

 

Idiom(习惯用法)

习惯用法更多的停留在语言层面上,与语言特性密切相关,通常是一些API的经典用法。如文件拷贝的经典写法、网络状态的判断、临时文件的创建及删除等。

一般我们会将这个经典的写法整理到笔记本中,方便查阅。对于使用Eclipse的用户,可以将这些抽取成代码片段,分类保存起来,方便应用。

 

Pattern(模式)

模式更多的描述一类问题的解决方案,比较抽象适用于任何语言。如经典的23种设计模式、并发编程模式等。对于模式要理解解决的问题域及实现方式,所以就要求在编程实践中有意的训练,然后从实践中积累自己的编程模式。

 

例如关于网络并发编程模式主要有:Reactor模式和Proactor模式。在Linux中使用epoll,当IO可读写的时候通知你,你再去同步读写,这就是所谓Reactor模式。而windows下的iocp或者Linux下的ZeroMQ则是数据发送完了或者接收完了再通知你,这就是所谓Proactor模式。其实说白了就是,Reactor给你的是读写权,Proactor给你的是数据。

 

Framework(框架)

Framework就是对Pattern的实现,目的是简化应用编程和重用代码。如StrutsSpringMinaNetty等框架。对于框架的积累,一般在编程中多以快速原型发布,持续演进方式推进,最终形成稳定的框架实现。

 

Technology Stack(技术栈)

积累自己的技术栈是架构师必备素养之一。这就要求我们在编程实践中要以架构师的视角看问题,运用技术,积累技术。

 

我觉得如果能做好上面的这几个方面,从小到大,反复迭代的实践,编程技术或编程经验的积累又有何难呢?

 

想要学习编程的同学,如果对北大青鸟的课程感兴趣,可以咨询在线老师。他们会耐心为你解答。

关于我们
首页
公司简介
课程专业
师资力量
高薪就业
青鸟课程
ACCP
学士后Java
基础教育
UI设计
回到首页