零基础的人应该学习哪种程序语言?

布小白


老僧看到这个题目,赶紧瞄了一眼答案。因为我想看看“PHP是世界上最好的语言”这个世纪大战是不是又要开始了……


如果你问一个程序员,哪种语言最好,肯定会引起腥风血雨的orz


不过,如果要问适合业余爱好者学习的编程语言,那就没什么太大的争议了。题主你的期待是零基础,那老僧比较建议题主学习JavaScript;


原因有很多:


1、相对C语言、Java等,JavaScript学起来要容易很多,适合外行人学习。你只要一个写代码的编辑器和浏览器就可以了,写完后可以直接在浏览器里看运行结果;


2、 实用性强: 学会了JavaScript(含HTML、CSS)你可以在网页版地图上标注你想标注的东西、数据的处理及可视化展示、定时抢购某些东西(等等;


3、热门:现在任何一个网页基本都使用了JavaScript,全球最大的代码托管平台GitHub里托管开源项目中最多的语言就是JavaScript ,且全球编程问答网站StackOverflow里最热门的也是JavaScript ;

4、可扩展性强:有了JavaScript功底,你可以轻松学习Node.js后端开发、Electron桌面端开发及weex移动端开发等 ;


综上所述,建议题主选择JavaScript!如果对编程感兴趣,有空不妨多看看一些变成大佬的专栏~


阿里达摩院扫地僧


如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么最终达到什么目的有很大的关系,但是事实上某些编程语言的确比其他语言要好学。选择一门合适的编程语言作为入门的语言对于培养自己编程的兴趣会有很大的帮助。下面为大家总结出的几种最佳0基础入门的编程语言候选名单。

1、Java

Java是互联网历史最悠久、最坚挺和最具影响力的编程语言之一。你可以在线上线下、各种平台、操作系统和设备应用的核心部分发现Java的身影。它是一门极具特色的基于类、面向对象的编程语言,被设计为能够在尽可能多的平台上移植和运行。

出于这个原因,它也是世界上最流行的编程语言之一, 坚持首选Java作为第一门编程语言的学习者必须注意Java迫使你以程序员的方式思维一逻辑和分析式思考, 并且真正把握计算机是如何处理信息的才行。

学习Java可转向JavaEE分布式开发、大数据+人工智能、软件测试等等。

2、Python

当我们讨论第一门编程语言以及哪一门语言更加容易快速上手时,很容易会提到 Python。它是一种面向对象、解释型计算机程序设计语言。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是PythonC/C++)很轻松地联结在一起。Python在设计上坚持了清晰划一的风格, 这使得Python成为一门易读、 易维护,并且被大量用户所欢迎的、用途广泛的语言。

学习Python可转向Python全栈+人工智能、网络安全、软件测试、云计算+信息安全等等。

3、C/C++

C++是C的自然演化,这两种语言大约分别起源于19世纪70年代和80年代早期。C语言是大学里面教的第一门编程语言,是一门使用非常广泛,通用的编程语言,它深远地影响了其后的几乎每一种语言。

关于C和C++的一件重要的事情是:它们都是计算机科学与编程最基础的语言。如果你学习它们,它们会使你获益,即使你之后并不去使用这两种语言,但它们会使你洞察计算机科学和计算机编程的起源和基础。

如果你不旨在专业的编程,这对你来仍然可以学习一下。 因为学过它们的人都会说学会了C/C++后,在学习其他语言就会变得很轻松。

学习C语言可转向智能物联网+嵌入式开发等等。

4、JavaScript

JavaScript通常我们会把它和Java相混淆,但是两者根本没有一点关系。它是一门脚本语言,是Web的基础技术之一,但它也存在于浏览器之外。 随着服务器的强壮,虽然程序员更喜欢运行于服务嘴的脚木以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。

JavaScript比较容易学,使用浏览器即可运行,虽然它存在已经有一段时间了,但它正在迅速流行起来。学习JavaScript的成就感很高,因为你马上就可以做一些Web程序了,这是大部分人学习编程的原因。

学习JavaScript可转向Web开发、HTML5大前端等等。


杭州千锋


要先看你学习的目的是什么。机器语言和人类语言的作用是一样的,你想去英国旅游,最好学英语,你想去日本旅游,那就学日语。你想做硬件设备,就学c语言,学人工智能,python等要好一些,你想做网页,html,jscript等语言。语言只是一门工具,学习软件的逻辑思维比学好软件更重要,比如你想做财务软件,必须对财务专业非常熟悉才行。


maxhw


当然是Python啦

谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展。

人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具。一系列的进展在过去的几年中发生了:无事故驾驶超过300000英里并在三个州合法行驶迎来了自动驾驶的一个里程碑;IBM Waston击败了Jeopardy两届冠军;统计学习技术从对消费者兴趣到以万亿记的图像的复杂数据集进行模式识别。这些发展必然提高了科学家和巨匠们对人工智能的兴趣,这也使得开发者们了解创建人工智能应用的真实本质。开发这些需要注意的第一件事是:

