Mr.C/文

子曰:“知者不惑,仁者不忧,勇者不惧。”

前言

《穷爸爸,富爸爸》里面有句话是这样说的:“对于受过良好教育的爸爸,工作的稳定就是一切;而对于富爸爸来说,不断学习才是一切。”

许多时候,我们的恐惧并非来自所恐惧的事物,而是来自我们自己的未知,想克服某种恐惧,我想最好的解决方法是主动去适应,也就是人们常说的,走出舒适区。

随着近二十年计算机界的蓬勃发展,继而导致了某个新品种程序猿的大量"繁殖",如果你身边也有该品种的存在,并且你想和他们可以有职业上的交流,或者想要套得猿心,懂得猿类之间术语,读此系列文,事可成矣。

如何走上编程之路?

本文的目的是让你知道如何像一个计算机科学家那样思(da)考(kai)问(nao)题(dong),这个脑洞的打开方式结合了数学、工程和自然科学三个学科的最优特性。比如说:

很数学的方式:计算机科学家们

很工程的方式:计算机科学家们同样需要设计一些组件,并把它们组合成一个系统,在组合的过程中还需要权衡各种方案带来的利弊。

很科学家的方式:计算机科学家们同样会去观察一个复杂的系统,并且会做出一些假设,通过实验区验证是否可行。

计算机科学家最重要的一项技能是 “解决问题能力”,问题解决能力意味着你需要拥有以下三项技能点:

知道问题在哪里(犹如当年霍去病打匈奴,你要打败敌人,首先得知道敌人在哪)

能够制定出解决问题的方案(作战计划)

并且可以清晰、正确地实现方案(战场上的排兵布阵)

当然,想在计算机领域有所成就,除了需要拥有以上三点问题基本解决技能外,掌握编程技能是必不可少的。

如果你觉得你拥有以上技能点,那么就可以开始上路啦(T^T)~~~ 对,就是那条传说中的 编程之路。

On one level, you will be learning to program, a useful skill by itself. On another level, you will use programming as a means to an end. As we go along, that end will become clearer.

编程之路之—— 算法

如果说 解决问题方式 是计算机科学最重要的部分,那么就是在解决问题中所创造出来的解决方案可以说是重中之重,这里的解决方案,我们便称之为 算法。

算法是一连串解决问题的招式,比如我们想从A点到B点,那我们选择的方式可以有 自己开车、坐地铁、坐公交或者打Uber(当然,如果你是数年前的本山大叔,还可以坐直升飞机),这里的方式就是我们解决 “从A点到B点” 这个问题的的“算法”,由此可见一个好的算法和一个差的算法,虽然同样可以解决问题,但是他们之间的效率却可能相差上百倍(这就是一个好的程序员顶得上十个普通程序员的说法来源之一)。

算法是理论上的解决方案,而实际上对算法的实现需要依赖于具体的编程语言,“编程语言是一种工具”(我想这句话每个读计算机的孩子都有听伟大的老师们讲过吧?)。

事实也确是如此,编程语言就好比你选择了Uber后打到的是一辆奥迪还是一辆奥拓,算法在某种程度上决定了我们解决某个问题的速度等级,但编程语言(前提是对不同计算机语言同样熟悉的情况下,不包括语言学习时间成本)只是影响我们到达目的地的舒适度。

** 所以,算法很重要。**

编程之路之——程序

按照维基百科的说法:程序(英语:procedure),指特定的一系列动作、行动或操作,而这些活动、动作或操作必须被运行于相同方式以为了在相同环境下恒常得出相同的结果(例如紧急应变程序)。不太精确地说,程序可以指一序列的活动、作业、步骤、决断、计算和工序,当它们保证依照严格规定的顺序发生时即产生所述的后果、产品或局面。一个程序通常引致一个改变。

其实,看完维基百科的中文解释后,作为几乎天天跟程序打交道的我也是一脸蒙圈的...

这样子会吓走一大批妹纸的,对,怪你囖,维基百科君。

其实程序我们可以这样理解,它分为5个部分:

输入

输出

数学和逻辑语句

判断语句

循环

喂喂~ 别走吖!我还没解释完呢,不要看到这个5个名词就看不下去了好不好?

我们可以把这五个过程对应为我们平时撩女(男)神的过程,在计算机执行的程序就好比我们的撩妹(汉)过程:

程序组成部分

计算机

撩妹(汉)过程

