“chriszhang”通过精心收集,向本站投稿了8篇怎么才能快速有效的学习编程,下面是小编帮大家整理后的怎么才能快速有效的学习编程,希望对大家的学习与工作有所帮助。
- 目录
篇1:怎么才能快速有效的学习编程
学习编程的方法
“快速”
对于“如何快速学习编程”这个问题,其实我真的不知道何谓“快速”。我觉得,通过遵循以下建议,你将很快地学习编程(至少你的成长/进步会快)。但你真的不应该眼中只有“快速”。只追求速度反而会拖你的后腿,让你自食其果。“快速”学习的唯一可持续方法或许是采用浸泡式教学法。找到一种方法让自己沉浸在编程中很长一段时间(几个月?)。为了让它奏效,你需要不断推动自己去学习新的东西,并迅速抽身离开。这是编码训练营的一个优点。当你出来时,尽管你还不是专家,但你会学得更快。这也可以通过专门的导师教导或与专门的初学者一起学习来实现。
读>写代码>读>写代码(日复一日)
关于如何高效学习编程我要给出的第一条建议是在阅读代码和编写代码之间循环往复。阅读代码(书籍,博客文章,开源代码)将帮助你查看解决方案,了解最佳做法,并大致了解语言或系统。但是在你这样做之后,你需要自己实际去写代码。可以是任何东西。可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。
这方面的诀窍是让自己感到不舒服。这是相当痛苦的,但就应该这样。编码遵循80/20规则。花80%的时间在20%的代码或20%你所学的东西上。习惯于这种不舒服的感觉并克服它是关键。
这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。
我推荐阅读关于通用编程主题的网站是lobste.rs。上面有许多关于许多编程主题的文章。另一个好的网站是Hacker News,但网站时常偏离话题。
不要陷入僵局。请求帮忙
我最大的错误是在学习编程陷入僵局的时候用了太长时间。在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。卡在一个东西上面超过一个小时基本上就是在浪费时间了。
我推荐三件事情以避免僵局。第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。第二是咨询互联网。这一点很显然,但依然值得一提。在网上查找并询问有过这个问题的人是一个非常重要的技能。Stackoverflow可以说是互联网上最好的网站。不要害怕在那里问自己的问题。通常,只要尽力正确地阐述你的问题就OK了。我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。我的第三个建议是向你认识的人请求帮助。通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。不要胆怯,大着胆子上前去问吧。
例如,当学习Docker时,我花费了大量的时间从头开始重新构建图像。我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。我可能花了8个小时就用在等待构建上。如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。
为项目而工作
在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。你面对的各种问题,以及你如何解决它们才真正是所谓的编程。知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。此外,想要完成项目的驱动力是继续学习的动力。从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。
我对于选择业余项目的建议是,选择你感兴趣同时你也有想法如何实现的东西。能够在开始之前表达实现总是有助于保持我的动力。在此旅途之中你一定会学到很多!
认识到深入钻研和搬运工之间的区别。相应地选择。
有两种类型的程序员:完美主义者和搬运工。有些人希望一切都是正确的,他们希望完美,他们希望遵循所有的最佳实践,并写出漂亮的优雅代码。他们想要理解每一行代码。有别于那些不管三七二十一,只要自己的代码能工作即可,即使对代码库有损害的人。平衡这两种技能是非常重要的。有时你应该深入钻研一个问题或项目,看看发生了什么。有时你应该让它工作即可,即使你不知道发生了什么。
每当你花费太多时间在某个东西上时,那就问问自己:我应该采取哪种方法?在大多数情况下,你会想取中间值。你想提供一个好的、坚实的解决方案,同时你可以自信地理解和修改,但没有耗费荒谬的时间。随着你作为开发人员的成长,你会更好地明白什么时候就此离开就可以,以及什么时候需要以某些方式完成。
就个人而言,我喜欢我的项目80%完美。如果你的项目是绝对100%完美,没有一行代码让你觉得尴尬,那么很有可能你已经花了太多的时间。
与其他程序员交谈
学习编程的一个很好的方法就是和其他的程序员交谈。不必谈论任何特定的内容。可以是你正在学习的东西,可以是你认为很酷的东西,可以是你正在工作的东西,皆可。你会发现很多程序员并不喜欢只是聊编程。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你将了解到其他人是如何看待编程的。你会发现,你认为理所当然或从来没有考虑的事情在人与人之间是非常不同的。
如果你没有什么可谈的,那就回到编辑器战争或tab vs space的话题。
尝试一切。如果搞不懂的话,那就等6个月。
最后,我要说的是,一直以来在我身上发生着这样的事,我尝试过很多东西,但我就是不理解。在用30分钟尝试新的东西后,我会停下来。我想这在起步时是很正常的。但是,我记得很多次,在6个月后(或3个月或9个月),我会回到同样的问题或技术上,弄清楚如何使用它。这是因为我又掌握了一些我以前不具备的知识,或者因为它只是另一种方式的框架。等待一段时间,然后回去,总是一种最有用的方法。
这方面的一个例子是学习如何使用终端。我记得很长一段时间我都害怕碰到终端,因为我不知道如何使用。我花了一段时间并按照步骤定期地使用它和理解它。当然,如果我认识可以向我解答的人,或者找到一个好的资源来学习,这样的事情就不会发生!
学习编程的建议
选择一门语言
确定你感兴趣的领域
你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加“易学”),你得去问自己自己想用通过学习这门语言完成什么样的工作。这将会帮助你确定你应该追求的编程方式并且提供一个良好的开始。
如果你想进入Web开发行业,那你将会有一堆语言需要去学习,这和开发计算机程序相反。移动App的开发需要比PC等的开发更多的技巧。所有的这些决定将会影响着你的发展方向。
考虑从一个“易学”的语言开始
无论你做了什么样的决定,你可能只会希望从一门高水准又易学的语言开始。这些语言对于初学者非常有用,因为它们教授基本的概念和适用于几乎任何语言的思维过程。
在这种语言中最流行的两种是Python和Ruby。它们都是使用着易读的句法的面向对象的Web应用开发语言。
“面向对象”因为着这个语言是围绕着“对象”、数据收集和操作的概念来打造的。这一概念被用在许多先进的编程语言上,比如C++、Java、Objective-C和PHP。
通读大量语言的基本教程
如果你还不确定你应该开始学习哪一门语言,那么就去阅读一些不同语言的基本教程吧。如果一门语言比别的更有意思,那就多去看看是不是真的那样。在网上对于所有的编程语言有无数个基本教程。
Python——一个非常适合初学者的语言 ,而且当你掌握它的时候它会变得更加强大。被用来开发了许多Web应用、甚至一些游戏。
Java——被无数个项目所使用,从游戏到Web应用再到ATM软件。
HTML——对于任何Web开发者必不可少的起航点。在从事其他一系列Web开发之前掌握好HTML非常重要。
C——最古老的语言之一,它已经是非常强大的工具,也是一些更现代的语言的祖先,比如C++,C#和Objective-C。
从简单的开始学起
学习语言的核心概念
虽然这一步中适合的部分将取决于你所选择的语言,但所有编程语言都有对建立有用的程序至关重要的基本概念。尽快的学习和掌握这些概念,将会使你更容易地解决问题和创建强大而有效的代码。下面只是一些在不同语言中的核心概念:
变量——一个变量就是一个去存储和应用以改变代码片的方式。变量可以被操作,并且经常被定义成“整数”、“字符”,还有其他的确定可以存储的数据类型。进行编码时,变量通常具有让它们对于我们有种某种含义的名称。这样一来我们就容易理解该变量如何与其余的代码进行交互了。
条件语句——条件语句是基于条件是否为真的一种行为。对于一个条件语句最常见的形式是“如果-那么”。如果这个条件为真,那么就有一件事发生,如果条件为假,那么就会发生另一件事情。
函数或子例程——这个概念的实际名称可能取决于不同的语言。它也可能被叫做“过程”、“方法”或是“可返回单元”。它本质上是一个大程序中的一个小程序。一个函数可以被别的程序“调用”多次,运行程序员去有效的创建复杂的程序。
数据输入——这是在几乎所有语言中都使用的一个宽泛的概念。它涉及到处理用户的输入以及存储这些数据。这些数据怎样收集则取决于程序的类型以及对于用户的可用的输入方式。它和关于显示在屏幕上还是打印在文件上的输出有着精密联系。
安装一些有必要的软件
许多的编程语言都要求有被程序员设计来讲代码转换成机器能理解的语言的编译器。其他一些语言,比如Python,使用可以立即转换成程序而不需要编译。
一些语言有自己的往往包含着代码编辑器、调试器和/或者翻译以及调试的IDEs(集成开发环境)。这些程序员在同一个地方去执行任何必要的功能。IDEs可能还包含着包含对象层次结构和目录的可视化界面。
在网上有许多的代码编辑器可以用。这些程序都提供不同方式的语法高亮和提供其他开发人员友好的工具。
学习编程语言的网站
1. 学习编程丨Codecademy
用互动的方式教你如何编写网页、游戏和程序。
使用简介:该网站需要先注册后才能使用,推荐使用163/126邮箱注册,完成注册后,进入网站主界面,即可看到开始学习按钮,点击开始按钮后,便可根据网站的指引,先进行9个基础小节的学习,以互动的方式进行教学,通俗易懂,简单、快捷、高效,心动就赶快行动起来吧!
2.酷壳 – COOLSHELL
业内知名的技术性BLOG,主要是陈皓先生所写,关于如何学习编程语言的相关教程、相关网站、以及对程序员的一些建议、对国内一些公司的相关评论等。
3.Github
目前最受欢迎的代码托管网站,需要先注册后,才能使用,推荐使用163/123邮箱注册。
4.最代码
代码分享网站,主要内容有:服务器软硬件、开源组件类库、脚本工具、游戏开发、客户端开发、数据库开发、Web开发、编程语言基础等等,还可按照最新分享、最热搜索等方式检索内容。
5.W3School 在线教程
所有的网站建设教程。从基础的HTML到XHTML,到进阶的XML,SQL、数据库、多媒体和WAP。在 w3school,你可以找到你所需要的所有的网站建设教程。从基础的 HTML 到 CSS,乃至进阶的XML、SQL、JS、PHP 和 ASP.NET。从左侧的菜单选择你需要的教程!
篇2:怎么才能有效学习计算机编程
学习计算机编程的建议
当然学习编程是一门苦差事,尤其是刚入门的时候,对着哪些它认识你,你不认识它的代码别提是多么痛苦的一件事情了,很多朋友可能受不了这种痛苦从而放弃了学习,因为很多人没有那个耐心和毅力。当然学习编程除了耐心和毅力之外还是需要一些方法和技巧的。
那么零基础该如何学习编程呢?首先自然是选择学习的编程语言了,计算机语言的种类繁多,但是大体可以分为机器语言,汇编语言,高级语言以及脚本语言。像是我们经常听到的C语言,java,易语言都是属于高级语言,像是php,javascript,jsp,asp.net就属于脚本语言了。
俗话说,书读百遍其义自见。编程也是一样,只有多打代码,才能从中找到规律。这里可能有的同学会问了,我都不会编代码,怎么才能多编写代码呢?其实,当我们跟着课程学习的时候,老师会给我们演示代码,一边看,一边就可以自己写代码,慢慢从中体会为什么这么编写。如果是想从事编程的同学,可以把写过的代码存到自己的文本文档里,这也就能知道我们的代码量,为以后找工作做准备。
没有基础的人的主要问题在于急躁和信心不足。编程起步时,总是会遇到困难,一个错误横在前面,很正常。有人用积极的态度对待,自己查书思考,或者请教别人,解决一个,长进一截;有人面对错误急躁烦恼,连连抱怨枯燥乏味。平常要用积极的话引导自己,多去谈长进,也要时常留意自己的进步。相信很多同学都喜欢和周围的人比,比来比去却唯独不看别人的努力,而总觉得别人都比自己强而丧失信心。
欢迎加入重庆中软卓越,我们携手谱写自己的未来!我们不生产技术,而是教育的传授者,更是it技术的搬运工。
学习编程的四大好处
1、强化逻辑思能力
写程序最重要的就是如何把大问题不断分割成小问题的过程,其中,小孩必须去思考如何把代码合理的安排在整个程序中,才能让程序流畅的处理输入、演算、直到输出,这对小孩对事物的逻辑分析能力会有极大的提升。
2、培养专注细心的学习习惯
除错,是每个写程序的人必经之事,不论大人小孩都没有例外。有时候只是少打了一个等号,或是在某一行的行尾少加了一个分号,就会造成程序大乱,更别说还有逻辑上分析问题时却忽略掉某种状况的陷阱。所以,学习写程式除错的过程中,绝对无法得过且过。能有效改正小孩马虎行事的毛病。
3、提高抽象思维能力
其实学写编程,就像学习第二外国语一样。如果说学外文是为了跟外国人沟通,学写编程就是学习怎么跟电脑沟通。有趣的是,你碰到老外不会说英文还可以比手画脚,跟电脑可不行。这表示孩子在学习的过程中,更需要一种把抽象化为具体的能力,好让不懂得思考的电脑,也能了解或表达抽象的事物。
4、提高知识整合能力
写程序说穿了,就是一堆电脑指令的排列组合。好比小学的时候我们查字典学汉字、学成语,之后学习如何利用习得的汉字、成语组成句子,进而撰写文章一样。程式中的基本指令就是汉字,写成可重复利用的 Function 或 Module 就像是成语,然而最终要完成一个有头有尾的程式时,则必须融会贯通,学以致用,确保程序在执行中不会出现矛盾的情形导致 Crash。
C++计算机编程语言的学习方法
1:知识构成
C++的知识总体来说,包括C语言结构化编程知识,面向对象部分和泛型编程也就是模板编程.总体来说,从语言的角度来看,学习C语言的结构化编程部分是容易的.因为这样的编程思想,通过多年数学函数的思维沉淀,是很容易接受的.所以,大多数人能学习好C部分,当然是否能用好,这是另外的话题了.但是,到了面向对象编程和模板(泛型)编程,很多初学者就死翘翘了,为什么呢?主要是思维体系的转变速度太快,很难短时间适应.
2:如何克服思维转变
要学习C++的面向对象编程和泛型编程,转变你看待世界的方法是一定的,但是,因为短时间引入了太多的概念,比如:封装,继承,多态,重载,虚函数等.就让很多人止步了.但是,这些知识才是C++的核心所在,如果这些知识不通过,就不能算你学好了C++.怎么办呢?
(1)你遇到的困难是所有人都曾经遇到的苦难,所以不要怀疑你自己.
(2)有时候,如果一个知识点不懂,并且已经花费了你很多时间,那么先跳过.
(3)无论如何,不管你接受到什么度,都一定要从头到尾的学完,这我们可以称为:初学.
(4)在初学的基础上,再次克服困难
(5)一定要用你学习的知识去编程,只有实践及不断的强化,才能让你真正理解.
(6)学会思考生活,应用现实生活中的工程方法去理解C++的语言设计思想.
篇3:怎么才能有效学习java编程
学习java编程的建议
1明确面向对象的范畴
我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮(看看Borland为什么有Turbo Prolog),但未来5-工业界广泛承认并接受的将是面向对象式的编程。
工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以同时掌握。
2掌握Java的精华特性
掌握Java的精华特性的同时,一定要知道为什么。比如,Interface和multi-thread。用interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理解interface是为什么,用多线程又有几种常用的编程模型。
3开始进行设计
理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式(你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最难的),然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计。
4学习设计模式
有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。
懂了这些模式之后,就会对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种左右。
5进行编程实践
接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾经学习过一个很经典的例子就是用Java实现的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我记不大清楚了。好象是个网站,上面有原代码和一些基本设计的文档。
另一个来源可以到是个不错的文档基地。从HotDraw上我学到了什么是Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地方。顺便说一句,这个例子你绝对不会觉得小,只会觉得大,并且他还是真正的商用的Framework。
零基础怎么学Java
理解Java思想
Java是一门面向对象编程语言。向对象编程是Java最核心的思想,这也是区分和C等其他编程语言的一个显著特征。掌握面一门语言,首先得掌握它的思想,思想决定高度。这就和我们学习语文和英语一样,汉语学拼音,英语学音标。抓住了核心,学习起来就事半功倍。
弄清基本概念
作为一门语言,Java肯定有着丰富而又简单的概念。弄清这些基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有那些应用。有些同学打开电脑就照着书本敲代码,根本没有想过这些代码中用到了哪些知识点,更谈不上理解了,这样是没有任何效果的。
多练习
只理解了Java的基本概念是远远不止的,还要知道怎么去使用。刚开始,你可能会觉得Java中那么多东西怎么也记不住,就连写一个小小的入门级程序都要涉及到好多东西。但是,当你亲手在键盘上敲了几遍之后,你就会觉得之前的那些问题都不是问题了。
学会帮助看文档与源代码
Java是一门开放源代码的编程语言。利用网络可以下载官方的帮助文档,当你不知道一个东西怎么用时,你可以打开帮助文档,你的问题一下就解决了。如果还不能解决的话,打开搜索引擎,输入你的问题,你一定会找到答案的。如果你想弄懂Java底层的原理的话,可以去网上下载对应的源代码。看了源代码之后,你会发现Java的世界是多么的奇妙,也会提高你Java编程的水平。
掌握一种好的而且适合自己的学习方法很重要。有些同学在学习Java的过程中会陷入误区,下面将给大家列出初学者容易进入的误区。
学习java编程的注意事项
盲目追求速度,不重代码质量
速度很重要,但代码质量更重要。一个在追求速度而不注重代码质量的环境下完成的项目,肯定是会有很多问题的,后期要花更多的人力物力来弥补,得不偿失。
没有团队精神,过于自我
一个项目不可能由一个人来独立完成,而是由团队里不同角色的人来共同合作完成的。个人的力量是渺小的,团队的力量是无穷的。当你的队友遇到问题时,如果你能解决,你要不吝帮助。同样,你有问题时,你的队友也会及时帮助你。
没有开源精神
一门技术,如果它是开源的话,它就会变得越来越成熟。当你写了一段团队里都能通用的程序时,你可以告诉你的团队,节省开发的时间,也创造了别人给你提出问题的环境,让你的代码更加完善。
给你的代码写上必要的注释也是非常重要的,好多人写程序时都不愿意写注释,给的理由是没必要或者是时间太紧,试想一下,如果当你正在阅读或者修改一段没有注释的代码时候,你是不是会觉得弄懂它的意思很难,当然你可以花更多的时间去弄懂它,但如果你加了注释的话,就完全没有必要花费更多的时间了。
总之,Java是一门容易上手的编程语言,但想要融会贯通,除了掌握良好的学习方法之外,努力是必不可少的。学习java要对自己有充分的信心,调整学习方法和态度。
篇4:如何才能正确快速的学习编程
快速的学习编程的方法
一、不断练习
每天都要敲代码
花大量的时间对于掌握一门语言是最重要的。即便是像Python这样的简单语言,它可能也要画上一两天去了解它的基本语法,花大量的时间才能真正精通。想任何其他的技巧一样,练习是变得更加娴熟的关键。尽量每天都要花一些时间去敲代码,即便是在工作之后和晚餐之前的一小时。
给你的程序设定目标
通过设定能够实现但又有挑战性的目标,你将能够开始解决问题并拿解决方案。尝试着去设想去一个基本的应用程序,比如一个计算器,然后想办法去做出来。使用你一直学习的语法和概念,然后将它们应用到实际中。
和别人交流并且阅读他人的程序
有很多编程社区致力于特定的语言或学科。找到并参与到这些社区会为你的学习创造奇迹。你将会获得能够帮助你的学习过程的各式各样的示例代码和工具。通过阅读他人的程序代码不仅可以激励你,还可以帮助你回忆那些还没有掌握的概念。
为你所选择的编程语言找到论坛或在线社区。确保自己是真正参与进去而不是不断地问问题。这些社区往往看着做协作和讨论的地方,而不仅仅是简单的提问-回答问题。请随时寻求帮助,但要准备好你的程序以及尝试用不同的途径。
一旦你已经有了一些经验,可以参加一些编程的活动。这些活动是个人或团队争分夺秒的开发功能的程序,通常会围绕一个特定的主题。这些事情都很好玩并且是一个认识其他程序员的很好的方式。
挑战自己并保持乐趣
去尝试着做一些你现在还不知道怎么做的事情。研究该怎样完成这个任务的方式,并且不断的将它们添加到你的程序中。一定要尽量避免勉强能运行的程序,你应该让各个方面都很完美。
二、分享你的知识
参加一些培训课程
许多的大学、社区学院、社区中心都提供了你可以参加的编程课程和工作室,而无需在学校注册。这里对于新手程序员是很有裨益的,因为你可以从其他有经验的程序员那里得到帮助,或者你也可以通过网络和其他地方的程序员一起交流。
买或者借一本书
有成千上万种你所能想象出的所有语言的教学书籍。虽然你的知识不应该全然来自一本书,但它们会给你提供许多的参考,而且往往内涵了大量友好的示例。
学习数学和逻辑
大多编程都涉及了基本的算术运算,但可能你想要学习更先进的概念。如果你想写出复杂的模拟或者算法级别程序,这将是非常重要的。对于大多数日常编程而言,你并不需要太多先进的数学知识。但学习逻辑,尤其是计算机逻辑,将能帮助你理解处理更先进程序的复杂问题的最好方式。
永远不要停止编程
有一个流行的理论,成为一名专家至少需要10000小时的练习。虽然这个理论还处于辩论中,但它内含的原则永远是正确的:精通需要时间和奉献精神。不要指望一夜之间你就能学会一切,但如果你保持专注,并且不断的学习,很快你就会成为你的领域里的专家。
快速的学习编程的技巧
“快速”
对于“如何快速学习编程”这个问题,其实我真的不知道何谓“快速”。我觉得,通过遵循以下建议,你将很快地学习编程(至少你的成长/进步会快)。但你真的不应该眼中只有“快速”。只追求速度反而会拖你的后腿,让你自食其果。“快速”学习的唯一可持续方法或许是采用浸泡式教学法。找到一种方法让自己沉浸在编程中很长一段时间(几个月?)。为了让它奏效,你需要不断推动自己去学习新的东西,并迅速抽身离开。这是编码训练营的一个优点。当你出来时,尽管你还不是专家,但你会学得更快。这也可以通过专门的导师教导或与专门的初学者一起学习来实现。
读>写代码>读>写代码(日复一日)
关于如何高效学习编程我要给出的第一条建议是在阅读代码和编写代码之间循环往复。阅读代码(书籍,博客文章,开源代码)将帮助你查看解决方案,了解最佳做法,并大致了解语言或系统。但是在你这样做之后,你需要自己实际去写代码。可以是任何东西。可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。
这方面的诀窍是让自己感到不舒服。这是相当痛苦的,但就应该这样。编码遵循80/20规则。花80%的时间在20%的代码或20%你所学的东西上。习惯于这种不舒服的感觉并克服它是关键。
这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。
我推荐阅读关于通用编程主题的网站是lobste.rs。上面有许多关于许多编程主题的文章。另一个好的网站是Hacker News,但网站时常偏离话题。
不要陷入僵局。请求帮忙
我最大的错误是在学习编程陷入僵局的时候用了太长时间。在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。卡在一个东西上面超过一个小时基本上就是在浪费时间了。
我推荐三件事情以避免僵局。第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。第二是咨询互联网。这一点很显然,但依然值得一提。在网上查找并询问有过这个问题的人是一个非常重要的技能。Stackoverflow可以说是互联网上最好的网站。不要害怕在那里问自己的问题。通常,只要尽力正确地阐述你的问题就OK了。我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。我的第三个建议是向你认识的人请求帮助。通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。不要胆怯,大着胆子上前去问吧。
例如,当学习Docker时,我花费了大量的时间从头开始重新构建图像。我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。我可能花了8个小时就用在等待构建上。如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。
为项目而工作
在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。你面对的各种问题,以及你如何解决它们才真正是所谓的编程。知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。此外,想要完成项目的驱动力是继续学习的动力。从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。
我对于选择业余项目的建议是,选择你感兴趣同时你也有想法如何实现的东西。能够在开始之前表达实现总是有助于保持我的动力。在此旅途之中你一定会学到很多!
快速的学习编程的建议
1,主动学习,我对要学习的编程语言充满了好奇与兴趣,并对它发自内心的热爱。不管怎样,要确保你自己是主动来学习的。有时候,压力的确可以促进学习,但是它不可以持续很长时间也不可以使你快速掌握该语言。
2,明白我要学习什么--我没有老师,没有练习资料,也没有考试,但是我可以测试我自己来看自己有没有理解正在学习的内容。我知道在新的领域,有很多限制,所以我在笔记本上写下了一些问题,在以后再回答他们(一般都是几个小时后)。你会发现记笔记,进行网络搜索,尽可能的收集参考书等对你的学习是非常有帮助的。
3,迁移知识--因为我是一个非常有经验的软件工程师,我可以迁移老知识来帮助我理解新的语言。在大多数情况下,都可以行的通,尤其对算法和理念屡试不爽。但是有些情况,知识迁移是错的,我必须做一个“迁移->测试(代码)->理解”的检查。
篇5:如何才能有效学习快速记忆法
有效学习的快速记忆法
一、进行大量的基础性练习
快速记忆法所传授的方法绝大多数都是要在所要记忆的内容之间进行联想,所以要求学员除了完成课程要求外,要在短时间内抓紧一切时间进行联想的训练,家长在条件允许的情况下,和学员一起进行训练,不仅学员的兴趣更为浓厚,而且能拉近亲子关系。利用课间休息、乘车、走路等时间将所看、所想到的事物进行一对一的基础性训练(方法见后面的具体章节),只有通地了联想的基本功训练才能快速收效。
二、正视困难
当你按照快速记忆法的指引不断了得进步的时候,有一天你也许会突然感到学习、掌握超级记忆法并不轻松,特别是在联想的过程中有时会有“绞尽脑汁”却联想不好的感觉。这时你千万不可放弃,如果放弃你可能永远离开了成功!须知任何一门技术都是要下工夫去学习的!初期的联想是会有一些困难的,但只要你坚持一段时间,你就会感到越来越轻松,以至于很多联想瞬间就可完成,不像以前那么费劲了。当你取得了一个又一个胜利的时候,自信又会重新回到你的身边,并且会激励你一直努力下去。
记住:学习记忆法没有失败,只有放弃!
三、学以致用
当你学习了记忆法的原理以后,要马上应用于实际。在学习、生活中有意识的运用记忆法所讲到的方法记忆各种问题,通过一个个小小的成功与喜悦的积累,使这种学习方法在你的生活中扎根。
向别人展示你的成绩
经过超级记忆法的学习,你的记忆力会有很大程度的提高,一次记忆上百项内容应该是不成问题的。有了这样的成绩你完全可以出去表演了!实践证明,向别人展示的次数越多,你的信心就越强,你的记忆速度就越快!“教学相长”的道理会在你身上得到充分的体现!但演示决不是炫耀,要反握分寸。喜悦与大家分享,成功在快乐中建树!
四、不断激励自已,进行自我暗示。
拿破伦·希尔,被称为“百万富翁的缔造者”,其倡导的成功学使许许多多的人走向成功。其内容很大程度上是讲如何用积极、正确的心态来不断的激励自己迈向成功的。实践证实,积极的自我暗示是成功的催进剂,经常进行自我成功激励能培养积极、坚定的自信心,能克服一切困难与险阻,顺利到达成功的彼岸。
适合你的快速记忆法有哪些
1.准备
为了使记忆过程最优化,密切注意你所选择的环境。对大部分人来说,这意味着没有干扰的地方,然而一些人在公共环境中更容易集中精力。找出对你的学习最有益的地点,这样才可以开始。
接下来,喝点茶。大量科学研究证实绿茶是提高记忆力的天然催化剂。机械地说,我们记忆信息的能力可以归结为大脑中神经元之间连接的强度,神经元通过神经键连接。神经键活动(重复)得越多就越强壮,从而记忆力也越强。
随着年龄不断增长,有害化学物质会损害我们的神经元和神经键,导致记忆衰退甚至老年痴呆症。然而,绿茶含有能够抑制这些有害物质的化合物,可以让脑细胞正常运作更长时间。
2.将记忆内容录音
听觉型学习者
如果你努力记忆的是来自网络课堂的信息,这种方法更有效。首先从环球网校的学习中心下载教学音频,然后听录音。如果你试图记忆课本上的内容,请大声阅读并录制下来,然后反复听自己读的内容。很明显,这种方法对于听觉型学习者来说最有帮助,也很方便。
3.把所有内容写下来
触觉型学习者
当你试图回忆所学内容之前,试着书写并重复书写信息。这样可以帮助你对试图记忆的内容更加熟悉。一边听录音一边书写也可以帮你记住更多数据,例如,你要复习某一讲的知识,边听音频边记录要点和重点也更让你记忆更深刻。这种方法对对触觉型学习者最有效。
4.把笔记分段
视觉型学习者
现在,你已经把所有内容都写在笔记中,把笔记分段。这种方法对于视觉型学习者来说比较理想,尤其是如果你使用彩色编码来区分不同的主题。这样可以帮助你把一切分解开来,划分记录在大脑中的信息。
把所有重点知识做成思维导图,这种方法就非常适合视觉型学习者。思维导图不但可以帮助学员了解教材内容及基本结构,还对学员有极强的引导和提示作用。第一遍看导图时要注意如何去看,按什么顺序看,是依据什么把章节分为几个部分的。第二遍看,就要将原文的句子和导图中相对应的关键词结合看,思考关键词表达的是什么意思,对应文章哪些地方,这几点明确后相信这张导图已经基本印在了你的大脑当中。移开导图,看看原文,边看边回想,能够全部回忆起导图内容的话,你就可以开始尝试背诵了。第一遍,看导图背诵文章,看自己能否通过关键词的提醒还原原文,如果感觉困难,则还需将文章对应导图多读几遍;如果可以,那么你完全可以大胆的背诵,通过回忆导图来完成记忆。当然记忆完后也需及时、适时的复习。
5.重复,累积记忆
视觉型学习者、听觉型学习者
对于每一行文本,多重复几次,尝试脱离文本来回忆。在你记忆每一部分文本的时候,不断累积,将新的信息添加到之前已经学习的内容上。这样可以防止遗忘短期内记忆的内容。不断重复,直到完成整个段落的记忆,能够回忆起所有内容。在完全记住当前的段落之前不要开始下一段落的内容。这主要适用于视觉学习,但是如果你大声读出来,也适用于听觉型学习者。
英语单词快速记忆法
方法一:串句速记法。
这种方法将两个或多个形似词、音似词或义似词安排在同一句中,同学们通过诵读例句,对比相似词语的读音、拼写和词义,可以快速而准确地记忆这些单词。例如:The lively girl is really lovely.那个活泼的姑娘真可爱。又例如:Amouse has a very small mouth.老鼠有张很小的嘴。再例如:My aunt never steps on an ant.我婶婶从不踩死一只蚂蚁。所给的这些例句,有的幽默有趣,有的朗朗上口,都具有极强的对比性……
方法二:歌诀速记法。
用“歌诀”识记单词的词形、词义和用法,可化枯燥为有趣,化繁琐为简洁。例如:用歌诀速记money和monkey的拼写和词义:老K“钱”中游,“金钱”变成“猴”。又例如:何时使用have gone to,何时使用have been to,令人迷茫,若运用“have gone to已去未归,have been to去过已回”进行巧辨,会使你茅塞顿开。再例如:用“do with找what配对,deal with与how有缘”巧辨这两个短语表示“解决、处理”时的固定搭配。这些“歌诀”或“顺口溜”速记法,寓学于乐,实效非凡……
方法三:归类速记法。
虽然英语单词众多,但在词形、词义、读音和用法上却 有异也有同。因此,采用归类速记法来“合并同类项”。例如:有只cat,身体fat,屋角sat,装作hat,想捉bat和rat。又例如:酒吧bar,小车car,罐子jar,遥远far,火星Mar,星星、明星是star。再例如:一个one,没有none,走了gone,事情被做过便是done。用这种“归类速记法”识记的单词或短语不是一个而是“一串”,对整体快速识记大有裨益……
方法四:个性速记法。
对于识记单词,各人有各法,只要用自己的方法能准确 识记,那就是有效的方法。例如识记window这个单词,有的记法是“w在两头,in, do在里头”;也有的记法是“两个女人(W)在里面做事(in, do)”。再例如识记banana这个单词,易错处是3个元音字母a,有人的记法是“香蕉一个一个又一个长在一起(a表示“一”)”。同学们不妨自己也找一找有哪些有效的记忆方法...
令许多英语学习都最头疼的事情,莫过于记单词。下面介绍一个定桩记忆法,跟大家分享一下。希望能够帮到跟单词做艰苦卓绝斗争的学生们。
篇6:如何才能有效的学习单片机编程
学习单片机的最有效方法是理论与实践并重
对一个初学单片机的人来说,如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,能够产生什么实际效果,那么也许用不了几天就会觉得枯燥乏味而半途而废。所以学习与实践结合是一个好方法,边学习、边演练,循序渐进,这样用不了几次就能将用到的指令理解、吃透、扎根于脑海,甚至“根深蒂固”。也就是说,当你此次学习完某几条指令后(一次数量不求多,只求懂),接下去就该做实验了,通过实验,使你感受刚才的指令产生了控制效果,眼睛看得见(灯光)、耳朵听得到(声音),更能深刻理解指令是怎样转化成信号去控制电子产品的。说句过分的话,单片机与其说是学出来的,还不如说是做实验练出来的,何况做实验本身也是一种学习过程。因此边学边练的学习方法,效果特别好,许多读者经3~6个月的学习已能开发简单的产品了(如霓红灯广告牌控制、累加计数器等)。
学习单片机要合理安排学习时间持之以恒
学习单片机可不能“三天打鱼、二天晒网”,要有持之以恒的毅力与决心,学习完几条指令后,就应及时做实验,融会贯通,而不要等几天或几个星期有时间后再做实验,这样效果不好甚至前学后忘。另外要有打“持久战”的心理准备,不要兴趣来时学上几天,无兴趣时凉上几星期。学习单片机很重要的一点就是持之以恒。
学习单片机要使用循环学习法使之根深蒂固
笔者曾在其它刊物举办过《手把手教你学单片机》讲座,该讲座入门起点低,很多朋友觉得好学、易学,很快就能将讲座从头至尾学完、学懂,但过了几个月,在开发产品时对指令的具体作用就有些淡忘了。根据现代科学的研究,对只短暂学过一遍的知识,充其量只比浮光掠影稍好。因此,较好的方法是,过一段时间后(1~2个月)再重新做一遍,这样反复循环几次就能彻底弄懂消化,永不忘却。有道是:若人生能细看《水浒传》10遍,那么里面的故事内容、人物场情将永生不忘。
学习单片机要进行适当投资购买实验器材及书籍资料
单片机技术是一门含金量高的技术,一旦学会后,它给你带来的效益回报当然也高,无论是应聘求职还是自起炉灶开厂办公司,其前景是光明无限。因此在学习时要舍得适当投资购买必要的学习、实验器材,另外还要经常去科技图书店看看,购买一些适合自己学习、提高的书籍。总之,春天不播种哪来秋天的收获?考虑到学习成本,对初学者可采用“程序完成后软件仿真→单片机烧录程序→试验板通电实验”的方法(现在的快闪型单片机其程序可烧写1000次以上),这样整套实验器材(不包括PC机)只有几百元,对大部分已工作的爱好者来说都有这个能力承受。而经济条件较好的读者可考虑使用在线仿真器(ICE)进行实验,这样学习时直观性更好。
总之这里所谈的就是作者的亲身体验。我们希望以最实用的方法,最易入门的手法,将初学者领进单片机世界的大门里,使这些仅稍懂硬件原理的人通过实践能理解软件的作用,让他们知道在单片机组成的系统中硬件与软件的区分并不绝对,硬件能做的工作一般情况下软件也能完成,软件的功能也可用硬件替代。等初步学会了单片机软件设计后,可将通常由硬件完成的工作交由软件实现,这样,系统的体积、功耗、成本将大大降低,而功能得到提升与增强,使习惯于传统电路设计的人对单片机产生一种妙不可言的相见恨晚之感,感觉到真正找到了一种理想化的器件,真正感受、体会到现代单片微型计算机的强大作用,从而投身于单片机的领域中。只要你肯努力、下功夫、多实践,一定会成功的。
篇7:如何才能有效的学习单片机编程
1、整体了解
要知道单片机是什么?单片机有何用?单片机系统设计的流程是怎样的、需要掌握哪些辅助软件(当然就包括相应的编程语言)?怎样设计算法、写出程序?怎样烧录程序?单片机是怎样工作的?怎样让它能支配机器按照人的需要进行动作?
了解这些之后,我们的学习就有了目标和方向。
至于这些问题的解答,主要应该还是在图书馆或网上的各种资料中寻找!
2、探索
单片机很难学,是因为其内部结构、编程语言抽象,且实际应用中与其他电子技术和元器件知识相互关联,需结合起来一起设计进行开发。
所以,第二阶段要了解单片机的内部结构是怎样的?单片机开发经常会用到哪些电子技术和元器件知识?如何将一条条编程指令组合成一段段有效的程序?并不断尝试,变换各种不同的描述方法,烧录不同的程序观察比较运行结果,分析出现的现象及其原因。这将给你的学习带来很大帮助!并且,程序的成功烧录和运行,也能极大增强你的自信!
3、解密
之所以单片机能成为控制核心,设计出包罗万象的应用系统来,是因为开发者利用了单片机提供的种种功能及各种外设。
因此,第三阶段我们要掌握单片机的各种功能,再加上诸如传感器、模数转换、扫描显示、串行、中断的应用思维,结合更多的元器件、电子电路知识,逐个学习、体会实际的单片机系统的秘密。
4、远航
通过以上三个阶段,大家基本就可掌握单片机的应用了。但要设计出丰富的单片机系统,解决复杂的实际问题,还需要了解更多的外设知识及其与单片机的联系(如电动机、各类存储器、继电器、红外管等)。这些需要不断的学习和积累。有时候,接到一些开发任务,就需要你针对这个任务自觉地去搜集、学习相关知识,在实践中不断学习和提高。
5、总之
1)先通过各种文献资料了解基本结构,掌握必备的基础编程能力;
2)买开发板动手实践,遵从教学视频做相应的更深一步的了解;
3)试着设计算法,编写程序,烧录程序,运行,并分析结果;
4)对程序进行修改,同时观察运行结果的变化,进一步了解单片机的运行及控制原理,总结;
5)试着进行新的开发,在开发过程中发现并解决问题,分析总结相应元件的学习套路,才能不断进步!
单片机编程知识问答
1. C语言和汇编语言在开发单片机时各有哪些优缺点?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。
对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。
而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。
如果对单片机C语言有兴趣,HOLTEK的单片机就有提供C编译器,可以到HOLTEK的网站免费下载使用。
2. C或汇编语言可以用于单片机,C++能吗?
答:在单片机开发中,主要是汇编和C,没有用C++的。
3. 搞单片机开发,一定要会C吗?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较好。
而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。
此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。
综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。
4. 当开发一个较复杂而又开发时间短的项目时,用C还是用汇编开发好?
答:对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。
5. 在教学中要用到8088和196芯片单片机教材,请问那里可以找到关于这方面的书或资料?
答:有关这方面的教材,大学里常用的一本是《IBM-PC汇编语言程序设计》清华大学出版社出版的,在网上以及书店都是可以找到的,另外网上还可以搜索到很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬 等编著 )和《16/32 位微机原理、汇编语言及接口技术》(作者: 钟晓捷 陈涛 ,机械工业出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。
6. 初学者到底是应该先学C还是汇编?
答:对于单片机的初学者来说,应该从汇编学起。因为汇编语言是最接近机器码的一种语言,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基础。
篇8:如何才能系统有效的学习编程
学习基本构造,并用真正的问题测试
如果你使用相应的书籍或某种形式的教程学习编程语言,那么现在你可以通过它们来学习了。
此时,你会觉得正在阅读的书或上的课程并没有你刚开始认为的那么神秘。
现在你要做的是熟悉所学编程语言的每个基本结构,然后使用这些构造编写一些代码。
你需要尽可能实际地尝试和思考将所学的东西与问题和应用程序联系起来,当你将技能应用到实际问题的时候,这样才能更好地理解和记住这些知识。
下面是大多数编程语言所包含的一些基本结构:
- 能够输出到屏幕上
- 基本的数学能力
- 作为一个变量存储信息
- 组织代码成函数,方法,或模块
- 调用函数或方法
- 布尔逻辑评估的性能
- 分支条件语句(if / else)
- 循环语句
怎么才能快速有效的学习编程(精选8篇)




