没有数字技术,现代生活是无法想象的。它们绝对伴随着我们生活的每一天,促进和简化了许多流程。12月4日是俄罗斯的信息学日。南乌拉尔国立大学系统编程系主任、物理和数学科学博士、教授列昂尼德·索科林斯基向我们详细介绍了该领域的专家、其特点以及行业趋势。
– 列昂尼德·鲍里索维奇,您认为什么样的人可以被称为优秀的程序员?他应该具备哪些品质?
– 在个人品质中,我会强调毅力、坚持不懈、实现目标的能力,正是因为现代编程是一项非常复杂的职业,因为不可能编写一个没有错误的大型程序,这根本不可能。其中一些错误得到了纠正,有些错误仍然存在,可以存活数十年,并且在程序运行的任何情况下都会浮现出来。因此,程序员的主要素质之一就是能够定位、查找和纠正这些错误。
当然,你需要尝试以尽可能少犯这些错误的方式进行编程,这些已经是所谓的编程技术 - 大学教授的一门完整的科学。
另一个素质是了解现代编程语言。有些语言是几十年前开发的,例如C和C++语言,它们始终位居流行度前十。
下一个主要素质:我会说对理论基础有很好的理解,这是算法理论,数据结构理论,当然,高级程序员必须有良好的数学训练。
- 几年前,程序员这个职业并不那么受欢迎,但现在,根据招生活动的结果,我们可以说这个方向的相关性只会增加。你认为是什么原因造成的?
- 这是因为我们已经进入了信息技术广泛应用的时代,其中人工智能技术正在脱颖而出。拥有这些技术并知道如何在人类活动的所有领域有效应用它们的国家将成为领导者。谁来实施这些技术?程序员职业的人。因此,我认为在过去的15年里,对程序员的需求一直在快速增长。
尽管大学对这些专业的招生名额非常大,而且逐年增加,但需求仍在快速增长,因此,信息技术领域的人才短缺速度快于大学满足这一需求的速度。
同时,我提请大家注意,现代技术不仅仅是一个人在一周内完成一些课程或从书本上独立学习一些编程语言。不。需要受过高等教育、在信息技术和数学学科领域接受过基础培训的人。这些人是当今企业所需要的人才,我们大学培养的这类专家不仅在俄罗斯,而且在国外的大型领先公司工作。
- 既然我们在谈论神经网络。现在有人说神经网络将取代许多职业。您认为这会影响程序员吗?
- 确实,人工神经网络开始取代各种职业的人。至于程序员,这个问题在过去一年里一直被积极讨论,这是因为出现了一类神经网络,即所谓的转换器,它可以查看已开发程序中的大量数据,当一个没有经验的程序员或想要加快工作速度的人可以转向其中一个程序时,他们会用自然语言写注释,这个神经网络很快就会找到具有相同注释的类似程序并简单地复制代码。
这是一个很大的帮助,一些程序员将真正消失,即那些从事模板程序(例如网站或数据库应用程序)创建的所谓低技能程序员。神经网络最终可以取代这类程序员来开发标准程序。任务制定者将编写所需的内容并将其交给神经网络,神经网络将快速创建代码,自行测试,纠正错误并将其交给客户。
至于创造性任务,这些任务主要与人工智能系统的开发有关,目前还没有现成的模板,我认为对它们的需求会增长,但没有高素质的程序员是不行的。如果创造出强大的人工智能,这个问题就可以解决,但我们离这个目标还很远。
– 一年级学生从哪里开始学习编程?
– 我必须说,我们拥有相当有准备的人,他们受过一定的基础教育,因为现在学校的计算机科学水平很高,他们已经有一定的背景,也就是说,他们中的许多人已经知道如何用某种语言编程。尽管如此,我们仍然教授一种编程语言,我们不会花太多时间在这上面,因为学生要么已经知道它,要么已经学习过另一种语言。我们教授Python语言,它是最常见的十大语言之一,世界上大多数大学都在使用它。此外,我们还教授其他编程语言课程,还教授算法和数据结构的重要课程。这是一个相当复杂的项目,学习现代算法理论和现代编程中使用的复杂数据结构理论。
– 您对未来的专家有什么建议?
– 我建议积极进行自我教育,主要是学习使用新软件产品、库等。这是一项非常重要的技能,大学不能教授所有的软件产品,因为这个行业现在发展迅速,一切都发展得非常快,当教授正在开发一个关于某个库的讲座课程、做作业时,它已经过时了。因此,我们特别强调基础知识,强调程序员应该深入了解信息系统,以便熟练地构建它们并使其有效工作。这并不意味着我们不使用现代软件包——在实践中,我们这样做,但我们也鼓励学生自己掌握和学习它们。我希望你们学习,不要害怕掌握新的软件产品,培养自己的一项关键技能——学习和掌握新的有效软件产品的能力。