设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

如何学习一门编程语言

2013-7-26 11:00| 发布者: 红黑魂| 查看: 9011| 评论: 1|来自: mactalk

摘要: 关于学习编程这个主题,有各种读者多次要求写一写,而且要求文艺的写、抒情的写、充满社会主义特色的写,要做到:问题看起来巨复杂,读起来巨简单,学起来巨容易!看把你们惯成什么样子了,Mac 君你继续去面壁吧。好 ...

用好工具


俗话说的好,欲练神功挥剑自宫,sorry 不是这句,工欲善其事必先利其器,想要学习编程一定要写代码,我们不提倡咬破手指写bloody code,所以一定要找到趁手的武器。我个人把工具分为三种,第一种是部分程序语言自带的 shell,第二种是文本编辑器,第三种是集成开发环境(IDE)。

1、Shell,如果你在学习 Python,那么python shell,bpython 和 ipython 都是不错的选择;如果你在学习 Ruby,那么irb就是 ruby 的 shell;如果你在学习 Shell,打开终端(Terminal)就是 shell;如果你在学习 Java 或Objective-C,对不起,这些语言没有 shell。

Shell 能够单步执行你的编程语句并给出即时反馈,这种交互式编程方式非常适合初学者,所见即所得,所以凡是提供 shell 工具的语言,推荐大家优先使用shell学习。

2、文本编辑器,这个领域向来是「猿家必争之地」,溢美之词和吐槽之声交相辉映,从古至今绵延不绝,说起来都是眼泪,比如Emacs和Vim程序猿,大家沿着不同的道路和目标前进,但总是会在某个点交叉相遇,见面就扔石头和臭鸡蛋,砸得对方鼻青脸肿,然后擦擦眼泪和口水继续前行。还有 IDEer 说 Vimer 装逼,Emacser 说 IDEer 垃圾balabala……种种血淋淋的事实足以拍一部惊悚科幻动作言情片。

我自己比较喜欢文本编辑器,但是也不排斥 IDE,这种人俗称两边不待见,但我还是那句话,不为自己设限,不同的环境应该选择最好的工具。下面给大家推荐几款文本编辑器:

(1)VIM:号称编辑器之神,全键盘操作,充满速度感,良好的插件体系,几乎满足一切程序语言的编写需求。
(2)Emacs:神的编辑器,捆绑了文本编辑器的操作系统。没了,大家感受一下……
(3)TextMate:Mac 专有编辑器,号称 Ruby 程序员最爱,当年1.0版一份39欧元,总共卖了十几万份拷贝,现在2.0免费开源,原来的开发者已经消失无踪,据说挣足银子去太平洋的小岛晒太阳去袅。
(4)Sublime Text:文本编辑器的后起之秀,发展迅猛,媲美 TextMate,跨平台,比 Vim 和 Emacs 容易上手,号称性感编辑器。

以上四款自成体系,都有完善的插件生态环境,诸君可任意选择。

对于TextMate 开发者赚了钱就跑的恶劣行径,大家完全可以批判,有时我们不得不痛苦的承认,国外程序员的鸡贼是我泱泱大国之IT民工永远无法理解滴「泪」。

3、集成开发环境(IDE)

IDE 是图形化的集成开发工具,具备精准的词法分析、编程提示、调试等功能,功能之繁复用户自知,如果做工业级编程和团队协作的话,还是推荐使用 IDE。

在这里推荐几个系列:
(1)Eclipse 系列,通过插件方式几乎支持所有的常用编程语言,免费。
(2)JetBrains 系列,产品线丰富,几乎都是精品,Java、Python、Ruby、Php、Objective-C、Web 等一应俱全,收费。
(3)Xcode,Mac 上优秀的集成开发工具,所有的 Mac App 和 iOS App 都出自此货之手,免费。

微软的技术不懂,就不推荐了,嘿嘿……

除了写代码的工具,你还需要记录、阅读和查询,所以再为大家推荐三款应用:Evernote(笔记)、Pocket(以后读)和Dash(代码检索)。具体介绍和用法就不说了,不要忘了上一篇提到的Google君。

找到你的 Master


