自学编程,82岁老奶奶证明学编程永远不算晚

当软件开发人员都没有兴趣为老人做移动游戏的时候,82 岁的日本老奶奶自己动手做了一款。去年她开始学编程,并创建了一款非常流行的应用。

来自日本的82岁的若宫雅子去年决定为老人开发一款移动游戏。

这位退休的银行职员于2017年初开始学习编程,并开发了一款免费的iOS游戏《女儿节祭坛》(Hinadan),这款游戏主要面向日本的老年人。自从一年前首次亮相以来,该应用在苹果应用商店获得了近5颗星的好评,在全球范围内约有5.3万次的下载。目前若宫雅子正忙着筹划英文版、中文版和法文版。

当Facebook和苹果宣称29岁和31岁的员工为中年人时,若宫雅子却远远超越了这些年龄歧视者。

苹果CEO蒂姆·库克在出席加利福尼亚州圣何塞举行的科技巨头年度全球开发者大会时,称若宫雅子为“世界上最年长的应用开发人员”,从那以来的几个月里,东京本地的关注在持续增长,对于常常将超过40岁的员工视作“老人”的科技领域来说,这相当于一记响亮的耳光。

去年,日本政府任命若宫雅子为老年问题特殊委员会;就在上个月,若宫雅子在联合国纽约市总部举办的一个活动上发表了主题演讲,题目是“为什么数字技术对老年人至关重要”。

对若宫雅子来说,这一切源自动机。据悉截止到2055年日本老龄化(65岁及65岁以上)人口将高达40%,若宫雅子在面临这个挑战时表现出无所畏惧。

若宫雅子在最近接受千禧年出版商Refinery29的采访时说:“随着年龄的增长,老年人往往会感到沮丧,因为他们会失去……家庭成员。教老年人尝试新鲜事物,可以让他们感到兴奋,赋予他们动力,我非常喜欢这种感觉,而且愿意分享这种感觉。”

当注意到自己所在的国家(在美国AARP Games提供了很多选择)没有面向老年人的移动游戏时,若宫雅子曾向软件开发人员提出过建议。

但是他们表示没有兴趣,并且还建议她可以自己开发一款游戏。若宫雅子接受了这个建议。于是她购买了编程的书籍,并通过Facebook Messenger和Skype参加了远在离家(日本神奈川县)200里外的一位程序员的课程,学习了苹果的Swift编程语言。

这不是若宫雅子第一次接受挑战。她从60岁起就开始涉足科技领域。

若宫雅子曾在银行从业43年(她从18岁开始就业),退休以后的很长一段时间里,她都在照顾90岁的母亲。由于孤独,希望与外界保持联系,于是她购买了第一台电脑,后来换成了微软的个人电脑,再后来还用了Mac和iPhone。75岁的时候,在若宫雅子学习钢琴期间,她终于加入了一个名为Mellow Club的老年人计算机俱乐部,在那里她学习了Excel。然后,就在去年若宫雅子开始全神贯注地创作游戏《女儿节祭坛》(Hinadan)的游戏。

该应用是根据日本每年一度的女儿节的玩偶创建的,玩家可以按照特定的顺序摆放12个观赏玩偶,这些玩偶代表国家的皇帝、家人和客人。若宫雅子说,该游戏需要细细地记住各种的摆放顺序,在年长女性中间特别受欢迎,因为她们可以跟孙子孙女一起玩。

若宫雅子告诉Refinery29:“他们找到了一个真正为他们制作的应用。”

尽管若宫雅子的故事听起来非常不可思议,但她只是“银发”科技前沿之中的一份子。2015年,时当98岁的澳大利亚老奶奶Millie Browne创建了一款名为“Millie’s Game”(米莉的游戏)的应用。去年秋天,纽约时报报道说,免费在线编程平台Codeacademy的4500万全球用户中,大约有100万的用户已步入55岁。然而,从退休银行职员到科技名人的兴起,让若宫雅子感到十分意外。