哪一种编程语言适合人工智能?

你所熟练掌握的每一种编程语言都可以是人工智能的开发语言。

人工智能程序可以使用几乎所有的编程语言实现,最常见的有:Lisp,Prolog,C/C++,近来又有Java,最近还有Python.

LISP

像LISP这样的高级语言在人工智能中备受青睐,因为在各高校多年的研究后选择了快速原型而舍弃了快速执行。垃圾收集,动态类型,数据函数,统一的语法,交互式环境和可扩展性等一些特性使得LIST非常适合人工智能编程。

PROLOG

这种语言有着LISP高层和传统优势有效结合,这对AI是非常有用的。它的优势是解决“基于逻辑的问题”。Prolog提供了针对于逻辑相关问题的解决方案,或者说它的解决方案有着简洁的逻辑特征。它的主要缺点(恕我直言)是学起来很难。

C/C++

就像猎豹一样,C/C++主要用于对执行速度要求很高的时候。它主要用于简单程序,统计人工智能,如神经网络就是一个常见的例子。Backpropagation 只用了几页的C/C++代码,但是要求速度,哪怕程序员只能提升一点点速度也是好的。

JAVA

新来者,Java使用了LISP中的几个理念,最明显的是垃圾收集。它的可移植性使它可以适用于任何程序,它还有一套内置类型。Java没有LISP和Prolog高级,又没有C那样快,但如果要求可移植性那它是最好的。

PYTHON

Python是一种用LISP和JAVA编译的语言。按照Norvig文章中对Lips和Python的比较,这两种语言彼此非常相似,仅有一些细小的差别。还有JPthon,提供了访问Java图像用户界面的途径。这是PeterNorvig选择用JPyhton翻译他人工智能书籍中程序的的原因。JPython可以让他使用可移植的GUI演示,和可移植的http/ftp/html库。因此,它非常适合作为人工智能语言的。

在人工智能上使用Python比其他编程语言的好处

  1. 优质的文档

  2. 平台无关,可以在现在每一个*nix版本上使用

  3. 和其他面向对象编程语言比学习更加简单快速

  4. Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。

  5. Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。

  6. 对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。

  7. 最后,它是开源的。可以得到相同的社区支持。

AI的Python库

总体的AI库

  1. AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法

  2. pyDatalog:Python中的逻辑编程引擎

  3. SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法。它专注于提供一个易于使用,有良好文档和测试的库。

  4. EasyAI:一个双人AI游戏的python引擎(负极大值,置换表、游戏解决)

机器学习库

  1. PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库。它也提供了多种预定义好的环境来测试和比较你的算法。

  2. PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法。它支持Linux和Mac OS X。

  3. scikit-learn 旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具。它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包(numpy,scipy.matplotlib)紧密联系在一起的。

  4. MDP-Toolkit 这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算饭和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法(主成分分析、独立成分分析、慢特征分析),流型学习方法(局部线性嵌入),集中分类,概率方法(因子分析,RBM),数据预处理方法等等。

自然语言和文本处理库

  1. NLTK 开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析。有windows,Mac OSX和Linux版本。

案例

做了一个实验,一个使用人工智能和物联网做员工行为分析的软件。该软件通过员工情绪和行为的分心提供了一个有用的反馈给员工,从而提高了管理和工作习惯。

使用Python机器学习库,opencv和haarcascading概念来培训。建立了样品POC来检测通过安置在不同地点的无线摄像头传递回来基础情感像幸福,生气,悲伤,厌恶,怀疑,蔑视,讥讽和惊喜。收集到的数据会集中到云数据库中,甚至整个办公室都可以通过在Android设备或桌面点击一个按钮来取回。

开发者在深入分析脸部情感上复杂点和挖掘更多的细节中取得进步。在深入学习算法和机器学习的帮助下,可以帮助分析员工个人绩效和适当的员工/团队反馈。

结论

python因为提供像 scikit-learn的好的框架,在人工智能方面扮演了一个重要的角色:Python中的机器学习,实现了这一领域中大多的需求。D3.js JS中数据驱动文档时可视化最强大和易于使用的工具之一。处理框架,它的快速原型制造使得它成为一门不可忽视的重要语言。AI需要大量的研究,因此没有必要要求一个500KB的Java样板代码去测试新的假说。python中几乎每一个想法都可以迅速通过20-30行代码来实现(JS和LISP也是一样)。因此,它对于人工智能是一门非常有用的语言。


全栈工程师


Python比较适合零基础的小伙伴~~

可以看看我之前写的一篇关于小白学习编程的文章,希望对你的学习有帮助~~


Python进阶学习交流


听说现在教学语法多釆用pyth0n机器学习库,opencV和haarcascading概念进行学习培训。若大年纪了,具体事情不甚了解。谢谢!


分享到:


相關文章: