为程序员量身定制的12个目标_第1页
为程序员量身定制的12个目标_第2页
为程序员量身定制的12个目标_第3页
为程序员量身定制的12个目标_第4页
为程序员量身定制的12个目标_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、为程序员量身定制的12个目标 来源:伯乐在线 发布时间:2012-02-05 11:13阅读:7520 次 推荐:5原文链接收藏 英文原文: 12 resoluti ons for programmers 对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始, 我整理了 12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一 年循环使用。 变得有耐心 保持健康 拥抱变化带来的不适应 学习一门新的编程语言 自动化 学习更多数学知识 关注安全 备份你的数据 学习更多理论知识 接触艺术和人文 向新的软件学习 完成一个自己的项目 接下来我会对这些建议逐个介绍。 变得有耐

2、心 程序员们会担心锻炼耐心付出的努力得不到应有的回报。其实,培养耐心只要付出 很小的投入就能够得到相对而言很大的收获。下面是开始锻炼耐心可以尝试的一个列 表,只要全身心投入其中任意一项,都可以在一个月左右脱离门外汉(成为有经验的新 手)的阶段: 烹饪 徒步 滑雪 天文 慢跑 木工 武术 舞蹈 保持健康 程序员通常久坐少动,因此在日常工作中会面临健康问题,但通常都被我们忽略了。 一年中花整整一个月来调整你的生活习惯、饮食和生活环境,这会促使你养成持久、健 康的生活习惯。每年去一趟诊所检查血压、胆固醇和血糖,看看这些指标最近有什么变 化。如果你的手腕开始疼痛或者已经疼了很久,马上停掉手上的工作开始

3、与“鼠标手” (重复性劳损)作战。注意你的坐姿,尤其是肩膀和脖子。 我使用了矫姿器来帮助治疗。 跟踪你的体重、摄入以及燃烧的卡路里。如果有必要,可以改变生活方式以养成健 康的饮食习惯和减肥。 拥抱变化带来的不适 在我20刚出头的时候,通过观察身边年纪稍大一些的伙伴我发现有些人停滞不 前而另一些则活力充沛,我试着寻找背后的原因。答案就是舒适感。舒适会让技术停滞 不前。当找到一个能够为我所用的系统时,我们会一直使用它。但技术是不断进步的, 而那些停留在舒适区的人永远不会意识到这些进步能够为他们带来好处。不破不立,要 让自己适应不舒适的感觉。 下面列出的事情一 开始可能会让你感到不适应: 使用德沃夏

4、克键盘 使用vim 替代emacs,反之亦然 不使用鼠标 使用不同的窗口管理器 喝清咖啡不加奶油和糖,或者喝清茶 尝试一个月“流行且无聊的新事物” 一个星期中有一天不开手机 学习使用一种可以单手输入的设备 尝试一个不同的操作系统 一个星期中有一天不上网 试着对饮食加以限制:尝试吃素,成为纯素食主义者,不吃乳制品,等等 每天吃一种你不喜欢的食物 将你习惯使用的胳膊用绷带绑起来 学习用你不习惯的那只手写字 开一个博客 参加公共演讲 一个月听一种你不喜欢的音乐 去医院或退休家庭护理做志愿者 一个星期有一天快生活 去一个与自己文化或语言不同的国家旅行 读一篇广受好评但却不是你喜欢题材的小说 看一场广受

5、好评但却不是你喜欢风格的电影或演出 学会用变速杆(手动)开车 反对你相信的一些事情 在一个月的尝试之后,你可以决定是否继续采用新方式,或者找到新方式中好的经 验与原有方式的结合点。例如,在我从使用了10年的emacs转向vim 时,我会 为插入模式设置emacs风格快捷键从而继续使用vim 。 学习一门新的编程语言 编程语言起起落落。 如果只了解一门语言,程序员的解决问题能力以及职业前景都 会因此受到限制。花上整整一个月时间吸收一门新语言或者一个新的编程范式,并用它 写一个小程序。 下面是一些可以学习但不是非常主流的编程语言: Racket . Haskell . Scala . Erlang

6、 . Clojure . SML/NJ . OCaml . Squeak . Prolog . Datalog . 如果你无所不知,那么你可以实现一门新的编程语言。 自动化 程序员拥有最强大的待开发技能就是将虚拟和现实自动化的能力。如果你从来没有 造过一个机器人,那么 去做一个吧。至少学会使用 Lego Mindstorms或者玩一玩 Arduino board 。 检查一下你每天的任务,看看其中有哪些可以完全或者部分自动化。自动化在家庭 生活里已经有了长足的进步,甚至可以像Insteon那样对系统进行 DIY。 投资一个月的时间来进行自动化: 调整你的邮箱过滤器或者设置procmail 为频

7、繁进行的工作编写自动化shell脚本 编写shell脚本帮助写作 学会如何使用 cron工具 改造橱柜灯由感应控制 尽可能地用无线替代有线 停止手动同步:将信息存到云端 安装一个远程控制音频系统 通过你的服务器控制家里的空调 安装数字监控摄像头 安装数字内部通话系统,儿童监控系统 让咖啡机自动打开 为宠物安装自动给水槽 为宠物安装自动感应门 将Roomba 改造成个人信使 译注: procmail : procmail软件包包含一个自动的邮件管理器,可以很好的过滤和排序 邮件。 cron : linux 下的定时执行工具。 Roomba : Roomba 是iRobo 公司生产的定时智能机器人

