`
guoyiqi
  • 浏览: 1010491 次
社区版块
存档分类
最新评论

程序员是这样炼成的(4)-学会渔而不是鱼

 
阅读更多

上次跟大家分享的时候,就已经说明了如何对待技术的投资,今天在这里要谈一谈如何在思维程度上投资,而不是仅仅局限在我会一门语言这里,我在帮部门招聘程序员的时候常有一些感想,我判断一名程序员是不是适合这份工作,首要因素是他对这行的兴趣。如果我知道你是为了自身发展,或者更理想的是:你单纯为兴趣而学习新的东西,我会在心里给这名面试者打上高分,因为他会投入时间给他的兴趣,他的热情是他今后工作的动力。当我提到一些生僻的词汇或者非主流的技术的时候,我最不愿意听到的答案就是:"抱歉我觉得没有机会使用,所以我没有去了解。"


一个人对技术的执着可以激励你,让你更加热爱工作,更重要的是,边缘的技术和方法能让你扩充自己的视野和深度,像别人学习的人才会更优秀,更具有智慧和创造力。如果你发现你对新鲜的技术和事物缺少激情,你不想知道发生了什么。对不起,我要遗憾的告诉你。你可能选错的职业。做程序员不要死咬着一门语言和技术不放,我们学的是钓鱼,而不是死咬一条鱼(编程语言)。看过武侠小说的都知道,一般高手都是会很多武器的,只会舞刀或者使棒的一般都是小喽啰。我们要学的是程序员思维方式,是上成的内功心法而不是局限在某种语言里面。


如果大家有时间,不妨去学习一下新的语言。这门语言尽量的要与你常用的语言差异要大一点。如果你习惯了用Java或者C#不妨碍你去学习下Ruby或者Perl这类语言,试试方便快捷的面向对象感觉如何!你不需要成为专家,但是你可以感觉到两者的截然不同之处,你可能要转变一种新的思维方式来面对新的语言了。我有时候常用一种语言去理解新的一门编程语言,学C++的时候,什么OOP,多态,封装,我基本都没有听明白,那时候我只会pascal语言,后来一看之前常用的override不就是多态吗?把begin..end变成两个括号不就是开始结束吗?语言其实都是相通的,无非都是拿着判断,循环,递归在堆积木而已。不过要学会渔,还请大家注意三个方面:


1.打好基础。
至少要会一门语言吧,一些常用的算法,语法,数学基础,逻辑思维能力都要有。一般的武林高手,都会先修一门内功,内功修炼到了极致这个时候可以就可以博学外功了,而是事半功倍。


2.注意一些概念。
每门语言都有自己的一些独特的个性,技术差异。有的是数据类型的差异,有的是类型定义的区别,有的是逻辑符号的不同。单看一个‘='有的语言就是赋值号,有的语言就是逻辑判断,还有几个长的像的兄弟 ‘:=' ,‘ =='这样都值得注意。


3.养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。公司来了位新员工,今天帮他改代码,当着他的面,我一行一行的帮他调整缩进,优化冗余代码。虽然只是一些小的举措而且花了不少时间,但是我希望我的行为可以给他一些触动,让他可以重视这样的细节,这些对他的未来成长很有帮助的,而且我们团队需要有统一的编程风格和习惯。


4.给自己充电,学习更多计算机的理论
我现在其实很后悔的我的微积分没有学好。学编程是符合"理论→实践→再理论→再实践"的一个认识过程程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。昨天在开发组里面跟大家讨论遍历2叉树的时候,竟然忘记了那本大学图论教材的名称,看来真的很有必要温故知新下了。

这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。临渊羡鱼不如退而结网,我们要会渔而做一个渔人而不是愚人。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics