7种主流编程语言的优点和缺点对比小白攻略_语言小白帮助

Python一句话概括:需要拿着游标卡尺学习的语言 Python 是一款服务器端解释型开源非编译脚本语言。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。Python 的优势:Python 学习简单,被誉为 “最易学习的语言”Python 的不足:Python 存在一些只在特定情况下才会出现(无法重现)的 bu

7种主流编程语言的优点和缺点对比小白攻略

Python

Python 是一款服务器端解释型开源非编译脚本语言。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。

7种主流编程语言的优点和缺点对比小白攻略_语言小白帮助

Python 的优势:Python 学习简单,被誉为 “最易学习的语言”

Python 的不足:Python 存在一些只在特定情况下才会出现(无法重现)的 bug

职业路线:

(1)用 Django 框架进行 Web 开发:和 Java 没什么两样。

(2)用 PIL 框架进行图形处理

(3)物联网:Raspberry Pi 等物联网平台都选择了 Python 作为开发语言

(4)Python 有一个无所不能的 Hack 库,如果认为 “打工时不可能打工的” 就去当一个自由的黑客吧

C/C++

C 语言是面向过程语言在当代的鲁殿灵光,常用于编写操作系统。C++ 是 C 语言的一个超集,既有指针又有对象使它成为最复杂的语言。

C/C++ 的优势:几乎所有现代编程语言都脱胎于 C/C++,因此了解了 C/C++,就了解了关于编程语言的一切,非常有利于快速掌握其他各类编程语言;C/C++ 可以被嵌入任何现代处理器中,几乎所有操作系统都支持 C/C++,跨平台性非常好。

C/C++ 的不足:据说 C/C++ 发明的时候为了提高入行门槛和行业收入水平刻意制造了学习难度;尽管 C 语言体型小巧,可最常使用的 C++ 规模可观且拥有大量极为复杂的功能交互方式,容易造成资源浪费。

职业路线:

(1)首推 Unix/Linux 等操作系统软件的开发和嵌入式开发。

(2)Android ROM 的定制,以及 Android App 的 NDK 开发。

(3)用 Cocos2d-x 开发游戏也是 C++ 程序员的好出路。

Java

Java 是最典型的面向对象语言。Java 不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等坑爹概念。今明两年毕业的大学生大多是 Java 的同龄人(1995 年)。

Java 的优势:Java 平台不断迎来新功能,比如移动互联网时代的 Android,大数据时代的 Hadoop,人工智能时代的 TensorFlow;Java 是世界上使用范围最广的语言——Java 环境安装时那句 “3 Billion Devices Run Java” 谁没见过?

Java 的不足:国内 Java 及其衍生技术的就业环境被培训班破坏得太厉害,培训班 HR 曾问我:“Android 不吃香了,你能推荐几个Hadoop 讲师吗?”Java 占用大量内存,并且启动时间较长——搞 Android 的都被 Windows 系统中的 Android AVD 坑过。

C#

C#是微软看到 Java 太火了而发明的和 Java 语法差不多的语言。

C#的优势:C#的最大优势在于全面集成.Net 库,提供出色的功能与完美的库访问能力;VR 时代的到来让 Unity-3d 开发者有很好的发展前景。

C#的不足:由于集成.Net 库造成跨平台能力太差;目前.Net 在国内就业环境不太好,收入较低。

职业路线:

(1)招聘网站上常见的 “招聘 C#开发” 和 “招聘.Net 开发” 指的都是狭义的 C#开发——基于.Net 框架的后台开发。

(2)Unity-3d 也用 C#作为开发语言,除了能开发 3D 游戏,在 VR 时代也会大放光芒。

JavaScript  

JavaScript 是一种动态类型、弱类型、基于原型的直译式脚本语言,也是使用频率最高的给 HTML 网页增加动态功能的语言。外行最常闹的笑话是以为它是 Java 语言的分支。

JavaScript 的优势:作为脚本语言,JavaScript 可立即运行而无需等待服务器响应,速度非常出色;JavaScript 是动态类型语言,学习难度低。并且掌握了 JavaScript 语言就等于成为能同时开发网页(HTML5)、后台(Node.js)、移动端(React Native、Weex)的全栈工程师。

JavaScript 的不足:代码在用户电脑上运行,可能会被别有用心的坏人恶意利用;JavaScript 过于依赖浏览器,在不同的浏览器上有不同的表现。

职业路线:

(1)首选 HTML5 的初心:网站和手机站的前端页面开发。

(2)用 Node.js 或 Bmob 云端代码进行后台开发