最近若宫雅子告诉亚洲新闻频道,“我没想到这个幼稚的应用会引起如此巨大的反响。”

如今她很渴望开发更多的游戏应用,她说:“我有很多想尝试的事情。”

原文:https://www.aarp.org/work/working-at-50-plus/info-2018/worlds-oldest-app-developer-fd.html
译者:弯月,责编:言则

年纪大的程序员去哪了,84岁的程序员如此回答

Quora 上有人问「年纪大的程序员去哪了?」

2017年,84 岁的 Gerald Weinberg 回答到:

As far as I can tell, I’m the oldest old programmer to answer this question so far. I’m so old that the title “programmer” didn’t even exist when I started.

根据我的判断,我应该是能回答这个问题的年纪最大的人了。我开始写代码的时候,「程序员」这个职位还没有诞生。

I celebrate my 84th birthday this week, and as far as I know, most of the programmers who were around under various titles when I started (in 1956, maybe 20 of us in the USA) are now dead. I hope they’ve gone to heaven (the cloud?).

过了这周我就84岁了,跟我同时期入行的程序员(1956年,大概20个人)几乎都已经过世了,我希望我的伙伴们去了天堂(也可能是去了云里?)。

Myself, I gradually ceased writing code for money and transitioned to training younger people to be outstanding professional programmers. I still write lots of code for my own use and amusement and learning, but it’s been at least 40 years since I could tolerate writing code for a boss who didn’t understand what programming was all about.

我自己已经慢慢地在停止为了工资写代码,转而去教年轻人如何成为杰出的专业程序员。不过我依然会为了学习和快乐而写很多代码,早在 40 年前,我就已经不能忍受为一个对编程一无所知的老板写代码了。

I’ve earned multiple livings as consultant, teacher, and writer. Always about programming, but more about design rather than coding details as the years went by. If you’re good, you can do any of these things even at advanced age, but you can’t just sit around waiting for someone to find you.

我更多的收入来自于顾问、教书和写作等工作。这些工作都和编程有关,不过更注重整体设计而非代码细节。如果你是一名优秀的程序员,你也可以在年纪大的时候做这些工作。不过你不能傻坐着等别人来找你,你要善于推销自己。

If you’re not good, then either get good (it’s never too late) or retire. We don’t need mediocre programmers, and we never did.

如果你还不够优秀,就快点让你自己变优秀,否则就早点退休做点别的吧。我们不需要平庸的程序员,从来不需要。

原文:https://zhuanlan.zhihu.com/p/35404320

小白都可以看得懂的”第一个Java程序”

小白都可以看得懂的”第一个Java程序”

# Java简介
Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。Java可运行于多平台,如Windows, Mac OS, 及其他多种UNIX版本的系统。

# Java环境安装\编辑器准备
java开发工具包JDK:http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

在「环境变量」中配置三个属性的值:JAVA_HOME,CLASSPATH,Path。

– 变量名:JAVA_HOME
– 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置

– 变量名:CLASSPATH
– 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个”.”

– 变量名:Path
– 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在CMD命令行中使用命令:java -version, java, javac 检测是否成功的安装了 Java JDK。

Java编辑器下载地址:http://www.eclipse.org/downloads/

# Java的第一个程序HelloWorld.java

如果你有过其他面向对象开发的编程,可以更加容易理解,Java本身也是一门面向对象的编程语言,整个的Java的程序可以理解为是对象的集合。

我们第一次接触,还不需要理解的非常深入,关键是能够找找Java的开发感觉。

比如这个简单的 「Hello World」入门的第一个代码,你要尽可能的彻底理解它,当然在后续我们学习Java的面向对象知识后,会比较深入的理解。

首先我们的代码文件名为:HelloWorld.java。

