在这个全民编程的时代,怎样提升自己的level成为一个合格的程序员,你知道吗?那些必备技能你Get到了吗?下面就来为大家讲讲。
一、启蒙阶段:通过极其简单的方式接触一些计算机科学当中的概念,同时培养最基本的计算机能力。在此阶段你也许只是因为对计算机感兴趣而入门,所以你只需保持对计算机的热情和探索的精神。
二、初级阶段
在此阶段开始之前,你应该具备良好的数学基础、逻辑思维能力。
2.1选择学习一门脚本语言,例如python/Ruby。脚本语言可以让你很快开发出能用得上的小程序。
2.2注意理解一些重要概念。不要忽视这一重点,别以为程序员只需要动手编程而无需理解书本上的知识,其实选择一本好的程序设计的书深入理解变量、函数、条件语句、循环语句等概念,要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
2.3多实践、多交流
要想掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,哪怕是一些很简单的语句也要自己亲自动手写,尽量不要复制粘贴,遇到问题要多想几种解决的方案。
2.4 用熟一种程序员的编辑器(不是IDE) 和一些基本工具
- Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
- Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
三、早期阶段
3.1 学习C++/Java。看经典的Core Java 《Java 核心技术编程》和《Java编程思想》,学习(麻省理工免费课程)C++面向对象编程
3.2熟悉Unix/Linux Shell和常见的命令行
3.3学习Web基础(HTML/CSS/js) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
- 学习HTML基本语法
- 学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
- 学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
- 学习使用Javascript操纵HTML元件。理解DOM和动态网页(http://oreilly.com/catalog/9780596527402) 网上有免费的章节,足够用了。或参看 DOM 。
四.高级阶段
4.1 C语言和操作系统调用
重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》,计算机科学和编程导论(麻省理工免费课程)、C语言内存管理(麻省理工免费课程)。
4.2学习Windows SDK编程(Windows 程序设计 ,MFC程序设计)
- 写一个窗口,了解WinMain/WinProcedure,以及Windows的消息机制。
- 写一些程序来操作Windows SDK中的资源文件或是各种图形控件,以及作图的编程。
- 学习如何使用MSDN查看相关的SDK函数,各种WM_消息以及一些例程。
4.3 学习关系型数据库(你可以安装Oracler或MySQL来学习数据库)
4.4一些开发工具
- 学会使用SVN或Git来管理程序版本。
- 学会使用JUnit来对Java进行单元测试。
- 学习C语言和Java语言的coding standard 或 coding guideline。
4.5系统架构
负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
多层分布式系统 – 客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。
CDN系统 – 就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。
虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
五、延展阶段
此时你应该放宽自己的眼界,不拘泥于某一种技术或方法,多参与项目工程的开发,培养自己的整体项目评估能力,这时你具备的可能就不只是一个技术类的技能了。
好了,今天我们就讲到这里,以上的内容看似简单,可如果你真的能做到每一步,那么你就是一个高级的程序猿,编程从少年开始,加油!
然而我还在启蒙
呵呵呵呵看那么多书没有用的我都是找网上教程自学精通c
好多图片看不到啊??
我就是第一高手程序员