微信扫描登录
或者
请输入您的邮件地址来登录或者创建帐号
提 交取 消
GITBOOK.CN需要您的浏览器打开cookies设置以支持登录功能

野生码农的逆袭之路:在跨界中找到自我
作者:HarryZhu

Day Job and Night Job

我非常认同《黑客与画家》里的 Paul Graham 说的一句话:码农需要一个 day job for food,也需要一个 night job for fun。和格雷厄姆不同的是,我的night job不是一个画家,而是一个作家,是的,一个技术专栏的撰稿人。通常,晚餐之后,刷一遍自己的 Feedly 和 GitHub,搞搞黑科技,这就是一种极大的精神享受!然后在 专栏里安利一些技术,比如 Shiny、Docker、SparkR。 这些有趣的技术都是这样利用业余的时间一点一点搞起来的。

其实,我正经混饭吃的工作是在私募做一枚数据工程师(R developer),平时处理一些金融的数据,除了给代码写各种测试,还要给策略跑各种回测,主要的工作是做股票持仓的组合优化。

此外,请原谅我安利自己的专栏和投资组合,对金融或者R语言有兴趣的码农或者矿工都可以关注我的 FinanceR 专栏 以及冷静的阿法 投资组合。

Dive into R the Hard Way

作为一枚野生码农,你们猜一下,在我成为一名R Developer之前什么专业的?水利?物理?建筑?都不对,其实,我的专业是物流(之前最热的O2O好伐)。最初,我沉浸在EXCEL万能大法的世界里(数据库+交互式计算+文档输出+VBA)整天研究物流模型,比如选址模型、运输模型、存储模型、决策模型、订货模型、最优化算法等等。

后来,机缘巧合,参加了几次数学建模比赛,年少轻狂的我用WEKA、SPSS、EXCEL组合拳对各种问题用各种机器学习算法进行建模分析,比如针对单独二胎政策用支持向量机和逻辑回归模型做预测。期间虽然拿了一些小奖,但是比赛做得多了就发现,依赖于现成软件中的算法针对现实问题很难做进一步的优化,并且产生真正的价值。我意识到盗版软件之痛,和国内教育的技术相对落后。

开眼看世界,我去到了由统计之都主办的北京R语言会议,会上各种学术大牛分享算法、模型、量化交易、数据可视化等等前沿技术,我意识到一群统计学家主导的R语言才是有效的研究工具。于是,我投入了统计之都的怀抱,混迹于统计之都的各个领袖的博客,开始了解数据处理的生态,学习了dplyr、ggplot、ggvis、knitr等等R包。至今我依然觉得,社群才是真正学习的地方,学校不是。

纸上得来终觉浅,绝知此事要躬行。我赶上了SegmentFault的黑客马拉松,这是我第一次感受到了黑客马拉松的魅力,各种音乐,游戏,贴纸,胸针,目不暇接。我拿着自己的一套R语言工具箱,临时和几个组不到队的医学从业者一起用R语言开发了一个基于基因和食物匹配分析的膳食推荐应用(shiny+RCurl)。万万没想到,开发拙劣的我们因为想法新奇居然得到了评委的认可,这极大鼓舞了我在编程上的热情。

我的成长观:社群才是知识汇聚之地。

Hardware and Software

我的主力开发都是在 Macbook Pro 上完成的,闲暇时间也玩一玩 Raspberry Pi 和 Chromebook。听说最近 树莓派3 已经出了,有机会可以再体验下。

Mac 在Mac上,我的启蒙导师就是 池建强池老师了,我买过两本《Mactalk 人生元编程》,自然 Mac上的效率之王 Alfred、 Vim、iTerm2、Chrome这些都少不了。然而要完全发挥出Chrome生态的威力,自然还要配上Lantern这个翻墙神器。

Chrome Chrome的云计算生态就离不开插件和Web App,Grammarly、Vimium、infinity、QR code、Hangouts等等根据不同的工作需要在不同插件中来回切换,不一而足。

Windows 由于行业的原因,我还是不得不使用一些Windows生态的软件,比如 wind terminal、onenote、excel、word等等。我使用了XtraFinder来保证大多数的键位习惯一致。

Team 在团队协作中,Sky、TeamViewer、Trello、Slack都是必不可少的。需要安利的还有 Droid4X,一款安卓模拟器,你甚至可以用它来抢微信红包。一些科研工具也值得推荐,比如Zotero和Rstudio。

VPS 作为码农,自然少不了VPS,在国外我选择的是AWS的乞丐套装,在国内,我选择的是 青云。区别于aliyun落后的UI和用户体验,青云的Web Design和工单服务当数一流,真正在为开发者解决各种实际问题(教会我如何构建MySQL和Redis集群、数据库重构、Nignx和Docker配置等等),墙裂推荐。

