一般来说,编程分为不同的阶段和方向,每个阶段侧重点各不相同,需要学习的技能也随发展方向的不同而不同。
入门阶段,也就是刚入门时,对于所有的人来说都一样,那就是快速的学会一门编程语言,熟练使用一款高效的开发环境,能使用一些版本控制工具,如Git,SVN等。对于新手来说,学习编程最好的办法就是多写代码,熟能生巧嘛。自己写当然最好,自己写不出来,把书上的代码敲上去,修改、编译、再运行比较结果与自己的预期,都会让你印象深刻的(好象是王者农药的一句台词,呵呵)!这个阶段少则半年,多则两三年,如果超过三年还停留在此,只能说明并不适合编程。
提升阶段,在掌握了基本的编程技能并有了一定的实战经验之后,一般能够自己编写模块级的程序,但是大部分人还不能独立的开发软件,也无法解决一些技术难题,这时候就需要在理论与管理方面有所提升。比如学习其它的编程语言、学习一些编程方法论,如面向过程编程、面向对象编程、敏捷编程、设计模式,还有如软件工程、质量控制等管理方面的知识。这个阶段持续的时间因人而异,有很多程序员,特别是非专业出身的,往往会卡在这里。
分化阶段,随着各种技能的不断提升,逐渐对软件行业有了自己的认识,这时候因为每个人的兴趣爱好不一样,就开始朝着不同的方向发展。大部分人到了一定阶段会选择管理,但是受能力与人际关系等多方面的影响,只有较少的人能如愿;也有一部分人因为热爱编程而继续在此深耕,他们有的会向理论层面深入研究,有的则会向架构设计方面靠近,也有一部分人在开源领域奉献着自己的才智;当然受国内大环境的影响,也有很多人即没有管理的能力,也无法再技术方面深耕,最终早早离开编程岗位。
总之,学习编程在开始阶段敲的代码越多,学的就越快,但是到了一定阶段之后,就需要有理论知识做支撑。