1. Java文件是 `.java` 后缀;
2. 文件名和类名要一致
3. 类名的首字母是要大写的,多个单词时,首字母要大写(遵循驼峰命名)。
4. 类名区分大小写。

在类当中定义了一个 main() 方法:

1. main() 方法是程序运行的入口;
2. public, static 是权限修饰的关键字(在后续的面向对象知识中会涉及到,暂时先不理解那么深入)
3. main(String[] args) 也可以写成 main(String args[]), 括号中()传入的是参数;不同于PHP的语法,在Java中定义变量时必须制定变量的类型,这里定义的是一个名词为 args 的字符串类型的数组。(关于更多的数据类型:诸如整型、浮点数、字符、布尔,会在后面的章节涉及到)

System.out.println(“Hello World”) 怎么理解呢?从它最早实现的功能会比较好理解,它的作用是输出“Hello World”字符串。

1. System.out.println() 是Java提供给我们的方法,关于更多的像字符串操作、数学运算等等…我们只需要死记硬背就可以了!至于为什么这么写,后面慢慢就明白啦!比如:”.”语法就是访问对象的方法的运算符。(先理解到这里,不要着急)
2. System.out.print() 少了 ln,2者之间最大的区别是,一个换行,一个不换行。(^_^, 自己敲代码会印象更深刻的哦,我也是通过敲代码发现2者之间的区别的!)

# 运行Java第一个程序

为了方便大家能够更加清楚的对比,我使用 git bash 来运行我们的第一段java代码,大家也可以使用 CMD 工具,效果是一样的。

– 首先在运行之前,当前文件夹只有:HelloWorld.java 文件;
– 执行命令:javac HelloWorld.java 就会生成 HelloWorld.class 文件(二进制文件)
– 然后执行命令:java HelloWorld 就会执行我们的java程序,输出Hello World。

通过这个实例,我们能够初步的理解Java代码的编写和运行过程啦!是不是觉得这种感觉很奇妙!

虽然,目前我们的代码只是最最简单的输出一个字符串,但是这是一个最好的开始!

彩蛋:前面我们看到的 abcde 纯字符的 HelloWorld.java 文件经过javac命令编译后的 HelloWorld.class 二进制(机器可以懂的代码)是长这样的:

写代码,就是每天进步一点点!

PHP生成EXCEL表头列名称

生成如下的数组:

A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ
BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ

 

用于导出EXCEL文件。

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function excel_header($num = 0)
{
    $arr = range('A', 'Z');

    $no = ceil($num / count($arr));

    $data = array();

    if ($no <= 1) {
        for ($i = 0; $i < $num; $i++) {
            $data[] = $arr[$i];
        }
    } else {
        for ($i = 0; $i < count($arr); $i++) {
            $data[] = $arr[$i];
        }
        for ($i = 0; $i < $num - count($arr); $i++) {
            $list = (($i + count($arr)) % count($arr));
            $data[] = $arr[ceil(($i + 1) / count($arr)) - 1] . $arr[$list];
        }
    }

    return $data;
}

写程序难在什么地方?

关于程序员的话题,可能会有几个这样的关键字:找不到女朋友、加班狗、薪水高、屌丝、鄙视链、跳槽、改Bug……感觉更多的是自嘲吧!其实这些都不是事,今天我们来说说程序员为什么自称码农,最苦逼的地方在哪里?

如果说学习编程,是一件挺有意思的事情,那么能够写出自己的第一个小项目,会兴奋好一段时间,可是和其他工作类似,比如重复的事情做N遍,也会有厌烦的时刻。

假设一个程序,有30个选项,每个选项有是或者否2种可能性,测试所有可能性有2的30次方,有10亿之多。

1天有60*60*24=86400秒,如果每种可能性需要发费1秒钟测试,那么10亿需要34年,想想都觉得恐怖吧,更加恐怖的是在于,不止30个选项。

在知乎见过这么一个段子,说一个客人在饭店点餐,点了一份宫保鸡丁。假设把这个场景放在程序员的工作当中,会是这样的。

