出门的教训,必须带纸

上了火车才发现,没有带纸。

要坐数十个小时的火车,可以说是很头痛了。

老爸曾说,纸这个东西借不得,因为别的东西都可以还,唯独纸这个东西因为你借了没办法还,所以就别借。

好在我可以很久不吃不喝。所以安全度过。

为什么我愤怒了?

一直以来,我的脾气都是很好的,不愿与他人争吵,产生纷争,因为太过麻烦。

但是今天的确失态了。

回顾自己今天的原因,为什么我失态了?

我觉得主要是两点:

  1. 超出我的预期:原本的方案是 Micro:bit + JS 开发,发现有一些硬伤后,我觉得可以考虑上 Rust ,但是同事觉得应该使用 CPP,对底层进行修改。我觉得成本太高了。而且不认为自己能够处理。
  2. 需要花费大量的时间:由于同事负责的并非是硬件,所以他提出方案后,我觉得这是对我的挑战。而且,由于他不是负责这部分业务,所以我们之间的想法会有所差异。

醒悟

别让情绪操纵自己,做正确的事情,而不是符合情绪的事情。

测试随笔

作为一个开发者,相信你或多或少都会接触过测试,小到”单元测试“,大到”特性测试“,团队人少的开发自己测试,团队人多的专门招个人测试,甚至是有自己专门的测试团队、测试部门。

当我们从简简单单的关注功能到了关注代码质量、关注产品性能、关注软件工程的时候,我们就不可避免的要与测试打交道,可是,你又是否真正关注过测试?

在我看来,测试真正的价值是将软件工程中的一些变量,变成了不变的量。对于一个项目来说,变量越多,我们要处理的问题就越复杂。而测试可以确保我们需要的东西从变量,转变为常量。当他成为常量时,我们在后续的处理相对就更加简单了。

如果用线性代数的话来说,测试其实就是将维度降低了,你每写下一个测试,都将代表着你的软件复杂度的维度降低一维,你解决问题的难度也就越低。

Screeflow vs Camtasia

从极客学院录制课程开始,我就一直使用的是 ScreenFlow。Screenflow 界面美观,功能强大,渲染出的视频大小也不错,所以我就一直用了下来。

k9d7v
screenflow 8

最近因为工作需要,需要录制一个视频,视频需要能够被 Windows 系统编辑,所以改用了 Camtasia ,功能更加强大、界面也不像是使用 Qt 之类的跨平台框架开发的,十分的流畅。非常的爽。

pfbw8
Camtasia 2018

后续我应该会使用 Camtasia 来录制视频了。

为什么我们要了解一个产品的生命周期

作为一个开发者,我们经常要使用到各种各样的开发工具,比如你使用 Vue ,那么肯定要了解 Vue 的生命周期;如果你使用 WordPress ,就需要了解他的产品加载顺序。

如果你只关注如何使用,却不曾关注底层的逻辑到底是什么,那么有朝一日你也会提出这样的问题:

uiyqg
V2ex 的帖子

实际上,如果你曾先了解过一个应用的生命周期、加载顺序等这些比较基础的东西时,就不会问这些问题了。

从另外一个层面, 面试常问 HTTTP 的三次握手四次挥手也是这个原因,当你了解了整个流程,才能更好的在这个流程上进行研究、开发、Hack。

关注你的核心目标

我们常常没有办法很好的完成一件事,是因为我们在前进的路上,迷失了方向,忘记了什么才是我们追求的目标。

比如说:写博客。

作为程序员,写博客是再正常不过的事情了。就写博客这一件事来说,也有很多不同的方案:

  • 有的人使用 CSDN、ITEye 这样的博客服务提供商(BSP)来建立自己的博客;
  • 有的人购买虚拟主机,使用 WordPress 这样的程序来建立自己的博客;
  • 也有的人选择直接使用一些静态博客程序,生成静态页面,托管在免费的 Github Pages 上。

每个人选择都有自己的想法,我想说一说我选择 WordPress 的原因。