(3)基于 React Native、PhoneGap、Weex、HBuilder、AppCan 进行移动开发,只需写一遍代码,就有 Android 和 iOS 两个软件

(4)微信开发:包括微信公众号、微信小游戏、微信小程序。不要把这个方向当成中国特色方向,国外的 Android 机也是需要 PWA开发的。

(5)如果以上四样全能做到,那么你就是全栈工程师。

SQL  

SQL 是一种专精于数据库的特殊目的语言。用于存取数据以及查询、更新和管理关系数据库系统。

SQL 的优势:存储过程可以重复使用, 可减少数据库开发人员的工作量,开发速度快;SQL 可设定只有某此用户才具有对指定存储过程的使用权,安全性好。

SQL 的不足:和 Java 语言的大多数设计模式一样,SQL 开发速度是靠牺牲运行速度换来的;不同数据库系统之间的 SQL 不能完全相互通用,可移植性差。

职业路线:

(1)掌握了 SQL 可以从事 DBA(Database Administrator,即数据库管理员),主要负责业务数据库从设计、测试到部署交付的全生命周期管理。

PHP  

PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域。号称 “世界上最好的语言”

PHP 的优势:PHP 学习简单,易于快速上手;历久弥新的 PHP 拥有庞大而活跃的官方社区,开发者面临的大部分难题都有现成的解决方案,很多十几年前的解决方案在当代也有指导意义。

PHP 的不足:PHP 的运行速度比较慢;PHP 的错误处理机制比较糟糕,以为 PHP 需要支持大量旧版本的功能。

职业路线:

(1)适合进行 Web 开发,配合 Node.js 效果更佳。

海计划公众号
(0)
上一篇 2020/04/03 19:40
下一篇 2020/04/03 19:40

