职业证书

曾经做什么都有相关部门认定能力水平发个证,HR 的工作应该轻松不少吧?

曾经,技术工人还要评定等级

技术等级证书

某人很早居然就学了计算机,我都不知道

煤炭部的计算机等级证书

大一时我考了个助理工程师职称资格,不过后来一直没有走职称体系

程序员证书

某人赶快就去搞了个高级职称,据他说他本来就有的

高级政工师

然后就一路走起

纯粹无聊去考的 某人一直说自己珠算很厉害 一直以为他们的企业文化很土... 有证的会计和无证会计有多少差异? 教授级

为什么要做程序员

今天看到一本书说:

有证据表明,人们很自然地把计算机当人来对待。当计算机表现好的时候,我们认为它们是队友,而当它们固执或无礼的时候,我们也会像对待固执或无礼人的一样对待它们。

感觉好有道理,然后他又说:

你的工作是当一个好的管理者:找到充分利用优点、摒弃弱点的方法。 并且找到使用你的情感来解决问题的方法, 而不是让你的情绪干扰你有效工作的能力。

……

要是有这种心情,直接去管人好不好?

做程序员的好处,难道不是程序不好用的时候就可以砸键盘吗?

难道不是砸完键盘,PM 马上就会来安慰并奉上一只新的 HHKB 吗?

自己写的 bug,哭着也要调通啊…

线性代数与鸡兔同笼

线性代数很难学!

因为书真的很难懂。可能是数学家并不希望我们能和他们站在同一水平线上,他们讲出来的东西充满的黑话和切口;也可能是我还没学会、还没理解数学的精妙,所以无法理解…

我总怀疑是教育的问题

毕竟一切自己的无能都可以怪教育、怪家庭、怪党怪政府

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。 现代的线性代数教育都是这么开始的吧…… 这个定义是如此精妙,以至于几乎不包含什么有用的信息。好吧我知道$ \begin{matrix}1 & 2 \cr 3 & 4 \end{matrix} $这样是矩阵了,然后呢?

然后,讲课的白胡子老头就在黑板上多举几个例子,你慢慢想起了五行八卦、奇门遁甲、风水堪舆、封神演义…… 我擦嘞,这门课不会这么NB吧?

认真听课、认真听课!看看老神仙用矩阵干嘛。

然后!可但是! 转折出现了:老神仙老头说介玩意用来解方程组…… 你是不是有病?说好的封神演义呢?我想祭起一块金砖砸你你造吗?

然后,老头老家伙带着你解了无数的方程,系数都没超过过100,丫的竟然还是用高斯消元法!我本来就会好不好?你这样搞比直接解方程还麻烦了好不好?你就是有病!

然后就是标准的大学生学习方法:逃课、抄作业、考试周突击、放假忘光。

现在你都解释不清楚线性代数是干嘛用的吧?我就问你敢不敢说自己当年学过线性代数?

老神仙讲奇门遁甲的时候反正我是不在教室的……

矩阵是线性变换

逃了一些课之后,再去上课就像听天书了……全是没听过的咒语。只能无助地看着一堆 $ 1 2 3 4 5 $ 在黑板上各种变换。

把一些点变来变去又有什么用呢?结论还是:有病!所以,继续不上课。

昨天忽然想通了:运动是相对的。变换也可以是点不动,坐标系动;结果就可以得到不同坐标系下同一个点的向量表述。忽然就理解机器学习是在寻找什么了:用两种不同的语言,描述同一个东西,找到两种语言的翻译方法。描述用向量表示,翻译方法就是一个矩阵,翻译过程居然就是
$$ Ax=b$$
我擦嘞!老神仙第一天就讲了这个!忽然想哭有木有?

有监督的机器学习就是:给出一堆 $x \to b$ 的映射,让机器帮忙找到一个 $A$, 尽量满足所有的 $Ax=b$。然后再拿到新的 $x$ ,马上就可以做 $A \cdot x$, 得到相应的 $b$ 表述。

