本文转载自少年郎的博客,文中作者分享了自己对于编程的一些思考感悟,原文内容如下:
1. 编程需要艺术存在
软件业界有个观点:水平高到一定程度后,干啥事都能感受到“艺术”。编程也不例外。
搞艺术的一般都能感觉到快乐,周日去公园,看到很多搞艺术的团队,唱秦腔、通俗歌曲、红歌都有,多数都一唱就是大半天,但是他们每个人都看不出倦意,半天都没喝口水,因为他们自己都在玩心中的艺术,否则被一大群人围观,保准是脸红脖子粗。编程也一样,若是感受不到“艺术”的存在,写来写去,只会觉的是痛苦,就像“拉磨”的驴一样,一圈一圈的转下去,终点就是被淘汰的那天,结局就是被人装成小袋,放在大型的超市里,一辈子也没想清楚自己做的啥,也没有快乐可言。
其实更多的是感受的艺术之后,你会随心所欲,你驾驭程序,驾驭工作,否则就会反过来。大部分人开发软件是为了满足客户的需求,而不是为了自己享受,这是原则,也是真理,然而编程艺术是人们对高水平程序创作的一种感受,但只可意会,不可言传,不能成为软件公司的一个指导方针。
2. 编程确实需要技巧
技巧是锦上添花,不是画蛇添足。技巧就是技巧,不是伎俩,技巧不是靠谁苦口婆心的告诉你的,有句话是“纸上得来终觉浅,绝知此事要躬行”,《卖油翁》的故事告诉了我们技巧是怎么来的——“熟能生巧”,技巧是自然是承担了大量的工作,做了大量的事情(当然中间可能会犯许多的错误,烙下许多的埋怨,被人讥笑、冷眼、鄙视与不以为然)后,自然而然产生出来的。
技巧伴随做事产生,伴随经验产生,技巧伴随总结产生,“驴拉磨”只是把事情做了,然而没有思考和总结,驴就是驴(人们习惯称为蠢驴)。只有技巧可以实现四两拨千斤,事半功倍。不懂的技巧,眼前自然是一篇困难,再简单的事情,让他做起来比去西天取经还难。
写过的程序没有有效的积累,等下一次再遇见同样的需求,再重新写一次(等同于拉磨),还要人不时的催着点(等同于给驴上鞭子)。
3. 没有思想的程序员是被淘汰者
软件开发有方法论,固然不假,人们总是通过各种方法使得需求变的明确,准确,然而软件开发就像一场球赛,有一个时间的过程,需求就像球场上的球,需要传递,球场上有守门员、后卫、中卫、前腰、前锋,软件团队中有需求分析员、策划、项目经理、架构、美工、程序。需求就像一个足球一样在人员之间传递,保不准那个环节上就会丢失(或者损耗),因此就需要每个人进行有思想的思考,把丢失(损耗)的东西给补上去,传递给下一个环节。
软件开发需要一个团队,团队就是每个人都是一个重要的个体,别人不能替代。经常出现的情况是“这个问题没和我说,需求上没说这么做,我不知道这么做”,问题是谁能保证百分之百的和你说到?谁能?谁能?
4. 团队中需要强人,强人占大数的团队,是产生好结果的团队
强人的作用无可替代,强人就像特种兵一样,能在关键位置上发挥无可替代的作用,甚至是以一敌十的效果,非洲草原上有百分五六十的能力强的狮子的狮群是所向披靡的狮群,狮群因此有了充足的食物,狮群因此生机勃勃。食物是捕捉来的,不是自己送上门来的,软件开发等、靠、拖是不行的,人多不见的力量大,就像一个女人能十个月生出孩子,十个女人一个月能生出孩子来一样。新手会产生很多新的错误,给项目添麻烦;强人向新手解释工作及交流思想都要花费时间,使实际开发时间更少,合理的搭配人员结构最重要。
- 浏览: 960058 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
发表评论
-
浅析hibernate缓存机制
2014-01-05 14:05 987浅析hibernate缓存机制 hib ... -
2013总结与2014计划
2014-01-01 01:13 10302013总结与2014计划 1.2013年 1. ... -
成为一个明星程序员(转)
2013-12-31 19:43 718很多开发者会认为要想成为一个明星程序员所需要做的事情一定都是 ... -
学编程学到的几件事(转)
2013-12-24 20:16 626学编程学到的几件事 ... -
九句良言胜敲十年代码(转)
2013-12-01 20:25 389此刻,夜深人静,时间已超过凌晨零点,散仙还在读张龙老师的一篇博 ... -
张龙风中叶老师经历(转)
2013-11-06 21:11 1228http://blog.csdn.net/ricohzhan ... -
李嘉诚深圳演讲
2013-11-05 23:19 880为什么你一直没有成就? 因为你随波逐流,近墨者黑、不 ... -
毕业三年之际写给可能迷茫的你我(转)
2013-11-05 20:34 995http://liugang-ok.iteye.com/bl ... -
男人关心的东西,决定着他的层次
2013-10-05 21:25 1013一、男人拥有自信和风度 男人到了二十几 ... -
提高工作效率的一些方法
2013-08-19 23:47 969最近明显感觉时间不够用,主要原因还是工作效率不高,找来一本关 ... -
迈向架构师的第一步(转)
2013-08-19 23:41 815有一个多月没有写blog,主要原因是受工作所累,公司由于组织 ... -
转载:程序员的出路在哪里
2013-08-13 22:59 843转载:程序员的出路在哪里 2013-5-11 05:18 阅读 ... -
14条建议,使你的IT职业生涯更上一层楼
2013-08-11 14:21 88714条建议,使你的IT职业生涯更上一层楼 http:/ ... -
技术人员如何去面试?
2013-08-10 20:34 856一、为什么跳槽和选择公司 1. 为什么跳槽 虽然 ... -
写给没什么经验的IT程序猿们
2013-08-09 21:24 865http://www.iteye.com/topic/11 ... -
[转]工作心态与习惯——致85后与90后的“比”一代
2013-08-09 02:30 764[转]工作心态与习惯——致85后与90后的“比”一代 ... -
怎样当一个企业舍不得的人
2013-07-23 18:57 815怎样当一个企业舍不得的人 项目发展到 ... -
程序员扩充人脉那些事儿
2013-07-21 11:22 922程序员扩充人脉那些 ... -
成为高效程序员的7个重要习惯
2013-07-11 21:27 1043作为软件工程师,你希 ... -
升职指南:走好五步棋
2013-07-05 21:57 797职场中能接任上司位置的人无疑是少数幸运儿,而绝大部分人的命运还 ...
相关推荐
程序员需要培养对编程艺术的感知,不断提升自己的技巧,同时拥有独立思考和团队协作的能力。强者的存在对团队的效能提升至关重要,但也要注重团队的平衡和新人的成长。通过这样的方式,我们才能在编程的世界中不断...
关于_思考函数式编程_几点注记_裘宗燕.pdf
少儿编程教育是当前教育领域中的热点话题,特别是随着机器人编程的引入,它为学生提供了一种通过动手实践和逻辑思维来提升计算思维能力的途径。以下是从给定文件中提炼出的知识点: 1. 少儿编程教育的重要性:编程...
"计算机编程C语言的思考" 计算机编程是计算机领域发展、计算机程序应用于社会生产生活方方面面的重要方式。 C 语言是一种使用量、使用频率较高的编程语言,不仅可减少编程工作量、错误率,还能够提升程序的运行效果...
本文将结合给定文件【标题】、【描述】、【标签】及【部分内容】,详细探讨在初中信息技术课程中实施Python编程教学的策略与思考。 首先,教学策略的制定需要充分考虑学生的学习情况。在教学过程中,教师应采用任务...
以上是Java面向对象编程的一些基本概念,通过解决孙卫琴女士教程中的课后思考题,学习者可以更好地理解和应用这些知识。解答集"answer"应详细阐述了这些问题的解题思路和实现方法,对于深入学习和复习Java面向对象...
关于面向对象编程中的继承,姚钢强指出,虽然继承在实现代码复用和“IS-A”关系时很有用,例如Java标准库中的Stack类继承自Vector类,继承了一系列的方法,如add、remove等。但过度使用或不当使用继承可能导致封装性...
因此,他主张在学习编程语言的同时,应注重培养抽象思维能力,学会从更高层次思考问题,如算法优化、代码复用、模块化设计等,这些都是编程思想的具体体现。 #### 实践与理论的融合 文章还提到了理论学习与实践...
“指向深度学习的‘学历案’应用与思考——以《打开编程之门》为例” 本资源摘要信息是在信息技术课的背景下,探讨“学历案”的应用与思考,以《打开编程之门》一课为例。该资源涵盖了深度学习、数据分析、数据研究...
切尔·雷斯尼克则指出,学会编程后会开始以全新的视角思考世界上的各种过程。 - **未来的趋势**:随着技术的发展,未来世界将更加智能化和自动化。掌握编程技能意味着能够在这样的环境中高效地利用计算机技术,更好...
《编程珠玑》强调,优化不仅仅是关于速度,而是关于理解代码的运作方式和它对系统资源的影响。书中通过实际案例解释了如何通过分析和重构代码来减少内存消耗,提高程序响应速度,以及如何利用缓存机制来提升性能。 ...
这些知识点是《Java面向对象编程》一书的核心内容,通过阅读书中的思考题及答案,可以帮助读者巩固理论知识,提升实际编程能力。对于初学者来说,理解并熟练运用这些概念是掌握Java编程的关键步骤。
通过讲解Java语言特性和设计原则,引导读者学会从更高层面思考软件架构问题,进而提高自己的编程水平。 ### C#思维 《C#思维》着重培养读者运用C#进行高效编程的能力。它从语言特性出发,结合大量实例分析,教会...
标题《思考函数式编程》和描述《思考函数式编程》表明本文档是关于函数式编程的探讨。在函数式编程(Functional Programming,简称FP)领域中,主要的知识点包括以下几个方面: 1. 函数式编程基础概念:函数式编程...
读书笔记:该仓库包含《Java编程思想》中一些有趣的代码以及我的一些思考
在"函数式编程思维"中,程序员会倾向于用数据流和变换来思考问题,而不是通过控制流程来解决问题。这种方式可以提高代码的可读性和可维护性,因为函数式编程通常会产生更简洁、更模块化的代码。此外,由于函数式编程...
《编程珠玑》和其续篇是两部深受...这两本书不仅适合初学者作为编程入门教材,也对有经验的开发者提供了宝贵的启示和思考。通过阅读和实践,读者不仅可以提升自己的编程技能,还能培养出解决问题的洞察力和创新能力。
- 这些书籍提供了关于编程最佳实践、问题解决策略和软件工程原则的宝贵指导,是每个程序员成长的必读书目。 综上所述,Python编程入门需要结合理论学习、实践操作和广泛阅读,逐步积累编程技能。通过MIT和哈佛的...
以下是一些专门为初学编程者提供的建议和方法,旨在帮助他们更好地理解编程世界,并有效地提升自己的编程能力。 首先,初学者需要培养坚韧的毅力和耐心。编程不是一朝一夕就能掌握的技能,它需要长时间的练习和反复...