自虐

来源:互联网 发布:数据库原理pdf百度云 编辑:程序博客网 时间:2024/05/17 09:21

每天:

象棋 30Min 早晨地铁上

慢跑 40Min 洋洋洗澡后

哈利波特英文版 1 hour 下午地铁上

水果一个


周末:

游泳 1hour

乒乓球 1hour


1个月计划:

自动化: 从perf report做起(2013.7)

数学:概率统计(2013.8)

计算机理论: 数据结构 (2013.6)

备份数据(2013.7)

自己做一个项目(2013.11)


我想我该折磨折磨自己了,就像matt-blog中提到的12 resolutions for programmers,就是自虐嘛。就按这些方法,我挑出几个做:

变得有耐心

程序员们会担心锻炼耐心付出的努力得不到应有的回报。其实,培养耐心只要付出很小的投入就能够得到相对而言很大的收获。只要全身心投入其中任意一项,都可以在一个月左右脱离门外汉(成为有经验的新手)的阶段:

我选择: 象棋 每天半小时

保持健康 

程序员通常久坐少动,因此在日常工作中会面临健康问题,但通常都被我们忽略了。一年中花整整一个月来调整你的生活习惯、饮食和生活环境,这会促使你养成持久、健康的生活习惯。每年去一趟诊所检查血压、胆固醇和血糖,看看这些指标最近有什么变化。如果你的手腕开始疼痛或者已经疼了很久,马上停掉手上的工作开始与“鼠标手”(重复性劳损)作战。注意你的坐姿,尤其是肩膀和脖子。我使用了矫姿器来帮助治疗。

我决定: 每天安排慢跑40分钟或游泳1小时,周末至少抽一天打乒乓球和30分钟跑步机。饮食目前坚持的还不错,要多吃水果。

拥抱变化带来的不适

在我20刚出头的时候,通过观察身边年纪稍大一些的伙伴我发现有些人停滞不前而另一些则活力充沛,我试着寻找背后的原因。答案就是舒适感。舒适会让技术停滞不前。当找到一个能够为我所用的系统时,我们会一直使用它。但技术是不断进步的,而那些停留在舒适区的人永远不会意识到这些进步能够为他们带来好处。不破不立,要让自己适应不舒适的感觉。

下面列出的事情一开始可能会让你感到不适应:

●使用德沃夏克键盘

●使用vim替代emacs,反之亦然

●不使用鼠标

●使用不同的窗口管理器

●喝清咖啡不加奶油和糖,或者喝清茶

●尝试一个月“流行且无聊的新事物”

●一个星期中有一天不开手机

●学习使用一种可以单手输入的设备

●尝试一个不同的操作系统

●一个星期中有一天不上网

●试着对饮食加以限制:尝试吃素,成为纯素食主义者,不吃乳制品,等等

●每天吃一种你不喜欢的食物

●将你习惯使用的胳膊用绷带绑起来

●学习用你不习惯的那只手写字

●开一个博客

●参加公共演讲

●一个月听一种你不喜欢的音乐

●去医院或退休家庭护理做志愿者

●一个星期有一天快生活

●去一个与自己文化或语言不同的国家旅行

●读一篇广受好评但却不是你喜欢题材的小说

●看一场广受好评但却不是你喜欢风格的电影或演出

●学会用变速杆(手动)开车

●反对你相信的一些事情

这个是最变态的一条了,就是刚刚提到的自虐,我可以选择一些做:

1. 使用vim替代emacs,反之亦然 : 直接用Linux,vim,

2. 不使用鼠标:有待考证,上网查些用键盘的经验。

3.使用不同的窗口管理器: totalcommander算不算?

4. 喝清茶

5. 尝试一个月“流行且无聊的新事物”:Lofter算不算?微博算不算?

6. 学习使用一种可以单手输入的设备: 有吗? 待查

7. 尝试一个不同的操作系统:Linux