这玩意一点儿也不高深啊!怪不得科学家们都不说人话,一上来就和你谈使用贝叶斯的时候如何进行拉普拉斯平滑才能更好地…… 而且,顶尖科学家会在说明过程中向你投掷100个公式!完全无法一起开心地玩耍。

真的吗?

我也觉得这种理解太肤浅了!所以尝试用这个思想推导一下鸡兔同笼问题来验证。

因为线性空间要求实数域,我们假设鸡和兔兔的头和腿能被精确地分割成小数:半只鸡就一条腿、$\frac{1}{4}$只鸡就半条腿。嗯,没毛病。 额,还有负数只…… 就当欠别人吧。

对于一个给定的事实:一些鸡和兔兔们在一起,我们用两种视角去看待它:

  • $c$只鸡和$r$只兔兔在一起,我们(在鸡兔坐标系中)用$(c,r)$表示。如果我们用向量 $\binom{c}{r}$ 来表示这种描述,可以证明所有鸡兔数量的向量构成一个向量空间。 此处我们使用显然定理,哇哈哈哈~ 另外,它其实就是$R^2$。

  • $h$只头和$l$只腿腿在一起(好恐怖…),我们(在头腿坐标系中)用$(h,l)$表示。我们用向量 $\binom{h}{l}$ 来表示这种描述。

可以证明两种表述间存在一一对应关系,此处再次使用显然定理,哈哈哈~

另一个重要的事实是对于这一堆动物,不管从什么角度去观察,虽然得到的观察结果看上去可能很不相同,但它们描述的都是一个毫无差别的事情。这一堆里面有几只鸡几只兔子、有几个头几条腿、或者其它的特征,不因观察而变化。这和盒子里的半死不活猫不一样。

正向思考总是很容易

已知鸡兔数量求头和腿的线性变换很容易想出来:
$$ \begin{bmatrix} 1 & 1\cr 2 & 4\end{bmatrix} \cdot \binom{c}{r} = \binom{h}{l}$$

咱们把这个矩阵叫做 A。 $ A = \begin{bmatrix} 1 & 1\cr 2 & 4\end{bmatrix} $

逆向就不是那么容易了

前面的思考告诉我们这个变换是存在的,但想直接写出来并不是那么容易(其实也不难)。但线性代数告诉我们反向的变换就是 $A$ 的逆矩阵 $A^{-1}$。

既然现在不是上学了,那么显然是要用工具进行具体计算的, 于是:
$$ A^{-1} = \begin{bmatrix} 2 & -\frac{1}{2} \cr -1 & \frac{1}{2} \end{bmatrix}$$

我们验证一下,假设有5个头和14条腿:
$$ \begin{bmatrix} 2 & -\frac{1}{2} \cr -1 & \frac{1}{2} \end{bmatrix} \cdot \binom{5}{14} = \binom{3}{2}$$

现在不管多少的头配腿,只要放到式子里面一算,马上就知道鸡和兔兔数量啦!

哇!这招数好神奇

$$ \begin{bmatrix} 1 & 1\cr 2 & 4\end{bmatrix} \cdot \binom{c}{r} = \binom{h}{l}$$
其实吧…
$$ 就是这个 \begin{cases} x + y = 5 \cr 2x+4y=14\end{cases} $$

到头来还是在解方程组…

只要用这一个矩阵就可以直接搞定一切鸡兔同笼问题了!

