[Beginner / Saved version] What you can do by programming language (12 selections such as Ruby / Python / Java / Swift / PHP / Go)

Target audience

  1. Beginners thinking about starting programming
  2. Those who are trying to start programming by themselves but are in trouble because they do not know which language to choose.

Introduction

Many beginners (as I did) don't know which programming language to choose when trying to learn programming. I think ** the first programming language should be chosen for the purpose **. For that reason, I think it is good to easily know what kind of features each of the various programming languages has.

Programming is great, you can make what you want, and you can get more people to use the services and apps you make. By programming, the service I created has the potential to solve problems in the world and inconveniences around me.

It's a great tool to do that once you learn a programming language!

In this article, we will pick up 15 languages and introduce what you can do in each language and recommend it to such people.

I wrote this article so that you don't fail in choosing your first programming language. I hope it will be useful to as many people as possible, so I hope you will read it to the end.


Addendum
I have hardly used C #, C ++, Lisp, and Scala, so I would appreciate it if you could point out any missing parts.

Programming languages introduced in this article

  1. Ruby
  2. PHP
  3. JavaScript
  4. Python
  5. Java
  6. Swift
  7. C#
  8. Go
  9. Scala
  10. C
  11. C++
  12. Lisp

Ruby

Ruby is a domestic language and was developed by Yukihiro Matsumoto. Ruby is often used mainly using a web frame called Ruby on Rails. I feel that Ruby (Ruby on Rails) is often adopted by companies that have just started up because they can create Web service development speedily. In terms of learning costs, there are many learning services and information that Ruby and Rails can learn, and there are many Ruby programmers and web engineers, so it is a recommended language in that respect as well.

Recommended for people like this!

(1) People who want to create web services

PHP

Like Ruby, PHP (Hypertext Preprocessor) is a language suitable for web development and can be embedded in HTML. There are also so many web frameworks that Laravel has become popular in recent years.

Recommended for people like this!

(1) People who want to create web services

JavaScript

JavaScript (Javascript) is a very popular programming language for making the appearance of Web services. Many beginners mistakenly think they are the same because they have similar names to Java, which will be described later, but they are completely different programming languages. To create a website HTML / CSS must be learned (learned) together with JavaScript. You can also implement it in languages other than JavaScript (such as Python), but you can also create blockchains.

-HTML (HyperText Markup Language) is a (markup) language for creating websites. -CSS (Cascading Style Sheet) is a language for specifying the style (design such as appearance and layout) of a website.

Recommended for people like this!

(1) People who want to create (dynamic) Web services (2) Implementation of blockchain

Python

Python is a simple and easy-to-understand programming language With Python, you can use it for various purposes such as web application development, convenient business automation tool development, machine learning, and statistical processing. There are so many things that can be done, and Python has become popular in recent years for use in AI development. Also, if you want to analyze data, there are other languages besides Python such as R and Julia. If you're starting with data analysis, we recommend starting with Python. (You can learn Python for free from here!)

1.Artificial intelligence related (image recognition, natural language processing, voice recognition, etc...)
2.Machine learning / statistical analysis
3.Web application / web service development
4.Desktop application production(tkinter etc)
5.Business efficiency program
6.Web scraping
7. IoT
8.robot/Drone control
9.Network cyber security programming
10.Game development
11.CG software development
スクリーンショット 2019-10-25 14.35.51.png

Recommended for people like this!

(1) Those who want to become developers and data scientists in the AI field (2) Those who fall under any of the above

Java

Java is a programming language that can be used in large-scale web system and Android application development. Kotlin has also become popular in recent years, and Kotlin can also develop Android apps. Please also refer to the following article. [First Android application development] Compare Java and Kotlin

Recommended for people like this!

