本文由CDA作者库成员HarryZhu原创,并授权发布。 CDA作者库凝聚原创力量,只做更有价值的分享。
Day Job and Night Job
我非常认同《黑客与画家》里的 Paul Graham 说的一句话:码农需要一个 day job for food,也需要一个 night job for fun。和格雷厄姆不同的是,我的night job不是一个画家,而是一个作家,是的,一个技术专栏的撰稿人。通常,晚餐之后,刷一遍自己的 Feedly 和 GitHub,搞搞黑科技,这就是一种极大的精神享受!然后在专栏里安利一些技术,比如 Docker、SparkR。 这些有趣的技术都是这样利用业余的时间一点一点搞起来的。
其实,我正经混饭吃的工作是在私募做一枚数据工程师(R developer),平时处理一些金融的数据,除了给代码写各种测试,还要给策略跑各种回测,主要的工作是做股票持仓的组合优化。
此外,请原谅我安利自己的专栏,对金融或者R语言有兴趣的码农或者矿工都可以关注我的 FinanceR 专栏。
Dive into R the Hard Way
作为一枚野生码农,你们猜一下,在我成为一名R Developer之前什么专业的?水利?物理?建筑?都不对,我的专业是物流(之前最热的O2O好伐)。最初我沉浸在EXCEL万能大法的世界里(数据库+交互式计算+文档输出+VBA)整天研究物流模型,比如选址模型、运输模型、存储模型、决策模型、订货模型、最优化算法等等。
后来,机缘巧合,参加了几次数学建模比赛,年少轻狂的我用WEKA、SPSS、EXCEL组合拳对各种问题用各种机器学习算法进行建模分析,比如针对单独二胎政策用支持向量机和逻辑回归模型做预测。期间虽然拿了一些小奖,但是比赛做得多了就发现,依赖于现成软件中的算法针对现实问题很难做进一步的优化,并且产生真正的价值。我意识到盗版软件之痛,和国内教育的技术相对落后。
开眼看世界,我去到了北京的R语言会议,会上各种学术大牛分享算法、模型、量化交易、数据可视化等等前沿技术,我意识到一群统计学家主导的R语言才是有效的研究工具。于是,我投入了R语言社区的怀抱,开始了解数据处理的生态,学习dplyr、ggplot、ggvis、knitr等等包。至今我依然觉得,社群才是真正学习的地方,学校不是。
纸上得来终觉浅,绝知此事要躬行。我赶上了Segmentfault的黑客马拉松,第一次感受到了黑客马拉松的魅力,各种音乐,游戏,贴纸,目不暇接。我拿着自己的一套R语言工具箱,临时和几个组不到队的医学从业者一起用R语言开发了一个基于基因和食物匹配分析的膳食推荐应用(shiny+RCurl)。万万没想到,开发拙劣的我们因为想法新奇居然得到了评委的认可。
我的成长观:社群才是知识汇聚之地。
Hardware and Software
我的主力开发都是在 Macbook Pro 上完成的,闲暇时间也玩一玩 Chromebook 和 Raspberry Pi。另外,推荐一款效率神器,无关代码,关乎音乐:Vinci头机,无线听歌的体验强势取代了我的douban.FM和小面条。
作为码农,自然少不了VPS,在国外我选择的是AWS的乞丐套装,在国内,我选择的是 青云。区别于aliyun落后的UI和用户体验,青云的Web Design和工单服务当数一流,真正在为开发者解决各种实际问题(教会我如何构建MySQL和Redis集群、数据库重构、Nignx和Docker配置等等),墙裂推荐。
在Mac上,我的启蒙导师就是 池建强池老师了,我买过两本《Mactalk 人生元编程》,自然 Alfred、Vim、iTerm2、Chrome这些都少不了。显然要完全发挥出Chrome生态的威力,自然还要配上Lantern这个访问外国网站神器。
Chrome的云计算生态就离不开插件和Web App,Grammarly、Vimium、infinity、QR code、Hangouts等等根据不同的工作需要在不同插件中来回切换,不一而足。
在团队协作中,Sky、TeamViewer、Trello、Slack都是必不可少的。需要安利的还有 Droid4X,一款安卓模拟器,你甚至可以用它来抢微信红包。一些科研工具也值得推荐,比如Zotero和Rstudio。
由于行业的原因,我还是不得不使用一些Windows生态的软件,比如 wind terminal、onenote、excel、word等等。我使用了XtraFinder来保证大多数的键位习惯一致。
我的产品观:除非黑科技,否则不掏钱。
Black Tech
R语言生态下的 Rsutdio、knitr、rmarkdown、shiny,实现可动态交互的统计报告并且极大简化论文撰写的方式,堪称一场学术革命。
Python生态下的 Everything in Python,各种DevOps和快速开发框架。
Chrome生态下的 Chromebook,crouton切换双系统,云端化生存。Google Sheets 取代 Excel (数据库+交互式计算+script+实时编辑+云端协同)
Go生态下的 Docker,现代开发流程中的航空母舰,一次运行,到处运行。Lantern,匿名访问外国网站。起来,全世界在墙内的人们。
Scala生态下的 Spark,现代开发流程中的宇宙飞船,实现分布式开发傻瓜化。
JS生态下的 Meteor、React、NodeJs,现代开发流程中的变形金刚,实现一次开发,多平台自适应。
Php生态下的 WordPress,与时俱进的CMS,至今是媒体工作者的不二之选。
Book
其实,从高中开始,金融就是我最初的梦想。开启我金融梦想的一本书就是《水晶球》,这本书是罗杰斯的一本传记,讲述了他如何从乡下来到城里,如何考上名校,如何成为环游世界的金融大鳄。至今,我金融的世界观有一半来源于他的思想,激励着同样从乡下来的我在金融的道路上默默努力,也谨记着他相信趋势和历史,不依赖技术和模型的箴言。
在Mac上,我的启蒙导师就是 池建强池老师了,我买过两本《Mactalk 人生元编程》,干湿并重,讲述了一个工厂焊接工如何逆袭为码农的故事。
编程方面的启蒙读物就是《浪潮之巅》和《数学之美》,堪称经典之作,适合小白。这两本书从历史和数学的角度,对互联网和科技都做了一个非常专业的介绍。
我的读书观:鸡汤不看,干货网盘。干湿并重,可以掏钱。
IDE
一千个码农,有一千种以上的编辑器配置。对于数据民工的我来说,通常在轻量编程中,会使用 MacVim,如果是重量级编程就会切换到 Atom 上,如果需要重构就得挪到Rstudio上了。
Rstudio 对于数据民工的意义,就相当于Python之于iPython Notebook那样深刻,当然以后可能是 Zeppelin。当然,Rstudio 不适用与重量级编程,多行选择,同时编辑这些现代编辑器特性还没有支持。
在投入现代编辑器 Atom 的生态之前,我还曾经用过 Sublime Text 和 Brackets,至今,他们也依然存在着一丝闪光点。比如 Sublime 在打开超大规模的csv依然不会卡死,而Atom就no response了,Brackets 在图片处理上的得心应手,完美结合PhotoShop。但是对于文字工作者,Atom 的顺滑在 HTML PREVIEW 和 MARKDOWN PREVIEW 时纤毫毕现,我永远地卸载了 Livereload 和 Mou。
END
人生有很多可能性,也许大多数情况下,我们都会失败。但是,只要坚持,逆袭的可能性还是有的。关键在于这个过程中如何更加清晰地认识自己。
Harry Zhu,擅长用Python和R进行数据建模、定量研究,目前就职于量子金服(Quantum Financial Service)。微信号:harryzhustudio 欢迎关注个人主页: https://github.com/harryprince https://segmentfault.com/u/harryprince