8、。 学习更多数学知识 计算机科学本质上讲是数学的一个学科。好的数学家中间会产出优秀的程序员。不 要让你的数学能力丧失殆尽。 考虑每年花一个月时间复习列表中的一项: 逻辑学 离散数学 微积分 概率论 统计学 抽象代数 数论 范畴论 偏序理论 关注安全 很少有程序员具备好的安全习惯。如果你对自己的数字安全很在意,你就会对你写 的代码安全性更加关心。确保你在每个站点都使用了唯一的高安全系数密码。使用加密 的密码管理器来管理你的密码,例如PasswordSafe 或者KeePassX。如果你还没有 对整个磁盘加密,留出时间完成它。(在Mac上可以轻松完成) 每年都要研究过去 12个月中前10位的安全漏

9、洞。他们是如何发生的?在编程 中需要怎么做能够避免在你的代码中出现这些漏洞? 下面是另外一些你需要尝试的安全任务: 在Apache 中加入SSL验证 使用RSA或AES实现密码系统 试着破译你的无线网络密码 用WireShark侦听你的网络通讯 设置基于密钥的无密码ssh登录 自己运行nmap ;配置你的防火墙 建立端口扫描 为USB驱动器加密 监控日志文件 设置cron任务定期更新你的程序 译注: nmap : linux 下的网络扫描和嗅探工具包 备份你的数据 每年花一些时间检查你的备份策略。 花一个月时间将备份花费的时间减到最小。 使用基于云的备份服务,比如 Mozy和Carbo nit

10、e ,很容易建立无缝自动备份。 更全面地防御可以选择为每个人分发硬盘,对每台电脑使用像Time Machi ne 样的自动备份工具进行备份。 对重要文件使用异地远程仓库进行版本控制。 学习更多理论知识 计算机科学有丰富的理论基础。 了解最新进展的同时还要加强对经典开发理论的掌握。 每年在下列主题上花一个月时间: 形式语言 自动机与可计算性理论 计算复杂性理论 形式化方法 语义学 算法与数据结构 译注: 形式语言:按一定规律构成的句子或符号串的有限或无限的集合。 自动机:是有线状态机(FSM )的数学模型。 可计算性理论:研究计算的可行性和函数算法的理论。又称算法理论。它是算法设 计与分析的基础

11、,也是计算机科学的理论基础。 计算复杂性理论:计算复杂性理论是理论计算机科学的分支学科,使用数学方法对 计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的 相互关系和基本性质,是算法分析的理论基础。 形式化方法:在逻辑科学中是指分析、研究思维形式结构的方法。 语义学:研究自然语言中词语意义的学科。也可以指对逻辑形式系统中符号解释的 研究。 对于刚起步的程序员,可以先看一看下列文章: 用Haskell编写CEK风格的解析器(或语义分析器) 通过推导进行语法解析 遗失的方法:如何对Okasaki的红黑树执行删除 通过推导使用 Scheme进行正则表达式模式匹配 将郑则表示

12、转换成非确定性自动机(NFA ) 译注: CEK : CEK 机器是由 Matthias Felleisen和 Dan Friedman 开发的 入-演算的 力学模型。 Haskell :一种纯函数式编程语言,以美国数学家 Haskell Brooks Curry 命名。 接触艺术和人文 工程师往往轻视艺术。他们没有意识到艺术和人文是基础升华的重要因素。史蒂 夫乔布斯乐于指出将技术与人文结合的重要性,事实也却是如此。 艺术和设计原则同样适用于人和计算机之间的交互。不要忽视这些原则。艺术和人 文的训练让直觉更加敏锐,而这方面的练习是难以用数字来计量。工程师需要知道如何 衡量那些他们不能计量的事物

13、,而不是只是统计他们可以计量的内容。 每年至少有一个月学习下面列出的主题: 工业设计 哲学 摄影 绘画 素描 音乐及音乐理论 电影 文学 社会科学同样会对计算机科学家有很大帮助,尤其是经济学和哲学。 向新的软件学习 一个为自己的软件寻找灵感的好办法就是向新的或新型应用程序学习。例如,如果 你从来没有尝试过 3D建模软件,可以 尝试Blender。抑或是,如果你从来没有接触 过LaTeX,请真诚地试着去了解它。 在学习过程中,请注意你喜欢什么和讨厌什么。真诚地问自己,这些观察到的内容 是否在你的软件中存在。在工作中很难看到自己的缺点,但发现别人的不足却很容易。 天下没有哪个父母认为自己的孩子长得难看。请学习看到自己作品的不足。 完成一个自己的项目 如果你整天为别人写代码,那么为自己写程序能让你记得当初为什么会成为程序 员。每年为自己选择的项目分配一个月的时间,完成核心功能,将其开源发布。 原文:mattmight编译:敏捷 翻译-唐尤华 倚窗远眺,目光目光尽处必有一座山,那影影绰绰 的黛绿色的影,是春天的颜色。周遭流岚升腾,没露出那真实的面孔。面对那流 转的薄雾,我会幻想,那里有一个世外桃源。在天阶夜色凉如水的夏夜,我会静 静地,静静地,等待一场流星雨的来临 许下一个愿望

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论