互联网职场:程序员如何选择第二门语言
以相对于第一门的角度来选择第二门语言,往往有如蓦地面临庞大生疏情况,这迫使你重新体会第一门语言刚最先时的步履蹒跚,你得从相对角度重新熟悉程序开发的天下,这样才有时机重新塑造思索习惯,也才气体验到Dijkstra在信中谈到的,程序开发另有许多你没有想过的工具,由于重新熟悉程序开发,你才有时机最先在程序开发上重复训练。
程序天下中的重复训练
在训练小提琴时,经常要重复地训练某个曲子,直到每个行动连贯而流通,训练书法时,必须重复地训练临摩书法家的名帖,不少武艺都需要透过重复性的训练来熟悉基本行动,为未来更高明技巧奠基基础,同样地,每个卓越运动家的成就,都一定历经由十万个小时以上的训练,那么,在程序开发的天下中,有这种形式的重复训练吗?维基百科上有个〈Kata(programming)〉条目谈到,code kata可以让程序开发者透过训练与重复来磨练技术。
第一个将日本武术中Kata观点带入程序开发领域的人,可能是《ThePragmatic Programmer》配合作者之一DaveThomas,他建设了CodeKata(codekata.com),现在提供了21个简短的Kata训练,有些训练必须举行程序开发,然而撰写代码上可以有多种差别方式,有些重点不在程序开发,而在思索方式,准确谜底也不只一个,你可以重复举行这些训练,这里训练的目的不在最后的解答,而是在训练的历程。Bob大叔在《The Clean Coder》中谈到Kata时也讲到:「训练者不是在解决真正的问题,由于你已经知道解决方案。相反地,你是在训练解决这个问题时,需要的行动和决议」。
当你在历经第一门语言的洗礼之后,对于某些问题,也许已经知道该语言怎样解决,因此第二门语言在选择时,若能挑选差异性大的语言,就可以借此换个角度来思索,重新训练你解决问题时的行动和决议。此时,除了从语法上来重新思索之外,也要从语言社群的文化与老例来思索,云云一来,就算是基础的数据结构与算法,也可以举行重复训练而从中获得差别的思索方式,我先前专栏〈数据结构与算法的七个思索术〉,谈到的就是这类的观点。
一年履历续用九年vs.十万个小时的训练
有人阻挡CodeKata的观点,以为程序开发领域中重复解决相同的问题荟萃,并不会带来任何前进,持有的对照示例像是:有人就算开了一辈子的车,也不会成为车神,也有人从戏谑角度说到「我只有一年履历,但又重复用了九年,这听来很糟,可是十万个小时的重复训练听来就很威」,这样的比喻并不准确,重点并不在于重复。
犹如小提琴每一次的训练,虽然看似重复,然而每次都得实验在重复中找到行动中需要革新的地方,或者更有用率的按弦方式等,才算是训练,若是每次都只是不假思索、单纯地重复,没有任何难题度与挑战性在里头,那就只是一年履历续用九年的重复,若是每次重复都加入了自我挑战与难题度,那才会是十万个小时的训练。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。