不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法 更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗 类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以 迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是 无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
分享到:
相关推荐
作为一名程序员,要成为高手,需要遵循一系列基本原则。以下是根据标题和描述中提到的要点进行的详细阐述: 1. **扎实的基础**:对于任何程序员来说,扎实的计算机科学基础至关重要。数据结构、离散数学和编译原理...
【程序员教程工顶替基本原则基本原则】是一本针对全国软件水平考试备考者的电子书,旨在帮助读者深入理解并掌握编程领域的核心原则。这本书可能涵盖了编程语言的基础、算法与数据结构、软件工程方法、操作系统原理...
根据提供的文件信息,我们可以推断出这是一本关于Java编程技术的书籍——《疯狂Java突破程序员基本功的16课》。尽管没有提供具体的章节内容,但基于书名及其描述,我们可以合理推测这本书的主要内容是帮助程序员提升...
《疯狂Java程序员的基本修养》随书光盘的内容涵盖了成为一名优秀Java程序员所需掌握的诸多关键知识点。这份资源旨在帮助开发者全面提升其在Java领域的专业素养,包括但不限于编程基础、面向对象设计原则、异常处理、...
本文将深入探讨程序员基本功的重要性,并分享一系列学习工作中必不可少的资料网站,旨在为每一位编程爱好者提供丰富的资源,帮助他们在技术海洋中航行得更加稳健。 ### 程序员基本功 程序员基本功涵盖了多个方面,...
1. **设计原则与模式**:书中可能会介绍如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)等面向对象设计的基本原则,以及工厂模式、单例模式、观察者模式等经典设计...
以上内容是根据《The Developer’s Code 程序员的原则》的部分章节总结提炼出来的关键知识点。通过对这些原则的理解和应用,开发者不仅能够提高个人的职业素养,还能促进整个团队乃至行业的健康发展。
根据给定的文件信息,我们可以总结出一系列与“程序员考试”相关的知识点,这些知识点涵盖了从基本的编程语言到系统安全、网络协议等广泛领域。以下是对这些知识点的详细阐述: ### 1. 数据结构与算法 数据结构是...
编程是一项需要严谨和精确的工作,编码规范是程序员的基本素质之一,它不仅关乎代码的质量,也影响着团队协作的效率和项目的可维护性。华为作为全球知名的科技企业,其编码规范在业界具有一定的权威性和影响力。这份...
根据给定的信息,我们可以推断出本篇文章将围绕着程序员的基本代码编写技巧展开,特别是针对初学者的基础概念和实践操作。尽管提供的代码片段存在明显的语法错误,但这也为我们提供了一个良好的教学机会,即如何编写...
其次,在学习与实践方面,文档强调了编程的基本功,包括面向对象的思想、数据结构、算法等,这些都是程序员必须掌握的核心技能。文档中提到了如MVC、分层架构等编程范式,这些都是软件设计和开发的基础。此外,算法...
对于一个C++/C程序员来说,掌握基本的编程技能是至关重要的。以下是一些核心的知识点,涵盖了从语言基础到高级特性的理解和应用。 1. **基础知识**: - **语法**:了解C++/C的语法结构,如变量声明、数据类型(int...
【标题】"程序员青戈毕设资料库,程序员青戈毕设资料" 涵盖了程序员在进行毕业设计时可能会遇到的各种知识点,这通常包括软件工程的基本原理、编程语言的应用、项目管理、数据库设计、前端开发、后端开发、算法与...
8. **数据库基础**:SQL语言的基本操作,包括查询、插入、更新和删除数据,以及数据库设计的基本原则,如范式理论。 9. **软件设计与开发**:理解面向对象编程概念,如封装、继承、多态,以及设计模式的基本思想,...
在准备程序员考试的过程中,考生应当重视这些试题的分析和解答,尤其要关注历年常考的知识点,如面向对象编程的基本概念,常用数据结构(如数组、链表、树、图)的操作,基本算法(排序、搜索)的实现,以及软件设计...
理解线程的基本概念,如同步、互斥、死锁,以及Java提供的线程工具,如synchronized关键字、wait/notify机制、ThreadLocal和ExecutorService,将使程序员能够处理复杂的并发问题。 Java程序员还应掌握异常处理,...
3. 软件设计原则:模块化、抽象、封装、继承、多态等。 4. 质量管理:软件质量模型、质量管理过程、测试策略和测试用例设计。 五、数据库技术 1. 关系数据库基本概念:关系模型、关系代数、SQL语言。 2. 数据库设计...
### 每个程序员都该知道的10大编码原则 #### 1. 偏执 偏执在编程领域中并非负面情绪,而是一种确保代码质量和可靠性的积极态度。这意味着程序员应该始终保持怀疑的态度,对代码进行多次验证,确保没有任何遗漏或...
这份PDF文档是书籍的PAD版本,提供了高清的阅读体验,特别适合那些正在为Java面试笔试做准备的开发者们。文档内容包括了Java语言的基础知识、Java Web开发以及数据库等相关主题。 在Java基础部分,读者将深入学习...
同时,了解软件质量保证和维护的基本原则也是必不可少的。 【知识点五】数据库基础 虽然初级程序员考试可能不会深入到数据库设计与优化,但基本的SQL查询能力是必须的。考生应掌握如何创建表、插入数据、更新数据和...