142016.8

有一个网站,叫“淘小品”

我已经忘记,在我第一次注册淘小品域名的时候,是怎样的一个想法,似乎是想收集很多喜欢的小东西放在网站里,所以叫“小品”。之后就荒废了,过了几年,我始终没有丢弃这个域名,直到最近,我又重新整理了代码,重新上线淘小品,打算认真做下去。

淘小品,高颜值产品推荐网站!网址:http://www.taoxiaopin.com

整体风格就是黑色,高端黑,哈哈,主要是因为黑色显得不花哨,有人给我建议说太简单,我要的就是简单,简单的到这里来,就只有一件事可以做,直入目标,不想做的那么复杂

整体风格就是黑色,高端黑,哈哈,主要是因为黑色显得不花哨,有人给我建议说太简单,我要的就是简单,简单的到这里来,就只有一件事可以做,直入目标,不想做的那么复杂

做淘小品的初衷和几年前的很像。但是得益于前段时间情感上面出现的一些问题,我没有那么浮躁了,我觉得做一个网站,原本是不会有太多人关注的,愿意来关注的,一定是那些臭味相投的人,既然如此,就是要写自己想写的东西,写自己喜欢的东西,写自己觉得OK的产品推荐,而不是一味的迎合。

说的不好听,做这个网站,就是你爱来不来看,我又不逼你,我只是挑自己喜欢的东西往上面放,我就喜欢这种有颜值,有创意,或者稀奇古怪的东西,普通的东西就算是爆款,价格超低,对不起,我不喜欢就不会推荐,那种9块9包邮的,我从来就鄙视,全部是数据抓来抓去,如此而已。

我希望自己每天在闲逛各类有趣的网站的时候,花点时间把看到的稀奇古怪的,或者一眼就喜欢的东西放到淘小品里面来,通过到淘宝去找同款产品,做一个推荐链接,这样既满足自己猎奇的心态,也有可能从中赚点小利。最主要的,是做自己喜欢的事情。

一个东西发展成什么样有两种选择,一种是坚持所谓的“用户体验”,另一种是“坚持自己,说服对方”。现在的互联网产品有很多是第一种,有一部分开始是第二种,但随着资本的进入,逐渐变为第一种,而真正一直坚持自己的,很少,但活的很就,并且在用户心中有独特的位置,比如乔布斯时期的iphone,比如豆瓣。

我希望做第二种产品,虽然会有诱惑或者困难,但人一生在做事的时候不就是这样吗,总要面对它们,干掉它们,成就自己的想法——不谈什么理想和成功,只谈做自己想要做的事。

13:54:07 已有0条回复
092016.5

我为什么要跳槽

如果其他人来写这个题目,或许更多的是一些恭维客套的话。而我,希望把自己真实的想法记录下来,为自己今后重新审视自己的这段供职经历,提供素材。

 一

离职的最直接原因是:一年没有涨薪。

对于一个普通的程序猿而言,不到1w的薪资或许还勉强可以支撑,但对于我而言,我有自己明确的目标,如果在我计划的时限里,公司没有给到我对应的平台和报酬,我会毫不犹豫的选择离开。

我自认为自己是比较理性的人,对自己和对职业的认识都比较清晰。程序猿无非就像@easy的经典模型一样,把职业通道分为四个象限,如下图:

e8a5fb44af45b307e9719736

我目前所处的,是左上角第一个小方块的位置,要走向右下角,还有long long a way要走,而我在评估了自己的编程能力之后,我更希望自己走的是管理线的晋升通道。

管理线,也就意味着需要有项目,需要有团队,需要有人。而目前的公司,在这方面完全不能满足我的职业规划。因此,我选择离开。

后来我又创造了一个新的职业认知模型,如下图。

career-model

