Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1072222
  • 博文数量: 277
  • 博客积分: 8313
  • 博客等级: 中将
  • 技术积分: 2976
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-22 11:25
文章分类

全部博文(277)

文章存档

2013年(17)

2012年(66)

2011年(104)

2010年(90)

我的朋友

分类: LINUX

2011-05-18 14:23:09

今年是我工作的第四年,也是程序员成长的一个重要阶段。通过今年的学习,希望可以获得一个质的提高。要充分利用工作,工作间隙,晚上,周末的时间进行学习。

要同时关注广度和深度两个方面进行学习。

具体的点:

驱动开发,嵌入式开发:主要是和硬件结合比较紧密的领域,现在这是我广度上的一个盲区。这个完成后,基本上在近几年内,广度上应该达到目标了。后面就是要在深度上进行钻研了。充分利用公司这次的接入设备开发机会学习。今年主要是基本原理。

操作系统,操作系统内核:Linux操作系统,Linux内核。操作系统的工作机制,内核的工作机制,计算机体系结构基础。《深入理解Linux 内核》。目标仍然基本原理。

编程体系:从源码到可执行程序运行的整个过程。《编译器和加载器》。深入学习编程语言的本质。可以选择几个典型的语言进行对比:cc++Javaperlgo,汇编。可以学习一下JVM原理。目标是更深入,我也有能力在这个方面更加的深入。

C语言深入:c和指针》,《c缺陷和陷阱》,《c专家编程》。根据现在的经验,这几本书可以在深入的理解一下,对C又是一个很大的提升。

Unix 环境编程:Shell脚本语言学习。

学习,尝试新的编程语言:今年主要尝试两种开发语言,goscale

c++语言提升:继续学习面向对象思想。开始学习模板。《c++沉思录》《c++templates》《effective c++

设计能力:这个比较泛。《设计模式》要学习完,并在实际中应用;《重构》要学习完;主要提升的设计方面的能力。还有一个比较经典,《代码之美》,学习完,对自我提升还是非常有帮助的。《代码大全》已经学习完了,多运用,复习。

软件架构能力:《软件架构设计》这本书学习完,可以掌握架构基础的知识。另外,学习《架构之美》,《软件架构实践》,提升。另外,可以在看一下《领域驱动设计》。还可以关注博客。希望能够实际运用一下。

UML学习一下UML

算法:这个是我一直不够关注的地方。今年主要的资料是《编程珠玑》,以及《代码大全》。作为一个入门。

SOASCAOSGI持续关注。并且进行尝试。

通信知识:通信知识有两个重点:IMSSIP。第一要精通IMS架构和SIP协议,另外,要关注标准的发展。通信知识是我的业务知识。

微内核流程引擎:关注,设计与实现。

数据库:关注非关系数据库。关注数据库性能优化。

新技术关注:云计算,SOAMDD

测试驱动开发(TDD):继续探索cc++单元测试框架的使用。并在开发中引入测试驱动开发。

敏捷软件开发:持续关注,并且在工作中实践。

自动化测试:在两个方面:界面自动化测试和流程自动化测试进行努力,着力提高产品稳定性。主要是开发,或在寻找新的工具。

自动化部署:主要是开发,或在寻找新的工具。

技术管理:实践,读书,交流。《joel谈软件开发》《技术领导之路》《变革中的思考》,并且去发现好的书籍。可以通过豆瓣或者单单。学习如何发挥影响力。

英语学习:能够流畅阅读英文资料。

重点关注的领域:一个是今年比较火的SNS,关注Facebook。一个是移动应用。

学无止境,上面的学习内容量还是很大的。

 

 

红色部分是自己的重点学习方向。wjl





去年写了一篇文章《一个工作3~4年程序员的年度学习计划》,里面列出了一些计划阅读的书目。一年过去了,进度很一般。不过也许这个计划本身就有问题。

 

今天看了李开复发的一篇微博,很有感慨:

天下古今之庸人,皆以一惰字致败。天下古今之才人,皆以一傲字致败。 -- 曾国藩

 

我是一个庸人,去年浪费了很多的时间,今年要更加努力的学习了。

 

回到今天的正题。去年以及前些时候为了我的学习计划倒是收集了很多书目,同时我也负责我们研发部门买书,所以买了很多非常好的书,今天和大家分享。

 

1  C语言提升

c和指针》

c缺陷和陷阱》

c专家编程》

这三本书我在很多的文章中都提过,是一个初级C程序员必看的三本书,同时也是我们公司应届新员工必须好好学习的教材,非常适合刚毕业的大学生学习。

 

2  C++语言提升

More Effective C++:35个改善编程与设计的有效方法(中文版)

C++沉思录

C++Templates中文版

深度探索 C++ 对象模型

我是一个由C转向C++的程序员,所以从来没有系统的学习过C++的语法,往往是用到的什么学习什么。如果要系统入门,《C++ primer》倒是不错。上面的几本书,我正在读的是第一本,打算这两个月可以学完《effective c++》和《more effective c++》,之后再更深一步学习。当然,这里的学完只是把书看完,做个笔记,要完全的理解书中的内容还需要进一步的实践。

 

3  设计类

