“你是怎么学会所有这些框架和语言的?”,最近在黑客马拉松上一个朋友问我。
“其实,很简单,只要用你想学的东西去创建一个合适又值得的项目就行了,”我回答说。
“真的吗?直接上手搞项目吗?“,他好奇地问。
“是啊,还有要向合适的人征求意见。聪明的人通常都很乐于教导和帮助别人。“我告诉我的朋友,同时心中想,我为什么不关于这方面的内容写一篇博客文章呢。——于是有了本文。
对想要在科技领域工作的人非常重要的一件事情就是,你得学会如何学习。我和很多非常聪明的人谈过关于学习和掌握技能方面的内容。我还花费大量的时间给我的朋友和同事们讲述一些关于如何学习的指导/建议。在这篇文章中我将为大家详细分析一些要点。
假设你想要学习这个语言/框架/ API /工具/事情,你其实真的并不需要知道从哪里开始。具体怎么做,下面我将一一说明,希望能对你有用。
1. 阅读文档
使用任何语言或框架的关键是熟悉它的文档。转至你想要学习的内容的主页,从头到尾看一遍上面的起步/快速入门教程。如果没有(这是罕见的),或它们的文档很难(这倒并不罕见),那就找找相关专家的建议。通常第三方教程都会告诉你你所需要知道的。
不要害怕学习新的东西。你会惊奇地发现原来get新技能是这么容易的一件事。
document
2.找一个值得构建的项目
你挑选的项目必须是你热爱的,能够真正投入到学习中去的。有什么想法,就去实现它!如果没想法,那么下面是一些帮助你找到项目的小提示。
说实话,当我想学习新内容的时候,我常常也找不到合适的项目。我的做法是咨询其他人的看法,直到遇到一个让我兴奋的好点子。我的朋友Yamil Asusta对于这方面就很有见地,最近他就这个主题表述了他的一些看法。在这里我想推荐两个他提出的好方法:
如果你想学习一门编程语言,学习HTTP请求在这种语言下是如何工作的。那么,你和其他工具交互的方式最好主要是通过HTTP,这本身就会让你明白语言的工作原理。
找一个可以使用不同工具建立的小项目。复杂度适中的小型web app,同时允许你使用其他框架,这样也可以学习其他框架的工作原理。使用不同工具构建同一个东西,能让你清清楚楚地明白工具之间的差异。
最后,如果你找不到项目,那么不妨想想有什么是只能用你正在学习的这种框架或工具构建的东西,然后开工。
3.开始启动项目
万事开头难。不要想着得过且过。从现在就开始,将时间尽可能多地投入到学习中来。
发现教程,可以开始启动项目,想到要构建什么项目,也可以开始启动项目。充实项目需要搜索编程软件,询问朋友,阅读更多的文档。不要随便乱写代码,不要只在从以往的经验角度来看问题。阅读文档,将时间用于理清常见的设计和架构模式。
4.询问知道的人
不要害怕问问题。如果你不虚心请教,那么你将用上更长的时间才能得到问题的答案。即使是最好的专家,在某些时候也是一个初学者,并且大多数人都愿意指导和帮助他人,回馈社会。
ask-know
提问的关键是你不能浪费任何人的时间。所以要提正确的问题。没有人愿意回答只需要谷歌搜索就可以解决的问题。最近我在和Hector Ramos(一个花了大量时间帮助大家解决Parse问题的人)交流时,他提到了当别人询问他时,他喜欢的两类比较简单明了的问题。
我想用Parse来实现this,以及this部分的文档,但是它不工作(肯定是我哪里犯了错误)。你能帮我看看吗?这是我的代码片段。
我可以用Parse执行x吗?
问题要问得简单明了,要便于对方答案。向正确的人问问题。通常而言,可用于咨询的人可被分为这两类:
对某个专业领域知道得很多。
学识渊博,对很多领域都有一定的了解。
所以,要学会区分他们,问对人。
5.部署项目
让你的项目到达一种你认为“完成”的状态。这意味着你并不需要做到臻于完美、100%完成,也不需要捣鼓得非常漂亮。只要你觉得你的项目OK,并愿意展示给其他人以显示你是多么棒就行。
software
当你完成项目之后,一定要把它放到Github上,或者部署到能让其他人看到的地方。这么做能允许别人批评和评论你的工作,敦促你为自己的工作负责,制作出更好的作品来。此外,这还能让你将来的雇主看到你丰富的经验。
即使你认为你的代码很烂,但你愿意展示的这个事实本身就说明了你是一个开发人员。你已经领先一步于那些甚至没有代码产出的家伙。
如果你要问别人问题,首先要让他们知道你学习到了哪里,向他们展示你的工作,让他们知道,他们为你解答问题的时间不会白费。最后,完成第一个项目之后,那就去做下一个。学习写代码的唯一方法就是写代码。同样的,学习新框架的唯一方法就是在这框架下写代码。所以,加油吧。
上面这些是我学习新工具的步骤。如果你也想要充分利用时间学习新的东西,那么我相信这将会是一个良好的开端。
最后,各位若有不同看法,欢迎留言。
程序员最爱的的9款文本编辑器:http://www.linuxdiyf.com/linux/10471.html
Makefile,Linux程序员你伤不起:http://www.linuxdiyf.com/linux/6109.html
程序员在Linux下有用的终端命令:http://www.linuxdiyf.com/linux/2301.html
.Net程序员:最简单方式掌握Linux本质:http://www.linuxdiyf.com/linux/489.html