(1) People who want to develop Android apps (2) People who want to create a large-scale Web system (3) (Sorry, it's subjective, but) I feel that Java is often used in major companies, so people who are aiming to get a job at a major company

Swift Swift is a programming language developed by Apple Inc. A programming language that can be used on iOS and macOS. Announced at Worldwide Developers Conference 2014. If you want to learn Swift, you want to make an iPhone app. Before Swift was born, iPhone apps were made in the language Objective-C (Objective-C), but if you want to start from now, we recommend choosing Swift. You can also develop AR applications by using ARKit.

Recommended for people like this!

(1) People who want to develop iPhone apps (2) People who want to develop AR applications

C# C # is a programming language developed by Microsoft. In recent years, C # has been available on a game engine called Unity (Unity / Unity3D). You can also make 2D / 3D games and AR / VR apps. You can also develop web applications by using GUI applications and the framework of web applications called ASP.NET. In addition, you can use Xamarin to create iOS / Android apps.

Recommended for people like this!

(1) People who want to develop 2D / 3D games using Unity (2) People who want to develop AR / VR apps using Unity (3) People who want to make apps on both iOS / Android (4) Windows application (5) The person who created the web application (6) GUI application

Go

The Go language is a language designed by Robert Griesemer, Rob Pike, and Ken Thompson. (See [wikipedia](https://ja.wikipedia.org/wiki/Go_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F) % E3% 83% B3% E3% 82% B0% E8% A8% 80% E8% AA% 9E)))) The Go language is popular and used in large projects because it is simple and highly scalable. High-speed communication can be achieved using a protocol called gRPC.

There is also an open source system programming language called Rust, backed by Mozilla, which is often compared to the Go language, but it can do much the same thing. Please also refer to the following article. (Compare Go and Rust! Which one to start?) [Https://media.itkaikei.com/2019/01/25/go-vs-rust/]

Recommended for people like this

(1) Back-end API server development (2) Web server construction (3) Command line interface development

Scala

Scala is a multi-paradigm programming language that integrates the features of object-oriented and functional languages. (See wikipedia) It is used for web application and smartphone application development, and it runs on the Java platform and can be linked with Java programs. However, while the market value is high because there are few Scala engineers, there are few companies that adopt Scala compared to PHP and Ruby.

Recommended for people like this

(1) Web service development

C The C language is a programming language developed in 1972 and is a highly versatile language. It is a language that enables core systems, control systems for cars and smartphones, and hardware development. You can do anything. C is fast and is also used to develop programming languages. It's also great for understanding how computers work.

Birth of super junior high school student, programming language developed in just a few weeks, U-22 Programming Contest 2019

Recommended for people like this

(1) Those who want to develop core systems, control systems for cars and smartphones, and hardware (2) Those who want to understand the computer mechanism

C++ C ++ (C Plus Plus) is a programming language developed as an extended version of the C language. Not limited to C ++, C language is also available, but it is useful for understanding the operation of the CPU, so it is recommended for those who want to know the computer mechanism. Also, it is fast after all, so if you want to make a fast system, you may consider C ++.

If you are studying C ++, you may want to read here once.

In addition, with Arduino microcomputers, you can also make drones and robots using the Arduino language, which is similar to the C / C ++ language. 15 things you can do with Arduino! ︎ You can also make drones and robots! ︎

Recommended for people like this

(1) High-speed system development (2) Those who want to understand the computer mechanism

Lisp Lisp is a ministry of LISt Processor (list processing language) and is a language suitable for developing AI programs. Developed by John McCassie, the proponent of the term Artificial Intelligence today. (But now Python is by far the most used in the AI field.) Lisp has a distinctive syntax after all. I use a lot of parentheses.

スクリーンショット 2019-10-25 16.28.32.png

In addition, [Polish Notation](https://en.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89 There seems to be a notation called% E8% A8% 98% E6% B3% 95).

See [Wikipedia] for code (https://en.wikipedia.org/wiki/LISP#LISP%E3%81%AE%E6%AD%B4%E5%8F%B2)

Reference: Great success with artificial intelligence! The origin and future of the hot "LISP"

Recommended for people like this

(1) People who want to develop the AI domain

Summary

Summary,

・ People who want to develop Web services → Learn PHP or Ruby or Python or Java + HTML / CSS + JavaScript.

・ People who want to make VR / AR apps C#(Unity)、Swift

・ The person who made the iPhone app Swift、Kotlin/Native

・ The person who made the Android application Java、Kotlin

・ People who have done the AI area →Python or R or Julia or Lisp You can learn Python, R, and Julia, so I would be grateful if you could use AI Academy.

・ People who want to make automation tools Python etc. (Please refer to the above for details!)

・ Others C language, Go, etc. (Please refer to the above for details!)

Finally

It was a poor sentence, but thank you for reading this far. Based on this article, I would like to reduce the number of people who choose the first programming language and do not fail. If you are a programmer, engineer, or anyone around you who is starting programming, we would appreciate it if you could share this article. If you have any questions, please DM to twitter. (I would be happy if you could follow me> <) Also, I myself do not handle all the languages introduced here properly, so there must be many omissions. You can also do this! If so, I would appreciate it if you could comment.

The person who wrote this article

Cyber Brain Co., Ltd. CEO Kazunori Tani

We look forward to your follow-up and participation! Twitter Facebook Artificial Intelligence Research Community

・ Articles written in the past

[Preserved version / for beginners] Recommended AI study method for those who want to become an AI engineer by themselves (revised 2019)

Recommended Posts

[Beginner / Saved version] What you can do by programming language (12 selections such as Ruby / Python / Java / Swift / PHP / Go)
[Swift / Ruby / Python / Java] Object-oriented programming
Python | What you can do with Python
What you can do with programming skills
[Ruby / Python / Java / Swift / JS] What is an algorithm?
[Python version] Why can't you do object-oriented development in Java?
What you can do with the Python standard library statistics