如何成为一名合格的程序猿

在这个全民编程的时代,怎样提升自己的level成为一个合格的程序员,你知道吗?那些必备技能你Get到了吗?下面就来为大家讲讲。

3


一、启蒙阶段:通过极其简单的方式接触一些计算机科学当中的概念,同时培养最基本的计算机能力。在此阶段你也许只是因为对计算机感兴趣而入门,所以你只需保持对计算机的热情和探索的精神。

二、初级阶段

在此阶段开始之前,你应该具备良好的数学基础、逻辑思维能力。

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学术里搜一些关于负载均衡的文章读读)

五、延展阶段

此时你应该放宽自己的眼界,不拘泥于某一种技术或方法,多参与项目工程的开发,培养自己的整体项目评估能力,这时你具备的可能就不只是一个技术类的技能了。

2

好了,今天我们就讲到这里,以上的内容看似简单,可如果你真的能做到每一步,那么你就是一个高级的程序猿,编程从少年开始,加油!


登录或注册后发布评论