李昭谕:写给四年前刚开始编程的自己

标签: 程序员 职场分享 建议 李昭谕 编程 | 发表时间:2013-03-22 16:30 | 作者:刘志成
出处:http://blog.jobbole.com

来源: 李昭谕的博客@天堂皓月

2009年9月,进入大学的第一天,开始了我正式的软件工程的学习。为什么是正式的呢,因为之前虽然也写过代码,但完全是出于兴趣,想到什么就学什么,毫无章法。后来来到了北交大,进入了据说还不错的软件学院,有了一群志同道合的朋友,一位位用心良苦的老师,踏上了一个“ 程序员“的冒险旅程。现在,我在美国密苏里大学读计算机硕士,回首自己走过来的这四年,错过了很多,也明白了很多,收获了很多,对软件和计算机渐渐有了自己的认识,更重要的是,发现了自己越来越多的缺陷与不足。有些当年认为用处不大而忽略掉的东西,却成了现在最最重要的东西。有时会后悔地埋怨自己当时不努力,欠下了太多的债,只能后来慢慢偿还。

如果能够给我一次机会与四年前的我通话,我有太多的东西想对他说。然而,也许几年后再次回首,我会有另一番不同的思绪,但此时此景,我能想到这些,至少现在是对的,我不想后悔,把这些写下来,算是一种慰藉吧。

多出去走走,开阔眼界

“世界就像一本书,不旅行的人,只读过这本书里的一页。”

世界之大,无奇不有,不管你是否要做一个技术男,你都应该出去走走,去看更多的风景,去见更多的人,去体会更多的风情。不要做井底之蛙,这个世界到处都是精彩的事物,而有些东西如果不去亲自体会是永远无法得到的。没有人规定程序员就必须整天埋在代码中,上天赋予了程序员自由的职业特性,就一定要利用好它。程序本身就是一种美,你要时刻保持一颗欣赏美、涉猎美的心灵,才能更好地去发现和创造。眼界开阔了,心灵才不会收拘束。真的,这个世界太美好,去发现感动到哭的美。

你要做一个旅行家里代码写得最好的人!

不要沉迷社交网络,线下的生活更加丰富

碎片化的信息正在侵袭着我们的生活,社交网络的发明让我们能够在网上互动和交流。但你要问自己,这些真的对你有用处吗?当你和周围的朋友们沉迷于人人网微博消耗时间时,是否意识时间正在疯狂地消逝,等关闭网页的瞬间,你是否感觉到孤独感重新来袭。

最近刚看了《黑镜》第二季,第一集中男主人公沉迷于社交网络,有一天车祸不幸去世后,有人制作了一个机器人,根据他生前在社交网络上的言行,让他继续虚拟地活下去。当然结局你应该猜到了,是的,这个人没有情感,有些东西是永远无法从社交网络上模拟的。

线下的生活更精彩,你要多参加有益的社团、活动,多交朋友,在真实生活中维持真实的感情。

打好C语言基础,掌握并深入一门 编程语言

在后来的学习中,尤其是这几个月来在国外的学习,让我渐渐感受到一些教育上的差异。C语言作为你正式学习的第一门语言,你要做到的不是掌握语法这么简单。语言是指一种工具,帮助你理解程序设计的思想和奥秘。如果有可能的话,我希望你开始研读Linux设计思想和源码,理解其中各种设计模型和理念,因为这些才是根,当你真正了理解了这些,就会发现所有的语言都是互通的,都遵循了一个准则,即使有新的思想,你也会很快接受并融会贯通的。

说到语言是工具,你当然要选择一门语言并试图做到精通。建议你学习C++,因为它更接近软件的底层和实质。掌握并精通它,理解它的一切,并在现有的基础上创新。Java封装的太多,你可以用Java来很好地理解面向对象的设计原则,来快速地开发一些程序,但Java会限制你的提高。当然你可以做一个Java界的大牛,但你想想,除非你特别喜欢这门语言,否则不要被它框住。

一定要学好的课程,一定要读的书,一定要掌握的技术

这几门课程是你一定要认真学习的,因为有一天你会发现它们非常重要:“数学方面的课程”、“数据结构”、“算法设计”、“操作系统”、“数据库”和“系统级编程”等。

这几本书不管你有多忙,都希望你能好好研读:《 算法导论》,《 代码大全》,《 编程珠玑》外加多本文学书籍。

这几个技术一定要用心学习,因为它们真的很有用:Linux(内核+概念+应用),数据库,汇编与编译,调试,算法设计等。

广泛涉猎,但不要丧失重心

技术行业里永远有新的技术,不要让你的大脑僵化,要勇于去尝试新的东西,了解各个细分的行业,了解各项技术,广泛涉猎。因为只有这样,你才能发现什么是你真正喜欢的,真正感兴趣的。当你找到了自己真正的兴趣所在,你的所有研究和工作都将是快乐的。

另外,树立一个榜样,如果你决定要做一个商人,可以选择比尔盖茨、乔布斯,如果你决定要做研究,可以选择Linus,高德纳等技术流。抱着一种学习的心态去看待,不要盲目崇拜。

好好学习一门脚本语言