当我们处在自己当前的位置的时候,其实我们真的一次性拥有了蛮多东西(与职业相关),我在我们所拥有的所有东西里面,挑出了四样最重要的,并把它们作为轴向,建立了上图这个四个象限的坐标轴。我们每一个人都在每个轴上不断的积累该轴向上的东西。

  • money是我们刚开始工作的时候比较在乎的,但当我们的money足够多时,我们应该将它转化为assets(资产)对待
  • profession也是我们比较关注的,因为我们的老师、老板、父母、朋友,都经常跟我们讲,要提高自己的能力,但是实际上,这只能算技能(skill),能力绝不仅仅限于实现层面,除了实现,更牛逼的,是创造
  • credentials(资历)或者说“工作经验,工龄”也是我们经常听到的一个点,特别是现在找工作,你的工作经验大多以你工作了多少年来看,而且作为工资起薪的重要依据,但是当credentials积累到一定程度时,其实一个优秀的职业者,应该注重培养自己的个人魅力(personal attractiveness),个人魅力包含了诸多因素,总之它帮助你成为更好的管理者,或者叫leader
  • 最后一向是industry(行业)相关,这是最不受重视,但我认为很重要的一个轴向,因为每个行业有每个行业的(潜)规则,你经常跳槽从一个行业跳到另一个行业(比如从医疗跳到金融)会发现需要很努力,所以在每一个行业里工作的时候,都不要专注手上的工作,应该对这个行业方方面面的东西都有所了解。起初可能仅仅是积累industry knowledge,但其实更重要的是,当到一定程度的时候,应该去积累行业人脉和资源

每一个轴向上的演进的速度并不相同,有些人积累金钱的速度快,但是在其他轴向上几乎没有积累,有些人专注于技术去了,对行业的东西一无所知。总之,大部分人都不可能面面俱到。

但是很有趣的是,我发现了图中的黑色圆点,我称之为“职业奇界”,也就是说一旦你突破其中一个点时,你的职业就开始发生变化。“职业奇界”距离原点的距离,是努力到达所需要花费的大致时间示意,它们所需要的时间都不同,而且因人而异,但总而言之,在金钱的积累上,总是最快的,这也是人们对金钱的渴望更加强烈的原因,因为金钱的积累是可见的,而其他任何轴向上的积累都是不可见的。

正是因为“职业奇界”的存在,我们大可不必着急,比如有些人想快速成为专家,我想说你在某个领域没有一两年(甚至更久)根本不可能成为专家,比如有些人想成为创业者,我想说没有一定的积累还是不行,总之一定要有充足的时间才能达到这个“奇界”。而奇界的存在,让我们更加安心和放松,因为我们知道,总是能达到,只是时间问题。

实际上,当我们还在灰色线框内的时候,根本没有必要对自己有太大的奢求,因为我们条件还不充足。但是当我们越出灰色线框后,就应该主动去考虑自己应该做什么样的角色。

当然,我认为这里面一定会有努力的成分(,而且天赋也很重要),在所有的轴向中,我认为金钱的目标是最容易达到的,因此,我们应该去追求,应该毫不犹豫的选择同一行业中薪资更高的公司去入职。但是还是有一个前提,不要在不同的行业间跳来跳去,保持行业和具体工作方向的一致性,让时间自己去为你证明。

公司的原因:互联网对于它就是一个借口。

孵化器这个冠冕堂皇的定位,说到底,就是二房东。私底下观察了一下,前台妹子带领客户看房,入驻后应该会有提成,所以最后工资会比我还要高。“互联网公社”这样的称呼提起来好牛逼,整个设计很潮,但是说到底,只不过是通过这种外在的华丽,吸引入驻,同时利用这些空间大搞活动,企图资本融资。而互联网这块,根本就是一个借口,我刚进公司的时候,给我许下的一个期望让我魂牵梦绕,我觉得自己花半年一定可以看到当初许下的那个场景,就像一个真正的互联网孵化器一样,充满了极客范儿,牛叉的网络设施和高效的管理运营氛围。但是最后,什么都没有,一切都虚空一场。感觉自己被骗了一样。

追其根源,是我对这家公司的期望值远远脱离了它的实际,我把它在互联网上的吹嘘,当做是真的会付出的一种尝试。但实际上,它只不过是传统行业顶着互联网的一种新玩儿法。这样的公司,程序员万不能去。

老板的原因:谈理想不谈钱。

