山本ゆうごブログ

山本ゆうごの仕事メモ

プログラミング言語チャート

各プログラミング言語の強みを整理

  • Ruby
    • ActiveRecordが強い
    • Railsでコーディング規約が強い
    • とりあえずRailsがあるので、普通のWebアプリケーションを普通に作るにはこれでいい
  • PHP
    • CMSが強い
    • MySQLのコネクションが軽い
  • Java
    • JDBCが強い
    • GUIのライブラリが強い
    • Andoirdの開発言語としても第一選択肢
    • DBとGUIが安定して動くので業務アプリでは第一選択肢
  • Python
    • 行列計算のライブラリが強い
    • 機械学習ライブラリが充実
    • JupyterNotebookというブラウザ経由のUIが楽
    • GoogleColablatryですぐに勉強が始めれる
  • C/C++
    • Qtを使えばGUIがマルチプラットフォーム
    • 特にCは低レイヤーで動くのでプログラミングの基本
  • JavaScript
    • ブラウザの中で動くのがこれ一択
    • CDNやらサーバーレスアーキテクチャのワーカースクリプトでは第一選択肢
  • C#
    • Windowsアプリケーションの開発の第一選択肢
    • Windowsアプリケーション関係なく、Unityの開発言語としても標準
  • Go
    • マルチOSでありながら仮想マシン経由じゃなくて直接起動する
    • コンパイル後のアプリの起動が軽い(Cみたい)のに書きかたは
  • Scala
    • JVMで動く関数型言語
  • Kotoln
    • JVMで動くJavaよりも少ない記述で同レベルのことができる
    • Andoird開発の第二選択肢

初心者向け言語選択基準

  • まずはなんでもいいのでお勉強したい
    • プログラミング言語だけ学びたい(OS上で動かさなくてもいい)
      • GoogleClabでPython
    • お仕事にも生かしたい
      • bash上でhelloworld.rb、helloworld.c からはじめよう
      • Linuxコマンド3割+プログラミング言語7割の比率で慣れましょう
      • 基本情報もやっときましょう
  • UIが存在するWebアプリケーションを作りたい
    • 会員登録ありだけど非会員ページもほしい
      • まずはRailsでつくっておけ
    • 会員向けがメインでSPA縛りでサイトというよりアプリっぽく作りたい
      • JS+React+NuxtJSで作りましょう
    • 会員登録なし
      • PHPのCMS導入する練習しましょう
  • 機械学習やりたい
    • まずは勉強したい
      • GoogleClabでPython
    • サーバー管理はやりたくない
      • BigQuery ML
  • スマホアプリケーション(非ゲーム)作りたい
    • iOS
      • Swift
    • Andorid
      • Java
      • Kotln
  • スマホゲーム作りたい
    • C#(Unity)