【新手上路常见问答】一步一步理解程序设计

目录

1. 程序设计需要怎样的思维?

2. 程序设计者要具备怎样的性格特征和思维能力?

3. 读哪些书可以入门学习程序设计?


为帮助开发者小伙伴快速学习快速提高,我开辟了《新手上路常见问答》栏目,将大家的问题汇集起来,希望能给大家一些快速导引,避免给自己挖坑,少走弯路。

如何为不懂程序设计的人解释程序设计并帮助他们理解程序设计?今天聊一聊。

图片来自网络 

1. 程序设计需要怎样的思维?

 

图片来源:

我曾编过这篇文章【哲思与实战】计算机思维 Computational Thinking,我们每个人都具有计算思维,它是人类突破局限解决问题的途径之一。计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维是一种递归思维,它是并行处理。计算思维根据准确性、效率和美学因素来评价程序,计算思维要求评价系统设计时还要考虑简洁和优雅性。计算思维采用抽象和分解这两种方法设计复杂的系统。计算思维通过冗余、纠错的方式在最坏情况下预防、保护和恢复。计算思维利用启发式推理寻求解答,在不确定情况下规划、学习和调度。计算思维需要平衡空间和时间,平衡处理能力和存储容量。计算思维影响了很多学科,比如计算思维中的机器学习改变了统计学。计算生物学、计算博弈论、纳米计算、量子计算分别改变了相关领域科学家的思考方式。计算思维要求人们能在抽象的多个层次上思维;计算思维不是要求人类像计算机一样思考;计算思维要求人们融合数学和工程思维;计算思维是一种思想,我们可以利用其解决问题、管理日常生活以及与他人互动交流。

2. 程序设计者要具备怎样的性格特征和思维能力?

我曾写过 【趣说】程序猿/媛特有的个性魅力_苹果二的博客-CSDN博客

【软件开发与人】做一个快乐的程序猿/媛,谈到过程序员们通常具有的特征,他们谦虚、诚实、肯于承认自己的错误、有耐心、有着好奇心和强烈的求知欲,懂得与他人合作,有创造力却也遵守一定的纪律,懂得坚持也懂得放弃,紧跟潮流,坚持学习,会用高明的手段偷懒,有些好习惯。

Pete Goodliffe在《编程匠艺》一书中风趣地写道,理想的程序员应该是政治家,能够和各种各样软件的利益相关者合作,比如管理人员、测试人员、支持人员、客户或者用户等等。

 

图片来源:What is a Stakeholder? (Definition and Examples) | Glossary

他们是亲切的人,可以愉快地与别人合作,具备良好的沟通技巧,善于演讲也会倾听。至于怎么做,可以参考【实战技能】关于开发者的沟通技能_苹果二的博客-CSDN博客_开发人员的沟通能力

【提高逻辑思维能力的好习惯】词要达意和有效沟通_苹果二的博客-CSDN博客

他们是艺术家,可以设计出优雅的解决方案。


他们是技术天才,代码很稳定很好用,拥有广泛的技术能力,不局限在某一个狭窄的领域,也就是我们今天说的全栈人才。

图片来源:The Myth of the Full-stack Developer

从思维能力来讲,优秀程序员应具备良好的分析能力,逻辑思维能力和抽象思维能力,良好的阅读和写作能力。

3. 读哪些书可以入门学习程序设计?

这本书的官网地址是:How to Design Programs 

图片来源:How to Design Programs

 Matthias Felleisen  Robert Bruce Findler , Matthew Flatt和 Shriram Krishnamurthi 所著的How to Design Programs: An Introduction to Programming and Computing 一书,中文版名称叫《 如何设计程序:程序设计和计算引论》,是一本程序设计教科书,讨论如何从问题描述到最终写出组织严谨的程序。书中没有强调算法和语言细节,而是专注于教授程序的设计过程,也不阐述某个特定的应用领域。这本书通过给出一系列明确的程序设计指导,引导学生一步一步地从问题的描述出发,通过明确定义的中间过程,训练阅读、分析、组织、实验和系统思维能力,最终写出程序。书中使用了一个全新的程序设计环境。程序设计环境会随着学习者所掌握的知识的多少而改进,该环境最终可以支持完整的 Scheme语言,使用该语言既可以编写大型程序又能编写脚本程序,可以完成所有领域的编程任务。

荣获2008年Jolt大奖的Head First Programming: A learner's guide to programming using the Python language也不错,面向没有编程知识的初学者,通过一贯经典的图形化轻松的方式教会读者,读者可以了解所有编程语言的核心功能,包括:变量,语句,决策,循环,表达式和运算符。读者学会使用函数重用代码以及使用库代码以节省时间和精力,还可以选择最佳的数据结构来管理复杂的数据,学会编写与Web通信的程序,和其他程序共享数据以及编写测试代码的程序。

 

图片来源:www.amazon.com

如果我们能容易地为帮助大家理解程序设计,我们自己对程序设计的理解也会不断加强。我们自己的程序设计能力也可能变得更好。

欢迎留言讨论,如何做好程序设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值