这也是我下决心走的直接原因,在我主动提出涨薪要求之后,“董事长”找我谈了一次,聊天一开始很愉快,但是当他开始给我谈公司的愿景,让我个人怎样怎样之类的话之后,我就全然明白了,因为我对老板在实际问题上的态度很敏感,一旦老板给我讲虚的,而对实际问题完全不提时,我对他的人品就产生了怀疑。我坚信这么一个观点:好的老板跟你谈钱,坏老板跟你谈理想。

谈理想的老板并非要不得,核心的问题是一旦你发现他透露出商人的狡诈之后,就会对他失去兴趣,不再对他抱有任何幻想,也会坚信他做的公司走不长远。既然如此,何不一拍而散,面子上相互不要撕开,从此各走各的路,再也不见。

网上流行这样的说法:你的老板,再怎么样也比例厉害那么一点,他能走到自己当老板的程度,一定有他的道理。我只想对写这样文章的人说:你这么夸你们家老板,你们家老板知道吗?不喜欢就是不喜欢,就是你的老板能上天,我也不愿意跟着他干,跟着谁干,和他的能力真的没有半毛钱关系,真正重要的,是他的人品。说到这里,我不得不吐槽一下百度,虽然很多人舔着脸想去百度,但是我就是不喜欢这家公司,让我去我也不去。

我喜欢最近Boos直聘的广告词,比如“找工作就是找老板”“我不喜欢拐弯抹角”。

我的下一家公司,是一家金融相关的公司,虽然我是做开发的,但我喜欢到这个领域见识一番。

我想我是一个不能完全称为程序猿的人,因为我天然不具备创造性的开发能力,我的更多创造性能力,是在产品上,而非算法上。所以,我觉得我并不需要在技术这个领域走的很深。我给自己定下的目标是,去接触最新的技术,在新出现的优秀工具中选择适合自己的,利用这些新技术、新工具,让自己做出更赞的产品,而非做出功力深厚的系统。我不适合在专家线上继续奋斗,我应该到更多领域去寻找机会。

我的一个想法还是要去创业,但是我知道在这5年内,我创业的可能性不大,我需要机会,而机会需要沉淀,我需要沉淀。

首先,我想在一个技术团队中去获得技术能力和技术实践经验,其次,了解这些团队的运作机制,看看别人是怎么高效工作的,还有什么问题,最后,在不同的领域中,了解更多更丰富的新知识,学习和积累自己对不同领域的技术认识。从这点上讲,我还是希望自己有一天可以进腾讯,去学习和观摩一个庞大的互联网企业,如何在不同的产品线之间可以如此明确的分工又相互合作,完成复杂而细腻的产品开发。

虽然我的个人能力把整个server端的东西都扛了下来,却没有得到相应的回报。当然,并不是在这个公司一点收获都没有,起码我在这里认识了自己从业以来的第一队同事,也曾经相互之间有些愉快的玩耍,而且和另外一个创始人老板有共同的话语。生活总是在不断前进的,我会记住对我好的人,记住那些教会我认识和改变世界的人,忘却那些曾经发生不愉快的人和事,在未来的岁月里,珍惜自己所有,同时也能为别人带来乐趣。

22:14:48 已有3条回复
  1. 处女座吗
    #239 CXD 2017-03-28 08:55 回复
  2. 并不是… 为什么这么问?
    #243 回复给#239 否子戈 2017-03-28 22:30 回复
  3. 比较细腻
    #244 CXD 2017-03-28 22:46 回复
292016.3

为什么很多需求提出来以后,对方会说“这个很简单”

在开发中经常会遇到这样的问题,就是一些需求方在对一些点进行描述的时候,会说:这个应该很简单吧,就跟xxx那种一样。在这种“很简单”逻辑上,需求方会在时间和金钱上进行压榨,让开发者很不爽。那么问题来了,为什么很多需求提出时对方会说“这个很简单”?

答案是:他就是个bitch! 文章完。

231Q4T08_0

wuli吐槽之后,我们还是郑重其事的来谈一谈这个问题吧。这是一个严肃且值得深挖的问题,在普通人和开发者之间的鸿沟,通过这个现象可以表现的极其突出。

