posts - 225, comments - 62, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

如何成为一名优秀的程序员

Posted on 2014-03-28 11:51 魔のkyo 阅读(549) 评论(0)  编辑 收藏 引用 所属分类: ProgrammingAlgorithmMath
转载请保留原帖地址:http://www.cnitblog.com/luckydmz/archive/2014/03/28/89364.html

我曾经是一名黑客,我购买黑客杂志期刊,关注最新的漏洞利用,那时候电脑安装的操作系统主要是WinXP和Win2000,很多人使用弱口令甚至空口令,随便选一个网段用扫描软件一扫就一堆肉鸡(黑客对可以被远程控制的机器的称呼),再加上各种服务的缓冲区溢出漏洞,SQL注入漏洞,网络环境安全当时可谓一塌糊涂,我入侵过很多个人电脑,也入侵过一些服务器,甚至通过键盘记录器得到过一些人的账户和密码甚至是ADSL密码,当时是可以通过ADSL进行某些购买的,不过我从未利用这些获取过任何利益,也没有进行过任何破坏行动,我只是觉得很有成就感,当时的我就沉浸在这所谓的黑客技术中。逐渐不再满足于使用别人提供的工具,我想搞清楚他们的原理以便可以利用最新的漏洞,我接触到一些漏洞的溢出源代码,它们一般是用C语言描述的,而我不知道如何使用它,还有一些论坛上会讨论如何使用反汇编对软件进行破解或者找到其中的漏洞,而我对这些一窍不通,我发现我根本不懂什么真正的技术,如果没有别人的工具我什么都不会,制作工具的那些人才是真正的黑客,他们掌握的才是真正的技术。从那时起我就认识到要学习编程,编程才是真正的技术,然后我便从书店买了一本《C++捷径教程》并开始了我的编程生涯,那一年我在读高二。

……

之后我一直在学习编程,不过却再没踏上黑客之路,如今我已从计算机专业毕业,并在游戏开发行业从业近5年了,算起来我学习和使用C/C++已经10年有余了。

好吧,这个引子有点可能长了,我只想说明相比刚刚学会写图形界面的妄自尊大的初学者就在论坛上侃侃而谈指点他人或许我的意见更具说服力。
现在我经常看到一些初学者在编程论坛和QQ群里询问该如何学习编程,有人问已经已经学了C还要不要学C++,已经学了C++还要不要学JAVA,要不要学C#,诸如此类要学习哪些语言的问题,有人会回答他们“是的,你需要学习Java,C语言已经过时了。”,“现在学习C语言已经找不到工作了,你还是学习C#吧”,可能还有更多人有类似疑问我根本没有遇到,这些初学者可能将花费大量时间在肤浅的层面徘徊,有时我会去指导他们,但是遇到得多了我也疲于指导了。
我并不是说多学习一些不同的语言不好,相反,学习不同的语言确实可以开拓思路,但我不提倡初学者接连甚至同时学习不同的语言,因为编程的精髓不在语言,语言只是对思想的一种描述形式,事实上除了上面提到的C++我也接触和使用过很多其他语言,C, VB, FORTRAN, JAVA, C#, PHP, Javascript, SQL, ASP.NET, LUA, RUBY, 而我学习这些语言的时间越晚我就学习得越快,只要花几天学习一下基础语法,然后写一些DEMO,一边写一边查文档学习使用标准库,用不了一个月就可以基本掌握这门语言。因为我已经掌握了一些编程本质的东西。

如果说语言是肤浅的,那编程的内在究竟是什么呢?我们应该如何修炼编程“内功”呢?
我将这些知识划分为3个方面
1. 数学、算法和数据结构
2. 编码规范和设计模式
3. 开发实践和团队领导
其中2个方面有关个人能力的培养,1个方面有关团队建设和开发管理。

接下来我将通过3篇BLOG将分别就这三方面的能力培养和相关书籍分别阐述 (超链接和BLOG以后将慢慢补全)

如何成为一名优秀的程序员——数学&算法篇
如何成为一名优秀的程序员——编码&设计篇
如何成为一名优秀的程序员——开发实践&团队领导篇
只有注册用户登录后才能发表评论。