首先,我的目标是“写博客”,非常纯粹。落脚点呢,是”写”,所以核心的目标就是要坚持写。

那么,从这个目标出发,所做的一切选择都应该是为”写”而服务的。比如,为什么不用 Hexo、octporess、Jekyll?因为这些工具会拉长写作的路径,写一篇文章需要先安装 Git、下载编辑器、Clone 代码、写内容、编译、commit、push,路径非常长。如果你选择使用诸如 WordPress 这样的程序,就可以直接打开浏览器,登陆后台,并开始写作。

最后,为什么不用 BSP 呢?BSP的原因是编辑器的体验并不好,不少平台都还在用可见即所得的编辑器,但是对于我平时主要写随笔和代码文章来说,这样的编辑器太难用了,而且, BSP 的自由度也太低,作为程序员,还是要自己折腾折腾,广告也不少。不过, BSP 也有自己的优势,比如有流量的加持,平台可以为你提供流量,帮助你更好的出名,But,我的本意是写作,而不是出名,这个流量的加持对我来说并不重要。所以,也不选择 BSP。

在前进的路上,我们很容易就迷失自己的方向。在写博客的过程中,我也曾多次切换过平台,直到最后,我明白了,写作才是真正值得我追求的,最终,回到了 WordPress, 并坚持写下去。

前进时,别光顾着走,也看看自己的目标是什么,时常回顾自己的目标,才不至于走偏。

网名,真名哪个重要?

Boss 在一个群里的讨论

今天在看 V2ex 的时候,发现 V2ex 有个帖子“你们的 Github 账号会用自己的真实姓名么?”,里面提到了大家大多不在互联网上使用自己的真实姓名。

刚好,今天早上我的 Boss 在一个读书会的群里也在讨论这个问题,他常年使用笔名“青润”,很多人只知道他的笔名,不知道他的真名。

这两件事情让我思考,我们是否真的有必要让别人知道自己的真名呢?

就如我 Boss 所言,名字本身只是一个代号,笔名也是一个代号,如果你一直使用一个特定的代号,那他其实和你的名字没有什么区别。对于我来说,使用 Bestony 这个 ID 也不短时间了,以后应该也会长期使用下去。不过,我在考虑后续同时扩张我的本 ID 的影响力。这样看来,似乎也没有必要。

不过,可以本名关注非技术领域,网名关注技术领域。

Reference

你们的 Github 帐号会用自己的真实姓名吗?:https://www.v2ex.com/t/538131#reply32

为什么英文互联网世界里实名比例如此之高: https://laike9m.com/blog/wei-shi-yao-ying-wen-hu-lian-wang-shi-jie-li-shi-ming-bi-li-ru-ci-zhi-gao,107/

用上了自己做的翻译插件

之前用的翻译插件cos_slug_translator 因为一些原因,并没有办法很好的和 JetPack 一起联用。导致每次发布到 Twitter 的文章链接都是失效的。为此,我前往 Github ,在 JetPack 的项目中发起了一个 Issue 。

Jeremy 给我了一些建议 , 于是,我就重新做了一个插件,并将这个插件提交到了官方的插件系统。希望可以通过审核。

后续考虑继续支持其他一些翻译平台,比如,有道翻译的新 API、搜狗、Google等一系列。特别是 Google, 这样就可以支持非中文文章了,比如,日语的。

项目仓库:

https://github.com/bestony/automatic-translate-slug

能成大事者,敢背锅

我有两个朋友,在某厂做 BaaS 服务。

在进行产品开发时,到了某个产品时,大 boss 竟然想让用户自己去买服务器来搭服务,并通官方通过的 SDK 进行转接。这让我百思不得其解。

因为在我看来, BaaS 这种业务,就是把弹性、运维、环境都从用户这里拿走,让用户只关注逻辑和业务,从而更好的关注自己的业务。这种将一部分能力拆出来,由用户自建的行为十分的奇葩,将从用户这里拿走的弹性、运维、环境问题,重新又踢回给了用户。

