偶在一家外企做编程工作,偶的很多同事除了问如何提高自己的技术以外,还会会问一个问题怎么提高自己的英文水平,能够和老外沟通。
其实想一想这两个问题其实是一个问题,那就是怎么学好一门语言?英语是和人沟通的工具,而编程语言是和计算机沟通的工具。
想一想,大家是怎么学习汉语的?有多少人可以正常的听说读写汉语,但是又有多少人可以被认为是熟练,或者掌握了汉语,甚至说是语言大师?
前者多而后者少。编程语言也一样,很多基本掌握能够运用的人,但是能被称为熟练或者专家的人那是很少。
以上那么多废话,主要是想表达一个意思,那就是编程语言并不难学,但是要学好很难。
那好吧,就怎么学习编程给一点偶的看法,抛砖引玉吧:
第一,编程是实践的学问,要动手编码,这很重要,平时多写一些,让计算机给你反馈,毕竟沟通是双向的。就好像英语一样无论你记住了多少单词,多少语法,你不开口说,不写一些东西,那学习效果会大打折扣的。编码的世界上本来没有路,踩的坑多了也就成了路。
第二,要坚持学习,有计划,可持续性的学习。偶不反对一段时间内爆发性,集中性的学习,就好像学校里考试前突击复习一样。但是想学好一门东西需要持之以恒。见过一些人包括偶自己,觉得这个技术很好,那个也不错,就都想学,结果都没学好。
第三,要读经典,经典的著作如<thinkinginJAVA>,经典的源码。学语言需要看大师级作品。学习语言也一样,需要读大师级的开源代码,偶曾经度过structs的源码(暴露年龄了),可能现在一点也不记得了,但是偶想偶在代码结构,编程风格上是获益匪浅的。经常读,反复读。
第四,多交流。多和比自己牛的请教,看看别人是怎么理解的,多分享自己的看法和经验,看看别人是怎么运用的。
第五,选择和运气,如果有一个好的项目和,项目组,里面的人都乐意分享,那么对成长是很有帮助的。
最后,语言只是工具,大家要传达给计算机的意思才是最重要的。那就是解决问题的逻辑和思想,最后一定是这些。这就好像语言大师用你想不到的词和句子表达你想像不到的意境一样。