一、原始需求
服务员,给我来一份宫保鸡丁。

二、中途变更需求
厨师做到一半,突然跟服务员说:不要放肉。
服务员:不放肉怎么做啊?
客人:不放肉就行了,其他正常做。
服务员:好的,您稍等!

三、改动太大,部分重构需求
厨师:你大爷!我肉都已经回锅了
服务员:客户非要这么要求的嘛!你把肉挑出来,不就行了!
服务员:行你大爷!然后还是一点点把肉挑出来了。

四、低估改动成本
客人:服务员,菜里面可以给我加一点腐竹吗?
服务员:行,这个应该挺简单的。

五、新需求引入了新研发成本
厨师:你TMD,不知道腐竹得提前泡水吗?炒到一半,你才说?跟他说,想要吃腐竹,需要等半天。
服务员:啊你怎么不早说
厨师:早说你MLGB,我怎么知道他要往宫保鸡丁里面放入腐竹啊?

六、某一功能点摇摆不定
客人:服务员,还是把肉加回去吧!
服务员:您,刚才不是说不要肉吗?
客人:现在,又想要了
服务员:行!您稍等

七、甲方是大爷
厨师:怎么这么想日你?菜都炒过火了你让我放肉?还好,肉我没扔。
服务员:客户提的要求你日我干嘛?
厨师:你就不能拒绝他啊?
服务员:人家是客户嘛!

八、改动开始导致工期延迟
客人:服务员,服务员,怎么这么半天,还不上菜!
服务员:您稍等,我给您催催!

九、开发者请求重新排期
厨师:催你M催啊,腐竹没有泡好,我还得重新放油。

十、甲方催活
服务员:抱歉,加腐竹的话,还需要等半天,您别着急哈
客人:什么,还要等多久?我现在就要吃,你们能快点嘛?在不端上来我就撤单。
服务员:好,您稍等

十一、开发者开始和中间人PK
厨师:日你个仙人板板,这改来改去的,逗我吗?这么下去,我要死了

十二、因工期过长,再次改动需求
客人:服务员,这样吧,腐竹不要了,换成蒜薹就能快点了吧,对了,再加上一点番茄酱。

十三、频繁修改开始导致大量冗余
厨师:我日了狗啊,你TM不知道蒜薹也得掉水啊?还有你怎么让我往热菜里放番茄酱啊???
服务员:掉水总比腐竹强吧,番茄酱往里一倒不就行了吗?很难吗?
厨师:草!腐竹,我还得接着泡,万一这孙子又想要了呢?

十四、奇葩需求
客人:茄丁加了没有,我去其它饭店,可以加了茄丁的啊。
服务员:好好好,您稍等

十五、奇葩你也得做
厨师:去他大爷的,他吃的宫保鸡丁是村西头瞎子王老头炒的宫保鸡丁吗?宫保鸡丁里面放茄丁?
服务员:茄丁炒了扔里面不就行了吗?
厨师:那他妈的还叫菜吗?哪个系的?
服务员:客户要,你就炒了吧
厨师:麻痹,你顺便问问腐竹还要不要,这盆腐竹占地方,不要我就扔了啊

十六、黑暗前的最后黎明
“服务员,还要多久好啊”
“很快,很快…”
“再给我来一杯西瓜汁”
“好…”
“你再不好,我就走了啊,反正,还没有给钱”
“很快,很快”

十七、最终决战
10分钟后
“咦,我上次吃的不是这个味道啊?”
“从厨房杀出来的大厨:我TM就日了你的狗了…”

人物对照:
厨师:码农
客户:老板/甲方
服务员:客户经理、产品经理