在程序员眼里,有些东西很简单,但是普通用户会“哇”的大叫出来;有些东西程序员眼里会很复杂,而普通用户会不屑一顾。这是什么逻辑,他们的简单和困难的价值观在什么维度上发生了逆向的判断?

1. 知识鸿沟

在普通人觉得很简单,而程序员嗷嗷叫苦的问题上,一定存在一个知识的坎,程序员会从具体的实现过程去考虑这些需求。比如一个很简单的功能,选择某个电影院可以被预订的位置。普通用户会掏出美团或猫眼,告诉程序员,就是这样,这样。但在程序员眼里,没一个动作都需要逻辑代码去实现,把这些实现组合在一起,可能就需要一到两天的时间,所以会觉得并不是那么简单。普通用户的脑海里没有这些知识结构,无法评估代码量和难易程度,因此和程序员得到的结果不同。

2. 注重结果与注重过程

普通用户更加注重结果,而程序员可能思考更多的是开发过程中可能遇到的问题。普通用户在想到一个功能点的时候,对它对难易程度的评价,往往是把对它的操作时间换算为难易度。比如一个划动效果,如果用户在多款产品中使用该效果都可以在1秒内完成,就会认为这个效果应该比较简单。而如果他们在使用一个很花哨,界面酷炫的应用,没一个渐变效果都要用到一两秒,那肯定会觉得这个应用会特别难。

普通用户在知识结构上无法理解编码过程,因此只能将难易标准转移到产品的体验感上。

3. 面向产品还是面向编程

说的更直接一点,用户面对的是成形产品,而程序员是生产这些产品。在用户的脑海里,其实已经有产品的形态,但是可能限于语言,无法表达出来。而程序员,实际上并没有产品的完整形态,而是有产品的组件,况且这些组件还要自己去编程。程序员在遇到不懂解码的用户时,必须去把用户提出来的需求解码为自己可以理解的编程目标,但是为了和用户沟通,程序员又使用了编码的逻辑,向用户求证自己的理解是否正确,用户接收到到信息难以处理,所以就会用错误的方法解码,导致沟通失败。

在普通用户和程序员之间需要一个角色,作为编译器,对用户的需求进行编译,使得程序员可以很好的理解,同时把程序员的报错信息翻译为用户可以理解的说明。这个角色,从很大程度上讲,就是产品经理。

互联网界都在捧产品经理,认为他们是“改变世界的人”。可实际上,他们就是下水道,来来去去都要从他们这里过。对于和用户直接接触的程序员,最大的建议,就是要待人宽厚,和用户逐个解释,把他当作朋友,如此而已。

19:14:01 已有0条回复
262015.11

发布APIWiki

今天已发布ApiWiki(开源的API文档系统),这个项目是为那些公司内部开发API接口的开发者准备的,使用这个系统,可以减少与APP端开发人员的不必要的麻烦,降低沟通成本,让开发者更专注于开发本身(除花时间去写API文档之外)。

22:14:04 已有0条回复
012015.11

ubuntu firefox提示已阻止使用早期版本的flashplayer

升级到15.10后,ubuntu仍然没有内置升级firefox的flash插件,不得不采用手动升级来解决弹出“已阻止使用早期版本的flashplayer”的提示。

如果我们按照弹出提示进行升级,会发现,升级会打开软件中心,但是软件中心的flash版本确实还很低所以不能靠软件中心来升级。我们进到 https://get.adobe.com/flashplayer/ ,选择下载linux tar.gz包,下载下来以后解压出来,你会看到一个.so和一个usr目录。

cd到解压的目录,执行下面两条命令,来把文件复制到对应的目录去:

