`
徜徉の小溪
  • 浏览: 451235 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何做一个优秀的程序员,编程的十大观点

阅读更多

Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。

        1) The only “best practice” you should be using all the time is “Use Your Brain”.

       唯一的“Best Practice”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“best practice”。事实上来说,那些所谓的“Best Practice”只不过是限制那些糟糕的程序员们的破坏力。

       2)Programmers who don’t code in their spare time for fun will never become as good as those that do.

       如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作,无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取其正面的观点。

       3)Most comments in code are in fact a pernicious form of code duplication.

       注释应该是注释Why,而不是How和What,参看《惹恼程序员的十件事》,代码告诉你How,而注释应该告诉你Why。但大多数的程序并不知道什么是好的注释,那些注释其实和code是重复的,毫无意义。


       4)XML is highly overrated

       XML可能被高估了。XML对于Web上的应用是不错的,但是我们把其用到了各种地方,好像没有XML,我们都不会编程了。

       5)Not all programmers are created equal

       这是那些junior经理或是流程爱犯的错,他们总是认为,DeveloperA == DeveloperB,只要他们的title一样,他们以为他们的能力、工作速度、解决问题的方法,掌握的技能等等都是一样的。呵呵。更扯的是,在某些时候,就算是最差的程序员,他们也会认为其比别人强十倍,这就是现代的SB管理。

       6)”Googling it” is okay!

       Google只会给你知识,并不会教给你技能。那里只有“鱼”,没有“渔”,过度的使用Google,只会让你越来越离不开他,你越来越去要去立马告诉你答案,而你越来越不会自己去思考,自己去探索,去专研。如果KFC快餐是垃圾食品对我们的身体没有好处,那么使用Google也一种快餐文化对我们的智力发展大大的没有好处。

       7)If you only know one language, no matter how well you know it, you’re not a great programmer.

       如果你只懂一种语言,准确的说,如果你只懂一类语类,如:Java和C#,PHP和Perl,那么,你将会被局限起来,只有了解了各种各样的语言,了解了不同语言的不同方法 ,你才会有比较,只有了比较,你才会明白各种语言的长处和短处,才会让你有更为成熟的观点,而且不整天和别的程序在网上斗嘴争论是Windows好还是Unix好,是C好还是C++好,有这点工夫能干好多事了。世界因为不同而精彩,只知道事物的一面是有害的。

       8)Your job is to put yourself out of work.

       你的工作不是保守,那种教会徒弟,饿死师父的想法,不但是相当短浅的,而且还是相当脑残的。因为,在计算机世界里,你掌握的老技术越多,你就越没用,因为技术更新的太快。你对工作越保守,这个工作就越来越离不开你,你就越不越不能抽身去学新的东西,你也就越来越OUT了。记住:If you can’t be replaced then you can’t be promoted!

       9)Design patterns are hurting good design more than they’re helping it.

       很多程序员把设计模式奉为天神,他们过度的追求设计模式以至都都忘了需求是什么,结果整个系统设计被设计模式搞得乱七八糟,我们叫这种编程为“设计模式驱动编程”,正如第一点所说,如果你不懂得用自己的大脑思考的话,知其然,不知所以然的话,那么你不但得不到其好处,反而受其所累。

       10)Unit Testing won’t help you write good code

       准确地说,我们可以认为这是Test-Driven开发,其实,这种开发就是先写unit test case,这样的开发方式的主要目的是,为了防止你不会因为一个改动而引入Bug,但这并不会让你能写出更好的代码。这只会让你写出不会出错的代码。同第一点,这样的方法,只不过是防止糟糕的程序员,而并不是让程序员或代码质量更有长进。反而,通过Unit Test会为程序员的为自己代码做辩解的一种托辞。

       最后,顺便说一下,以前去那个敏捷的公司面试,发现那个公司的某些技术人员中毒不浅,具体表现在上述的1)9)10)观点上。
分享到:
评论

相关推荐

    程序员编程艺术系列之程序员编程艺术

    9. **最新编程资源**:附带的“拼吾爱 - 最新编程资源的分享下载站.url”可能是一个链接,指向一个提供最新编程资讯、学习资料和工具的网站,为程序员持续学习提供便利。 通过阅读《程序员编程艺术系列之程序员编程...

    程序员编程艺术pdf可编辑

    程序员编程艺术pdf可编辑,教你如何将编程作为一门艺术

    一个优秀的程序员的十个习惯

    成为优秀的程序员不仅在于编写高质量的代码,更重要的是养成一系列有益的习惯,这些习惯能够提升个人技能,促进团队协作,以及保持对技术的敏锐度。以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **...

    C语言高级程序员编程指南

    首先,函数指针是C语言中的一个强大工具,它允许我们将函数作为参数传递给其他函数,或者将函数存储在数据结构中,这在实现回调机制、事件驱动编程和模式设计中尤其关键。书中会详细介绍如何正确使用和理解函数指针...

    程序员编程最需要的计算机词典

    《程序员编程最需要的计算机词典》是一款专为程序员量身打造的综合资源包,包含了大量编程相关的术语、概念和工具的详细解释。这款词典软件不仅提供了方便的查询功能,还涵盖了各种编程语言、数据结构、算法、操作...

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

    如何成为一个优秀的程序员:深入解析与实践指南 在IT行业,成为一名优秀的程序员是众多技术追求者梦寐以求的目标。在《如何成为一个优秀的程序员》一文中,作者罗伯特·L·里德(Robert L. Read)列出了多达一百条...

    程序员编程艺术

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)(by_July)定稿版.rtf

    程序员专用 编程输入法

    同时,"09b"可能是该输入法的一个版本号,表明这个软件经过了多次迭代和优化,功能可能更加完善。 在压缩包文件中,`ReadMe.html`通常包含关于软件的使用说明、安装指南或者更新日志,用户可以通过阅读此文件了解...

    游戏程序员编程方向

    根据提供的部分内容,我们可以提炼出游戏程序员在编程方向上的几个关键学习点。 #### 二、基础知识与算法学习 1. **算法基础**: - 学习经典算法书籍如《算法导论》(Introduction to Algorithms),这是计算机...

    程序员编程艺术第一~三十七章集锦 高清完整PDF版

    从2011年4月写下第一篇至今,编程艺术系列已经写了37章,也就是说详细阐述了37个编程问题,在创作的过程当中,得到了很多朋友的支持,特别是博客上随时都会有朋友不断留言,或提出改进建议,或show出自己的思路、...

    高质量的C++编程 让你成为一个优秀的c++程序员

    《高质量C++编程:让你成为一个优秀的C++程序员》这本书通过向读者介绍这些最佳实践和编程规范,旨在帮助程序员提升编程水平,培养出编写高质量、易于维护代码的习惯。在软件工程领域,这些良好习惯无疑将帮助程序员...

    一个程序员对编程的理解

    同时,持续学习新的技术和方法,结合业务场景,才能不断提升自己的编程思想,成为一个优秀的IT专业人才。在这个过程中,我们不仅要学会“做事”,更要学会“做人”,理解他人,才能更好地服务于他人。

    黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1

    本套黑马程序员的Java函数式编程视频教程涵盖了Lambda表达式、Stream流以及函数式编程的核心概念,旨在帮助学习者全面掌握这一现代编程技术。 Lambda表达式是Java 8引入的关键特性,它允许我们以更简洁的方式定义...

    《IT学习资料》-程序员鱼皮的编程宝典 原创编程学习路线

    5. `自学之路`:这可能是一个文件夹或者文档,包含鱼皮程序员推荐的学习路径,详细指导如何从零开始学习编程,可能会涵盖编程基础、语言特性、项目实践等方面。 6. `.vuepress`:VuePress是一个由Vue驱动的静态站点...

    怎样才能做一名合格的程序员

    【标题】:“怎样才能做一名合格的程序员” 【描述】:“教你怎样才能做一名合格的程序员,一是风格,二是代码效率...等等” 【标签】:“程序员” 成为一名合格的程序员不仅需要掌握编程技能,还需要遵循良好的...

    C#程序员编程参考手册

    《C#程序员编程参考手册》是一本专门为C#初学者设计的编程指南,它涵盖了C#语言的基础到高级概念,提供了丰富的实例供读者实践。这本书的PDF版本由于文件大小原因被压缩上传,使得用户能够更方便地下载和存储。 C#...

    -一个程序员走过的路

    一个优秀的程序员不仅需要具备扎实的编程基础,更需要通过高效算法来优化程序性能,提高资源的利用率。基本的算法知识包括数据结构的选择和实现、排序和搜索算法的应用,以及图、树等复杂数据结构的操作。掌握这些...

    编程经验总结—一个程序员的经验

    学会有效地沟通,理解需求,协同工作,是成为一个优秀程序员的重要环节。 以上只是“编程经验总结”中可能涵盖的部分知识点,实际内容可能会根据作者的经验和关注点有所不同。这份.chm文件可能包含更具体的实践案例...

Global site tag (gtag.js) - Google Analytics