您可能感兴趣的内容

  • React 项目结构和组件命名之道小白知识_react教程视频

    React 作为一个库,不会决定你如何组织项目的结构。这是件好事,因为这样我们有了充分的自由去尝试不同的组织方式并且选取最适合我们的方式。但是从另一个角度讲,这可能会让刚刚上手 React 的开发者产生些许困惑。我将会在本文为大家展示我已经使用过一段时间并且效果不错的方式,这些方式没有通过重新造轮子来实现,而是通过将社区中的方案组合和提炼得到。注意:这里没有

    2020/04/03
  • 软件开发行业应该有职业道德规范来约束吗?零基础入门_软件小白指南

    在软件开发领域,经常会发生由于从业者的职业道德不到位而引发的事件,比如,InfoQ 过往就曾报道过离职程序员利用测试账户套现千万美元、华夏银行一位技术处长利用职务便利在华夏银行总行核心系统内植入计算机病毒程序,成功取款 717.9 万元的 新闻 等。虽然软件开发技术不会作恶,但人可能会。一提到著名的希波克拉底医学誓言时,大多数人可能会马上想起这句话:“首先,

    2020/03/26
  • CSS尺寸单位小白知识_单位菜鸟教程下载

    前端开发过程中,尺寸单位是我们必须用到的,下面我们对css中常见的几种尺寸单位px,em,rem,rpx进行逐一介绍 在这之前,需要先对几个概念进行普及介绍基本概念(以下概念读起来可能有些晦涩,如果看不懂也没关系)像素它不是自然界的物理长度,指基本原色素及其灰度的基本编码。css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的

    2020/03/26
  • FastDom基础知识_让DOM的读/写操作捆绑在一起的js库

    FastDom基础知识 GitHub:https://github.com/wilsonpage/fastdom 简介描述:让DOM的读/写操作捆绑在一起的js库 FastDom是…

    2020/03/06
  • window.open被拦截的解决方法总汇 基础知识入门_浏览器菜鸟知识

    在 Chrome 的安全机制里,非用户直接触发的 window.open 方法,是会被拦截的。这是由于浏览器为了维护用户安全和体验,禁止在JS中直接使用window.open(url)来打开新的链接(window.open(url,”_self”)改变当前的窗口是可以生效的)。下面采用几种变通方法解决:1.表单提交的方式var form = document

    2020/04/03
  • 浏览器HTML自带懒加载技术指南攻略_加载入门攻略

    对于目前的图片懒加载,我们一般采用的是通过第三方库或懒加载库来实现,但是该方式的显著问题就是,必须按顺序执行:1、加载初始的 HTML 响应内容2、加载懒加载库3、加载图片假如浏览器能直接支持懒加载,那是最好的,这一想法也不是不可能哦!从Chrome 75开始,我们可以通过切换两个开关来手动启用懒加载功能,可能最新的Chrome将会默认开启懒加载功能了,就是

    2020/03/24
  • npm和bower的关系和区别小白攻略_npm入门攻略

    前言我们在开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。 于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到一个包管理器上,如果要使用,直接通过包管理器安装就可以直接用,不用管代码存在哪,应该从哪下载。因此使用包管理器主要基于以下几个原因:方便

    2020/04/05
  • 领导看了会炸毛的溢出理论基础知识教程_理论菜鸟知识

    大家都知道,程序可以指定启动内存。 但如果你玩的太过火,它就受不了了,就会溢出,不和你玩了。 这不像是你伴着一席春梦的溢出,溢出的感觉不总是好的。王小波在《红拂夜奔》里,谈到了 领导上 的一些趣事。如果你的身心过于健康,没有心脏病,反而会感到无比自责—这是对领导的藐视;同样在现实生活中,你如果太特立独行,没有平庸的潜质,那就是对领导上的侮辱。怎么说呢?你拥有

    2020/03/24
  • Bootflat指南攻略基于bootstrap 3.2.0 的扁平化风格的UI组件的开源项目

    Bootflat基础入门 官方网址:http://bootflat.github.io/ GitHub:https://github.com/bootflat/bootflat.g…

    2020/03/05
  • ISUX使用指南 腾讯社交用户体验设计,简称ISUX,腾讯设计团队网站

    ISUX基础入门 官方网址:https://isux.tencent.com/ 简介描述: 腾讯社交用户体验设计,简称ISUX,腾讯设计团队网站 腾讯社交用户体验设计,简称ISUX…

    2020/03/05
  • 什么是package.json文件?了解package.json常见属性攻略教程_package基础知识

    Node 项目在项目根目录中名为 package.json 的文件中跟踪依赖关系和元数据。这是你项目的核心。它包含名称、描述和版本之类的信息,以及运行、开发以及有选择地将项目发布到 NPM 所需的信息。在本教程中,我们将:了解 package.json 与项目之间的关系确定重要字段和元数据了解如何管理 package.json目标了解什么是 package.

    2020/03/23
  • Html5、Css3、ES6的新特性菜鸟知识_特性使用帮助

    Html5的新特性1.语义化标签有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重。语义化的HTML在没有CSS的情况下也能呈现较好的内容结构与代码结构方便其他设备的解析便于团队开发和维护2.表单新特性3.多媒体视频(video)和音频(audio)4.web存储sessionstorage:关闭浏览器清空数据,储存大

    2020/04/03
  • JS数组的拷贝方法小白帮助_数组使用指南

    之前在写一个计算属性时,大概是这样:computed: {
    updateList () {
    let newList = this.List
    /*do something*/
    return newList
    },
    }本想的是设置个中间变量newList,将它和原来的List相比做一些操作,最后返回这个newList,后来发现原List也改变了。才意识到这个new

    2020/03/29
  • 需要避免的五个防火墙配置错误小白知识_攻击小白攻略

    防火墙配置错误可能与没有防火墙一样危险。人们需要了解五个常见的防火墙配置错误,这些错误将让任何组织都容易受到攻击。防火墙是抵御所有类型网络入侵者的主要防线,但即使具有多年的实践和丰富的经验,许多组织仍然会犯配置错误,使其网络容易受到数据窃取、丢失以及其他类型的破坏。以下是组织应该不惜一切代价需要避免的五种防火墙错误配置:1.未能正确配置和协调防火墙,并使用越

    2020/03/24
  • 详解 HTML attribute 和 DOM property基础知识教程_dom基础指南

    在大多数的文章中,attribute 一般被翻译为“特性”,property 被译为“属性”。结论把结论写在最前面,如果你全都懂,后面就不用看了。HTML attributeDOM property值永远是字符串或 null值可以是任意合法 js 类型大小写不敏感大小写敏感不存在时返回 null不存在时返回 undefined对于 href, 返回 html

    2020/03/29
  • tab栏切换制作小白知识_tab小白帮助

    先上图要求1:默认状态,第一个选项卡被选中,展示第一个选项卡的内容策略:第一个选项卡默认有被选中的样式,第一个选项卡对应的display: block,其他的dispaly设为none要求2: 选项卡模块:被点击的变为红底白字,其他的变为白底红字策略:排他思想,每次点击一个选项卡时,先把其他选项卡设为默认样式,然后自己设为被选中的样式。这里我们先在style

    2020/03/26