程序员练级-关键提炼

启蒙入门 

1.学习一门脚本语言,例如Python/Ruby 

 2.熟悉Unix/Linux Shell和常见的命令行

 3. 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LINUX + APACHE + MYSQL + PHP)
  
  未来必然是Web的世界,学习WEB基础的最佳网站是W3School。

进阶加深
  1、 C语言和操作系统调用
  
  重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》。
    学习(麻省理工免费课程)C语言内存管理
      学习C语言和Java语言的coding standard 或 coding guideline。(我N年前写过一篇关C语言非常简单的文章——《编程修养》,这样的东西你可以上网查一下,一大堆)。
  推荐阅读《代码大全》《重构》《代码整洁之道》 

 高级深入

  1.C++ / Java 和面向对象

学习(麻省理工免费课程)C++面向对象编程
  读我的 “如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)
  然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。
 学习STL的用法和其设计概念 - 容器,算法,迭代器,函数子。如果可能,请读一下其源码。
 实践任务:尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能

推荐阅读《Effective Java》 and 《Java解惑》

 2、加强系统了解

       《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。
  《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。

       学习《Windows核心编程》一书。

     记录,方便以后查找。

你可能感兴趣的:(程序员练级-关键提炼)