先有 Mac 还是先有银元?
自从开设了这个公众号以后,收到最多的问题是:听了 Mac 君的介绍,我也觉得 Mac 很好,可是穷屌丝一枚,真买不起,怎么破?前几天我在微博上说,读了我的书,就有 Mac 了。居然有读者来问:这是真的吗?
今天我要郑重的回答一下这个问题:是真的。
你信吗?
你应该相信。因为我谈的根本不是 Mac 和金钱的问题,而是程序员合理投资自己的问题。
有时候很多人类表现出来的行为特别不可思议。比如大家会把很多资源和时间花在对个人成长毫无意义的事情上,而到了真正需要进行投入和学习的时候,我们会理直气壮的说:对不起,我既没时间,也没银元。
大部分程序员在这方面的表现绝对是「猿国不让须眉」,咱们会:
用大量的时间寻找各种盗版软件的注册码和注册机,而不是去购买几十块钱的正版软件。
用大量的时间搜索各种粗制滥造的扫描版电子书放到硬盘里,并安心的认为书中的知识都已经属于自己,而不是去买一本正版书籍并把它读完。
用大量的时间研究goagent、vpngate等免费的越墙方案,而不是去买一个 VPN 或「曲径」轻轻松松翻越长城并了解世界。
用大量的时间优化已经用了四年烂电脑以期击败85%的同类用户,而不是买一款配备了视网膜屏的 Macbook 去击败世界。
很多年过去了,前者以为自己节省了金钱,也积累了资源,他们擦擦汗,抬望眼,仰天长啸:我特么真是勤俭持家的好猿啊!这时他们会惊奇的发现,那些看起来傻乎乎的后者,早已一骑绝尘,夕阳西下,「前者」只能看到「后者」奔跑中的背影……和一缕尘埃。
当你还在为每年99刀的 iOS 开发者费用进行汇率计算的时候,人家已经开发出上架的 App 并工资翻倍了。当你还在纠结要不要买一本正版图书的时候,人家的书都已经开始第三次印刷了。当你还在为破解和安装盗版软件绞尽脑汁的时候,人家已经写出正版软件了。当你还在打工的时候,人家已经创业成功了……
每个人成长到一定阶段的时候,最值钱的是你的时间,而不是别的什么东西。这么说并不是鼓励大家无节制的花钱,但是,如果能够用合理的价格购买到工具、产品和服务,最好不要花时间去找替代品,至少,你要评估一下你的时间是不是那么不值钱。
写到这如果你们还不相信,我就给你们讲一个真实的故事:
今天下午一位老大姐把我叫过去,儿子马上要生日了,她准备送给儿子一台 MacBook,让我给选选。这位老姐算是我的老领导和老朋友,我自然不敢怠慢,问了孩子的年龄、学习程度和基本用途,然后分别为她介绍了 Macbook Air 和 Macbook Pro 的优缺点和使用场景,最后根据性价比最好的原则,推荐了13寸的视网膜屏 Macbook Pro,老姐听得频频点头。讲完后我擦了擦额头的汗水,问,您觉得满意不?满意的话我给推荐一个香港代购。
老姐问我,最贵的是哪款泥?我说15寸的 RMBP 高配。老姐说就是它吧,然后就高高兴兴下单去袅,还买了一堆配件……和 Apple Care!
现在你们知道了吧,土豪就是这样子生活的。钱只是一种资源,从资源角度来看,有了资源可以做更多的事情。世界并不以穷人富人划界,而是用自由度来划分你的人生的。
对于这样的大姐,肯定是先有钱,再有 Mac。
对于大部分程序员,想要有钱,你最好先有一台 Mac……
-----------------------------------------------
很多读者不断的问电子书与纸书的区别,这一点我在「纸书的秘密」一文中已经写的很清楚了,但鉴于很多人都是浅阅读,我就再说一遍:
纸书的内容比原来的电子版增加了 Mac 入门和 Mac 演化史系列、Linux 系列、Vim 插件系列、职场系列、编程与写作等内容,大概增加了十万字左右。另外,纸书的版面全部重新设计,我根据书中的主题和时间线,重新调整了文章的顺序和文字结构,更符合读者阅读习惯。
已经买了电子版的,买本纸书也不会有损失,不买亦然。当然,如果您愿意支持我,我同样高兴。
点击{看过《MacTalk·人生元编程》的小伙伴们,你们如何评价这本书?}查看本书在知乎上的评价,如果您读来有感,也可以去写写画画。
先有 Mac 还是先有银元?的更多相关文章
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- JAVA for mac 的学习之路
要学习一门新技术,首先得下载相关的工具. 一 . 下载相关工具 1. 下载 jdk formac 下载地址为:http://www.oracle.com/technetwork/java/javase ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- mac下安装及配置tomcat
mac下的软件不像windows下的程序那样写注册表,对于tomcat的安装来说,在mac下是名符其实的绿色软件,具体操作如下: 1.到 apache官方主页 下载完整 tar.gz文件包.(没有专门 ...
- Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
- MAC Osx PHP安装指导
php.ini的位置 Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/private/etc/php.ini.default 或者说 /etc ...
- MAC下 mysql不能插入中文和中文乱码的问题总结
MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...
随机推荐
- Mysql调整字段顺序
1.增加(add/modify/change)一个字段使之位于第1列 alter table table_name add `id` int first; 2.增加一个字段使之位于某列后 alter ...
- 面筋BD
/****************************************************************************** *时间:2016/9/25 11:00 ...
- .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧
那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...
- myeclipse 无法启动
1.对项目中的一个文件重新命名,导致卡死,结束myeclipse进程不管用,重启不管用. 删除工程下的文件 以 .markers.snap 和 marker开头的两个文件 位置: 工作空间\ ...
- 关于php-fpm子进程达到上限并且浏览器访问显示504错误
今天上班遇到一个非常奇怪的事情,公司监控服务器之前都是在正常运行,使用nginx+php-fpm,并且监控服务器上部署这其他部门在使用的几个站点,从早上上班开始发现监控显示页面打不开,各种查找原因,最 ...
- linux I/O stack cache 强制刷新
linux 存储子系统作为最为复杂的子系统之一,拥有很深的模块栈(如图),其中很多模块又有自己的缓存功能(如下图).实际应用中,用户下发的数据停留在哪个缓存中,是否已经写入磁盘,这些操作对用户来说是个 ...
- lua 时间戳和时间互转
1.时间戳转换成时间 local t = 1412753621000 function getTimeStamp(t) return os.date("%Y%m%d%H", ...
- dev winform导出功能
SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileDialog ...
- PHP:Xdebug配置
在配置Xdebug时,之前经历了无数次失败,终于配置成功! 以下是配置失败的原因: 1.下载时,选用Xdebug的版本不正确: 2.配置时,Xdebug文件名或文件的路径不正确: 在参考 http:/ ...
- python方法中的self
前几天在写一个c作业时,突发奇想,在结构体中加入函数指针, 像这样: struct People { int _age; int (*age)(); }people; 这样调用时就可以 people. ...