首页 > 编程知识 正文

什么是程序员,使用计算思维解决问题的四个步骤是

时间:2023-05-06 11:54:12 阅读:58650 作者:4329

提高程序猿编程能力的八种方法对程序员来说,提高自己的编程能力是给自己的职业发展目标之一,但制定成为编程大神的目标可能很简单,具体做起来可能并不容易首先,既然决定“我会变得更好”,就要知道“会变得更好”是什么意思。 另外,虽然我不想“变得更好”,但是没有任何具体可行的措施。

本文分享了成为编程大神的8条可行经验,供读者参考。

1. 警惕“我了解”,“我知道”的学习态度

比如想学习c语言,第一步意识到自己不懂c语言,如果都懂,为什么还学? 这听起来像无稽之谈,但很多计算机专业的学生毕业后,就有傲慢的“我最了解”的虚张声势,迫切想向每位同事证明这一点。 但是,有太多例子证明采取这种态度的程序员在技术上进步很慢,所以在深入学习中,“我知道它”、“我知道它”的态度会阻碍你学习新东西。

现在想想,一般主张“精通xx语言”是私人的。

2. 不“自我欣赏”

成为程序员之神,必须从各前辈的经验中学习。 但是请注意,经验也可能让我们重复不良行为,养成不良习惯。 我们遇到过8年“经验”的程序员……但是,他的“经验”是,同年的经验,被重复了8次。 为了避免这一点,要经常反省自己所做的事情,并说:“怎样才能把这个做得更好呢? 「

初学者程序员享受自己写的“美丽”代码,并编写测试用例证明其正常工作。 很多“有经验”的资深程序员似乎也经常这么做。 但是,优秀的程序员应该积极地在自己写的代码中寻找可能错误的地方。 写的各种测试用例的目的也是寻找错误,而不是享受自己的代码在自己的测试用例中完美地工作。 因为他们知道最终用户会发现程序错误和漏洞。

3. 程序运行起来不是停止,而是开始

确实,程序员的第一步是创建符合规范的高质量软件,但典型的程序员在实现功能后将退出并进入下一步。 “完成”后停止的做法,就像随手拍下快照,期待成为艺术品一样。 优秀的程序员只是开始实现功能,继续其精炼,编写稳定性更高、性能更高的程序。

这个过程的一部分的意思是开头提到的“更好”。 加快速度有意义吗? 容易记录吗? 可以再利用一些吗? 还是更可靠? 答案因APP应用而异,但对程序的态度一致。

4. 写三次

一般程序员会编写运行正常的软件,优秀的程序员会编写运行性能更好的软件。 但是性能更高的软件通常不是一次就能完成的。 从某种意义上说,最好的软件通常要写三次。

第一次创建证明自己设计的解决方案可行的程序,并据此优化设计。

第二次,程序运行正常,但可能还有性能优化的空间。 另外,可能有漏洞。

第三,确保程序不仅正常运行,而且能高效稳定地工作。

一般来说,当我们看到优秀的程序项目时,就会觉得大神写的代码像在云上流动一样。 虽然如此优秀,但大神优秀的方案项目一般也需要“写三遍”。 只是,这些工作隐藏在背后。 一些程序员开发程序可能只停留在第一个或第二个版本。 这与“我想变得更好”的初衷背道而驰。

5. 阅读优秀代码

可以说,阅读大神们优秀的代码是提高编程技能的最常见、最有价值的建议。 读别人的代码,可以看到大神是如何解决编程问题的,但要想变得更好,而不是“只看”,就必须问问自己。

如果我遇到同样的问题,我该怎么写这个代码?

我学到了什么? 你怎么把这个技术应用于我的程序?

如何改进此代码? 如果这是开源项目,并且有更好的解决方案,那就试试吧。

试着用作者的风格写程序。 这样,可以从各个角度看问题,相信会有好处。

不要只是漫不经心地思考这些问题,而应该写下自己的答案。 通过个人日志、博客、代码评论等多种形式,像给朋友解答问题一样,写并共享自己的分析常常有助于增进自己的理解。 这其实是内省的一部分,有助于冷静判断自己的优点和弱点。

不要只是漫不经心地想这些步骤。 请写下你的答案。 在个人日志、博客和代码审阅期间,您可以与其他开发人员在社区论坛上。 正如向朋友解释问题有助于找到解决方案一样,写分析并共享有助于理解为什么要以别人代码中给出的方式做出反应。 这是我之前提到的内省的一部分,帮助你冷静地判断自己的优点和弱点。

很多开发人员可以通过查看开源软件和其他软件来“找到答案”,很可能会复制和粘贴能够解决类似问题的代码。 这样做,实际上自己会成为更差的程序员。 盲目复制粘贴是缺乏自己思考的,所以别人的永远是别人的,而不是自己的。

6. 编写程序不全为了挣钱

如果为了研究自己的某个工具和技术而进行新的编程项目,很可能赚不到钱,但这并不能成为阻止学习新技能的理由。 首先,学习新技能一定能提高自己的能力。 这些工具和技术在目前的工作中可能不可用,但在接下来的工作中将提高市场竞争力。