另外:

  • 乌龟和螃蟹在一个笼子里…

    (螃蟹十足目哦~ 我开始就用8条腿算的…)
    $$ \begin{bmatrix} \frac{5}{3} & -\frac{1}{6}\cr -\frac{2}{3} & \frac{1}{6}\end{bmatrix} \cdot \binom{头}{腿} = \binom{龟}{蟹}$$

  • 三头四腿地狱犬和双头八脚章鱼怪在一个笼子里 (如果不互相吃的话…)
    $$ \begin{bmatrix} \frac{1}{2} & -\frac{1}{8}\cr -\frac{1}{4} & \frac{3}{16}\end{bmatrix} \cdot \binom{头}{腿} = \binom{地狱犬}{章鱼怪}$$
  • 大师兄讨厌的百足千眼多目怪和二师兄喜欢的八足八眼蜘蛛精
    $$ \begin{bmatrix} -\frac{1}{900} & \frac{1}{900}\cr \frac{5}{36} & -\frac{1}{72}\end{bmatrix} \cdot \binom{足}{眼} = \binom{多目怪}{蜘蛛精}$$
    密集恐惧症要犯了!!!想一下就恶心,怪不得大师兄也受不鸟
  • 进阶的:蜘蛛有8条腿,蜻蜓有6条腿和2对翅膀,蝉有6条腿和1对翅膀。已知共有21只,有140条腿和24对翅。奥数解法是先把六条腿的当成一类,一共做两次鸡兔同笼方法解决。矩阵:
    $$ \begin{bmatrix} -3 & \frac{1}{2} & 0\cr
    -4 & \frac{1}{2} & 1 \cr
    8 & -1 & -1 \end{bmatrix} \cdot \left(\begin{array}{}{头}\cr{腿}\cr{翅}\end{array}\right) = \left(\begin{array}{}{蜘蛛}\cr{蜻蜓}\cr{蝉}\end{array}\right)$$

    本题就:
    $$ \begin{bmatrix} -3 & \frac{1}{2} & 0\cr
    -4 & \frac{1}{2} & 1 \cr
    8 & -1 & -1 \end{bmatrix} \cdot \left(\begin{array}{}{21}\cr{140}\cr{24}\end{array}\right) = \left(\begin{array}{}蜘蛛 & 7\cr蜻蜓 & 10 \cr蝉 & 4\end{array}\right)$$


然后我们来看看机器学习

先做个线性回归,可以看到训练效果很好,很快就收敛到可接受的程度。之后用了一些时间来解决小数点后好多位的问题,因为我设置的训练停止条件是误差为0。
线性回归: 400
结果: 方差

这只是验证一下,毕竟线性回归这种事情用 Excel 也能做

神经网络学习蜘蛛蜻蜓蝉哦: 400
结果: 方差

随便输出两条计算结果,已经很接近了。如果是求整数解,那就是正确的了:
结果

密码计算器

经过与苹果半个月的沟通, 这个严肃的软件终于在愚人节被通过审核上架了…

screen

你可以用它来帮忙选择强壮的密码;也可以查询互联网上已知的危险密码。


密码强度计算器

奥数大冒险

历时4个月,和 Andy 合作的 App 奥数大冒险 终于发布。

git

服务器用 Python 实现、客户端暂时只有 iOS 版;Andy 完成了对数学教育现状的研究并设计了所有关卡内容;同时感谢他妹的帮助:制作 UI 图片。

目前1.0版本发布的内容功能尚不完全,关卡内容也只完整完成了3年级部分。

功能规划: 2.0 功能规划



截图

奥数大冒险

Memory Defragment

第三次能源战争胜利以后, 智能核心的发展已经接近瓶颈.

生命存在的意义是什么? 我们无法回答这个问题.

记忆挖掘机, 发现惊人的历史真相.


截图

记忆挖掘机

卖包包

为学习和测试, 第一个个人 app 逐步完成, 很欣慰第一个不是计算器.

这是一个简单的放置型游戏, 老板黄鹤跑路之后, 你就只能卖包包生存; 但你想逆袭, 想干掉lv!

购买录音机可开启魔性的加速模式.


截图

卖包包

有人问什么是云

小学课本说,1752年6月,本杰明·富兰克林用风筝将电从云中引到地面,人类正式开始使用电力,从电人开始。

1801年,有记录人类开始尝试利用电力照明。 1880年,爱迪生在多个国家多个专利诉讼后,发明了电灯泡;1906年,爱迪生的通用电气具备了廉价制造钨丝灯泡的能力,钨丝电灯泡被使用至今。

