程序员如何积累编程技术或编程经验?

 工作中总是被问到程序员如何积累编程技术或编程经验?首先我认为编程是一门实践性的很强的艺术,所以貌似唯有实践才能积累。然而把它当作一个个人软件过程(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的实现,目的是简化应用编程和重用代码。如Struts、Spring、Mina、Netty等框架。对于框架的积累,一般在编程中多以快速原型发布,持续演进方式推进,最终形成稳定的框架实现。

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

    我觉得如果能做好上面的这几个方面,从小到大,反复迭代的实践,编程技术或编程经验的积累又有何难呢?
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值