小时候看西游记发现,师傅原来是用来人肉的;后来看天龙八部发现,牛人都不需要师傅,即使有也是要被别人一掌震飞的;再后来看射雕英雄传发现,愚钝的人首先得有师傅,其次得有很多师傅,再次每增加一个师傅功力都以指数级别增长,2、4、8、16……

所以,如果有人告诉你三人行,一个老师都没有,你至少要质疑这一观点,同时考虑自己会不会筋斗云,是否天赋异禀以一当百等等。如果不成,那还是去找师傅好了。

有老师的好处有这么几个:
(1)老师能够看到你自己看不到的地方,人这一辈子,很少人能给自己一个清晰的评价和认知,要么高估自己,要么低估自己,而旁观者,尤其是老师,往往能够看到你的弱点、长处、威胁、变化,并给你适时的提醒和指导,少走弯路。
(2)所有领域的知识都是成体系的,如果有这个领域的行家里手在你早期的学习阶段进行指导甚至设计练习技巧,与自己琢磨的效果是不可同日而语的。估计每个人都会有这样的经历,一个问题自己,想到心碎想到梦醒也没有结果,别人过来抽丝剥茧条理清晰的一讲,不仅你懂了,连你的小伙伴都懂了。这就是听君一席话胜读十年书的道理。
(3)好处多多,余不一一。

但是走出校门之后再想找传统意义的师傅就很难了,像绝地武士那样和 Master 出双入对同生共死更无可能,这时你就需要把身边的朋友、同事当做老师和资源,不耻下问,而且要问的有智慧,让人有回答欲望,那么如何提问呢,请参考我之前写的一篇「如何提问」。

参与社区和技术会议


自己学习和同事交流之余,可以参与一些网络社区的交流,推荐:

技术问答社区:http://stackoverflow.com ,在技术领域几乎包括万象,无所不知。 GitHub:https://github.com ,几乎全世界优秀的开源软件作品都在上面。

另外还可以参与一些群组,订阅一些优秀的个人博客,这个时代依然有人愿意贡献优质内容。

选择性参与一些技术会议,比如 QCon,不指望在会场能学到什么,但可以了解技术趋势,并看看别人在做什么。

刻意练习


之前写过两篇「刻意练习」的文章,自感对学习编程有一定帮助,大家可以去读一下。

逃离舒适区


这一部分适合已经有一定编程基础的童靴

什么是舒适区?如果你是个新手,你就没什么舒适区,什么都不懂嘛舒适个毛,在磕磕绊绊的学习中懵懂前行,期间可能还伴随着老鸟的嘲笑和进度的压力,终于有一天你武功精进,乾坤大挪移练到了第五重,工作中开始得心应手游刃有余,不断有新人或老人来找你解决问题,你微笑着迎接挑战,淡淡的送走难题,你挥一挥手,不带走一片云彩,这是什么境界?这就是你的舒适区,这和靠在沙发上看电视的舒适不是一回事,通常进入舒适区需要花费你很多的时间和精力,需要你不断的练习,一旦进入,你会enjoy it!

这时候,如果有人胆敢让你脱离舒适区,可算要了亲命了,你会勃然大怒,轻则争吵,重则离职。这种事遇到太多了,一个写前端的你让他学习一些后端技术,一个写Java的你让他学习一下C,得到的答复可能会,Sorry, I feel very uncomfortable!

没有人学新东西的时候非常舒服,一旦经历过从新人到老鸟的过程,再让你进入陌生的领域,那种痛苦会让你自发的去抗拒。但是一个人不可能永远躲在舒适区里,逃离舒适区会有助于你从不同的角度看问题,视野会更加开阔。人总要往前走的。

很多人在某个地方待久了就会非常懈怠,没退休就像在养老,这时候你就知道,他们在舒适区太久了,与在哪个地方无关。

最后一招「见龙在田」


实战总是很重要,为大家推荐一个在线学习编程网站:

http://www.codecademy.com

假以时日,各位必定武功大成,那时横刀立马、拔剑四顾,说英雄谁是英雄!

转自 mactalk:http://macshuo.com/?p=703


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部