
其实,儿童学习编程,并不是越早越好;而且,儿童适合学习的编程课程,跟大众印象中的编程是截然不同的,两者不能混淆啊。
儿童认知理论
由著名心理学家皮亚杰提出的儿童认知理论,阐述了儿童和青少年认知能力发展的四个阶段0~2岁:感知运动阶段 ,这个阶段的孩子主要通过各种身体放应来感知这个世界;
3~6岁:前运算阶段 ,孩子可以接受简单的图文,但是不能理解和应用它们;
7~11岁:具体运算阶段,孩子初步掌握了理解符号、物体的能力,但对抽象概念理解不足;
12岁以后:形式运算阶段,孩子思维发展到抽象逻辑推理水平,可以进行假设一演绎推理。
学习少儿编程最大的好处是可以培养孩子的逻辑思维能力。
研究表明,孩子在6岁左右开始形成抽象逻辑思维,所以6岁是学习编程的最佳年龄。
如果过早让孩子接触编程,他的思维和理解力等方面有限,不仅难以达到编程教育的效果,还可能引起孩子反感。
所以儿童学编程,并不是越早越好,6岁学习最佳,8岁的小朋友完全可以学习。
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段 进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位 防止MCU死机 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等
软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位看门狗可设定溢出率,也可单独用来作为定时器使用
凌阳61的看门狗比较单一,一个是时间单一,第二是功能在实际的使用中只需在循环当中加入清狗的指令就OK了。
C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制 寄存器的两次特定写 *** 作的时间间隔。如果这个时间间隔超过了编程的极限值,将产生一个WDT复位。
--------------------------------------------------------------------------------
看门狗使用注意:大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。
看门狗运用:看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值
系统软件"看门狗"的设计思路:
1看门狗定时器T0的设置。在初始化程序块中设置T0的工作方式,并开启中断和计数功能。系统Fosc=12 MHz,T0为16位计数器,最大计数值为(2的16次方)-1=65 535,T0输入计数频率是.Fosc/12,溢出周期为(65 535+1)/1=65 536(μs)。
2计算主控程序循环一次的耗时。考虑系统各功能模块及其循环次数,本系统主控制程序的运行时间约为16.6 ms。系统设置"看门狗"定时器T0定时30 ms(T0的初值为65 536-30 000=35 536)。主控程序的每次循环都将刷新T0的初值。如程序进入"死循环"而T0的初值在30 ms内未被刷新,这时"看门狗"定时器T0将溢出并申请中断。
3设计T0溢出所对应的中断服务程序。此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序
看门狗也有对计算机危害之处。如果用看门狗软件加密并发送到环形网络内(如学校机房),将会造成每发送一次,两台电脑同时中毒一天,还会持续一周蔓延。如:运行速度超慢,桌面背景变换,画图软件要黑色出绿色等等。还会造成每台电脑少几个文件。
1没有明确的职业目标
没有目标的人生,就像无根的浮萍,水流到哪里就飘到哪里,一生漂泊。
如果你想要在软件开发领域获得真正的成功,那么就必须知道该何去何从。或许面对遥远的未来,你已经有了一个粗略的目标了。但是除了这点还不够,你应当坚实自己的目标——清楚的定义在实现过程中的每个重要时间点所需要达到的效果。
我认识许多程序员和其它方面的专业人士,数十年来他们都在相同的职位上反复地做着同样的事情。是的,你没有看错,是数十年。接受职业现状,不做任何改变,是造成这种悲剧的根源。对于未来,如果你没有明确的职业规划,这样的悲剧就很可能会发生在你身上。
面对于此,你该怎么做呢?
从现在开始,花一些时间来认真规划一下职业并确定最近的目标。一旦你达到了这个目标,你就要选择一个新的目标了。在职业生涯中,这样的目标会一个接着一个。你可以把这些目标写下来,放在一个每天都可以看见的地方,这样就可以让你随时回想起当前需要做的工作。
2不重视“软技能”或非技术的东西
我认识许多擅长写代码的程序员,他们可以用所写的算法把我耍得团团转,他们对复杂架构的理解力和思考能力令我自愧不如。
但是真实的状况却是:技术不如他们的我,软件开发领域的职业发展却全面超过了他们,除了职位,还包括薪水、生产力等诸多方面。
在这里我并不是为了吹嘘自己多了不起,而是为了向那些只埋头专研技术的程序员们说明“软技能”对于职业发展有多重要。
作为一个软件开发者,我相信你也清楚,编写代码并不是工作的全部。在通往成功的道路上,还需要学习很多其它技能。我们需要长期与他人打交道,所以必须学习为人处事;软件开发面临长期的赶工与不同的需求变化,所以需要学习对心态和注意力的调整;在不断变化的环境里有许多事情需要处理,所以应当学习对事情划分优先级以做到效率的最大化。另外,我们对待身体健康应当和对待自己收入一样敏感,这个才是革命的本钱。
我还可以继续列举出更多的东西,关于了解开发者应当掌握的“软技能”你可以去阅读我写的《SoftSkills:TheSoftwareDeveloper’sManua》一书。
总的来说,在生活中无论从事什么样的工作,那些软技能通常都比硬性的技术能力更为重要,所以请保持不断地学习这些技能。
3不融入社区生活
在程序员生涯中有一样东西令我受益颇深,它就是社区的帮助。成为这个大群体的一部分,不仅让我拥有了归属感不再孤独,也帮助我改进了自身的技能,向着更高的平台发展。
如果你还没有参与社区生活的话,我强烈建议你融入这个圈子里来。它是一个比自我宽广得多的平台,有助于你的发展。
如果你感觉自己的软件开发工作停滞不前,费劲脑力也无法获得更大突破的时候,最好的方式就是加入社区,与一群有志同道合的人共同探讨所遇到的困难,获得有助于解决问题的建议。另外,融入社区生活还能够聚集人气,培养人脉,这对于提升自身的职业发展也有很大帮助。
但是,如何才能融入到社区生活中呢?
这很简单,世界各地都有很多开发者团体,你可以通过程序员网站找到并加入到他们当中去。你还可以参加开源夏令营,这是一个一年一度的免费地方性活动,众多开发人员会聚在一起分享他们的工作,任何人都可登记参加自己感兴趣的话题。
如果你不希望在现实生活中与过多的人接触,也可以选择加入虚拟社区。
那些大众的程序员社区会是你的第一选择。在社区中你会发现有一些非常厉害的程序员,他们会在自己的博客上写一些精辟的文章并解答大家的问题。除此之外,还有另外一些不错的在线社区,比如大牛们的博客网站、各种技术论坛、讨论群等。
当你开始学会分享,把自己的所知与所想都写出来的时候,你就真正的融入进了社区生活——而这个博客就是我为自己加入这个程序员社区所做的第一件事。:-)
4没有专长
如果你过去常访问我的博客或者YouTube视频,你会发现我很多时候都在谈论这个话题。这个话题是如此重要,以至于我一有机会就会说到它。
俗话说,术业有专攻。你应当选择一项想要专精的技术并努力磨炼它。但这并不意味着你就可以放弃对其它技术的基本理解而一味地去专研某项技术——我对那些会数种语言的人是非常欣赏的。这一点非常重要,尤其是在你职业生涯的早期培养一技之长的时候。
专长可以满足更高级的需求,因此,在同等条件下,它会带来更丰厚的报酬并更快的积累声望——这些对于业界对你的认可是很有帮助的。
有专长的人好比是小池塘中的大鱼,受人瞩目。或许最终这条大鱼会跳入更宽广的池子,但是所累积的声望和名气同样有助于在软件开发行业的其它领域的发展。
凡事只要七分就好,对于专长技术的研究学习同样如此。过度的投入会对程序员的时间与精力造成浪费,这是得不偿失的。
5无视个人品牌价值
生活中充满着各种变数:搬家、结婚、换工作、一夜暴富、突然发福等等。无论如何,有一样东西始终会伴随着你一生,而这个东西就是——名字。
你的名字会贯穿于你的全部生活,难道它还不值得你去重视么?
你的名字或者也可以称作是你的个人品牌是一件非常有投资价值的东西,可许多软件开发人员对此却一无所知。
对于获得工作、取得晋升、客户端的登陆以及工作的开展等,名字无疑都展现了其强大的作用。毫不夸张的说,假如你臭名昭著的话,会万事难行,而如果你有良好的名誉的话,大多事情只需通过简单的握手就能搞定。
我认识很多的软件开发人员,他们从不担心自己会失业,这是因为他们投资了时间和精力来打造坚实的个人品牌。他们知道,无论发生什么事情,在他们失业后的几个小时内就可以获得一份新的工作,这是因为他们在业界有良好的声誉。
对产品和服务进行的投资看起来很正常,但是你是否考虑过自我营销的价值?要在软件开发行业建立起自己的个人品牌,我的建议是从创建自己的博客开始,选择将自己的专长或者有很深了解的领域作为提高自己影响力的跳板,学会把自己的名字一步步做成行业的金字招牌。如何快速的提高自己的影响力呢?最好的方法之一就是创建对别人有帮助的文章。
就拿这个博客为例吧。这个博客建立了我在互联网上的个人品牌和声誉,如果你认为我的文章或者网站是有价值的,你会选择进行分享。甚至你有可能把它列入收藏或者进行订阅,以方便以后继续访问。而这只是其中一种打造个人品牌的方式。同样的,你还可以选择视频网站、播客等媒体,或者在书刊上发表文章,在会议上演讲等方式。如果你对如何在软件开发领域深度挖掘自身的品牌价值很感兴趣,这个网站会告诉你如何去做。
6荒废业务时间
在工作之余,你应当做一些项目来练练手。
做业余工作有许多你不知道的好处。首先,它可以有效的改进你的专业技能,特别是那些在平时的工作中很少用到的技术。相比起平时朝九晚五的工作,业余工作类型多变,对于专业技能的提高更有好处。其次,它有助于你对新的开发技术和技巧的学习。这对于日后你想从事新的工作是很有帮助的。我碰到过许多程序员,他们向我抱怨在当前工作中没有机会去学习新技术,这让他们今后无法在工作市场上立足。而我向他们建议工作之余去做一些小项目,使用他们今后想要立足的新技术——这种方式对于提高相关技术是很有帮助的。
除此之外,我们不要忽视做业余工作所带来的经济利益。人们常认为业余时间做的那些小项目是挣不到什么钱的,而事实上它却是额外收入的重要来源。4年以前,我在业余时间里开发了一个在Android和iOS平台上使用的应用程序,而到现在,这个应用程序还能为我创造价值。
我还认识一些程序员,他们从业余工作做起,最后把这些工作发展为了全职工作。而事实上我就是这些程序员中的一位。这个博客本身以及SimpleProgrammer周围的其它部分现在成为了我的全职工作。我喜欢称自己为程序员的生活导师,但是也有很多人认为我是一个专职的博客写手。
业余工作可以让你充满乐趣,它能够把你从那些你不喜欢但又必须去做的工作中解脱出来。作为一种释放工作压力的好方法,它会每天带给你新的希望。
7没有自我学习的计划
在我面试软件人员的时候,我首先会问到的一个问题就是关于他们的自我学习和持续完善的计划——如何进行自我完善。程序员如何在这个快速变化的领域保持技术与观念上的更新?我希望获得的回答是他们能告诉我对于自我学习与成长他们有着一个实际可行的计划。因为一个致力于不断学习进步的人不仅能够让自己迈向成功还能影响到周围的人,使他们一同迈向成功。
然而,有如此之多的程序员对于自我学习没有任何计划。假如你是这些人中的一员,你就应该立即行动起来做一个自我学习的计划。
这儿有一个可供参考的个人简单计划:
坚持每月读一本关于技术学习或者职业发展的书籍。
这意味着一年时间里你需要阅读12本书。对于我来说,我会在每天用至少45分钟时间来阅读。当我在跑步机上运动的时候我会同时阅读一些与我个人职业发展相关的文章。
积沙成塔,集腋成裘。每天只需花费30分钟时间来阅读书籍,一两年时间之后你的人生境遇就会发生很大的改变。
病因一:病毒作怪
由于计算机中感染了病毒这个可恨的家伙,使得计算机运行速度大幅度变慢。其作用机理有二:一是病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;二是因为病毒程序迫使CPU转而执行无用的LJ程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。
药方:可使用高版本的杀病毒软件。当然也不是安装了反病毒软件就可高枕无忧,由于新病毒每天都在诞生,所以我们还要注意经常升级反病毒软件,以免大意失荆州。
病因二:缺少足够的内存(相信现在大家的内存都不会小)
这也可以分为两种情况:
第一,相信看到缺少足够内存这几个字眼,一定会有很多朋友说这怎么可能呢,我的机器可是有多少多少内存啊。下面就请大家来看一台PⅡ 266的实例,该机使用了流行的AGP显示卡,加装了64MB SDRAM,那么其真正能够使用的内存有多少呢?首先Windows *** 作系统会用掉大约6~10MB的内存,用于存放其自身的模块;其次第二个杀手便要数AGP显示卡总线了。诚然使用AGP显示卡总线可以节省大量价格昂贵的显存,但是如果在一台配置了64MB内存的计算机上激活AGP功能,则系统便会分配给AGP显示卡高达32MB的主存(由系统统一控制),如此一来,系统就只剩下20MB左右的内存,这其中还要留有3~5MB备用,以免系统资源耗尽而崩溃,所以你真正拥有的只是不足20MB的内存空间。而且这有限的空间还要被诸多的后台驻留程序瓜分,如反病毒软件、超级解霸监控程序、Netmeeting等等。朋友们都知道即使是一个最常用的 WORD软件也要求最好有16MB左右的内存,而运行如 3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。
第二,Windows *** 作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时作,以便你同时做许多事情。但事情有利自然有弊,多任务作也会对你的机器提出更高的要求。如果你同时打开了过多的应用程序,即使内存再大,这时候系统的主内存也将会告急,系统资源会被耗尽,从而降低了程序的运行速度甚至导致系统的崩溃。以小生的机器为例,128MB主内存,有一次同时打开约50个程序时,在帮助中发现系统的资源已经为0可用空间,此时除非关闭一些应用程序,否则任何作皆无效。因而如果要运行多任务,就得考虑机器档次够不够高,内存是否充裕,否则其运行速度会比蜗牛爬快不了多少。
药方:第一种情况没法子,缺少了硬件的支持就好比纸上谈兵一样空洞,只有花点银子扩充内存了事(记住:增加32MB内存远比把CPU提高一个档次效果要好)。第二种情况只需关闭一些应用程序。
病因三:硬盘空间不足
使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。
药方:(1)使用FAT32,它将大幅度减少磁盘的占用空间;(2)尽量删除那些无用的文件和程序,最好使用程度提供的反安装程序以释放硬盘的可用空间;(3)定期使用磁盘管理功能整理硬盘,以减少文件碎片,使文件存储连贯;(4)建议定期 重装Windows(这也算一个办法嘛)。
病因四:Windows变得肥大
与DOS系统相比,Windows过于肥大,而且随着你每天的作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的注册表和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。
药方:使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。
病因五:硬件不支持
曾几何时,那台让你自豪的计算机再也不强劲了,看着在别人机器上流光异彩、飞奔如风的跑车到了这却犹如雾里看花。原因有二:一是CPU马力不够强劲,尽管它竭尽全力,可是往往还是力不从心,谁叫这计算机发展如此之快呢二是部件太老,以3D游戏为例,如果你的显示卡不是最新的型号,在运行这类游戏时便会因为显示卡不支持游戏模式(如openGL、D3D)而不得不采用软件模拟加速,导致游戏速度骤降,大有老牛拉破车之感。谁叫咱买计算机买得太早呢
药方:这回也没啥办法,老兄你就准备为这台老机器办理后事,然后赶紧存钱再买台新的吧!
病因六:配件搭配不当
一些朋友在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。
药方:找个高手帮你检查一下,更换掉造成瓶颈的板卡,即可享受卓越的整体性能。
病因七:硬件驱动
许多玩家是新手,他们对于硬件的驱动不甚了解,装Windows时不知道安装驱动程序,如此一来就像茶壶里煮饺子,有嘴倒不出,没能发挥硬件的性能,极大地浪费了资源。我们大家知道,相同的硬件搭配不同版本的驱动程序或者是不同厂家的驱动程序常常都会造成性能上的差异极大,更何况是没有安装驱动程序呢。以播放影碟为例,即使你是最先进的TNT显卡,如果未安装驱动程序,那么在播放影碟时它不会采用任何显示卡的加速功能,而改用软件来模拟加速,其效果自然是惨不忍睹了。
药方:解决方法是安装随机提供的驱动程序,建议找张最新的D版光盘或上网去拉最新的驱动程序,以全面提升你机器的性能
以上就是关于7.8岁的娃儿学编程会不会太早了,担心太难,娃儿学不懂,浪费钱全部的内容,包括:7.8岁的娃儿学编程会不会太早了,担心太难,娃儿学不懂,浪费钱、有关看门狗的问题、程序员在职业生涯中易犯的7个错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)