现实中点菜当然不会出现这么啼笑皆非的情况,但项目开发中的一些主要矛盾,和上面的例子有很多神似的地方。所以如果有人问编程最难的在哪里,也许从来不是语言本身,而是业务逻辑、需求变更,还有就是项目的管理吧!比如一个项目管理者最头疼的应该是,团队里出现了一个水平很差的程序员,提交代码等同于提交了更多的BUG,诸如此类!

所以,听完上面的这些,如果你还觉得编程是有趣的并希望成为你的职业,那一定是你的真爱。

便宜点,我就会买吗,我应该在哪个平台选择购买相机?

写这篇文章之前,首先说说为啥写这篇文章!

原因:

1.参与到一个新的电商网站项目,准备要上线了,但怎么运营,团队思路却很混乱。
2.我想挑一部价位在6000多左右的单反,然后尝试几个平台比较价格。

电商平台数据比较与分析

选择搜索的关键字:相机型号+镜头焦距。这是影响相机价格的核心因素。当然后面你可以看到除此之外还包括是否带赠品、套餐之类的,先不看。

确定了搜索的关键词为:EOS 800D 18-135mm

  • 官方渠道:6699
  • 分销商渠道:6390~6588 (上下浮动198元) 备注:部分有提供延保、赠品的额外服务
  • 支持分期:费率在月0.5
  • 物流:大部分从北京发货

  • 官方:7199
  • 分销商渠道:6299~6800 (上下浮动500) 备注:天猫的价格波动取决于套餐搭配的物件(诸如:备用电池、三脚架、相机包配件等等)
  • 支持分期:费率在月0.5
  • 物流:广州、北京、上海

  • 分销商渠道:套餐价格 6358~6758 (上下浮动400)
  • 不支持分期
  • 物流:北京等

  • 官方:7099
  • 分销渠道:6749~6960 (上下浮动200左右)
  • 物流:2天
  • 支持信用卡、分期月0.5

整理数据如图:

根据数据图反馈,总结几点:

1.JD价格稳定,天猫套餐丰富价格浮动就较大,苏宁高不成低不就,亚马逊价格整体高于水平线。
2.天猫商家比较丰富(12月免息、套餐种类繁多)副作用是造成B2C的体验感略差,比较难以做出选择,销量大的卖家比较分散,这和天猫有广告系统有关(付费可以靠前)。
3.JD销量比较集中在几个有实力的大卖家身上,产品的排序没有广告的干扰。
4.物流方面:JD > 亚马逊 > 天猫

备注:本次数据仅以该单品为例。毕竟电子类产品算是JD的优势品类。

我到底该如何选择我的相机

任何数据分析最终的目的,是指导我们最终的决策。那么,这一篇幅我们要围绕,用户如何选择来进行阐述,价格因素是否重要呢?

文章的标题是:便宜点,我就会买吗?

所以,我们以价格作为本次阐述的主要出发点。因为这和最近我参与的一个项目有关系,价格是否应该作为一个新产品的卖点呢?它到底会起到什么样的作用,请拭目以待。

首先,我依据的点主要如下:

1.价格低很重要。因为任何好的产品一定是优于以往的产品,作为电商用户,价格是最敏感的,不能倒退。但价格低最大的问题会是是否是假货呢~所以官网渠道还是具有一定的吸引力的,这个应该是天猫的软肋之一,但可以肯定价格太低,肯定是不靠谱的。在天猫的运营里,同样的产品,价格越低也会获取到更好的流量(如果是这类薄利多销的产品类型,比较适合天猫平台)
2.平台也很重要。主要考虑:平台的品牌形象,作为电商以往的购物体验,比如:物流、支持分期、售后政策等;
3.APP\网站购买体验比较次要。电商的发展已经相对比较成熟,也是一个已经存在并且竞争激烈的市场,网站的购买体验感都已经比较成熟,这一点在平台之间没有体现出那么重要的地位。其他网站应该向这类成熟的平台靠齐即可!
4.平台的性质。我们知道天猫的盈利主要靠收取第三方卖家的交易手续的提成;JD包含自营和第三方入驻卖家,第三方入驻卖家丰富了产品的品类,但是有严格的审核机制,解放了JD的现金流。平台的提成应该相差不大,尤其是竞争激励的品类应该几乎没有什么差别。天猫全依靠第三方卖家,在产品的稳定性上是比不上JD的,这也是为什么JD一直以不卖假货作为品牌宣传,提到天猫的问题大部分也是会买到假货等;