1866年,西门子公司完成了人类第一台发电机。如果不考虑法拉第圆盘等科学实验的话

1882年,爱迪生电灯公司在伦敦建立发电站,安装3台发电机,可以为1500个16瓦的灯泡供电。

人类开始了在点亮夜晚的道路上蹒跚前进,期间发生了无数的故事,包括但不限于爱迪生使用各种卑鄙手段打压特斯拉的交流输变电。

今天,我们拥有从柴油发电机到三峡大坝各种大小的发电设备;从要取缔的小煤电到光伏核能等清洁能源;通过交流输变电系统传遍大地,点亮了水立方和整个夜空。

发输变电技术只由少数人类和公司进行运行维护,对于非洲以外的世界大部分人类而言,电力是插座里面的东西,按需使用,抄表付钱。 除了个别机构很少人维护自己的发电系统了,人类用电从发电用电一体逐步演化成集中发电、专业输变电、到处用电的格局。

电力,从高科技变成流行,然后时髦,然后逐渐变成生活必须品;电力公司,也从新潮企业变成了基础设施。

####然后

1941年,人类发明了第一台电子数字计算设备(ABC,用于解29元线性方程),开始了利用电力(而不是年轻科学家+纸笔)来提供计算能力的征程。

1969年,NASA 拥有的全部算力远低于你手中的设备,NASA 利用这些算力将人发射上了月球,而你用它发射小鸟来打猪。

伴随着民用计算机与互联网的发展,大家都拥有自己运维的计算能力,而这些建设运维能力逐渐离开了业务中心,不再成为企业的核心价值或竞争力。逐渐有人希望能专注业务,不想再花费精力在算力维护上,就像不想费精力去自己发电。

1983年,SUN 提出“The Network is the comouter”。

2006年3月,亚马逊推出了商业化的EC2弹性计算云。

云计算开始了全世界迅猛的发展,按量付费集中提供硬件基础设施(IaaS)、软件平台(PaaS)、乃至全套可用软件系统(SaaS)等帮助用户摆脱麻烦并开始产生规模化效应。而在中国主要是“云计算中心”房地产业务。

####最后
电力从一开始只能电人逐渐发展成可以提供庞大算力的天网体系,可能是为了纪念将电力从云中引入人间,我们将这种模式命名为了云计算。

BigButton

受微信帖子影响做的开源硬件, 主要原因是原作者不卖了…只好自己动手.

完成图

这个按钮做好了以后一直没遇到参与什么重大活动的机会, 主要曾用于在 iMac 上触发命令:

1
say "救命啊,我被关在电脑里啦!"

孰为好学?

招聘越来越难, 或者说招聘到好人越来越难. 终于超过了底线 - 一个好人也找不到了.

今天又看到了夫子被人问”你哪个学生比较爱学习?”的时候的回答, 深深地感受到了那种无奈和凄凉.

[论语][雍也] 哀公问:”弟子孰为好学?” 孔子对曰:”有颜回者好学, 不迁怒, 不贰过, 不幸短命死矣. 今也则亡, 未闻好学者也.”

不幸短命死矣…… 唉~

曾经的兄弟们都是凭爱好去学习的; 如今, 新人都是找各种理由不去学习. 谎称完成了学习任务, 却连资料第一页上面的概念都没听说过的人有之; 不学习, 技术考核不通过就说安排的学习任务其实工作中完全用不到的有之; 不学习, 技术考核凭想象乱说的有之, 这是什么样的自信啊!

子曰: 中人以上, 可以语上也; 中人以下, 不可以语上也.

老子曰: 上士闻道, 勤而行之; 中士闻道, 若存若亡; 下士闻道, 大笑之. 不笑不足以为道.

看来, 是我错了. 没有能够正确地理解”有教无类”, 还狭隘地以为什么样的人都可以教育成人才.

不打算再浪费时间了, 大家”修行在个人”吧.