程序员怎么提高编程水平 和 看计算机程序的思维高度?

怎么成为高水平的程序员? 相关背景:我做PHP半年多了,接触PHP一年半了本来是在公司做SEM,接触到了dede织梦PHP系统,就开始业余自学HTML,CSS,PHP业余就看网上的资料,视频,简单的blog项目代码,然后自己写了个网站首页,后来就在公司转岗做PHP了 工作中,边学边用js算是入门了,后来自己手动安装WAPM,在linux也折腾过 设计模式,自己一一测试过,20多种吧,对面向对象有点感悟数据结构与算法--看了,感觉不知道用在哪操作系统…
关注者
364
被浏览
15891
正好最近在思考这个问题,分享下自己的观点。

大部分程序员工作一段时间,都会经历迷茫、焦虑时期,包括但不局限于没有方向感,问题无法解决,不知道如何成为理想的自己,走技术路线还是管理路线,会留心技术潮流但总感觉自己没有跟上,感觉自己知道又不知道等等。这方面的焦虑对于创业团队的成员更为明显。

单就代码而言,很多人天天都会写代码,有这些人的github帐号甚至被刷绿,有些人一年也能堆个几万行代码。但是我们有没有审视下,我们键盘下的重复代码有多少?Duplicate code 真正有意义的代码有多少?认真思考过的代码有多少?真正的好代码又有多少? The Principles of Good Programming

于是,虽然相对初出茅庐的自己技术视野有了较大的提升,经验有了一定的积累,但是代码却越写越迷茫。

这里的本质问题是:
这些年做的很多技术事情都过于浮于表面,没有成熟的技术规划,没有体系化的技术沉淀。

所以,虽然经历了职业生涯初期的快速成长,但是由于知识体系没有夯实,导致知识/技术的延展性很差,遇到问题总希望能够有上帝视角,但现实却只是四十五度角仰望。

可知识/技术体系的夯实着实不太容易,它需要系统的目标规划,和条理性的实践。简单列下自己的一些经验:

  • 明确自己的职业规划,未来走管理路线,还是专家路线;这两条路的发展路径是完全不一样的,前者侧重沟通性、领导力;后者侧重技术性、专研力。坦白说,这两个路线现在确实越来越模糊,比如领导力,沟通能力,技术广度等,对于技术管理者、架构师而言都属基本素质,但是侧重点不同带来的是心态的不同。

  • 明确短时间内的技术规划,问一下自己,__年后,我要在__领域,成长成为__的人/达到__状态。时间规划不要太长也不要太短,1-2年即可,重要的是要保证这个规划可验证。然后一定要列出为了实现这个目标的一系列TODOs(包括阅读哪些书籍,学习哪些课程等),最后,通过GTD管理,最终实现知识的体系化管理。这里,WunderlistEvernoteXMind, Pocket 是实施的比较不错的工具。

  • 时刻让自己保持足够的技术热情。这个信息膨胀时代,我们每天接收各种纷繁的信息,技术本来就枯燥,如果不能保持技术热情,很容易让自己陷进其他信息海里,慢慢地对技术失去兴趣。比如Hacker NewsGitHub TrendingReddit开发者头条 可以多逛逛。

  • 多读代码,多写代码,多反思写过的代码。从别人的代码里读出思想,从自己的代码中写出体会,从自己的代码里读出升华。对于技术从业者来说,代码,永远是本钱。

最后,自控力真的很重要,时间都是挤出来的。循序渐进,会发现自己有突变。自控力把时间当做朋友暗时间,没事儿的时候多读读。

EOF