为程序员量身定制的12个目标![]() 感谢伯乐的投递 01. 变得有耐心 在一个月的尝试之后,你可以决定是否继续采用新方式,或者找到新方式中好的经验与原有方式的结合点。例如,在我从使用了10年的emacs转向vim时,我会为插入模式设置emacs风格快捷键从而继续使用vim。(《25个Vim教程、视频和资源》) 学习一门新的编程语言 编程语言起起落落。如果只了解一门语言,程序员的解决问题能力以及职业前景都会因此受到限制。花上整整一个月时间吸收一门新语言或者一个新的编程范式,并用它写一个小程序。 下面是一些可以学习但不是非常主流的编程语言: Racket、 Haskell、Scala、Erlang、Clojure、SML/NJOCaml、Squeak、Prolog、Datalog. 如果你无所不知,那么你可以实现一门新的编程语言。 自动化 程序员拥有最强大的待开发技能就是将虚拟和现实自动化的能力。如果你从来没有造过一个机器人,那么去做一个吧。至少学会使用Lego Mindstorms或者玩一玩 Arduino board。 检查一下你每天的任务,看看其中有哪些可以完全或者部分自动化。自动化在家庭生活里已经有了长足的进步,甚至可以像Insteon那样对系统进行DIY。 投资一个月的时间来进行自动化: procmail:procmail软件包包含一个自动的邮件管理器,可以很好的过滤和排序邮件。 cron:linux下的定时执行工具。 Roomba:Roomba是iRobo公司生产的定时智能机器人。 学习更多数学知识 计算机科学本质上讲是数学的一个学科。好的数学家中间会产出优秀的程序员。不要让你的数学能力丧失殆尽。 考虑每年花一个月时间复习列表中的一项: 逻辑学、离散数学、微积分、概率论、统计学、抽象代数、数论、范畴论、偏序理论 (《数学是成就卓越开发人员的必备技能》) 关注安全 很少有程序员具备好的安全习惯。如果你对自己的数字安全很在意,你就会对你写的代码安全性更加关心。确保你在每个站点都使用了唯一的高安全系数密码。使用加密的密码管理器来管理你的密码,例如PasswordSafe或者KeePassX。如果你还没有对整个磁盘加密,留出时间完成它。(在Mac上可以轻松完成) 每年都要研究过去12个月中前10位的安全漏洞。他们是如何发生的?在编程中需要怎么做能够避免在你的代码中出现这些漏洞? 下面是另外一些你需要尝试的安全任务: nmap:linux下的网络扫描和嗅探工具包 备份你的数据 每年花一些时间检查你的备份策略。 花一个月时间将备份花费的时间减到最小。 使用基于云的备份服务,比如Mozy和Carbonite,很容易建立无缝自动备份。 更全面地防御可以选择为每个人分发硬盘,对每台电脑使用像Time Machine这样的自动备份工具进行备份。 对重要文件使用异地远程仓库进行版本控制。 学习更多理论知识 计算机科学有丰富的理论基础。 了解最新进展的同时还要加强对经典开发理论的掌握。 译注: 形式语言:按一定规律构成的句子或符号串的有限或无限的集合。 自动机:是有线状态机(FSM)的数学模型。 可计算性理论:研究计算的可行性和函数算法的理论。又称算法理论。它是算法设计与分析的基础,也是计算机科学的理论基础。 计算复杂性理论:计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。 形式化方法:在逻辑科学中是指分析、研究思维形式结构的方法。 语义学:研究自然语言中词语意义的学科。也可以指对逻辑形式系统中符号解释的研究。 对于刚起步的程序员,可以先看一看下列文章: CEK:CEK机器是由Matthias Felleisen和Dan Friedman开发的λ-演算的力学模型。 Haskell:一种纯函数式编程语言,以美国数学家Haskell Brooks Curry命名。 接触艺术和人文 工程师往往轻视艺术。他们没有意识到艺术和人文是基础升华的重要因素。史蒂夫·乔布斯乐于指出将技术与人文结合的重要性,事实也却是如此。 艺术和设计原则同样适用于人和计算机之间的交互。不要忽视这些原则。艺术和人文的训练让直觉更加敏锐,而这方面的练习是难以用数字来计量。工程师需要知道如何衡量那些他们不能计量的事物,而不是只是统计他们可以计量的内容。 每年至少有一个月学习下面列出的主题: 向新的软件学习 一个为自己的软件寻找灵感的好办法就是向新的或新型应用程序学习。例如,如果你从来没有尝试过3D建模软件,可以尝试Blender。抑或是,如果你从来没有接触过LaTeX,请真诚地试着去了解它。 在学习过程中,请注意你喜欢什么和讨厌什么。真诚地问自己,这些观察到的内容是否在你的软件中存在。在工作中很难看到自己的缺点,但发现别人的不足却很容易。天下没有哪个父母认为自己的孩子长得难看。请学习看到自己作品的不足。 完成一个自己的项目 如果你整天为别人写代码,那么为自己写程序能让你记得当初为什么会成为程序员。每年为自己选择的项目分配一个月的时间,完成核心功能,将其开源发布。 原文:mattmight 译文链接:http://blog./11590/ 编译:伯乐在线 – 唐尤华 |
|