送给想学编程却又不知道选择什么语言的你

feature

又到了每年的暑假,每次临近假期,都会有人问我:“我想学编程,应该学什么语言?”,或者问我推荐什么语言。还有同学,学过一点编程,却又不知道自己所学的知识有什么用,感觉学了编程只能算一些无聊的数学题。在这篇博客,我会讲述一下我所使用过的编程语言以及我用他们干什么。可以给各位想要入门编程的同学一个指引吧。大牛请关掉别看了。

  • C语言

C语言可能是大部分人入门的编程语言,毫无疑问,我也是的,在高一的时候我开始学习C语言,那时候只是为了参加奥林匹克竞赛,但是同样的,也标志着我开始了编程生涯。

C语言虽然是用来入门是可以的,因为他经典的语法,但是想要学精通就很难了,C和操作系统层面连接的比较紧密,一般用于操作系统开发,和硬件开发,玩单片机什么的都是要学C的,平时电脑启动时的BIOS也是由C语言编写而成。

C语言的优点就是他的可移动性了,在改动很小的情况下就可以在不同平台运行,而且很小,命令,函数,架构不是很多,所以广泛用于嵌入式领域,比如冰箱,微波炉等等。而且,在语法方面,掌握C语言之后入门其它语言就显得不是那么难了。

C同样也是有缺点的,他是一个面向过程的编程语言,现在绝大多数主流的语言都是面向对象的,所以C++被创造了出来,之后会提到。并且,C语言的学习曲线比较陡峭,不是最好学的一个,但是入门足够。

现在来说说用途吧,C语言编写了Amazon Kindle阅读器,Linux 操作系统, 和平时玩游戏时用到的图形API OpenGL。

kindle

但是我几乎没有使用过C编程,只有奥赛做题真正用过C。

 

  • C++

C++也是一个很著名的编程语言了,是C的升级版本,听说是编写大型应用程序的最好的面向对象编程语言。可以用于操作系统开发,搜索引擎开发,和视频游戏,知乎上使用C++开发渲染引擎的大牛多得是,

同时掌握C和C++可以让你对计算机和编程拥有更深层次的理解,比如内存管理等等。虽然写起来相比有些语言来说很不友善,但是你可以用他来做任何事,C++同样可以用于各种设备,iPhone,Android等,但是都是应用层以下的。

缺点呢,就是学习曲线真是陡峭。。。几乎没人敢说他精通C++。

用途呢,世界上最大的搜索引擎Google由C++编写,微软的电子邮件服务Outlook也是。

我平时也使用C++编程,最近在学习计算机视觉,我使用C++来编写各种视觉识别的软件。

Screen Shot 2016-06-17 at 9.40.57 PM

 

  • Java

了解我的人都知道,毫无疑问,Java是我使用时间最长并且最了解的语言了,两年前我开始接触Java。语法我觉得很友善很易懂。

Java的跨平台能力很强,最著名的一句话:“一次编译,到处运行”,虽然刚才说了C++也是夸平台,但是C++在其他平台上必须经过重新编译才能运行的,平时在Windows上用C++编译出来的exe文件在Linux上是无法运行的,必须拿相同的代码在Linux上重新编译。但是Java不用,只要在任何一个配置了Java运行环境的机器上就能直接运行。

Java分为三种类别:

Java SE: Java Standard Edition
Java ME: Java Micro Edition
Java EE: Java Enterprise Edition

SE一定是最先学到的基础中的基础,EE主要用于企业级开发,JSP等等,一般是开发Web应用,很多公司的服务器端由Java编写。 ME为Java嵌入式开发,一般用于手机和小家电(我们这一代还记得以前功能机上出现的Java图标吧,以前小诺基亚上玩的游戏都是Java编写的)

另外一个大块就是Android app开发了,Android应用程序开发使用Java语言。Java为Android 操作系统的应用层的主要语言(Android的系统层为C++和C)。

Java的缺点,慢吧,所有的操作都依赖于JVM虚拟机上,并且比较耗内存,但是这对于初学者来说都体验不出来,包括我在内。