学习一门脚本语言如Python或Ruby。建议学习Python,并好好掌握它,这样可以让你更快速地与计算机交互,帮你快速解决某些问题。Python也有很多各方面的、优秀的框架,在Server开发、科学计算等方面都有很大的潜力。另外,PHP可以让你快速地架设一个小型网站,而且开源的系统也非常多。所有的这些工具,都可以在你需要的时候帮助到你。

保持一颗好奇心,一颗童心

时刻关注业界信息,关注各个IT公司动态,关注科技新闻,关注创业,向过来人吸取经验。你看得越多,分析的越多,你对业界的信息、发展的感知就会越敏锐。不要盲目跟风网上的言论,学会自己分析。

保持一颗童心,你才能保持一颗创造性的心,不要僵化思维,不要定势思维。这些都是需要训练的,相信你经过这些历练,一定可以有所进步。

最后,珍惜时间,珍惜生命,做最好的自己。

相关文章

李昭谕:写给四年前刚开始编程的自己,首发于 博客 - 伯乐在线

相关 [李昭 编程] 推荐:

李昭谕:写给四年前刚开始编程的自己

- - 博客 - 伯乐在线
来源: 李昭谕的博客( @天堂皓月). 2009年9月,进入大学的第一天,开始了我正式的软件工程的学习. 为什么是正式的呢,因为之前虽然也写过代码,但完全是出于兴趣,想到什么就学什么,毫无章法. 后来来到了北交大,进入了据说还不错的软件学院,有了一群志同道合的朋友,一位位用心良苦的老师,踏上了一个“ 程序员“的冒险旅程.

Hadoop Streaming 编程

- - 学着站在巨人的肩膀上
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:. 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer). 本文安排如下,第二节介绍Hadoop Streaming的原理,第三节介绍Hadoop Streaming的使用方法,第四节介绍Hadoop Streaming的程序编写方法,在这一节中,用C++、C、shell脚本 和python实现了WordCount作业,第五节总结了常见的问题.

Shell编程

- - 博客园_首页
本来打算寒假回家好好学习Linux的,为以后学习嵌入式打好基础的. 回家之后的学习效率非常低,之前为了搭建Linux环境,折腾了很长时间,学到现在也就勉强才把Shell编程学完了. 今天就把自己学习的相关知识点总结整理一下. 个人感觉shell程序跟windows下的批处理文件有点像,就是将一些系统命令写进一个可执行文件中,然后执行.

用 AlphaCode 编程

- - 奇客Solidot–传递最新科技情报
至少在部分问题上 AI 程序员能与真正的程序员竞争了. Alphabet 旗下 AI 子公司 DeepMind 宣布了 AI 代码生成系统 AlphaCode(PDF),声称测试显示其水平在编程竞赛中已经具备了竞争力. 计算机科学家 Scott Aaronson 也为 AI 在编程方面的进步 惊叹不已.

编程能力与编程年龄

- - 酷壳 - CoolShell.cn
程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《 程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样. 我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭. 因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧.

[译]所有编程皆为Web编程

- - 呦呦鹿鸣
原文作者:Jeff Atwood. Michael Braude对Web编程大受追捧表达了他的不屑:. 大部分人想去做Web编程的原因是,他们不够聪明,因此也做不了别的事. 他们不懂编译器、并发性、3D或类继承. 他们根本不明白我为什么要使用接口或者抽象类. 他们不理解虚函数、指针、引用、垃圾回收、终结器、传引用与传值的区别、C++的虚拟析构函数、或者C#的结构体与类之间的差别.

javascript 编程规范

- 红茶 - 博客园-Ruby's Louvre
为公司起草的javascript编程规范,参考了网上的许多资料,尤其是google的规范. 现在放出来,希望能抛砖引玉,大家多提宝贵意见. 本规范是针对javascript函数式编程风格与公司严重依赖于jQuery进行编码的现实制定出来. 禁止使用eval,with与caller(ecma262 v5 的use strict要求).

Javascript编程风格

- - 阮一峰的网络日志
Douglas Crockford是Javascript权威, Json格式就是他的发明. 去年11月他有一个演讲( Youtube),谈到了好的Javascript编程风格是什么. 我非常推荐这个演讲,它不仅有助于学习Javascript,而且能让你心情舒畅,因为Crockford讲得很幽默,时不时让听众会心一笑.

编程的未来

- - ITeye博客
最近在看一本书,加来道雄(Michio Kaku)的《物理学的未来》,第一、第二章是程序员更加关心的,对于下一个100年计算机和人工智能未来的预测. 想想计算机发展短暂的历史,这些发生了的翻天覆地的变化,似乎都在弹指一挥间. 无论如何,书中对其这样几个猜想令我记忆深刻:. 这是物理学家眼中的世界(另外推荐他的另一本书《平行宇宙》),激动人心;另一方面,我回想起小时候无比痴迷的机器猫,小小四维空间袋,寄托了孩子多少纯真的梦想,有多少神奇的道具已经成为现实…….

MapReduce编程模型

- - CSDN博客云计算推荐文章
MapReduce是一个Google发明的编程模型,也是一个处理和生成超大规模数据集的算法模型的相关实现. 用户首先创建一个Map函数处理一个基于对的数据集合,输出的中间结果基于对的数据集合,然后再创建一个Reduce函数用来合并所有的具有相同中间Key值的中间Value值.