无论你是为开源项目做贡献,还是为当地社区组织从事公益性工作,都将获得技术技能和自信。另外,个人项目也可以向未来的雇主证明你是一个自学成才的人,从不停止学习。不要只选择自己十拿九稳的个人项目,在自己的个人项目中失败是可以接受的,这样才能激励自己不断的学习和研究,避免在工作的失败。

7. 不完全忽视他人意见

愿意听取别人的意见,对提升自己的编程技术也有所帮助。当进行一个开源项目时,应该注意从用户,或者其他开发人员那里得到反馈,分析这些反馈常常能够推断出自己的项目中存在的问题(用户反馈的使用体验问题,其他开发人员反馈的技术问题等)。

只有发现自己的不足,才有机会进步,达到让自己变得“更好”的目的。而且在这一过程中,幸运的话还会遇到同领域内的大神,不要浪费像大神学习的机会。

8. 学习的是技术,而不是工具

编程语言、工具和框架总是在不断发展,有的工具或者框架很火,但是可能过段时间就落寞了,已经有太多这样的例子。所以在学习某种工具或者框架时,不应该只停留在工具和框架本身,更应该深入它们了解背后的设计思想和经验这些基础知识,因为基础永远不会过时。

停留在工具和框架表层,会逐渐形成“教条式经验”,而它会阻碍你学习新技术、新框架的能力。另外还有一点要说明的是,我们的确应该深入了解工具和框架,但是自我提高还有一个关键是要知道深入到什么程度,什么时候应该停止。举个最极端的例子,作为程序员,学习某个技术一直深入到 cpu 怎么制作还不停下,就显得太钻牛角尖了。

编程思维

编程思维是什么?

很多人都听过编程思维,但对它了解的却不多,甚至会产生这种误解——编程思维就是编程算法。

其实,编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式,它是“理解问题——找出路径”的高效思维过程,由分解、模式识别、抽象、算法四个步骤组成。

1、分解

锻炼拆解复杂问题的能力
分解,就是把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。
假如,要为自己全家人做一次出游规划,“全家旅游规划”听起来非常庞大、繁琐,而懂得“分解”的话,就可以把这个大难题分解成几个容易解决的小步骤:确立目的地、安排行程、预定机票和酒店、准备行李清单。

所以,在学习编程的过程中,就是在不断地训练他们把复杂的问题拆解、理顺的过程。这个过程是解决问题的基础,把问题拆解清楚,才有接下来实现的可能。

2、模式识别

发现并整合“重复规律”的能力
模式识别,就是识别不同问题的模式和趋势(共同点)的过程,在我们的经验库里找出类似问题的解决办法,套用解决。识别的模式越多,解决问题的速度也就越快。
例如,如果需要画100只猫,你会怎么办?是找100只猫来临摹还是找出猫的“模式”?
对猫进行模式识别,我们会发现猫有这些共同点:有眼睛、耳朵、尾巴、四条腿……
我们根据这些特点建立起猫的“模式”,按照这个模式就能批量画猫了。不用每次画一个新动物,只需要变换局部特征(例如毛发颜色、尾巴长短)就能轻松解决。

这样看来效率是不是瞬间飙升N倍?
在编程过程中,其实我们一直在进行着这样的训练,当发现一些可重复的步骤,就会把它们整合起来,建立模式;再遇到类似问题时就能让计算机套用此模式,快速解决。

3、抽象

锻炼找出问题本质的能力
抽象,是指聚焦最重要的信息,忽视无用细节。简单来说就是找到问题的本质,过滤掉其他无关紧要的因素。
例如,面前有一套房子,我们看到的是这样的:

但是在建筑师眼中,这套房子可能是这样的:

通过抽象,建筑师过滤掉对他来说无用的因素,找到了房子最重要的信息。
抽象思维,能够让我们在大量信息中抓住关键信息,提高学习效率。

4、算法

锻炼高效解决问题的能力
算法,是一步步解决问题的过程。根据前面对问题的分析与理解,设计每一步的路径方法,解决整个问题。
在具体解决问题的过程中,最关键的是逻辑思维能力和调试纠错能力。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210424234531511.gif#pic_center
计算机程序需要很强的逻辑性,逻辑顺畅才能顺利运行。例如,正确代码呈现出的五角星动态图这样的:

而只是把其中两行代码交换下顺序,结果就成了这样:

所以,我们需要严格遵循编程的规则,把解决问题的步骤转换成计算机能理解的语言。在这个过程中,我们的逻辑思维能力能得到很好地锻炼。
而调试纠错,就是当出现结果与预期不符时,需要找出算法之中的漏洞并解决。
在编程练习中,任何一行代码出问题,程序都会出错无法正常运行下去。这时,就必须要自己一步步执行步骤、梳理逻辑,找出问题并想办法解决。

苹果CEO贤惠的路人曾说过:“每个人都应该学习编程,因为它教会你如何思考。”编程思维在各个行业都用得到,是未来人工智能时代每个人都应具备的一种思维,先人一步学习编程,快人一步把握未来机遇。

关注苏州程序大白,持续更新技术分享。谢谢大家支持

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。