用途,Google的Gmail邮件服务由Java编写,还有,一直很火的游戏Minecraft由Java开发。

Minecraft

我开发时使用Java最多,我使用他编写过桌面级程序,但是更多的是Android开发,MikeTech Android app就是由Java开发。

nexus-5-mockup-1

下图是我写出的第一个Java程序吧,一个可以吧图片转成字符的应用

pictotxt

 

  • Python

Python同样是一个很受欢迎的语言,被认为是最易学的语言,大量的库和函数和简便的语法使得制作东西特别容易。

树莓派等物联网平台都是基于Python。

缺点嘛,移动端不支持。

用途,图片分享平台Instagram的后端,世界上最大的视频网站Youtube,音乐平台Spotify,这三个平台的服务器端,都是由Python编写完成。

我用Python做物联网开发,最近需要做以下智能家居,我将会写一个程序放我的树莓派上来做控制器。下图是我看了半个小时Python写出来的一个Socket通信服务器。这个程序以后将会和我写出的Android app通信来控制家里的电器。虽然以前这些我都是用Java写的。。。

Screen Shot 2016-06-19 at 1.26.50 AM

 

  • C#

读作C sharp,用于开发Windows应用,和Java语法很像,几乎差不多,所以当时转到C#的学习成本很小,老实说我不了解C#,没怎么用过,在Unity3D中使用C#编写过游戏。仅此而已。

Screen Shot 2016-06-19 at 1.28.53 AM

Windows版印象笔记由C#编写。

说道Unity3D,坎巴拉太空计划,炉石传说同样是Unity3D引擎编写的

kanbala

 

  • Objective-C

用于编写macOS和iPhone应用,语法我看一遍忘一遍。。。所以到现在我还不会用。。

现在iPhone 95%的app使用OC编写。

 

  • Swift

Apple在2014年公布的新的编程语言,发展非常快,前几天WWDC发布了3.0用于开发macOS和iOS应用,尽管现在使用的人不多,但是Swift语法非常简单,看起来非常容易学,但是我很不推荐第一个语言学Swift,Swift自带的数据类型自动推断对于初学可能很简单,但是你可能不会真正的去理解其中的意义,到后来还是可能什么都不懂,所以我不推荐第一个语言学这个。而且更新太快,很多东西刚学就被淘汰了,真正的从入门到重学。

我寒假看了两个小时Swift然后直接开始写app,MikeTech的iPhone版由Swift编写,第一个版本用了大概10天的时间连学习带开发。

vector_iphone6_perspective_by_mciarlo

 

  • PHP+MYSQL

PHP是一种服务器脚本语言,MYSQL是一种数据库语言,你们现在登陆的这个网站底层由他们两个实现。

 

  • HTML + CSS+ JavaScript

HTML和JS用于编写网页的前端,刚在的PHP那些的称为后端。你所看到的这些字,这些图片的背后使用JS动态生成并由HTML和CSS排版。

Screen Shot 2016-06-19 at 1.45.43 AM

我还使用JavaScript开发过Chrome插件。

install

 

以上就是我会的或者使用过的编程语言,总之,如果是你的第一门编程语言的话,编程的路很长,别指望马上看到成果,暑假这么短三个月内,从0入门并写出app是不可能的,外头书店卖的21天精通XX语言更是天方夜谭。一步一步走吧,热爱编程的话以后总有一天你会创造出来你想要的产品。

 

我的博客MikeTech app现已登陆iPhone和Android

iPhone版下载
Android版下载

 

打赏

4 thoughts on “送给想学编程却又不知道选择什么语言的你

  1. 這篇是針對我的對吧!!!! 哈哈

    除了學校的C++
    最近也在搞 CSS and HTML 和 JS
    你有推薦的書或網站嗎? 畢竟網路上的都是基礎簡單版的

    1. 哈哈哈哈好多人问我这些所以我特地写了博客来解释,书或网站啊?我找找,找到了私信你。

        1. 哈哈哈,谁告诉你我会html和css和js啦~我都没学过,都是要用的时候网上搜半天凑合着写一写

Leave a Reply

Your email address will not be published. Required fields are marked *