当前位置:首页 > 教育培训 >

初中生学编程有前途吗(初中毕业学编程的有前途吗)

来源:原点资讯(www.yd166.com)时间:2023-05-11 18:57:48作者:YD166手机阅读>>

前几天看到一篇文章,讲的是一个初三学生,因为只对编程感兴趣(而且听他妈妈的意思是编程很厉害,是编程“大神”)导致其他学科成绩很差只能读职高,标题和链接如下:

历史上曾经有哪些15岁的人编程已经非常有名气?

历史上有一些15岁的人在编程领域取得了非常出色的成就,以下是其中的一些例子:

  1. Bill Gates:1970年,15岁的Bill Gates和他的朋友Paul Allen创建了他们的第一个公司Traf-O-Data,该公司开发了一种基于Intel 8008处理器的计数机,为交通调查提供数据。之后,他们继续合作开发了基于BASIC语言的操作系统,并成立了微软公司。
  2. Nick D'Aloisio: 2012年,15岁的Nick D'Aloisio创建了一款名为Summly的新闻聚合应用程序,它能够自动将长篇文章压缩成几句简短的摘要,该应用程序很快获得了广泛的关注。2013年,雅虎以3000万美元的价格将Summly收购,并将其改名为雅虎新闻摘要。
  3. Thomas Suarez:2011年,15岁的Thomas Suarez开发了一些流行的iPhone应用程序,如Whac-a-Mole和Bustin Jieber。他还在YouTube上发布了一些教程视频,教授其他人如何编写应用程序。
  4. Aaron Swartz:Aaron Swartz是一位计算机编程天才,他在15岁时就开始学习编程,并创造了一些重要的互联网工具和应用程序,如RSS订阅格式和开源网络论坛软件Reddit。他还是维基百科和Creative Commons的创始人之一。然而,他于2013年自*身亡,享年26岁。

这些人的成功证明,年龄不是成功的障碍,只要有足够的热情、天赋和努力,年轻的编程爱好者也可以在编程领域取得非凡的成就。

初三的学生编程能有多厉害?是不是不需要读很多书就能成为编程高手?数学能力对编程有什么影响?

上面提到了,曾经有很多国外编程大神在15岁的时候已经非常知名,那是不是说不需要读高中、大学就能成为优秀的程序员了呢?有很多人说编程需要数学能力很强,那这位初三学生数学成绩不怎么好,他怎么就编程这么厉害呢?

首先讲一下什么是编程:

编程是指使用计算机语言编写计算机程序的过程,它是计算机科学中的一项基本技能。编程的目的是让计算机执行一系列指令,从而实现特定的功能或解决特定的问题。

编程语言是一种用来描述计算机程序的语言,它定义了一组语法和规则,以及一系列计算机指令,用来告诉计算机执行什么操作。编程语言可以分为高级语言和低级语言,高级语言更加接近自然语言,更容易理解和使用,低级语言更加接近计算机底层的指令,更加复杂和难以理解。

编程的过程通常包括以下几个步骤:问题定义、算法设计、编写代码、调试和测试、优化和维护。经过这些步骤,程序员可以开发出各种应用程序、软件和系统,例如操作系统、游戏、网站、移动应用、人工智能和机器学习等。

上面我标记了几个关键词:高级语言、算法设计。这是编程的前提条件。

什么是高级语言?

我这里打个简单的比方:高级语言就是你的母语,比如中文,低级语言就是外语,比如法语,你用高级语言编程写程序(或者叫跟计算机交流)会相对容易很多,用低级语言则要难很多。初三学生通常用的都是高级语言(Java、Python等)。

什么是算法设计?

我还是举例子说明。

假设有一个有序数组arr = [1, 3, 4, 6, 7, 9, 11, 13, 15],现在要在该数组中查找元素6的位置,你要用什么方法才能以最快的速度找到他?你找到的这个方法就是算法设计。

通常有很多方法可以找到这个数字6,以下是程序员比较常用的两种:

二分查找算法(Binary Search Algorithm)也被称为折半查找,是一种用于在有序数组中查找某一特定元素的算法。该算法的思想是,在有序数组中,先找到数组的中间元素,将其与要查找的元素进行比较,如果中间元素等于要查找的元素,则查找结束;如果中间元素大于要查找的元素,则在数组的左半部分继续查找;如果中间元素小于要查找的元素,则在数组的右半部分继续查找。以此类推,直到找到要查找的元素或者确定元素不存在为止。

