机械键盘拥有很强的段落感,敲起来就一个字——爽!再加上它超长的使用寿命,让程序员对它爱爱爱不完,就像女人对于包包的执念。不同的是,后者是在花钱,而前者是用来创造财富的工具。一手好代码全靠它去敲,当然得花心思挑个有**儿又好用的~
机械键盘常见的有黑、红、茶、青四种机械轴:青轴段落感最强,敲起代码来清脆爽快,但笨球要提醒一下,如果在办公室使用不利于维系同事关系哟,因为声音太大惹,会扰民~黑轴刚好与青轴相反,段落感最不明显,声音也最小,但更适合游戏玩家。相对而言,茶轴和红轴则是办公游戏两相宜了。
适合程序员放在办公桌上的高品位物件
适合程序员放在办公桌上的高品位物件
京东 圣达宗食品旗舰店
cherry樱桃京东自营旗舰店 - 京东
适合程序员放在办公桌上的高品位物件
适合程序员放在办公桌上的高品位物件
京东 圣达宗食品旗舰店
HHKB京东自营旗舰店 - 京东
适合程序员放在办公桌上的高品位物件
程序员办公桌必备高**物件二:人体工学办公桌
现在的上班族每天最短的工作时长是8小时,再加上路上开车和在家坐着休息的时间,每天坐着的时长就能达到12个小时以上,如果是程序猿这个群体,那时长…大概还要再加一两个小时了…久而久之就有了颈椎病、腰椎病、身体肥胖等久坐病!想要站着上班,奈何桌子太矮无法好好办公,这种时候人体工学办公桌就有了用武之地!
适合程序员放在办公桌上的高品位物件
京东
人体工学办公桌 - 商品搜索 - 京东
程序员办公桌必备高**物件三:智能屏幕挂灯——明基ScreenBar
程序猿经常有挑灯夜战的时候,每天长时间面对电脑和显示器,眼睛难免会酸涩难受,因此选择一款让眼睛更舒适的照明设备是必要的。
适合程序员放在办公桌上的高品位物件
适合程序员放在办公桌上的高品位物件
天猫精选
BenQ 明基 AR17_C 屏幕挂灯
实时价格9小时前已更新
969元起去购买
活动
满999减30
程序员办公桌必备高**物件四:小黄鸭
据说程序猿的桌上一般都会有个Debug神物——
当他们无人诉说改bug的苦闷心情时,小黄鸭就是最好的倾诉对象。
适合程序员放在办公桌上的高品位物件
适合程序员放在办公桌上的高品位物件
淘宝
小黄鸭_淘宝搜索
程序员办公桌必备高**物件五:重大决策按钮
重大决策按钮,很好玩的外设,这玩意不算黑
在这个互联网时代,我们出门购物、拍照、打电话、浏览信息,只需要带上一部智能手机就可以了。如果在20年前,要实现这些功能,需要带一大堆东西。如今,我们口袋里的这台计算机,和50年前送宇航员上月球的那台计算机相比,功能更强大,体积更小巧。
计算机为什么功能强大,能读懂人类的语言?直到我看了《写给所有人的编程思维》这本书,解答了心中的疑惑,明白了计算机的工作原理。这一切能都离不开程序员的编程设计,说到编程,人们总是想到程序员坐在电脑面前,敲击着一长串神秘的代码。其实,编程体现的是人类的智慧。
在《写给所有人的编程思维》这本书中,阐述了计算机的 历史 和二进制工作原理,以及如何创建编程思维。计算机的编程需要逻辑、推理和数学。编程思维可以提升思维能力,创造性地解决问题。
学习编程思维并不是要掌握编码技巧,而是学习一种解决问题的思维方法。本书有四章内容:学会编程思维;解决问题;学习编程语言;继续努力。
本书的作者吉姆·克里斯蒂安,是英国著名的 科技 教育专家,编程怪才,曾获得Dr.Dobb’s程序设计卓越奖。
我们来看计算机是怎样读懂人类语言的,我们如何用编程思维解决问题。
计算机的特征。
计算机是指能够接收、转换、存储信息,再用设定的形式将信息输出的电子设备。
计算机的形式多种多样:手机、平板电脑、台式计算机、笔记本。虽然它们形状各异,但内部的结构都大同小异,都有:主板、网络、输入和输出设备、外存储器、随机存储器、微处理器。
微处理器就是人们常说的中央处理器或CPU,是计算机的大脑, 负责处理“思维”工作。
在微处理器的内部,有成千上万个开关等待电信号的到来,电信号通过通道和闸门的开关,以二进制数字的形式生成。 微处理器的核越多,每秒能够运行的指令也就越多。
编程就是将人的想法、思维,翻译成计算机能读懂的二进制数字语言,转换成计算机要执行的动作。
计算机的语言--二进制。
计算机中所有的输入和输出,都是由无数个0和1组成的二进制数字经过编码、解码,转换成计算机能识别的代码实现的。
二进制是1679年,由德国天才大师莱布尼茨研发出来的。 二进制是一种计数方式,只用到两个数字0和1,因为计算机只能识别0和1组成的代码。
0和1这两个数字掌管计算机内部晶体管的开关,1表示开,0表示关。 人们 *** 作计数机,就是通过控制计算机内部晶体管的开关,引导电流进入正确的方向,实现程序运行的。
我们工作、生活中常用的算数是十进制,就是逢10进1。 计算机的二进制规则是逢2进1 。 1和0就是计算机能懂的语言, 表示开和关,是和否,真和假。
在二进制中,数字1,用1表示;数字2用10;数字3用11;数字4用100;数字8用1000。
如果用十进制,两只手只能数到10,但如果用二进制,一只手就能数到31。
如果用两只手,就能数到1023,因为在二进制中,后一根手指的数值是前一根手指的两倍。第1只手的小拇指表示16,另一只手的大拇指就表示32,食指就代表64,中指代表128,无名指代表256;小指代表512。
这个 游戏 很好玩,能够锻炼创新思维 和逻辑思维 。
二进制数值还可以用来表示英文的26个字母,A用数字1;B用10;C用11;……
如果这组信息:1000 101 1100 1100 1111 拼写出来就是“你好”,这样就将人类语言 转化成 计算机能懂的语言。
计算机语言讲究语法和语境,一个逗号,一个字母就能改变整个句子的意思,可以说,差之毫厘,失之千里。
计算机的编程语言经历了机器语言、汇编语言、高级语言三个阶段,世界上的编程语言有100多种,但是常用的只有10-15种,这里介绍几种编程语言。
算法
算法就是为了完成某项任务,按照设定的顺序执行的一系列明确的指令。 算法中指令越具体、越明确,指令运行时出错的概率就越小。
比如我们让一个叫小智的机器人来整理床铺。
因为小智不明白“整理床铺”的做法,我们整理的要求是:把羽绒被、毯子、枕头收拾好,所以我们下达的指令要具体、清晰。
1. 将羽绒被平整地铺在床上。
2. 将毯子平整地铺在羽绒被上。
3. 将枕头放在毯子的上面。
算法就像做菜使用的菜谱,是计算机要执行的命令,我们来看一下,给机器人小智发出指令,做一个加奶酪的三明治。
你看,在上面的步骤中,描述很具体,讲到了如何握刀,刀口的方向,其实,还可以具体到小刀的角度和抹黄油的速度。
在7-10步中,指令包括了涂抹黄油的时间,因为小智不知道涂抹黄油多少才算够了,所以,程序员做出估算,大概需要三秒时间。
循环
编程语言的设计要做到便捷、高效,在算法编写时,要做很多具体的指令,不仅繁琐,而且还有重复。为了避免重复的指令,在编程中,可以用循环来处理一些基础的指令,让程序变得简单一些。
比如,我们让机器人小智走过来10步,我们要说10次“向我走1步”,这样下达的指令不仅繁琐,还容易在次数上出错,解决方法就是用循环:“向我走10步。”
循环就是执行重复的指令,直到过程结束的一种结构。 循环分为两种:计数循环和条件循环。
计数循环是通过次数控制的循环,叫for循环 。for循环会一直重复指令,不管结果如何。
条件循环式通过条件来控制循环次数,就是While循环。
在算法中运用循环,修改一个语句就能完成双倍的编程工作,达到事半功倍的效果。
比如,我们在三明治的程序指令中,可以运用循环来提高效率。在第10步之后,多加一条指令:重复以上1-10步。这样,机器人就会重复工作,但是这样会出现无限循环,机器人会按照指令工作,一直在面包片上涂抹黄油,直到面包片用完,最后程序崩溃。
为了避免这一缺陷,我们要对程序进行修补,将步骤11修改为:重复以上1-10步,直到给两片面包片涂完黄油为止。这样增加了一个特定的条件,就使机器人的 *** 作更加完美。
变量
编程中经常会遇到变量,变量就像一个贴着标签的盒子,里面装有变量名和变量值。
电子 游戏 中经常遇到变量,比如, 游戏 角色还剩多少条命,命的次数是变量。
我们人体也有变量,比如:头发的长短,身高、体重的变化,年龄的增长。
下面我们来做一个猜年龄 游戏 。
在这个 游戏 中,程序中的年龄适用于任何年龄的人,人的年龄就是变量名,年龄的数值是变量值,可以编写出:((年龄×2+1)×5+5)×10-100==年龄
经过推算,左边的公式最后的结果是100倍年龄,划掉最后两个00,自然就是年龄了,这个 游戏 玩的就是数学魔术。
条件语句
条件语句是计算机根据给定的信息做出选择的语句。
生活中,我们每天都要根据条件做出选择。比如:如果人行道信号灯是红色,那么我们就要等待绿灯亮,否则就可能被车撞倒。
下面我们来做一道和条件语句相关的题:假如你去找朋友约翰还钱,结果发现,约翰、詹姆斯、威廉是一模一样的三胞胎,有人告诉你,约翰、詹姆斯总是说谎话,只有威廉说真话,你只能问一句话,确认此人是不是约翰,你会怎么问?
正确答案是:“你是詹姆斯吗?”因为威廉说真话:“不是。”詹姆斯说谎话:“不是。”只有约翰说谎话,是唯一一个回答“是”的人。
调试
调试这一术语起源于20世纪40年代,是美国海军少将格雷斯·赫柏提出的。她在哈佛大学为计算机编写程序时发现了一只真正的虫子(bug)钻进了计算机,使计算机无法正常运行,调试(debugging除去虫子)由此而来。
调试就是仔细检查编写过程、算法、流程图,排除并修复使程序无法正常运行的问题或错误。
在编写程序的过程中,计算机只是执行接受的指令,不会像人类一样思考,所以,在程序编写完成后,要花很多时间在代码的调试上。
调试常用的方法是:寻找bug(程序错误);给代码加注释;小黄鸭调试法。
小黄鸭调试法看似很笨,却很有效,就是在电脑旁放一个小黄鸭,然后对一无所知的小黄鸭解释程序中的所有细节。
这个方法的奥妙是,程序员给不懂编程的人解释代码如何运行时,必须非常详细的讲解代码运行的细节,程序员就会发现到程序中的错误,自己解决问题。
编程思维包括理性推理、逻辑思维和数学运算,学习编程思维能够创造性地解决问题、表达思想。
编程思维有四个部分:问题分解;模式识别;抽象思维;算法设计。
问题分解
模式识别
比如,我们要在一些网站上登录,会被要求输入验证码,这就是模式识别,目的是为了防止其他人伪装成用户开启别的功能。
抽象思维
使用抽象思维时,要抛开那些与问题无关的信息。
比如,你星期天下午两点要去打球,家离球场有5.2公里,你上午要给花浇水,拖地板,中午要去妈妈家吃饭,估计一点钟能吃完,妈妈家距离球场有3.5公里,那么在一点到两点的时间内,要走多远的路?
在所有的信息中浇花、拖地都与去球场无关,因为妈妈家离球场的距离更近,唯一的相关信息只有一个:妈妈家离球场有3.5公里。
算法设计
你一定听说过数学天才高斯的故事。1785年,高斯的老师给学生出了一道题,把1-100的数字全部加起来,老师本来想多占用一些课堂时间,没想到令老师吃惊的是,只有8岁的高斯很快给出了答案:5050。
在那个年代并没有计算机,高斯也不是从头到尾将数字一个个相加。
我们来看高斯是怎样用编程思维来解决问题。
首先是问题分解,他将一个大问题分解成小问题,找出每组数字的规律性,就是每对首尾数字相加,得数相同。
其次是形成自己的模式识别,可打乱顺序,只要把所有数字相加就可以,1+100=101,2+99=101……,有50组首尾相加等于101的数字。
再次是采用抽象思维,略去了不必要的算数步骤,没必要将首尾数字依次相加到最后一组,
最后是算法设计,是用乘法进行运算:50×101=5050。
无论计算机的功能多么强大,也是人类赋予的,真正强大的还是人的大脑。
随着互联网的发展,人们的生活已经离不开计算机,比如:用手机打电话、听歌、拍照;用电脑发邮件、浏览 财经 信息;在超市买东西结账,只需扫码商品,计算机会自动结算金额,核对账单。
《写给所有人的编程思维》这本书告诉我们,编程是人与计算机之间的桥梁,人类通过编程创造了更加美好的世界。我们可以不学编程,但要学习编程思维。
编程思维是我们解决问题的元技能,与我们的生活息息相关,工作、学习,甚至家务劳动,都离不开编程思维的逻辑能力和创造力,学习编程思维就是学会思考。
作为自己在工作的一种记录,因为我一直认为产品经理(Product Manager 简称PM)算是一种新行业、(都说PM始于宝洁,但是也可能更早之前就出现过做着PM做的事,但他是其他职位的人。)进入中国不超过15年。所以需要我们不断的与其他的PM或人进行讨论、实践、总结,再讨论、实践、总结。形成进步学习的闭环。
敏捷开发之用户Story
用户Story也叫用户故事只需要X度一下,全部都是相关的介绍和说明,我这里就不再过多的需求。他们每一篇的内容大致都是说用户故事需要遵守INVEST原则。
INVEST原则
Independent:独立性
用户故事之间应该具有独立性,不应该依赖于其他的用户故事。一般可以通过组合用户故事或者分割用户故事来减少用户故事间的相互依赖性。
Negotiable:可协商
用户故事是由客户或者PO同开发小组的成员共同协商制定的,用户故事代表了一个用户群体的需求,而这个需求是零散的,通过相关人员的沟通,协商经常可以丰富用户故事。
Valuable:有价值
用户故事对于最终的用户是有价值的,因此应该站在用户的角度去编写,描述的是一个一个的feature,而非一个一个的task。
Estimable:可评估
对于一个用户故事的划分需要足够的领域知识,使得在划分故事之时就能大致了解故事开发的周期,为了减少估算的不确定性,故事本身不能太大。
Small:短小
故事应该尽量的短小,当然也不是说越小越好。短小的故事可以减少分解过程中估算的误差,最好的故事是能够在一个迭代周期之内完成的。如果太大就应该考虑将其拆分为多个粒度更小的用户故事。
Testable:可测试
如果一个用户故事无法进行测试,那么也就无法判断该故事是否真的完成。所以,用户故事必须在定义了验收测试通过的标准后才能认为用户故事开发完毕。
下面我就说说我的看法吧。希望对各位和我都起着 小黄鸭 的作用吧:)。
用户Story
一、用户Story的作用
用户Story,我认为是在我经历过的项目中起一个特殊的地位。在开发中你可以不使用Story,你都可以完成整个流程的开发。这样的结果只是会被“锤脑壳”。。。至于原因嘛Emmmm...
除了减少“挨打”的次数,用户Story还是以简短的话语尽量还原”场景“下的用户需求。用户是在怎样的一个情况下提出这个需求的。
二、用户Story—基本要素
写用户Story的时候我们需要围绕三个基本要素来写。用户(角色)、需求(目的)、原因(好处)三点。
通过一定的需要修饰就组成了我们常见的Story语句。
来源 http://thebside.ca/未商用侵必删
三、用户Story—用户(角色)
在写用户Story时我们最先写的就是用户(角色),作为Story的开头,用户(角色)十分的重要,因为我们产品出发点都是从用户(角色)出发,不同的用户(角色)他们的需求和原因都是大不相同的。不同用户(角色)之间,都会存在着相互矛盾、相互冲突的需求。(就像在居民楼里休息的上班族与居民楼外广场上跳舞的阿姨,他们就可能存在着冲突)所以我们在”创建用户“时一定要给他附带属性。如:学生、程序员、 Coser 等或者在这些属性前加上特殊字以便 自己 更好的确定用户属性。如:秃顶的程序员(疯狂暗示)、没钱的学生、 富LuoLi 等
四、用户Story—需求(目的)
在前面明确了用户(角色)之后,我们就需要确定他的需求(目的),一方面可以从我们的 商业价值 来表述。另一方面也可以从用户需求来描述(其实我觉得他俩就是一个,能够解决用户需求的产品,能够解决的方式,方法也是他的商业价值)。
我们在描述需求(目的)的时候,我们需要尽可能地不要直接去描述功能(虽然知道是什么功能)。至于原因,我个人认为是为了更加偏向于”真实需求“。
举个例子:在是古代,人们只能骑马,从西藏到黑龙江需要几十年(瞎掰)。
这个时候有个传令官需要从西藏到黑龙江。这个传令官就是角色那个的需求是什么?按照我们现在的思维的话,他需要的飞机,直接飞过去。几个小时就可以达到。但是这个需求是真实的吗?肯定不是,那他的真实需求是什么? 他的真实需求可能只是能够更快的到达目的地(黑龙江)罢了。
把时间换成现代,马儿变成车,但是他的需求还是不是飞机这个”功能“还是只是能够更快的到达目的地(黑龙江)罢了。
这样在后期开发就尽量避免出现我只想要个指甲刀,结果你给我一把瑞士军刀,延长了开发周期和资源成本。
五、用户Story—原因
最后一部分就是用户Story中的原因,是什么样的原因促使前面的用户(角色)产生了前面的需求(目的),是开发没有女朋友吗?是后端的纸片人没有更新吗?更或者是为了治疗秃顶?
原因其实很简单只需要从实际出发,而非凭空想象,即可。
六、常见的Story模板
一、我是(角色),我希望(功能),这样(好处)。
二、作为(角色),我想要(商业价值),以便(原因)。
三、作为(角色),我想(目标),以便(某种原因)。
在写Story的时候我们需要尽可能的保持刚刚好的详细,让用户Story有“笔直性”。避免增加过多的细节要求,让Story变得复杂。
结尾大家也来试试写一些用户Story。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)