作为一个 BaaS 服务,如果你让用户想起来自己去搞弹性,那基本就是在提醒用户,你不要用我们的服务了,你自建吧,反正弹性什么的你还是要自己搞。没区别。

后来,我想明白了,估计是 大 Boss 因为该产品之前的一些功能不稳定,总是被客户吊,所以在设计新的产品时,选择了稳妥,但是很难用的方案。这样的方案虽然难用,但不是不能用。可能想着得过且过,不背锅算了。

不过,如果同样的事情让我来做,可能会有不一样的看法。

在我看来,你可以因为业务的不稳定而被吊,这没问题,自己的技术力量不足,无法解决问题是应该被吊。但是如果你因为稳定,而不去做一些东西,这等于拱手将客户送人。我宁可被吊,但是用户要被我抓在手里。有了用户,我才能获取足够多的反馈,才能够让我以后不被吊。你把皮球都踢出去了,也把用户都踢出去了,yi以后你想要被吊,也没有机会了。

在我看来,一个 BaaS 、SaaS 层的服务,最好的三个状态是这样的:

  1. 让用户不能离开:因为你需要用户来给你反馈,来帮助你迭代,成功。你可能会做一些限制,不让用户离开。比如深度耦合的服务。
  2. 让用户不想离开:虽然有了竞品,但是因为你的好用,所以用户不愿意离开。你虽然应用户的需求,开放了数据导出等功能,但是用户还是很喜欢你的产品,不想离开。
  3. 让用户不愿离开:当用户发现,虽然有竞品,但是提供的服务依然不如你,切换过去了发现还不如你的时候,他就再也不愿意离开了。而且,当他试过一次别人家的业务,很失望以后,后续除非有什么特别大的利好,不然他不会再考虑离开你的服务。这个时候,你的业务就成功了。

此外,这个 Boss 的想法也让我觉得可笑,愿意背锅,敢于背锅是对自己开发团队、产品团队的信任,我信任你不会让我背锅。把锅甩出去了,表现了你对自己的产品、自己的团队没有信心。倘若团队离心,产品又怎么可能做好呢?

如何理解设计模式?

我一个朋友,一直想问我,有没有什么书,可以告诉他到底应该怎么写代码?

我一直也很迷惑,因为我自己的写代码的过程并不是通过某一本书而来的,而是通过不断的编程实现的。因此,我不知道到底什么才是所谓的编程思想。

直到今天我在 Lynda 上看一个视频教程,我才明白,设计模式就是编程思想!

掌握了设计模式,你就明白了代码是怎么写的了。剩下的,不过是最基础的语法问题罢了。

关于数据可视化

今天在听播客时,听到了一个很有意思的观点:

当你不知道要干什么的时候,就可视化吧。可视化可以帮你更好的提出问题。

当你知道要干什么的时候,就直接使用数据。可视化并不重要。

很有意思,但很有道理。

Reference:

http://teahour.fm/2014/06/16/talk-with-zhang-gong-and-zhi-cheng-about-data-visualization.html

个子高的好处

我不是很高,只有180。在北方时,这个身高只能作为标准身高。

不过,来到深圳后,大部分人还是比我低的,这个时候就有一个好处,在地铁/公交上,我呼吸的空气是在人们头顶上的,氧气的含量更高。

不那么容易困。

正确的人工智能学习的路径

今天一大早在朋友圈又看到了转发人工智能的广告,借此机会,跟大家聊一聊这两年的人工智能学习热。

yhihi
朋友圈截图

人工智能是个好东西么?是的。

人工智能应该怎么学?看市场,看用途。

看市场是指,你要去看你想要去的岗位到底需要什么样的人才,根据需求来学习。

这里面有一个典型就是:

  • 人工智能岗位的分两种,一种是调参数,一种是设计算法和模型。而后者,一般要求博士学历。