二分查找算法的时间复杂度为O(log n),其中n为数组的长度。由于该算法只需要比较数组中的元素,因此效率较高,特别是对于比较大的有序数组,二分查找算法的效率更为明显,其具体查找过程如下:

  1. 首先,找到数组的中间位置,即arr[4] = 7,并将其与要查找的元素6进行比较。由于7大于6,因此继续在数组的左半部分继续查找。
  2. 接下来,查找左半部分的中间位置,即arr[1] = 3,并将其与要查找的元素6进行比较。由于3小于6,因此继续在数组的右半部分继续查找。
  3. 接下来,查找右半部分的中间位置,即arr[3] = 6,并将其与要查找的元素6进行比较。由于6等于6,因此可以确定要查找的元素已经找到,返回其位置3即可。

因此,使用二分查找算法,在该数组中查找元素6的位置为3(编程的时候通常位置从0开始的)。

接下来介绍一种比较复杂难以理解的算法,上述查找算法依赖数组是排好序的,就涉及到怎么把一组数字排好序的算法了,这里举一个快速排序算法的具体例子:

假设要对数组arr = [8, 4, 2, 9, 3, 6, 7, 5, 1] 进行快速排序,可以按照以下步骤进行:

  1. 选择一个基准元素,通常选取数组的第一个元素。这里选择基准元素为8。
  2. 将数组中小于基准元素的元素移到基准元素的左边,大于基准元素的元素移到基准元素的右边。具体实现可以使用双指针法,从数组的左右两端开始,向中间遍历,并交换元素位置,直到左指针和右指针相遇。在这个例子中,第一次遍历后数组变为[1, 4, 2, 5, 3, 6, 7, 9, 8]。
  3. 对左边的子数组和右边的子数组分别递归地进行快速排序。对于左边的子数组[1, 4, 2, 5, 3],选择基准元素为1,将小于1的元素移到基准元素的左边,大于1的元素移到基准元素的右边,得到子数组[1, 4, 2, 5, 3],然后对其进行递归排序。对于右边的子数组[6, 7, 9, 8],选择基准元素为6,将小于6的元素移到基准元素的左边,大于6的元素移到基准元素的右边,得到子数组[5, 4, 2, 3],然后对其进行递归排序。
  4. 递归结束后,将左边的子数组、基准元素和右边的子数组拼接起来,得到排序后的数组[1, 2, 3, 4, 5, 6,7, 8, 9]。

因此,经过以上步骤,快速排序算法将未排序的数组arr = [8, 4, 2, 9, 3, 6, 7, 5, 1] 排序为有序数组[1, 2, 3, 4, 5, 6, 7, 8, 9]。

上面提到的算法才是编程的核心,程序=算法 数据结构,数据结构都是编程语言涉及好的会用就行,尤其是高级语言。而算法则是要不断的学习,并且要具备不少的基础知识才能精通。

那高中毕业或者大专毕业为啥有好多人也能干程序员这一行?

其实写程序编程有很多方向,有一些方向是不需要特别高深的算法的,甚至有些大神已经把这些高深的算法写好了,你直接拿来用就行,所以做一些基础编程工作,比如开发一个网页,写一个简单的数据库查询修改程序等等,也不太会涉及底层知识。

但是如果要想成为真正的编程大神,就需要具备很专业的数学等理论知识,才能在编程之路上走的更远。

至于这个初三同学,他的发展路径我认为有两条:

  1. 评论区的一条留言,这条路很好,我面试别人的时候也遇到过类似的大神(中专--大专--专升本--考研):本科学校有个编程牛人,是一路从职高到大专再专升本然后再考研浙大走来的,现在麻省理工学院攻读计算机相关的博士学位。
  2. 大专毕业,找个培训机构或者自学成才,读职高、大专的时候多找找实习工作或者搞一些开源项目,积累经验,毕业工作也不难找,就是不太好进大公司。