8. 每天吃一种你不喜欢的食物: 我理解尽量接受新事物,每天估计做不到了

9. 将你习惯使用的胳膊用绷带绑起来,学习用你不习惯的那只手写字:写博客时?

10. 开一个博客:目前有新浪微博、网易博客,csdn blog、Tumbler、Lofter。尽量每天写Lofter吧,考虑英文写Tumbler?Lofter,Tumbler都不适合,社交性质太强,文章一发就被淹没在其他人的文字中,我只要个记录自己想法的地方,选csdn了

11. 参加公共演讲:还是先听吧,列个表英文的

12. 一个月听一种你不喜欢的音乐:这个够狠,一天一首吧,找网易音乐

13. 去一个与自己文化或语言不同的国家旅行:先澳洲,再美国,别舍不得钱

14. 读一篇广受好评但却不是你喜欢题材的小说:经济学原理逼自己看完好不好?还英文,够自虐吧

15.看一场广受好评但却不是你喜欢风格的电影或演出:和其他比起来,这是享受吧


学习一门新的编程语言

Pothon, Object-C (等C,C++熟练再说吧,标志是自己完成一个项目)


自动化

程序员拥有最强大的待开发技能就是将虚拟和现实自动化的能力。如果你从来没有造过一个机器人,那么去做一个吧。至少学会使用Lego Mindstorms或者玩一玩 Arduino board。 (好贵的玩具,等有钱再考虑吧)

投资一个月的时间来进行自动化:

调整你的邮箱过滤器或者设置procmail

为频繁进行的工作编写自动化shell脚本

编写shell脚本帮助写作

尽可能地用无线替代有线

停止手动同步:将信息存到云端

 

学习更多数学知识

考虑每年花一个月时间复习列表中的一项:

逻辑学、离散数学、微积分、概率论、统计学、抽象代数、数论、范畴论、偏序理论 (《数学是成就卓越开发人员的必备技能》)


备份你的数据

每年花一些时间检查你的备份策略。

花一个月时间将备份花费的时间减到最小。

使用基于云的备份服务,比如Mozy和Carbonite,很容易建立无缝自动备份。

更全面地防御可以选择为每个人分发硬盘,对每台电脑使用像Time Machine这样的自动备份工具进行备份。

对重要文件使用异地远程仓库进行版本控制。


学习更多理论知识

计算机科学有着丰富的理论基础。 了解最新进展的同时还要加强对经典开发理论的掌握。

每年在下列主题上花一个月时间:

●形式语言

●自动机与可计算性理论

●计算复杂性理论

●形式化方法

●语义学

●算法与数据结构

译注:

形式语言:按一定规律构成的句子或符号串的有限或无限的集合。

自动机:是有线状态机(FSM)的数学模型。

可计算性理论:研究计算的可行性和函数算法的理论。又称算法理论。它是算法设计与分析的基础,也是计算机科学的理论基础。

计算复杂性理论:计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。

形式化方法:在逻辑科学中是指分析、研究思维形式结构的方法。

语义学:研究自然语言中词语意义的学科。也可以指对逻辑形式系统中符号解释的研究。

对于刚起步的程序员,可以先看一看下列文章:

●用Haskell编写CEK风格的解析器(或语义分析器)

●通过推导进行语法解析

●遗失的方法:如何对Okasaki的红黑树执行删除

●通过推导使用Scheme进行正则表达式模式匹配

●将正则表示转换成非确定性自动机(NFA)

 

译注:

CEK:CEK机器是由Matthias Felleisen和Dan Friedman开发的λ-演算的力学模型。

Haskell:一种纯函数式编程语言,以美国数学家Haskell Brooks Curry命名。

 

完成一个自己的项目

如果你整天为别人写代码,那么为自己写程序能让你记得当初为什么会成为程序员。每年为自己选择的项目分配一个月的时间,完成核心功能,将其开源发布。

我想从游戏下手吧,简单的做起

原创粉丝点击