由于您的问题描述很模糊,偶无法判断到底是多大年纪的人来学习编程,因此本文中偶只谈少儿编程方面的事情。若是中年人转行学编程的情况,由于偶不了解,不能妄言。下面是偶的观点:
自学还是报班取决于父母有多少时间和精力陪孩子学习编程
这是偶经过观察、论证和总结之后形成的一个结论,也是偶认为你在做这个选择的时候,最主要的考量因素。原因如下:
少儿编程的学习,尤其是在学前和小学早期阶段,并不是要培养孩子写代码的能力,而是强调编程思维的培养!即计算机是如何解决一个问题的,也就是要让孩子熟悉计算机的运行方式、计算机思考和计算的方式。大家举个很简单的例子,大家都知道数学家高斯的故事,他在刚上小学的时候,就用自己的方法非常快的计算出了从1加到100这道题的答案,而其他同学却没有,为什么?区别就是,高斯采用的人的思维方式——找规律,而其他同学,采用的就是所谓的“笨办法”(老老实实的从纸上算1+2+3+4+……)也就是如计算机最常用的方式——累加法!而你学习编程,就是要重新适应计算机的这种笨办法,用它的行事风格来编写程序,这也就是所谓的“编程思维”的培养。这种能力或者说思考方式的培养,其实和你会不会写代码,是不是懂某一门语言关系不太大。所以,有很多的形式可以帮助大家的孩子来熟悉这种“编程思维”,比如日常生活中做一些游戏,读介绍计算机的绘本或者玩一些手机上的编程启蒙游戏,都能够达到这个目的,偶曾经举办了一个小范围的以“愤怒小鸟”为主题的编程启蒙游戏,就受到了孩子们的喜爱,和家长一起参与进来,明白了指令和动作之间的关系,以及如何编排指令来设计动作完成任务(如图)因此,这类游戏或者活动,其实对于5岁左右的儿童来说,是一种非常好的启蒙方式,而组织形式和难度,其实都是比较低的,只要家长愿意与孩子一起来完成,完全能够收到不错的效果。但是,即便你没时间,偶也不建议这个年龄的孩子去报辅导班学编程,因为目前偶所知道的课程,在这个年龄段的设计,几乎都是不太合理的,主要体现在没有考虑到孩子的认知发展程度,只是盲目的把高年级的课程下放了。
当孩子上了小学,家长可以考虑选择辅导班,但是仍然要注意呵护兴趣与好奇心!这个年龄的孩子们已经具备了抽象思维的能力并在快速发展中,此时如果你有时间和精力,那么你也要考虑相对系统化的给孩子开展编程教育;而如果你没时间,可以选择一家机构去让孩子系统的接触编程。在这个年龄段孩子普遍使用的还是图形化编程工具,国内所有图形化编程工具几乎都是脱胎于MIT开发Scratch软件,也就是用动画的形式来教给孩子们编程序完成任务,这个时候,你要循序渐进的培养孩子解决问题的能力,这就需要你有一个相对系统的参考,若是您自己指导孩子的话,建议关注国外的一个叫做
的网站,提供了丰富的编程教育内容,记得应该是微软、脸书之类扶持的一个机构,缺点就是全英文,当然也欢迎您关注偶的公众号(文末给出),编程启蒙是大家认为非常有意义的一个发力方向,因此大家会陆续有免费和收费内容推出的!如果您没有这个精力,那么报一个班也是可以的,注意选择那些相对成熟的大机构,如果是新兴的小机构,你要看他们的课程体系是否合理,建议以玩为主,别让孩子产生逆反,毕竟在这个年级,呵护他们对大千世界的好奇心是最重要的!
最后,祝你能从偶的回答中找到你想要的。如果喜欢,请关注并分享偶的答案!您的支持是偶前进的动力!
最后的最后,偶的公众号您可以微信搜索“彩虹阶梯科学课堂”获得,也可以微信扫描下图二维码。大家专注为5~12岁中国儿童提供优质科学教育内容!
在公司里真的能提升写代码的水平吗?
作为一名IT行业的从业者,同时也是一名计算机专业的教育工作者,偶来回答一下这个问题。
首先,答案是肯定的,程序员在工作岗位中是能够提升编码水平的。
程序员的提升方式通常有两种,一种是通过工作任务,另一种是通过主动学习(参与开源项目等),而且对于大部分程序员来说,完成工作任务是提升编码能力的主要方式,大部分程序员都是通过不断提升工作岗位从而来提升编码能力的。
程序员在不同阶段需要突破相应的编码瓶颈,对于初级程序员来说,瓶颈在于如何建立自己的编程思想;对于主力程序员来说,瓶颈在于如何提升程序的各种性能;对于架构师来说,瓶颈在于如何提升对于框架模式的理解。可以说,不同阶段的程序员面临不同的问题,通常也需要不同的方式来突破各个阶段的发展瓶颈。
对于初级程序员来说,要想建立自己的编程思想就需要多写代码,多做总结,而岗位开发任务恰好能够提供这样的机会,所以在工作的前几年,初级程序员的成长速度是比较快的。而对于主力程序员来说,要想突破自身的发展瓶颈通常需要具备相应的知识结构,知识结构不足往往是影响主力程序员发展的关键因素,所以不少程序员会通过读研的方式来完成瓶颈突破。
而对于架构师来说,要想完成瓶颈突破,往往需要研发资源的配合,比如项目类型、项目规模、开发团队配置等等,当然也需要架构师有较强的学习能力和研发能力,通常来说,大型科技公司的架构师往往会得到更多的资源。
总的来说,在公司从事程序开发是能够获得提升的,但是需要程序员不断突破岗位本身所赋予的发展瓶颈。
偶从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,偶会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注偶,相信一定会有所收获。
如果有互联网方面的问题,或者考研方面的问题,都可以咨询偶,谢谢!
为什么编程需要数学好才行?
前言:欢迎你进入软件行业从事相关工作。请坚信:编程是一件很好玩儿、很有成就感的事情!
文科和理科底层的差别
首先,大家聊聊偶文理分科的本质区别。
文科涉及的所有内容都是柔性的,而理科的都是刚性的。例如:用一篇散文表达儿子对父亲的怀念之情可以从很多过去的琐碎往事不断释放的情感来使整篇文章逐渐升温。而理性的思维下,对就是对错就是错,黑就是黑白就是白,既然对父亲怀念,不必先做大量的预热。
从学习的角度来讲,具有文科天赋能够将文科知识运用的比较好的往往是那些具有语言天赋,对语感有较强掌控力的人,能不能够沉下心来去阅读、去背诵、去品味。理科则完全走的是另外一个学习路径,大家可以看到很多理科尖子生通常都对以公式为核心的学习内容更能够快速掌握,通过推敲、判断来寻求问题的解决办法。
数学的意义
数学,作为一门基础学科,在很大程度上要归属于理科的范畴。像题主所提到的那样,概率、线性代数、统计学、离散数学、微积分都是它的常见课程。这些课程统统都有一套理论基础,并在这些理论基础下衍生出众多固定的模型、公式和严密的演算关系。
早些年,总有一句半玩笑的话,说某某数学家对于学术一丝不苟,连结果中小数部分的某一个末位数的计算都要再三、反复的计算,保证数据的精确性。它充分的例证了数学的意义在于能够严密的通过一系列推导、演算行为,只要固定输入就一定会有固定输出结果。
数学与编程
软件行业借鉴了很多其他行业的知识。例如:在软件工程方面借鉴了建筑行业的工程结构化思想,在软件需求方面又参考了商业模型分析的相关知识。
对于编程这个软件的细分领域之一,它需要保证能够按照客户的业务需求,将客户对市场分析的结果转化为一套需求分析体系文档、软件设计文档,然后依据文档,请架构师、软件工程师、测试工程师在项目经理、产品经理的通力合作下,一比一的实现出来,如果假定客户的需求绝对合理且实现方式完全可行的情况下,那么最终实现的软件产品和与产品本身配套的运营、维护服务都将完美按照客户预期的那样展开。
软件编程,不一定非要学好数学,关键是理性思维
数学是理科的头牌,数学是软件编程的重要基础。掌握数学实际上是持有了一把理性思维的钥匙,去打开软件编程世界的大门。但真正要遨游在编程之旅的还是要具备一些理性的思维。
如果觉得《游戏之旅–编程感悟 编程应该自学还是报班 – 游戏开发 – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!