《代码大全》:这是我非常喜欢的一本书,非常适合工作2~3年的人精读。我在一篇文章中专门做过推荐。

《重构-改善既有代码的设计》

代码整洁之道

实现模式

程序员应该知道的97件事

这几本书一般讲的是函数以及更低层次的设计。《代码大全》完完整整的读完过,而且做了很多的笔记,获益良多。《重构》就不必说了,其他几本书前面大致看了一下,也非常不错,计划有时间要好好学习一下。

 

4  架构

《软件体系结构的艺术》

领域驱动设计:软件核心复杂性应对之道

软件架构师应该知道的97件事

企业应用架构模式

《面向模式的软件体系结构卷1:模式系统》

《架构师需要知道的97件事》

我对这一块比较陌生,这也是我今年的学习重点。《软件架构设计》这本书我从头到尾读过,对软件架构也只是建立了一个整体的印象。后面这一块的学习我会和模式的学习结合起来。首先的学习目标是《面向模式的软件体系结构卷1》,之后是《分析模式》《企业应用架构模式》《领域驱动设计》。

 

5  敏捷开发

测试驱动开发

敏捷软件开发——原则、模式与实践

Scrum敏捷项目管理

《硝烟中的ScrumXP——我们如何实施Scrum

《敏捷软件开发》这本书我学习了原则这部分,对敏捷软件开发有一个大致的了解。其他的书籍对我更像一个参考书。目前还无法安排出大量时间系统学习。

 

6  模式

Java与模式(含盘)

实现模式

企业应用架构模式

分析模式 可复用的对象模型

反模式:危机中软件、架构和项目的重构

《设计模式》

《面向模式的软件体系结构卷1:模式系统》

上面讲架构的时候说过,模式的学习要和架构结合起来。当然,这是说的更高层次:架构的模式。《实现模式》是面向函数的,《设计模式》是面向对象体系的。《设计模式》我从头到尾看过,但是还需要在看一遍,当时读的时候经验有限,理解的不是很透彻。现在看肯定会有新的收获。

 

7  思想类

变革中的思索——张亚勤解码创新

技术领导之路——全面解决问题的途径

创新赢天下:九大商界领袖谈创新

软件随想录:程序员部落酋长Joel谈软件》:这本书里面的文章都非常不错。

华为研发》:把它放在这里似乎有些不妥。

黑客与画家

UNIX编程艺术

《代码之道》

这些书可以锻炼一下思想力。我比较喜欢的是《软件随想录》和《代码之道》,比较期待的是《黑客与画家》。

 

8  之美系列

团队之美

《架构之美》

《代码之美》

这三本书都是选择一个主题,然后找一些世界级专家来按照这个主题写一篇文章,所以这几本书的系统性不强(但并不代表书不好)。可以把它放在手边,有时间就读一章,和大师对对话。

 

9  开发语言

PHP 6与MySQL 5基础教程

PHP与MySQL程序设计(第3版)

Ruby for Rails 中文版

我的第一工作语言是c/c++,第二工作语言是python,业余时间工作语言是PHP。上面的书还少python相关图书,正在补充,也正在学习。

 

10linux/unix

深入理解LINUX内核

深入Linux内核架

UNIX环境高级编程》

Linux内核设计与实现

链接器和加载器

Linux高级程序设计

ARM嵌入式系统开发:软件设计与优化

UNIX编程艺术

这些书大多是我的一些参考书,《UNIX编程艺术》除外,它是一本很特别的书,值得好好阅读一下。

另外,我一直想抽时间研究一下linux内核。

 

11、管理类

卓有成效的管理者(典藏版)

管理的实践(珍藏版)

高效程序员的45个习惯:敏捷开发修炼之道

卓有成效的管理者(典藏版)》这本书我从头到尾读过,也做过笔记,这是一本非常好的书。

 

12、算法

算法导论

《编程珠玑》

这可以说是我的软肋。第一本书看不懂,第二本书还没有看。要努力啊。

 

 

上面的分类是我大致的划分,可能不够科学。但是用来组织我的书单应该绰绰有余。

另外,上面的书,有很多内容可能会重复,这需要读的时候自己根据具体情况取舍了。也可能有些书买不到,不过应该可以找到电子书。

最后,说一下我对读书的一些看法:

1  有些书必须要精读,而精读的时候,必须要做笔记。

2  选择读书的时机也很重要,如果你没有一定的实践和基础,读一些书可能是一件非常痛苦的事情。这个时候,要停下了。如果你对某方面的知识有非常强烈的渴望或需求,这个时候是最好的时机。

3  开发实践过程中的学习效果最好。

4 专注。分为两个层面。第一个层面是要在一个大段的时间(比如90分钟)内专注,这样可以提高学习工作效率;第二个层面是长期的专注,及在一个长的时期内(比如,一个季度,一年)要专注于某一领域,这样才能才能在某一领域内有积累和突破,不至于沦落为事事皆知但事事不精的泛泛之辈。我目前专注学习的是c++,之后是模式与架构。

5、在专注的基础上扩大自己的知识面,要了解当前IT技术正在发生哪些变化。

要做个“T”IT人:既有深度,又有广度。  



阅读(4270) | 评论(0) | 转发(4) |
给主人留下些什么吧!~~