能花钱的,就不要花时间
如果要寻找这个星球上最抠门的群体,那么一定非程序员们莫属了。有个笑话是找对象要找程序员:『挣得多,花的少;常加班,死的早』。
在创业之前,我也是个抠门的主。公司给配笔记本,就绝不自己买。一个N73用三年如果不是丢了就不会买新的。东西永远是够用就好,而不管是否在技术上已经落伍;为了找一款软件的sn,我可以花上一个小时,不厌其烦地注册有sn的论坛,攒积分下载,尽管该软件的正版价也就几十人民币。
值得庆幸的是,这种抠门的劲儿在11年终于得到了改观。
11年初我人生第一次自己花钱买了个笔记本,还是个13"的macbook pro。
11年底我买了自己的第一部iphone,iphone4s。
12年初我正式为自己买了github.com的micro plan,每月$7。
12年下半年我买了15"的new macbook pro。
12年我买了好几个正版软件。
...
在这些不断购买的过程中,我逐渐发现了一个道理 —— 程序员的时间很宝贵,只要有能用合理价格买来的用来提高效率的产品和服务,就不要花时间找免费或廉价的替代品。
我应该早就使用15"的mbp进行软件开发,而不是使用PC或13"的mbp。
我应该购买github的服务,而不是自己搭建gitosis。
我应该购买好的英文图书的kindle版,而不是苦苦在各大网盘上搜索对应的盗版pdf。
我应该在wrapbootstrap上购买中意的css模板,而不是自己去从头设计,或者在google上不断搜索,以期碰到免费的好模板。
我甚至应该买digitalocean的vm,而不是在自己的机器上使用vagrant —— 仅仅是为了更快的apt-get
的速度。
但是,至今很多人还不明白这个道理。我尝试着将我的这一理论传播给周围的人,不少人的反应是:你真有钱!
其实这和有钱没钱真没太大关系。这是行为习惯,是程序员逐渐将自己的时间往高附加值的事情上转移的必经之路。
什么是高附加值的事情?因人而异。在我看来,读读书,写写文章,参加活动和聚会,甚至坐在那思考人生都是比在网上翻来覆去找某个免费资源的价值要高。
如果花两百块钱,你就能买到一套某个软件的实战高手录制的两个小时的学习视频,你买不买?自学也没什么问题,不过你要多花好几倍的时间,而且还不一定能达到看视频所能达到的高度。
我估计你还是不会买。因为你还被桎梏在『互联网上的内容就该免费』的观念里。
这笔账要这么算,假设你自学免费的文档达到相同的高度需要10小时,那么这意味着只要你每小时的薪水超过20元,你就应该购买。20元的时薪意味着什么?意味着一个月收入大概3500元(20 x 8 x 21.5)—— 绝大多是程序员的身价应该是这个的好几倍。
如果换个角度看待这笔消费,把它视作对你个人的技能的投资?你愿意投么?
- 2014密码时代已死?六种旨在取代传统密码位置的新奇想法
- 程序员你为什么这么累【续】:编码习惯之配置规范
- Spring Security (一) Architecture Overview
- Spring Security (二) Guides
- 一个 android 的框架
- Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
- android常用接口(二)
- Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用
- RxAndroid完全教程
- 全能型反汇编引擎 – Capstone-Engine
- Hijack攻击揭秘
- 都在说微服务,那么微服务的反模式和陷阱是什么(二)
- Spring Boot 2.0 - WebFlux framework
- Spring Cloud构建微服务架构:服务网关(路由配置)【Dalston版】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JVM系列之:String.intern和stringTable
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载
- 实现浏览器中的最大请求并发数控制
- 【漏洞复现】Weblogic漏洞搭建与复现:CVE-2018-2894 任意文件上传
- 终于把进程和线程学会了
- 对方向你转账60元--三角函数方法精确位的实现
- 牛客网-树的子结构
- 牛客网-删除链表中重复的节点
- 牛客网-包含min函数的栈
- 牛客网-反转链表
- 牛客网-替换空格
- 手把手教你破解文件密码、wifi密码、网页密码
- 如何安装 Elastic 栈中的 Logstash
- 你的GitHub项目被封存到北极了吗?
- Logstash: 如何创建可维护和可重用的 Logstash 管道