输入

键盘/文件(*通常从文件获取,比如我们在Windows下常看到的.exe **)/网络外设

对女(男)神发自内心(或身体)的期盼

数学逻辑

与、或、非逻辑是否成立

女(男)神当天的心情是否适合date?(如:只要Ta 6级考试通过或者你找到了一家好吃的餐厅:可Date,称之为或。 需要Ta 6级考试通过并且你已经找到了一家好吃的餐厅才可Date,称之为与。没有人约Ta的时候你才可Date得到,称之为非 ,可怜T_T。)

条件判断语句

if语句

你今天是否已经达到了约对方的条件?达到则可执行 下一步:拿起手机,给Ta发微信或者打电话啦~~

循环语句

while或for语句

如果被女(男)神拒绝了午餐,是否继续重复约晚餐?如果晚餐还被拒绝了,是否重复约明天早餐? 如此反复...称之为循环矣。

输出

图像显示或者发送某些数据到设备上

这里的输出,当然是,要不要准备好Date完之后的事宜啦。

是不是很简单?

是不是很简单?

是不是很简单?

假设计算机是我们的身体,那么程序就是运行在我们身上的思考过程。

我们身体 所观、所闻、所触 就相当于计算机中键盘或者鼠标的 输入,而我们在获取外界的信息后再大脑内部经过的思考过程,就相当于 程序在进行 数学与逻辑运算、条件判断以及是否循环的过程,而最终我们的 所行 以及 所想 就是我们大脑在执行程序后的输出。

编程之路之——Bug & Debug

什么是bug? bug正常翻译为中文的意思为:虫子。

那为什么我们程序上的错误会被称为Bug呢?

因为... 它第一次出现真的是因为一只Bug:

据说,1947年9月9日,一只小飞蛾钻进了计算机电路里,导致系统无法工作,一位名叫格蕾丝·赫柏的人把飞蛾拍死在工作日志上(见图),写道:就是这个 bug(虫子),害我们今天的工作无法完成——于是,bug一词成了电脑系统程序的专业术语,形容那些系统中的缺陷或问题。

世界第一个Bug记录

我相信Bug这个词大家并不难理解,不过我还是以 幽默、易懂、充满趣味 的方式再讲一遍吧!

以 A点到B点 为例,Bug 我们可以理解为是在我们从A点到B点过程中出现的各种意外,比如:

接单的Uber司机突然被交警抓了(此时Debug方法为重新下单)

走路过去B点的时候突然下起大雨 (此时Debug方法为等雨停或买把伞)

比如本山大叔因为太过高调而... (此时Debug方法为:不~ 这不是bug,这是特性!)

以** 追女(男)神** 为例,Bug 我们可以理解为我们在约会过程中各种小插曲,比如:

对方因为打游戏或者煲韩剧通宵并且关机 (此时Debug方法为,等~)

对方因为心情不好而不想和你说话,并扔了一只狗 (此时Debug方法为,等~)