但是,市场上绝大多数人工智能的课程都是从 0 基础开始教你,教你人工智能背后的一些基础逻辑。这些东西该不该学?该学,但不应该是一开始就学。

对于大多数人来说,学习人工智能唯一的用途就是找一份工作,或者将其应用在你的实际工作中,那么,你应该学习的是如何用人工智能(调参数)。而不是掌握算法模型。

一股脑的都去学习基础的模型,学不学的完还是两说,等学完了,你真正去求职了,却发现,人家要博士以上,你会发现自己的学历成为了最大的门槛,这个时候,所花费的时间就浪费了。

我的建议:人工智能值得学,应该学,但是对于绝大多数人来说,应该从应用入手,先学会调参数,再去深挖模型和算法。倒过来学习,对于你几乎没有帮助。因为你差的不是人工智能的基础知识,而是那一份博士学历。

如何用知识星球?

在过去的一年里,社群产品“知识星球”变得愈加火热,越来越多的人都选择了知识星球,作为自己的社群运营工具。

那么知识星球和得到、极客时间等之类的知识付费产品的区别到底在哪里呢?

我觉得知识星球更加突出了碎片化学习的特征,你接收到的都是碎片化的信息,而不是知识

不少人购买了得到就觉得自己学到了知识,但其实你只是得到了信息,而且,对于大多数人来说,你得到的是信息的准入券,真正进去学的又有几个呢?

知识星球相比于得到,更加的不成体系化,更多的表现出了碎片化,在这种情况下,应该更加明确,我们所得到的是信息,而不是知识。

部落、氏族和现代人际关系

部落时期

在远古时期,人类如果独立生活,存活率较低。如果团队合作,集体生活,则有可能将自己的基因流传下来。在这个阶段,形成了部落,一个部落中可能会有多个不同血缘关系的小的团体。不同的团体之间血脉存在差异,在外貌等方面可能也存在差异。

在这个阶段,同一个部落的人互相帮助,整个部落有较高的存活率。

氏族时期

在部落的后期,小团体本身便可以很好的生活在一起,形成了氏族,同一个血脉下的人都聚集在一起生活,氏族内部互相帮助、互相竞争。

在这个阶段,同一个氏族的人互相帮助,共同前行。在中原大地上形成了一个又一个的大族。

现代人际关系

到了现代,大家都是一个个独立的个体,每个人只要靠自己就可以过的很好。所以人际关系变得越来越冷漠,因为人对其他人没有那么多的需求,也就不会花那么多时间去关注人际关系。

使用外包团队一地鸡毛

接着说昨天的那个朋友的事情,由于没有自己的开发团队,所以只能找到一个外包团队来赶进度。
因为团队的不协调,大家时间上的不一致,出现了很多的问题,总是在不断的沟通,浪费了大量的时间来处理相关的事务。
 
 

  1. 能不用外包,就不用外包
  2. 尽量搞一个技术能 cover 掉团队的90%需求的人来进行项目开发。
  3. 总是在开会

把你自己的核心能力交出去

把书本上的知识都忘了,剩下的就是你自己的了。

作为一个职场人士,对于我们来说,拥有自己的核心竞争力是非常重要的。核心竞争力是我们赖以生存的东西,那我们是否要一直去做自己最有核心竞争力的地方呢?我一直觉得,核心竞争力我们应该紧紧的抓在自己手上,不能放出去。

今天早上在听播客时,有了新的看法

我听的是 TeaHour 的第 49 期:和姜海舟聊聊互联网金融

在这一期中,嘉宾“姜海舟”分享了自己的看法,那就是把自己最擅长的东西交给别人去做,这样你才能不断的提升自己的能力。 这个想法我觉得很好。

你要不断的将自己最擅长的东西交出去,然后去学习新的东西,这样你就可以不断的去接触到新的东西,提升自己的能力,开拓新的能力。而且,你之前曾掌握的能力还会在其他的方面给你一些补足,帮助你更好的发展。

博客链接:

http://teahour.fm/2014/04/04/talk-with-jianghaizhou.html