引子1:

A:“您好,请问您们那边的sb系统的环境好了吗?我们这边调用失败呢,还请帮忙看看,谢谢!”
B:“好滴,我马上去查”
B:“cc, 在吗?刚甲方说他们的什么调用失败,让我看看环境,什么环境啊?调用是什么啊?为什么要我看,我看什么啊?”
CC:“就是咱们公司的sb系统,咱们给甲方提供的有功能调用,他们要调咱们的API”
B:“API是什么啊,怎么调?”
CC:“……”

引子2:

A:“您好,您这边需要的样本数据我已经发给你了请查收”
B:“已收到,但是怎么是乱码呢”
A:“我这边是好的啊,你用什么打开的?”
B:“excel啊”
A:“用 notepad++吧,把字符编码转成utf-8就好了”
B:“cc,在吗?notepad++是什么啊?字符编码又是什么?utf-8是什么?为什么我打开的是乱码?”
CC:“……”

有这么一群人,他们对计算机的理解仅限于word/excel,看电影,玩游戏。但是很悲催的是他们出于职业的需要又不得不天天同非正常人类的程序员打交道(我一直都觉得程序员属于非正常人类,正常人谁数数从0开始啊:( ),于是日常就变成了
程序员:“我需要你提供XXX需求;我已经把xxx文件发给你了啊,就是那个.csv文件;你把需求讲清楚啊;我已经提供sdk/api了,在xx环境上;你们的xx环境不对需要重配……”
小白们:“不好意思,你说的我不能理解,你能再说清楚一些吗?你的意思是需要我做XXX对吗?”
内心OS:“你TM说的什么鬼,就不能说人话吗?环境不是环保局的事情吗,关我P事?API又是什么?就不能说中文啊?还有,你给的csv是什么玩意儿啊,我怎么看啊?……”
朋友需要我给科普一下计算机的基础知识,今天就写点最基本的吧~
================= 从文章的标题开始 ===============

一、标题里的&符号

大部分人即便没有学过数理逻辑也会知道一些简单的逻辑,比如 小明很调皮并且学习不好,小红不仅长的好看而且学习成绩很好。类似于这种表达,在数理逻辑中我们成为“与”的关系,即符号“与”的左右两边都成立的时候这件事为真。举例:小红长的好看 而且 小红学习好,小明很调皮 而且 小明学习不好。句中的“而且”就是逻辑中的“与”,“而且”两边称之为“条件”,只有两边的条件都成立的时候,整句话才成立。“与”符号每次都写太繁琐,于是用“and”或者“&”符号代替,所以标题就是 妹纸与汉纸 或者 妹纸and汉纸。当然除了“与”以外,还有“或”、“非”分别用"|"和“!”代替,具体含义就是 “或”的两边只要有一个条件成立整个式子就成立,比如“明天晴天或者多云 我都可以出去”,而“非”代表相反的含义。

二、基本名词解释

  1. 环境:经常可以听见XX软件需要运行环境,这里特指某个程序、某段代码运行的时候所依赖的另外的一些软件 因为,目前几乎每个软件都很大很复杂,会涉及到很多功能,最简单的 比如要在电脑上运行美图秀秀,那么我们的windows系统就是美图秀秀需要的运行环境。因为,美图秀秀想要打开照片,响应用户的鼠标单击,对用户的键盘输入做出响应都依赖windows的底层支持,离开了windows 也就没法运行美图秀秀啦,我们还怎么愉快的P照片呢~。同理,很多程序运行的时候需要调用别人已经写的软件,这里已经写好的软件就必须先安装好,安装好这个已经写好的软件就是我们口中说的环境。所以,你想运行python代码,就必须有python环境咯,希望我解释清楚了。
  2. sdk: 直译成汉语就是软件开发套件,本质上和上述的环境差不多,只是换了两个角色,将要运行的软件换成了需要开发的代码,而依赖的环境换成了sdk,本质还是一样的。
  3. API:直译为应用程序接口,一般程序员口中的接口也可以理解成这个东东。比如有段代码要实现查询软妹纸现在有空没有的功能。具体的查询代码已经写好,并且就在这段代码的机器上,那么就是调用sdk中的api了,如果实现查询的代码与这段代码不在同一台机器上,而是在别的机器上(暂且这样认为吧)那么就说调用API咯。然后,我们不用关心到底怎么查询的,在哪里查询的,反正我调了这个api我就能知道软妹纸今天有没有空。
  4. 网络相关词汇。服务器,客户机,IP地址,DNS,NAT, 网关,路由,交换机,私有地址,公网(外网)地址。网络的东西有点杂,其实很简单,我试着解释一下。我们每个人收快递的收获都必须填一个收货地址,要么公司地址要么家的地址,这样快递小哥哥才知道你的宝贝送到哪啊。同理,网络上传输的都是一个一个的数据包,可以理解成你在网上看的电影里的每一秒的图片(其实是最低每秒24帧,为了不解释这个就写成了每秒一张图片,请不要说我误导小白!)都是一个数据包,这个数据包要从服务器(一会儿解释)经过线路达到你的电脑,辣么你的电脑也需要一个地址啊对吧,这个地址就是我们说的ip地址了。暂时就先知道每台电脑想上网就必须要有ip地址即可,ip地址由4个255以内的数字组成,用“.”分割,比如:10.20.33.44。具体的含义,和为啥必须是255以内的,有机会再说吧,又涉及一大段的理论。如果数学稍微好一点会发现一个问题,4个255以内的数字能有的组合很少啊,全世界这么多台电脑,肯定不够用啊!恭喜你,都会抢答了!这是历史遗留问题,感兴趣的请自行百度。为了解决这个问题,于是搞出了私有地址和公网地址,简单讲就是 你家的门牌号可以是7栋103,别人张三家的门牌号也可以是7栋103,但是因为你俩所在的街道不一样,所以即便都是103也行啊!于是,大家就看到了 家里的有台电脑地址是192.168.0.2,公司里也有台电脑地址是192.168.0.2,没毛病。辣么,对应的街道地址哩?家里装宽带的时候是不是有个猫,然后还要去买个路由器啊,安装师傅会把光纤接到猫上,然后把猫和路由器连在一起,我们的电脑再连路由器对吧。这里的猫会有个公网地址即独一无二的地址,就是你的街道地址啦,路由器会把这个地址接收到的数据包分发给你的电脑的,大致就这个过程。所以,如果我们想在外面直接访问家里的电脑 几乎是办不到的,因为不知道街道地址啊。服务器,就是对外提供服务的机器,这里机器可以指具体的一台或多台电脑也可以仅指某个软件提供了某项服务,辣么问题来了,既然要对外提供服务,大家就都得知道它的地址才能访问啊,所以 一般情况下服务器都是具有公网地址的机器。比如,你在阿里 腾讯 百度云上开通的虚拟机,然后申请了一个公网地址。关于DNS,比如 你记www.baidu.com很容易,但是让你记112.56.78.9肯定就不容易了,所以,我们把ip地址和www.baidu.com这种字符串建立一个对应关系,然后就只用记这些字符串就行了鸭,这就是DNS,域名解析协议。NAT,网络地址转换协议啦,把你的门牌号和街道号互转,不明白就算啦,知道有这么个东西即可。对了,有时候经常有人问我 为什么我的qq没问题就是打不开网页呢?很可能就是你的DNS有误,试着重新配置一下DNS或许可以解决问题呢。
  5. 程序员的思维方式。都说一门语言代表了一种思维方式,程序员使用的都是编程语言,所以程序员都是编程的思维咯。其实,这是一种解决问题的思维方式,将一个复杂问题分解成若干小问题,然后去挨个解决这些小问题,最后有机的结合起来。先完成核心功能,建立一个可运行的最小系统,然后再去完善周边。比如要做一个现在很流行的指纹锁,先进行模块拆分,有指纹相关部分和机械锁部分,然后是两部分的有机联系。核心功能 能录入指纹,可以进行指纹认证。周边的比如液晶显示,锁的整体大小,锁的样式等等,可以在这些核心功能实现后再添加。这个问题就解决啦对不~ 再细节一些,我们更倾向于抽取不同问题的共性,然后循环来做。比如,有100道四则运算题需要给出答案,供学生练习使用。最笨的办法就是一道一道的算,辣么100还好说,1000道呢?10000道题呢?再夸张点100万道题。很多问题一旦规模大了就很难办。编程语言中有个循环结构,可以重复的执行循环体中的代码。比如,有个可以计算四则运算的API接口,具体接口内部是如何运算的我们不用管,反正这个接口就是可以给出运算结果,那么就简单了,有多少题就循环多少次,每次调用一次这个接口,我们的问题就解决咯。所以,程序员更愿意提取看似不同问题的共性出来,一次性用循环来解决。这也是为什么总能听见说数学和程序的关系很大了,数学的作用就是用来抽象各种复杂问题,加以总结给出规律。例子就不举啦,省得要写函数把你们吓走~
  6. 最后应同事的要求,解释一下代码里的一些关键字含义,感兴趣的可以看看。其实,代码可以理解成同计算机交互的一种渠道,直接给计算机说"你给我输出2",世界上那么多的语言这句话的表述各种各样,计算机岂不要学N多人类语言啊,所以大牛们就给计算机规定了一套语言,只要遵循这套标准就能和计算机对话了。编程语言有很多,大家经常听见的有c/c++, php(又名:拍黄片), java和目前大火的pyhon,等等,这些语言借用一些英语的词汇或者简写来表达一些固定的含义,我们来遵循这套规则就ok了。
    print: 按字面理解就是打印,只是 这里的打印不是日常用打印机打印出来,而是把内容输出到电脑屏幕上
    for, while:这两个就是上面提到的循环啦,这俩哥们后面跟的就是我们的循环体(要循环的内容),比如你在for的循环体内写一句print(“i love you”),规定循环100000000000次,那么就会在电脑屏幕上看见这么多行的"i love you" 是不是很简单。同理,while也这功能
    int, float, string, char: 这些都是数据类型了,为了让计算机知道该如何处理接收到的数据。int 整型数据,可以简单理解成我们小学学的整数,float:浮点数,就是我们学的实数,string:字符串类型。还有别的一些类型,这些都是编程语言里的关键字
    变量:和我们初中代数里的x差不多,就是可以变的量。在整个代码运行过程中里面的值不断的在改变,需要给每一个用到的变量都起个名字,比如x,y,z
    函数:把一段可以完成某个独立功能的代码块封装起来,然后起个名字,这段代码就是函数了,这个名字就叫函数名
    数据结构:组织数据的方式,常用的有 树,图,队列,栈。有明确前后关系的数据可以用队列来存储,对 就是你想的那样,如同我们日常排到那样,先到的数据先处理,很简单吧。栈,你可以想象一下你和对方下棋玩,你想悔棋了 这个时候,是不是最后走的那一步最先撤走,最初走的那一步最后才能撤回,对头,这就是栈的处理方式了,先到后服务。树和图稍微麻烦一点,其实也好理解。比如考察你家的母后大人和你和你哥哥或者妹妹的关系。有了你母后大人才有你和你的妹妹(哥哥),所以 母后大人就是父节点了,你和你的妹妹(哥哥)就是两个子节点了,假如你还有个招商银行,辣么 你就是你家招商银行的父节点了 一层一层的下来对吧,这就是典型的树型结构啦。我们再来看一下地图,假如我们不care城市内部的到底如何布局的,我们只关心如何不重复的把苏州、上海、杭州、北京、南京这几个城市走一遍,并且高铁票最便宜。这个时候,你会发现,这些城市每两个之间都开通了高铁,即两两之间都有联系,把每两个城市用一条线连起来,然后标上高铁票价格,这就组成了一个图型结构。

    请忽略我超级烂的手写体
    and, or, not:就是前面写的逻辑运算符咯,与 或 非
    if else: 到大名鼎鼎的选择结构啦。媳妇对程序员老公说“下班顺路买十个包子,如果看到卖西瓜的,买一个”,然后下班回家的时候拿了一个包子。因为他在路上看见了西瓜。换成编程语言, if 卖西瓜为真则买一个包子。老铁,没毛病~

第一次写这种文章,有不对的地方,还请指出,我来改。暂时想到这些,如果有什么不清楚的地方,或者需要补充的地方,日后慢慢完善。先完成核心功能 哈哈~

写给需要同程序员打交道的计算机小白们之妹纸汉纸相关推荐

  1. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  2. 如何看待简书大V饱醉豚 写的《为什么程序员是出轨率最高的群体》?

    今天惊闻一篇文章<为什么程序员是出轨率最高的群体(支持双十一程序员脱单专场)>.本身言论自由,总是有傻逼会发出傻逼的言论,不过文章满篇胡言,像我这种还没女朋友的就被出轨了感觉实在生气.来一 ...

  3. 写给想当程序员的朋友!

    原文地址:写给想当程序员的朋友! 作者:岩之GIS (一) 文章由来及个人经历 我是一名计算机专业的本科毕业生,毕业已经1年多了.毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向 ...

  4. 一个老程序员的编程之路,写给年轻的程序员们

    喜欢的朋友可以关注下专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 写在前面 老程序员老了,已经写不动了,但是我依然深爱着程序员这个职业,谨以此文 ...

  5. 那些坚持写博客的程序员,后来都怎么样了?

    作者 | web小二 来源 |  web前端开发(web_qdkf) 如果你不是那最好的5%的程序员,编程也不可能成为你的决定性技能的话,那有什么办法可以让自己成为顶尖人才? 对于今天这个有点浮躁的社 ...

  6. 夸奖对方代码写的好_程序员名言(赞美程序员的句子)

    程序员名言(赞美程序员的句子) 来源:www.yuezhilong.com 时间:2019-09-28 11:55:17 责编:粤之龙文学网 人气:2395 赞美程序员的句子 1. 在你责怪别人之前, ...

  7. 写给想当程序员的朋友(初稿)

    写给想当程序员的朋友(初稿):http://zj.zgz.cn/zj_texts/xg.htm 写给想当程序员的朋友(初稿) ――一个还不太老的程序员的体会 holynoah 转自http://www ...

  8. 程序员如何掌握计算机英语

    程序员如何掌握计算机英语 刘 艺 (这篇文章刊登在<程序员>杂志2002年第2期上) 干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快 ...

  9. python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...

    原标题:神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏! 现在很多人学编程都把Python作为入门语言,其实这是个很不错的选择,那么你知道新手如何学Python吗?小编给大家分 ...

最新文章

  1. Box2dの自定义多边形
  2. java exif_照片EXIF信息的读取和改写的JAVA实现
  3. mac 雪豹 10.6 五国
  4. 优酷超高清视频技术实践
  5. (pytorch-深度学习系列)网络中的网络(NiN)
  6. docker 中运行 mysql
  7. SQLiteDatabase中query、insert、update、delete方法参数说明
  8. 属于服务器端运行的程序_服务器端编程Java 引起人们的注意很大程度上始于 applet...
  9. 小说APP源码—小说app开发如何做到小说APP系统快速搭建?
  10. 国内首批第三方支付牌照正式发放
  11. 2019CCPC女生专场赛_K - Tetris_打表/模拟_暴力之王
  12. 帧同步游戏开发基础指南
  13. dapr的consistent hash
  14. bzoj 3162: 独钓寒江雪 树哈希+树形dp
  15. dpdk-16.04 l2fwd 源码分析
  16. 下暴你的硬盘 超多游戏下载 不爆你找我!
  17. Hbase基础原理及应用(中篇)
  18. 湖北武汉机械员培训机械员培训课程的意义建筑七大员培训
  19. C# socket通信随记回顾
  20. 《机器学习实战》8.2 线性回归基础篇之预测鲍鱼年龄

热门文章

  1. iPhone键盘自定义及通知
  2. 低温导电油墨在汽车电子中的应用
  3. OAK拖拽式图形化编程使用教程
  4. Kafka 安装详解
  5. 文字排版需要遵循的规律
  6. 关系代数:集合运算和关系运算部分详解
  7. 浅谈为何需要反掩码inverse-mask wildcard-mask
  8. 大数据技术 学习笔记
  9. Streamsets Data Collector 3.12
  10. 计算机毕业设计net综合型体育场馆管理系统(系统+数据库+源码+文档)