对方因为另一个人而放了你飞机 (此时Debug方法为...

所以,Bug 和 Debug就是一个出现问题和解决问题的过程。

如果你一直听到你的程序员朋友说他一直在加班调Bug,你不需惊讶,因为在我们的生活中我们自己不也是一直处于出现问题和解决问题的过程中么?

我们属于大自然创造出的奇迹,而计算机只是我们人类所创造出来的物品,那么,连我们人类本身都一直出现问题的话,程序它,一直有Bug,又有什么不正常呢?

而且,计算机科学家们正在 创造着我们的计算机世界,创造者们在创造过程中不断修正错误,也就没有什么不正常的了,所以, 请善待你身边一直加班改Bug的 猿类。

结语

本话题也将以系列文的方式推出,本章先以 幽默、易懂、充满趣味(捂脸) 的方式介绍 算法、程序以及Bug 三个计算机界基本法概念,望喜欢。

其实计算机科学家和软件工程师(程序猿)是有差别的,计算机科学家偏向于计算机理论,而软件工程师会更偏向于计算机应用,一般来说,"大多数的后者" 应用 "少数的前者"所研究出来的理论至现实世界中。所以他们之间的语言和方法,是共通的。 ↩

像计算机科学家一样思考在线,如何像计算机科学家一样思考?(女生篇)相关推荐

  1. 计算机基础16秋在线作业,答案计算机基础16秋在线作业四

    答案计算机基础16秋在线作业四+ v7 F& F6 X" z$ K+ k3 l- W 一.单选题: * ^, J3 R- H% Q! K, ^1.与录音质量无关的参数是(    ). ...

  2. 计算机等级考试一级在线模拟,全国计算机等级考试一级模拟试题1

    全国计算机等级考试一级模拟试题1 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 15.9 积分 全国计算机等级考试一级模拟试题-1.通常人们说&q ...

  3. 计算机word考试试题在线,2017年计算机职称考试试题关于Word2003精选题4

    一.单项选择题 1. 若要输入y的x次方,应: (1.0) A.将x改为小号字 B.将y改为大号字 C.选定x ,然后设置其字体格式为上标 D.以上说法都不正确 2. 下列有关页眉和页脚的说法中不正确 ...

  4. 高二计算机考试操作题在线,高二会考 计算机 操作题

    文件--保存 在Flash中新建一个动画文件,名字为"文字动画.fla" (1) 将图层"图层1"改名为"世界杯" (2) 在图层" ...

  5. 关于计算机图形标准化的论述 哪个是正确的,地大《计算机图形学(新)》在线作业 参考资料...

    地大<计算机图形学(新)>在线作业 参考资料 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 7.9 积分 球球 535540683计算机 ...

  6. java-net-php-python-java在线花店网站计算机毕业设计程序

    java-net-php-python-java在线花店网站计算机毕业设计程序 java-net-php-python-java在线花店网站计算机毕业设计程序 本源码技术栈: 项目架构:B/S架构 开 ...

  7. java-php-python-ssm星光在线光影系统计算机毕业设计

    java-php-python-ssm星光在线光影系统计算机毕业设计 java-php-python-ssm星光在线光影系统计算机毕业设计 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  8. java-net-php-python-67ssm在线投票系统计算机毕业设计程序

    java-net-php-python-67ssm在线投票系统计算机毕业设计程序 java-net-php-python-67ssm在线投票系统计算机毕业设计程序 本源码技术栈: 项目架构:B/S架构 ...

  9. 计算机相关科幻小说,科幻小说家和计算机科学家总是用人工智能来迷惑我们,计算机可以...

    科幻小说家和计算机科学家总是用人工智能来迷惑我们,计算机可以自我思考. 相关句子 1.从更广泛的意义上看,借助计算机科学,我们可以了解人类思想的本质和理性的意义,学会回答如何度过一生这个最古老的问题. ...

最新文章

  1. Oracle Application R11i
  2. 双控专业就业机器人_工业机器人专业好就业吗?有哪些机器人技术岗位?
  3. 水晶报表——小代码,大作用(转自CSDN,阿泰)
  4. union all动态表_深入窥探动态链接
  5. 口语语言理解(SLU)最新资源库:综述、数据集、开源论文
  6. 自己动手写游戏:飞机大战
  7. LInux命令随笔记
  8. java反向映射_opencv 直方图和直方图反向映射
  9. 免费开通二级域名的论坛
  10. 在linux下添加路由
  11. 第三百三十六章 斗宗强者间的大战!
  12. Leetcode每日一题:108.convert-sorted-array-to-binary-search-tree(有序数组转成BST)
  13. [LibTorch] 指定参数不进行学习
  14. 资源丨用PyTorch实现Mask R-CNN
  15. JavaScript知识点之如何使用匿名的方法做条件判断
  16. [转载]windows 7 IIS 7.5 ASP.Net 文件上传大小限制
  17. java并发编程(四) 线程池 任务执行、终止源码分析
  18. python英文单词记忆游戏单词爆破机
  19. py---web学习笔记09(JQuery)
  20. 蓝牙bluez进行HCI编程

热门文章

  1. 全国计算机技术与软件专业技术资格(水平)考试分数查询、2022软考分数线、系统分析师分数线、软考初级中级高级分数线
  2. 【转】四大Linux图形界面赏析:KDE、Gnome、Xfce、LXDE
  3. 第1章 机器学习基础
  4. Mobility First与NDN的比较
  5. [Ubuntu 16.04] [Memos] install samba
  6. IOS技术分享| 互动连麦场景实现
  7. 洛谷P5594-【XR-4】模拟赛(模拟)
  8. Windows 系统重装 - Mac 制作 Win10 启动盘
  9. 《安富莱嵌入式周报》第268期:2022.05.30--2022.06.05
  10. 怎么把图片转换成BMP格式