プログラミングで出来る事は何?勉強前に知っておく理由

トモジのアイコン画像トモジ

プログラミングで何ができるの?

パンク師匠のアイコン画像パンク師匠

×□×□⇧↔√→゙ ≈↑△↓√゙
≠≠∴←5▲↘△×⇦□゙ ⊂△×≈↑△→⇧。

トモジのアイコン画像トモジ

大枠で5種類に分けられるんですね。
自分がやりたい事だとどんな言語から勉強すれば良いのかな?

本記事は、上記のような方に向けて記事を書いています。

こんにちは、トモジです。
私は33歳から独学でプログラミングを学び、中途採用を果たし現在フリーランスとして日々奮闘しております。

これからプログラミング学習を始めるあなたは、何から勉強をすれば良いか悩んでいるのではないでしょうか?

ITエンジニアを目指す前に、プログラミングで何ができるのかを知っておくことは重要です。
無関係なことを学ぶのも無駄ではありませんが、やりたいことに直結しない学習は遠回りになることがあります。

本記事は、大枠5種類に分けどのような事ができるのをなるべく短い文章で説明しています。

記事の内容

プログラミングで出来ること

プログラミングで出来ることは以下の内容です。

  1. ウェブ開発
  2. モバイルアプリ開発
  3. デスクトップアプリ開発
  4. データサイエンスと機械学習
  5. 組み込みシステム開発
ウェブ開発
  • フロントエンド開発
    ユーザーが直接操作する部分を作成(ウェブページやwebアプリの見た目や動作)
  • バックエンド開発
    サーバーサイドのロジックやデータベース管理(データの処理やAPIの構築)
モバイルアプリ開発
  • iOSアプリ
    iPhoneやiPad向けのアプリ
  • Androidアプリ
    Androidデバイス向けのアプリ
デスクトップアプリ開発
  • Windows、macOS、Linux
    業務用やその他ソフトウェアやゲームなど
データサイエンスと機械学習
  • データ分析
    データの解析や可視化
  • 機械学習
    画像認識や自然言語処理など
組み込みシステム開発
  • マイクロコントローラーやマイクロプロセッサ
    家電や自動車などの機器の制御システム開発

使用される言語

ウェブ開発

フレームワーク
アプリケーション開発において共通の機能や処理を事前に用意している枠組み
ライブラリー
開発者が必要に応じて使用できる再利用可能な部品の集まり

フロントエンド開発

  • 言語
    HTML、CSS、JavaScript
  • フレームワークとライブラリー
    Vue.js, React

バッグエンド開発

  • 言語
    Python, Ruby, PHP, JavaScript (Node.js), Java, C#
  • フレームワーク
    Django (Python), Ruby on Rails (Ruby), Laravel (PHP)
    Express (Node.js), Spring (Java), ASP.NET (C#)

モバイルアプリ開発

iOSアプリ

  • 言語
    Swift, Objective-C
  • フレームワーク
    SwiftUI, UIKit

Androidアプリ

  • 言語
    Kotlin, Java
  • フレームワーク
    Android Jetpack, Android SDK

クロスプラットフォーム開発

  • 言語
    Dart, JavaScript
  • フレームワーク
    Flutter(Dart), React Native(JavaScript)

クロスプラットフォーム開発
単一コードで複数のプラットフォーム(iOS、Android、Windowsなど)向けにアプリケーション開発

デスクトップアプリ開発

Windows、macOS、Linux

  • 言語
    C++, C#, Java, Python
  • フレームワーク
    Qt (C++), WPF (C#), JavaFX (Java), Tkinter (Python), Electron (JavaScript)

データサイエンスと機械学習

データ分析

  • 言語
    Python, R
  • フレームワーク
    Pandas (Python), ggplot2 (R)

機械学習

  • 言語
    Python, R
  • フレームワーク
    TensorFlow, PyTorch, scikit-learn (Python), caret (R)

組み込みシステム開発

マイクロコントローラーやマイクロプロセッサ

  • 言語
    C, C++, Assembly
  • フレームワーク
    Arduino (C++), STM32Cube (C), FreeRTOS (C)

難易度の比較

難易度言語
レベル1 ★HTML / CSS
レベル2 ★★Python / Ruby
レベル3 ★★★JavaScript / Node.js / PHP / R
レベル4 ★★★★C# / Kotlin / Swift / Dart
レベル5 ★★★★★Java / Objective-C / C++
レベル6 ★★★★★★C言語 / Assembly

レベル1 ★

初心者向け(非常に簡単)

HTML

ウェブページの構造を定義するマークアップ言語。比較的簡単で直感的

CSS

ウェブページのスタイルを定義するためのスタイルシート言語

レベル2 ★★

初心者向け(簡単)

Python

読みやすい構文と豊富なライブラリを持つ汎用プログラミング言語

Ruby

簡潔で直感的な構文を持つスクリプト言語

レベル3 ★★★

初級〜中級

JavaScript

ウェブ開発の標準的な言語

Node.js

JavaScriptをサーバーサイドで使用するためのランタイム

PHP

主にサーバーサイドのウェブ開発に使用されるスクリプト言語

R

統計解析やデータ分析に特化したプログラミング言語

レベル4 ★★★★

中級

C#

マイクロソフトが開発した多用途な言語
※Windowsアプリケーション開発やゲーム開発(Unity)に使用

Kotlin

Javaに代わる新しいAndroidアプリ開発の標準言語

Swift

Apple製品向けのアプリ開発言語
※Objective-Cよりも簡潔で安全な設計

Dart

Googleが開発したフロントエンドおよびバックエンド向けのプログラミング言語
※Flutterフレームワークで使用

レベル5 ★★★★★

中級〜上級

Java

幅広い用途で使用されるオブジェクト指向言語
※業務アプリケーションやAndroid開発に広く利用

Objective-C

iOSおよびmacOSアプリ開発のための古い標準言語

C++

システムプログラミングやゲーム開発に広く使用される言語

レベル6 ★★★★★★

上級(難しい)

C言語

システムプログラミングや組み込みシステムに使用される基本的な言語
※ポインタやメモリ管理が難しい

Assembly

マシンレベルのプログラミング言語
※ハードウェアに直接アクセスするため、非常に難解

まとめ

今回はプログラミングで出来る事について説明しました。

各分野で使用されるプログラミング言語やフレームワークは異なりますが、まずは自分の興味や目的に合った分野から学び始めることが成功への近道です。
学習の難易度も考慮しながら、ステップバイステップで進めていきましょう。

また、プログラミング言語は一つ覚えると他の言語も似ている部分が多いため、比較的学びやすくなります。
まずは簡単な言語からチャレンジしてプログラミングの面白さを感じ、その後、難しい言語に挑戦するのもありだと思います。

記事の内容
閉じる