软件开发人员的基本原则

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。 

  2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。 

  3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。 

  4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。 

  5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。 

  6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。 

  7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。 

  8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1?ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。 

声明:本文转自网络,未见作者信息,版权人如有任何意见,请留言。

作为一个程序员很重要的一个能力应该是解决问题的能力 作为一个作为一个程序员很重要的一个能力应该是解决问题的能力 立即下载

相关推荐

编程必看的好文章!!!!

世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。    1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP

845

谈谈程序员解决问题的能力

谈谈程序员解决问题的能力 解决问题的能力,程序员立业之本。 一般写文章我不会特意去写,而是有感而发的时候刚好又有时间我就会去写写文字。本想推些技术文章的,但写技术文章又很耗时,写得太浅显又没有技术含量,写多了恐怕大家也没耐心去看(不就是懒么,给自己找这么多借口)。公众号这么多,你又能看的了多少呢?小巫这个公众号不会像某些网红那样每天都想破脑袋去写文章,也不期望这个公众号能给我带来什么,毕竟以我的

巫山老妖 1万+

毕业季,作为程序员(it软件开发工程师),如何培养强大的解决问题的能力

例如,如果一个孩子试图弄清楚如何打开一个玩具盒,他或她可能会尝试各种方法(例如,拉,推,举),直到找到正确的方法。良好的解决问题的能力包括能够创造性地和分析性地思考,将问题分解成更小的部分,并使用系统的方法找到解决方案。递归涉及将问题分解为较小的子问题,解决每个子问题,然后将子问题的解决方案组合在一起以解决更大的问题。另一个常见的例子是使用算法,例如快速排序算法,它将问题分解成更小的部分,解决每个部分,然后将解决方案组合到各个部分以解决更大的问题。如果你想成功,你需要有很强的解决问题的能力。........

南北极之间 2243

程序员如何提升自己的能力

1.重启电脑 , 2.亲测有效 ,如果不 3.或者安装搜狗输入法 ,如果有卸载重新安装

Java&Develop的博客 3497

做业务的程序猿如何提升技能?

每个程序猿都逃脱不了那个做业务的阶段,或多或少有些难以忘怀的记忆吧。 现状 天天被需求追着跑、被各路人马轮番“喷”、参加各种会议是我们做业务人多日常常态,然后晚上加班做各种需求,还要按各种批,真是身心俱惫。对于我们来说,难道就这样子了么?当然不是,我们也要进步。 如何提升自己 1、学习业务 既然我们是做业务的,我们就需要利用我们的优势,理清业务的基本逻辑,指出改业务的难点在哪里,是否有更好的路径去提高业务场景所带来的效益(日活、收入等),不要把自己当成工具人,而是当成局中人,思考是最重要的。哪怕以后不在公司

码农时代 1525

基本设计原则

 六大基本设计原则: 1、单一职责原则 2、里氏替换原则 3、依赖倒置原则 4、接口隔离原则 5、迪米特原则 6、开闭原则     单一职责原则(Srp) 定义:应该 有且仅有一个原因引起类的变更。即单一职责原则要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,他就负责一件事情。 职责是很难定义的一个概念 ,我们把握一个度,就是合理的划分职责,不能耦合...

陶永攀 212

面向对象的六大设计原则

开闭原则(Open Close Principle) 对扩展开放,对修改关闭。在程序需要进拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。 里氏代换原则(Liskov Substitution Principle) 任何基类可能出现的地方,子类一定可以出现。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则

知道这个有什么用? 241

Java设计模式的6大原则