我的产品观:除非黑科技,否则不掏钱。

Black Tech

R Rsutdio、knitr、rmarkdown、shiny,实现可动态交互的统计报告并且极大简化论文撰写的方式,堪称一场学术革命。

以ggplot2、ggvis、rcharts、dygraphs等包为代表的数据可视化工具,输出专业美观的动态图表。

Python 独特的代码缩进要求和 Everything in Python,各种DevOps和快速开发框架。

Web开发四件套:Django、Flask、Tornado、Gevent 科学计算四件套:Numpy、Pandas、Matlibplot、SciPy 自动测试四件套:Nose、Pyunit、Selenium、Seige 国内金融三件套:tushare、vn.py、zipline 网络爬虫:Scrapy、Urllib、Requests 高端组件:OpenCV、NLTK、Tensorflow

Chrome Chromebook,crouton切换双系统,云端化生存。Google Sheets 取代 Excel (数据库+交互式计算+script+实时编辑+云端协同),在国内你可以用 一起写 来替代。

Raspberry Pi 树莓派做快速嵌入式开发,自制路由器、电视盒子、监控器、车载传感器等等。

Go Docker,现代开发流程中的航空母舰,一次运行,到处运行。Lantern,匿名翻墙。起来,全世界在墙内的人们。

Scala Spark,现代开发流程中的宇宙飞船,实现分布式开发傻瓜化。

JS Meteor、React、NodeJs,现代开发流程中的变形金刚,实现一次开发,多平台自适应。

Php WordPress,与时俱进的CMS,至今是媒体工作者的不二之选。

Book

其实,从高中开始,金融就是我最初的梦想。开启我金融梦想的一本书就是《水晶球》,这本书是罗杰斯的一本传记,讲述了他如何从乡下来到城里,如何考上名校,如何成为环游世界的金融大鳄。至今,我金融的世界观有一半来源于他的思想,激励着同样从乡下来的我在金融的道路上默默努力,也谨记着他相信趋势和历史,不依赖技术和模型的箴言。

在Mac上,我的启蒙导师就是 池建强池老师了,我买过两本《Mactalk 人生元编程》,干湿并重,讲述了一个工厂焊接工如何逆袭为码农的故事。

编程方面的启蒙读物就是《浪潮之巅》和《数学之美》,堪称经典之作,适合小白。这两本书从历史和数学的角度,对互联网和科技都做了一个非常专业的介绍。

我的读书观:鸡汤不看,干货网盘。干湿并重,可以掏钱。

IDE

一千个码农,有一千种以上的编辑器配置。对于数据民工的我来说,通常在轻量编程中,会使用 MacVim,如果是重量级编程就会切换到 Atom 上,如果需要重构就得挪到Rstudio上了。

Rstudio 对于 R 的意义,就相当于iPython Notebook之于 Python科学计算 那样深刻,当然以后可能是 Zeppelin。当然,Rstudio 不适用与重量级编程,多行选择,同时编辑这些现代编辑器特性还没有支持。

在投入现代编辑器 Atom 的生态之前,我还曾经用过 Sublime Text 和 Brackets,至今,他们也依然存在着一丝闪光点。比如 Sublime 在打开超大规模的csv依然不会卡死,而Atom就no response了,Brackets 在图片处理上的得心应手,完美结合PhotoShop。但是对于文字工作者,Atom 的顺滑在 HTML PREVIEW 和 MARKDOWN PREVIEW 时纤毫毕现,我永远地卸载了 Livereload 和 Mou。

Working Environment

我觉得最理想的工作环境就是现在的样子,和一屋子博士研究股票交易,讨论各种交易策略、趋势,看各种研报、论文,用代码和模型验证想法,比学校还有学术氛围。

人生有很多可能性,也许大多数情况下,我们都会失败。但是,就像股票的涨涨跌跌,只要坚持,逆袭的可能性还是有的。关键在于这个过程中如何更加清晰地认识自己吧。

Castalian

另外,推荐一款效率神器,无关代码,关乎音乐:Vinci头机,无线听歌的体验强势取代了我的douban.FM、喜马拉雅和小面条。头机真正实现了极致的听觉体验,解放手机,现在音源包含了虾米曲库和喜马拉雅FM。感受一下抛开手机在地铁上听 华尔街见闻 的感觉。

上述软硬件均未收取任何广告费,均是个人经验之谈,如有收获,欢迎打赏。


本文已经获得作者授权,原文链接:https://segmentfault.com/a/1190000004521190

作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者 Harry Zhu 的 FinanceR 专栏:https://segmentfault.com/blog/harryprince

如果涉及源代码请注明GitHub地址:https://github.com/harryprince

微信号: harryzhustudio 商业使用请联系作者。