那么,到底,我会做出什么样的选择,其实作为用户,选择天猫、JD都有自己的理由(抱歉,其他平台不用考虑在内了)。

用户群分析:

天猫:

1.大众消费者(更多套餐可以选择,而且确实有些商家,比起JD价格要低一点点,如果算上一堆赠品看上去非常划算,至于赠品质量的问题就不是我要考虑的问题);
2.对价格比较敏锐的用户(对产品比较了解的用户群体)。

京东:

1.大众消费者(对京东的电子类产品已经比较认可的消费者,过往的购买经历让其选择了京东;物流比较好,同城发货当天可收到货;价格比较稳定靠谱)

分析到这一步,结论应该是:电子类产品,我对价格的敏感度不高更多考虑是否稳定、安全,便宜点,我也不一定会买的。(忍住,迎接双12的到来,能省一点是一点,买到便宜的价格,这种成就感也是非常好的,这种感觉应该是从淘宝开始养成的)。

我会怎么买?电子类产品,尤其是大件的,可能首选JD。像风扇之类的,会去淘宝或者阿里巴巴,谁便宜就选择谁。服装类,会选择天猫类(因为笔者是男性的原因)。服装品类是天猫的一大优势,但是针对女性服装品类,主战场还有:唯品会、美丽说等。家居类会选择淘宝,这一品类感觉淘宝会经常有意想不到的惊喜,管他是不是仿货、比如仿外观等等呢。化妆品和饰品(买的比较少不做评论),针对女性市场,美妆品类网站还有:聚美、唯品会、网易考拉等。母婴类产品也算是一个大众消费品类(不做评论)。

电商,应该把价格作为卖点吗,不应该只是卖点!

国内的电商消费市场,几乎就是天猫、JD霸占。能够杀出重围的唯品会、聚美、考拉、社交电商类、母婴类基本上属于专注在细分领域的电商类型,可以想象电商行业的机会其实不多。

电商产品把价格作为卖点,是否合理呢?我的观点如下:价格是不可以作为卖点的,低是应该的,否则可能连关顾的用户都没有。这种价格低是以节约其他方面的成本来降低的价格,应该考虑的产品核心,其次也要考虑品牌的形象宣传。比如:流量获取的成本低、采购的成本低、复购率高、公司运营高效等等。但作为新兴的平台,并且是已存在市场分一杯羹,难度是竞争对手的N倍。毕竟降价是最简单、最粗暴的招数,任何人都可以降价,只存在是否降的起的问题(很显然,创业产品是不适合把价格低作为卖点的,而应该是降低成本的地方作为产品的核心优势)。

有产品意识的人,应该听过“痛点”。现有的产品无法满足用户的需求,能够把这一类“痛点”很好的解决的产品,才是比较有希望的,否则必将随着钱烧完了而完蛋。而解决“痛点”应该是每一个做产品的人应该敬畏的地方,它需要不断追求、勇于探索、试错。

做出1个产品,运营思路如果有问题,会影响很大,它不仅影响产品营销宣传的方向,也决定了产品开发方向。做产品也是没有办法偷懒的,而是逐步积累的,产品运营的任何一个问题,都有被无限放大的可能。何况,决定产品成败的因素可能很多很多,有的因素影响大,有些小而已罢了!所以JD能够成功也是有原因,以电子品类和家电为主、自建物流都成功的走在了天猫的前面,整体很稳健有自己的优势。

这个大叔不太冷
2017.12.1