对于那些具有丰富的开发经验的开发人员,学习设计模式有助于了解在软件开发过程中所面临的问题的最佳解决方案;对于那些经验不足的开发人员,学习设计模式有助于通过一种简单快捷的方式来学习软件设计。下面和千锋重庆小编一起来看看Java设计模式的6大原则吧! 开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简单来说:就是为了使程序的扩展性好,易于维护和升级。 接口隔离原则(Interface Segrega

qf2019的博客 139

设计模式之七大原则

设计模式的目的 软件的耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 。 代码重用性 (即:相同功能的代码,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响) 使程序呈现高内聚,低耦合的特性 设计模式的七大原则 单一职责原则 接口隔离原则 依赖倒转(倒置)原则 里氏替换原则 开闭原则 迪米特法则 合成复用原则 1、单一原则 对类来说的,即一个类应该只

二祥的工作历程 224

Java架构师必须知道的 6 大设计原则

序言 在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则,和具体阐述意义。 开发原则 面向对象的基本原则(solid)是五个,但是在经常被提到的除了这五个之外还有 迪米特法则和合成复用原则等, 所以在常见的文章中有表示写六大或七大原则的; 除此之外我还将给出一些其它相关书籍和互联网上出现的原...

毛兔记录:工作小技巧、遇到的一些典型bug、问题汇总、小知识。 298

project进it项目管理案例_项目管理中软件开发有几个阶段?

一、软件项目管理软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。 为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。 这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进,当软件工程过程最后结束时才终止。软件项目管理是为了使软件项目能够...

weixin_39933356的博客 346

面向对象七大编码设计原则

       知道抽象、继承、多态这些概念,并不会马上让你变成好的面向对象程序设计者。        设计大师关心的是建立弹性的设计,可以维护,可以应对变化。 1. 编码设计的原则        快速而随性...

weixin_41897234的博客 451

计算机原则

在系统设计和实施过程中,始终考虑安全隐患,采用合理的安全措施保护数据和系统免受攻击。:将系统分解成独立的模块或组件,每个模块完成特定的功能,便于开发、测试和维护。:将系统分成不同的层次,不同的层次负责不同的功能,降低复杂性并提高可维护性。:在设计和实现中考虑系统的性能,确保响应时间和资源使用在可接受的范围内。:将数据和操作封装在一起,并限制对数据的直接访问,以保护数据的完整性。:将用户体验放在首位,确保系统的界面和功能符合用户的需求和习惯。:尽可能重用现有的代码和组件,以减少重复工作和潜在的错误。

2401_89171735的博客 412

开发自测的原则

我是一名开发 在咱们开发的时间中,其实coding的时间所占比例大概为30%,大部分时间都在自测和改bug 但是许多新人觉得coding才是最重要的,而且把大部分精力花在coding上,其他的(自测,改bug,重构)不太重视 自测和改bug,归根结底就是解决问题. 解决问题的第一步,就是了解问题的现象,这是前提. 所以我们解决bug时,经常提到的一个词就是"重现bug",不能重现的b...

hw1287789687的专栏 706

设计模式中的六个原则

1. 单一职责原则 (SRP: Single Responsibility Principle) 类或接口职责单一 2. 里式替换原则 (LSP: Liskov Substitution Principle) 父类出现的地方子类也可以出现。 并且将父类用子类替换后,也不会产生任何问题 3. 依赖倒置原则 (DIP: Dependence Inversion Principle) • 高层模块不应该依赖底层模块,两者都应该依赖其抽象 • 抽象不应该依赖细节,细节应该依赖抽象 4. 接口隔离原则 (ISP:In

hober的专栏 505

提升软件开发质量的必备指南:软件需求规格说明编写指南

提升软件开发质量的必备指南:软件需求规格说明编写指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发过程中,需求规格说明是确保项目成功的关键文档之一。然而,编写一份高质量的需求规格说明并非易事。为了帮助开发者、项目经理和需求分析师更好地完成这一任务,我们推出了“软件需求规格说明编写指南(438B).doc”。这份指南详细介绍了如何编写软件需求规格说明,涵盖了...

gitblog_06646的博客 492

61条面向对象设计的经验原则

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 ----- Arthur J.Riel     (1)所有数据都应该隐藏在所在的类的内部。   (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。   (3)尽量减少类的协议中的消息。   (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝

琉璃仙境 516
下一篇: 关于创办软件公司的几点思考
KITTY_chenming
博客等级 码龄21年 1粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值