再多说几句,还有很多复杂的排序算法,都是各种数学家和非常聪明的大神设计的,目的是尽快的完成排序工作。常见的几种实现方式有以下几种:

  1. 快速排序(Quick Sort):该算法使用分治法思想,将数组分成两个子数组,然后递归地对子数组进行排序,最终将整个数组排序。快速排序算法的时间复杂度为O(nlogn)。
  2. 归并排序(Merge Sort):该算法也使用分治法思想,将数组分成两个子数组,然后递归地对子数组进行排序,最终将两个有序子数组合并成一个有序数组。归并排序算法的时间复杂度为O(nlogn)。
  3. 堆排序(Heap Sort):该算法使用堆数据结构来实现排序,将数组中的元素构建成一个堆,然后依次取出堆顶元素,再将剩余元素重新构建成堆,直到所有元素都取出为止。堆排序算法的时间复杂度为O(nlogn)。
  4. 桶排序(Bucket Sort):该算法使用计数排序的思想,将数组中的元素分配到不同的桶中,然后对每个桶中的元素进行排序,最终将所有桶中的元素合并成一个有序数组。桶排序算法的时间复杂度为O(n)。
  5. 计数排序(Counting Sort):该算法使用桶的思想,将数组中的元素作为桶的下标,然后统计每个桶中元素的个数,最终将所有桶中的元素合并成一个有序数组。计数排序算法的时间复杂度为O(n k),其中k为桶的个数。

栏目热文

初中生建议学编程吗(初中有必要学编程吗)

初中生建议学编程吗(初中有必要学编程吗)

前两天,教育部发布了关于面向中小学生违规竞赛问题查处情况的通报。被定性违规的竞赛里,我们这几年参加过的数学花园探秘、华数...

2023-05-11 18:34:59查看全文 >>

初中有必要学编程吗(网络对中学生的利与弊)

初中有必要学编程吗(网络对中学生的利与弊)

数码新资讯?互联新事件?手机快测评?二十年专业老司机,等你上车,点击右上角关注泡泡网即可库克亚洲之行已经达到了泰国,并在...

2023-05-11 18:54:18查看全文 >>

初中生学习成绩不好适合学编程吗(初中生学习编程好不好)

初中生学习成绩不好适合学编程吗(初中生学习编程好不好)

很多人认为,初中毕业年龄偏小,文化基础太弱,学不了软件开发这么高大上的专业。事实真的是这样吗?下面我来给大家简单分析一下...

2023-05-11 18:47:33查看全文 >>

怎么在电脑上安装格来云(如何下载格来云电脑正版)

怎么在电脑上安装格来云(如何下载格来云电脑正版)

云游戏已不是什么新鲜词,早之前就已经有关于云游戏的概念,而随着5G时代的到来,“云游戏”也将慢慢落地实现。在2020年第...

2023-05-11 18:48:00查看全文 >>

开民宿需要什么手续(民宿一般多少钱一晚)

开民宿需要什么手续(民宿一般多少钱一晚)

点击头像联系什么是民宿营业执照?办民宿需要办理营业执照。除此之外,国内开民宿还需要以下5个证:1、卫生部门的《卫生许可证...

2023-05-11 18:36:56查看全文 >>

初中生能学习编程吗(初中生零基础学编程)

初中生能学习编程吗(初中生零基础学编程)

12月9日,教育部官网公布了一份答复函,针对全国政协委员提出的《关于稳步推动编程教育纳入我国基础教学体系,着力培养数字化...

2023-05-11 19:01:29查看全文 >>

初中生学编程好不好(初中生学编程有用吗)

初中生学编程好不好(初中生学编程有用吗)

科技,大国之芯。跨入2019年,5G、物联网、AI机器人、自动驾驶、区块链、重复性岗位消失......这些充满未来感的词...

2023-05-11 19:01:09查看全文 >>

初中能学编程么(初中毕业的能学编程么)

初中能学编程么(初中毕业的能学编程么)

街谈12月9日,教育部官网公布了一份答复函,针对全国政协委员提出的《关于稳步推动编程教育纳入我国基础教学体系,着力培养数...

2023-05-11 18:37:27查看全文 >>

人防车位二次转让最佳方法(人防车位20年到期后怎么处理)

人防车位二次转让最佳方法(人防车位20年到期后怎么处理)

◆经济导报记者 杜杨 车位交易时有哪些“雷区”?业主购买时又该如何“排雷”?为此,经济导报记者专访了山东省律师协会地产专...

2023-05-11 18:48:58查看全文 >>

2022人防车位收归国有吗(开发商人防车位空着不租)

2022人防车位收归国有吗(开发商人防车位空着不租)

记者从湖州市人防办获悉,《湖州市人防工程产权制度综合改革实施意见》(以下简称《实施意见》)于今年4月27日正式印发,20...

2023-05-11 18:52:45查看全文 >>

文档排行