>> sudo cp libflashplayer.so /usr/lib/mozilla/plugins/
>> sudo cp -r ./usr/* /usr/

重启firefox,即可使flash成为最新版本,打开优酷之类的网站,可以直接启用flash,不需要激活。

02:40:41 已有0条回复
262015.10

开始积累自己的技术成果,做一个写诗的程序猿

在以前很久一段时间,我把大部分时间都花在思考一门语言的算法,并通过语言实现算法的难度和性能去区分它的好坏。但随着时间的流逝,我发现无论一门语言的语法和性能怎么样,都有它的可贵之处。javascript是一门再浅显不过的语言,然而它在HTML5时代的今天,却比任何一门语言都重要。这启示我一个道理,那就是一门语言无论是被成为烂尾也好,或者当下被夸赞的无法接受也好,到最后,都会随着时代的需要而变革,或退出历史舞台,或自我变革后适应新的需要。而在所有的这些里面,能够实现功能和算法,才是一切技术的核心,无论这些功能或算法是由什么语言实现的。

有段时间,我比较抵制使用第三方工具来进行开发,觉得那不够酷,自己写一大堆代码才能显示出自己的逼格。可是如果不用第三方工具,必然导致开发周期加长,开发效率降低。一个不懂学习最新的第三方工具来进行开发的程序猿,一定是一个落伍者。

除了在使用第三方库上的觉悟,积累技术成果,形成自己的资源库也是很重要的一种技术积累。作为程序员,或多或少会有代码洁癖,会在代码的可读性和美观程度上浪费很多时间。但是,如果一个库的出现,虽然它很好用,但是不能满足一些特定的要求,自己还要去重写的话,远远不如在这个库的基础上进行扩展,最终形成自己的库来的有用。

因此,我打算今后不断的把自己的代码放到服务器上面,不断的去维护和更新。虽然提交到github很好,但是放上去不能预览,所以,我干脆把代码直接丢在博客的子目录,可以被直观的看到。我要放的第一项目,是为公司写的一个HTML5页面,手机扫描下面的二维码来查看,该页面仅作为手机端展示效果,PC上没有效果。

a7f0184f88dbb12abcadabca893ac38c

这是一个手机端HTML5展示页,包含的效果包括:

  1. 左右划屏,iSlider插件
  2. 划屏时,背景图跟随滚动,类似安卓机桌面切屏时背景视差滚动
  3. 载入页面时的动作
  4. 视频播放控制
  5. 不同屏幕尺寸分为md/sm样式进行切换

这样的案例库,未来会全部以HTML的形式放到我的这个trunk目录下。这也让我养成一个新的习惯,即所有的项目未来必先形成html原型,再转换为模板或php文件进行提交,在后期进行调整之后,有重新整理到html中。这样就可以维持项目效果可以得到收集和展示。

00:43:12 已有0条回复
272015.7

使用群晖nas搭建私有git服务器

212015.7

项目不易

6月29日入职至今,已经3个多星期,在这3个多星期中,我对项目的理解经历了几次整体的变革,由于自己对项目的把握不够,导致走了很多弯路,现在就把入职了解一个项目及其规划的一些心得写下来,作为今后的一些借鉴吧。

我在面试时,PM给了我一个大致的产品轮廓,让我知道这是一个关于未来创客空间的服务平台,为创客空间内的用户提供设备设施服务和社交服务。设备设施服务包括空间办公室的租赁,会议室的在线订、APP开锁等一条龙无人工在线操作,也就是用互联网解决一些以前需要人工进行解答、赋予权限、操作的工作,方便创业者在空间内充分利用资源,节约时间。而社交服务,主要是在入驻的创业公司之间,构建一个交流平台,不同的创业公司的员工之间可以在一起探讨某个问题,参加一个活动或聚会,甚至私下会面等等。

我对这个项目的兴趣非常浓,因为对创客空间的互联网化比较有信心,相信未来互联网是创业者必备的基础设施。问题是,如何开始呢?从购买服务器、域名备案转移等开始,再到服务器环境的搭建,php框架的选择,中间经历非常漫长的尝试过程。我的第一个星期大部分时间都是在熟悉业务,和搭建服务器环境和编程环境中度过的。

第二个星期,在确定了php框架之后,我终于开始编程。但是,实际上,由于对整个产品的细节理解不到位,对具体业务环节不熟悉,我基本上处于臆断猜测的阶段,凭着自己从PM那里获得的信息,开始了整个产品的后台架构。在T的帮助下,构建数据库结构,开始后台界面的编写等等。

然而,在这个过程中,我发现,每每写好一个功能,又不得不重新打乱写过,因为稍加了解,就发现实际需求不止这样,写的这些功能无法满足这个需要。我这个时候才意识到,我缺少一个产品经理,对这个项目的细节和业务结合在一起的进行分析的东西太少了。于是,我又回头来,重新自己编写了数据库结构文档,并且勾画业务流程图和系统结构示意图。

第三个星期,我第一次和相关业务负责人进行面对面交流,把我们传统的工作流程了解了一遍,才知道,自己很多都没有考虑进去,比如预约体验的部分,当客户过来看房体验的时候,我们应该如何跟踪、记录这些客户信息,如何在系统中对业务进行处理呢?这些都通过和负责人交流后才确定下来。这个时候我才明显感觉到,自己谱写的业务结构才慢慢符合实际,而不是自己脑海中抽象的理想结构,很多实际中的问题才被考虑进来。所以,和具体业务负责人交流,即使他们以前从来没有进行过线上操作,对我们设计系统是很有帮助的。

这个星期,我基本就是根据上周获得的这些信息,进行功能的调整和完善。

因为我仅仅获得了预约和会议室预订这两项具体业务的具体流程,所以,我目前,也就围绕这两项业务进行开发,其他的业务功能,等到后期有需要的时候,再进行扩展即可。因为我们第一期的工作,也就是这两项,不能想的太远,而久久不能做出成形的产品。

明天,可以把办公室的模块完成。完成之后,直接进入手机端界面的开发,因为PC端界面还在设计师的稿子中,所以,我必须通过手机端入手,做出一个成形的产品,否则,进度就变为不可见了。

21:41:15 已有0条回复
272015.6

PHP非阻塞模式

222015.6

找工作的一些心得

终于可以安静的写一下这段时间的一些经历。上个星期去深圳找工作,非常幸运,已经获得了几个offer,薪资水平都在自己的预期范围内,甚至有公司给出了相对比较高的薪资,让我有些心动,但是,找工作对于刚毕业的我来说,不能光看薪资水平,而更要看潜力,所以应该写一下我的一些想法,梳理一下我未来的一些发展。

刚毕业,虽然可能某些方面的能力都已经具备了,但是实际上在面对社会型多用户多功能高并发等方面的开发中,自己还是白纸一张,还要学很多,刚参加工作,也不太可能被作为主力来用,而更多的可能是作为副手,完成一些思路明确的开发工作,为主力分担工作量。因此,我更倾向于潜力比较大的公司,特别是既有极客风格,又在业务领域有美好前景的公司,在这样的公司,自己可以一步一步看到一个明晰的发展方向。另外,有一家公司虽然给了不错的薪资,公司规模也挺大,但是我回来一想,觉得这家公司的业务已经比较成熟了,从它线上的产品来看,也基本比较完备了,在面试时,我也尝试问了一下主考官公司未来的业务扩展,从他的回答中我大概知道,未来公司也没有业务上的大举扩展,所以说如果我进了这家公司,主要要是作为现有平台的一个“螺丝钉”,对已有平台进行修复和升级,对一些小功能进行扩展,而无法经历一个产品从雏形到上线的种种过程,也就无法在这种过程中成长。所以,最终我还是希望进到另外一家前景较好,业务平台相对来说还不是太成熟的公司。

我自己的开发能力基本上还是处在“便利贴”的层次,也就是哪里拿来都可以用,也可以完成任务,但是无法做到大神般的完美,用一个词来概括,就是“半吊子”。所以,我也逐渐明确自己需要在哪些方面进行提升扩展,也是我未来在工作及业余时,必须自己学习和提升的方面:一,Linux平台下的惯用操作和优化;二,PHP的底层原理;三,MySQL的底层原理;四,PHP算法及思维扩展。在面试的时候,很多题目我只能是一知半解,这主要原因是我在平时的开发中,以实现功能为目的,而没有从底层原理出发去剖析一些更深的知识,如果再去深入学习,相信未来必定会有一个大的突破,也会慢慢从“打下手”的角色逐渐进入“主力”的行列。

23:11:56 已有0条回复