温馨提示 X

目前该板块仅对超天才会员开放,成为超天才会员,享更多特权

加入超天才会员

我是一个刚毕业没多久的学生,入职的公司刚好在启动一个关于AI的项目,本人对于人工智能有很强烈的兴趣,虽然是工科出身,但却没有编程方面的经验,想积极参与这个项目,现在的困惑是我应该直接学习编程的相关语言然后自己来实现相关功能呢,还是应该直接设计相关需求方案,让专业做编程的人员来实现编程?

顾雏军团队:现在理工科的学生,都是要掌握一门计算机语言的,你学的是什么?

A:我上学期间学习的是C语言,这是大学的必修课。大学开这门课的原因主要是,其一是C语言简单易学,实验场景也比较好搭建,其二是C语言对于学习后续的专业课有较大的帮助,比如操作系统、编译原理、数据结构等,其三是C语言依然有大量的应用场景。

顾雏军团队:大部分AI编程运用的计算机语言是python语言。Python语言目前在人工智能领域有非常广泛的应用,不论是计算机视觉领域,还是自然语言处理领域和机器人领域,Python语言都是非常重要的工具之一。

应用Python语言的主要原因是,其一是Python语言是最容易入门的编程语言之一,语法简洁明了,很容易在学习初期学习并使用,其二是Python语言在数据分析领域有大量的应用,而人工智能需要大量的数据分析操作,其三是Python语言的行业覆盖面更广,不像Java语言主要应用在IT互联网行业。

Python既支持面向过程的函数编程也支持面向对象的抽象编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++Java相比,Python以一种非常强大又简单的方式实现面向对象编程,标准库很庞大。

人工智能的核心算法是完全依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。所以某种意义上其实C/C++才是人工智能领域最重要的语言,对于学过C语言的你,这是一个优势。使用Python是因为Python的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的门槛要低不少。

而且Python历史上也一直都是科学计算和数据分析的重要工具,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。

学习Python语言可以通过自学,但是在学习资料的选择上,普通人要尽量选择知识量适中的书籍,尽量不要在学习的初期就选择那种知识量非常大的书籍,这些书籍并不适合基础比较薄弱的初学者。现在网上有大量的学习资料和书籍,你可以先选几本好的书籍,静下心来刻苦专研,遇到不懂的专业问题可以上网查相关资料,多做笔记多思考,最重要的还是实践,大部分书籍讲的知识点都大同小异,没必要浮躁的都看一遍,认真专研学习完12本就可以学到大部分的相关知识,当你先集中精力学习完12本专业书以后,你就会对Python语言有一定的知识基础。基础学习完之后,才是如何提升的问题!

A:Python虽然容易学习,但毕竟是从零基础开始学习一门编程语言,重新学习一门编程语言过于麻烦,而且团队里也有专业的编程人员,是否我可以不学习编程语言而让专业人士来编程?

顾雏军团队:努力学会编程语言,今后可以不求人,学习编程就要从多阅读程序开始,特别是多阅读开源程序,要能够看得懂一些开源程序,而AI的开源程序是水平很高的人编程出来的,只有看懂这些开源的程序才能达到一种很高境界,所以这一关要过。

开源也就是开放源代码,世界范围内的研究者都可以看到该项目的源代码,开发者可以看到该项目采用的技术、已实现的功能和仍存在的缺点,从而不断改进、优化其性能。在计算机科学领域,有许多熟知的软件项目均得益于开源。如Linux操作系统、MySQL数据库、PHP编程语言等。

开源代码是这个世界上水平自视很高的人弄出来的东西,一般来说水平差的东西,开发者自己都不好意思开源,所以只有自认为是高手的代码才会开源。比如比特币的开源程序出来,其他的各种币都是基于比特币的开源程序来做一定的改动和创新,就创造出了一种新的币种,国内的编程高手也是经常研究国外好的开源程序,来不断提升自己的技术和对行业的理解,因此,开源程序库才是对于编程人员真正需要学习的宝库。通过阅读大量的开源程序,不但可以学到别人的编程逻辑,更可以学到别人的编程技巧!

学习开源程序同时也可以降低你的学习成本,在开源程序的基础上进行二次开发,可以降低你的工作强度,避免一些重复性的工作,这样可以让你的项目进展更为迅速,缩短开发时间以及开发成本,站在巨人的肩膀上,你可以看的更远!所以想成为AI行业的专家或者高手,一定要从学习AI的相关开源程序开始。

A:耗费时间跟精力学习一门编程语言真的对自己的职业发展有利吗?

顾雏军团队:以你刚毕业的资历,自己不掌握python语言,总是指望与别人合作,即使你是一个聪明人,也难免受制于人,与自身的发展不利。

如何你自己不学习只提需求的话,人工智能项目运行出的结果多种多样,你不明白程序的内在逻辑,很多功能就没有办法提出进一步的改进意见。特别是在你依靠别人来编程的情况下,编程人员水平参差不齐,也许很简单能实现的功能,因为你所在项目组的编程人员能力不行或消极怠工,只以一句没法实现来搪塞你,这种情况会在项目进展过程中经常发生,因为对于编程人员来讲,你提出的功能越少,他们工作也就会越轻松。这就会导致很多创新的想法没有办法实现,长此以往会导致AI项目迟迟没有突破并且很难如期完成,这样不但会耗费公司大量的人力和资金,也会耽误你自己的精力和时间。这其实比你自学一门编程语言更耗费时间跟精力!

对于python语言来说入门不难,现在你的团队中,可能有一个很优秀的编程人员,作为这一段AI的研究经历,你至少要能看懂别人的代码吧!只有看懂别人的代码,才知道如果自己动手编程会有哪些问题,当你明白这个AI项目的编程逻辑和其中出现的问题,在项目的进行过程中,会不断提升自己对python语言的读写能力,编程语言学习最重要的就是实践,等到这个项目顺利完成的时候,那么你的下一个AI项目,你就会成为大拿,这就是所谓的人生和事业上的进步!你将来总要成为项目的领导者,如果你始终不能掌控程序,那你将永远不会成为一位高明的领导者。

A:我只是一个刚进入该AI团队的新员工,团队里的那些编程高手是根本不愿意让我看他们的代码的,怎么办?

顾雏军团队:既然是新手,应该虚心向高手学习,而真正的高手是对虚心学习的人施以帮助和援手的,不至于戒备太深,即使在一个戒备甚深的团队,你也可以通过研读相关开源程序,结合你现在的项目,通过对比运行结果来学习和揣摩,用这种方式来提升自己的技术能力,也许项目结束,你就能发现本团队编程的优缺点,甚至你都可以提出很多的改进意见了!千万不要迷信高手所编出来的代码有很高的技术含量并深不可测,都是在别人开源程序的基础上进行升级创新而已,技术只是一个熟练的过程,经过一段时间的学习和实践,你也一样可以成为所谓的“高手”!到那时,他们让不让你看他们的代码又有什么关系呢?我们的经验就是,一个真正的高手是不怕教会徒弟饿死师父的!对你封锁编程的人都不是真正的高手,大都也是混饭吃的,只要多研究几个开源程序,你就能很容易超过他的!

这是我的理解,仅供参考!