先日、質問がありました。僕のブログではたまに、Pythonのプログラムの記事を書いたりしていますが、初心者だったら何のプログラムを勉強すればよいか?という質問でした。
おひとりではなく、たまに質問頂いてます。
用途に応じて使う言語が違うのですが、ざっくり解説してみます。★は個人的感想です。
用途別のプログラム解説
この他にもたくさんありますが、今普及していて、汎用性があるものを選びました。個人的にはこれからやるならPythonがおすすめ。まったくの初心者なら、Excel持ってる方だったら、VBA。ってとこでしょうかね。
初心者向けに分かりやす書いたので、各専門家さんのツッコミはご遠慮ください。
C言語
矢野はこの言語が1番最初でした。携帯電話開発の組み込みエンジニアだったので、C言語のほか選択肢がなかったのです。汎用性はあるけど、20年以上前にできた大昔の言語ですが、難易度は超難しい。型やメモリ管理が厳格。純粋なCだと、stringなんて型は無いですからね。メモリ管理は特に厳しいので、ポインタの知識は必須。逆に、この言語を極めれば、他の言語の応用は簡単。だいたいの言語がC言語が基本ベースで作られているからです。まだ一部の業界では必須といえるほど使われていますが、一般的には使わないので将来性も低いです。コンパイラが必要。
- 用途:ハード制御など
- 将来性:★
- 難易度:★★★★★
C#
C言語が進化した最新版。オブジェクト指向の知識は必要。VisualStudioなどの統合環境での開発が一般的。
GUIを使ったWindowsソフトを作成したい方はこの言語ですね。
- 用途:Windowsソフト
- 将来性:★★★★
- 難易度:★★★★★
PHP
ウェブサーバー上で動作させるプログラムを作るならこれ。php使っている有名なソフトは、Wordpressです。ブログやってる方なら、一度は聞いたことがあると思います。このブログもWordpressです。WordPress使っているユーザーはphpの事は一切知らなくても使えます。
僕はアフィリエイトやってる事から、SEO用のリンク集や、サイト自動作成ツールなど、色々作りました。ウェブサーバー上で動作させるモノを作りたいならこれですね。ただし、設置するサーバーがPHPをインストールしている必要があります(無料サーバーでは使えない所が多いという事)。
WordPressのプラグイン、テーマを作りたい方も必須です。WordPressの基本プログラムということもあって将来性も抜群。
ただし、ひとつ欠点があって、phpのバージョンごとの互換性は一切ありません。昔のツールが最新バージョンで動かないというのはよくあります。作る場合には、どのバージョンで作ったかがとても大事になります。
- 用途:ウェブサーバー上で動作
- 将来性:★★★★★
- 難易度:★★★★
Java
JavaはSun Microsystems 社が開発。
Androidアプリを作りたい方におすすめ。AndroidアプリはGoogleが作ったKotlinという言語がありますが、実情はJDKの環境での作成が汎用性あります。
- 用途:Androidアプリ作成など
- 将来性:★★★
- 難易度:★★★★
JavaScript
Javaとは違います。JavaとJavaScrptは全く異なる言語。JavaScriptはNetscape社が開発(現在はEMCA)
ライブラリが充実していて、特にブラウザ操作は得意。ブラウザさえあれば動作可能なので、ウェブサイト(ブログ)上で動かす事も出来る。
オブジェクト指向の知識、クラスの概念の知識は必須。
- 用途:ブラウザ上で動作
- 将来性:★★★
- 難易度:★★★★
Swift
Apple社が独自開発した、iOSアプリ(iPhone/iPad/AppleWatch)作成専用のプログラミング言語。
変数や型を宣言しなくても使えるので書きやすいです。
iOSアプリを作るならこれしかないですね。オブジェクト指向の知識は必須。
ただし、iOS以外は使えないので、汎用性はないです。
- 用途:iOSアプリ作成
- 将来性:★★★
- 難易度:★★★★
VBA(Visual Basic for Applications)
Microsoft Excelさえあれば動作します。入門者向けのプログラミング言語。
環境構築はExcelさえあれば構築不要。すぐに使えます。変数の型の概念は無く、変数に日本語が使えるなど、通常ではありえない書き方が出来ます。日本人向け。
入門者向けの言語ですが、GUIを使えたり本格的なプログラムが作成可能。
一番の利点は、Excelのセルをデータベース代わりに使える事です。データベース操作は、各言語、専門知識が必要になりますが、VBAは不要。Excel自体を使えばよいだけですからね。
Macでも動作するけど、Windowsでの事がそのまま使えない点が多々あるので注意が必要。
- 用途:Winsowsソフト
- 将来性:★★
- 難易度:★★
Python(パイソン)
今めちゃくちゃ流行ってます。AI(人工知能)や、仮想通貨やFXのトレードBOT作りたいならコレ。用途は多岐にわたり、ハード制御もできる。
これらは、ライブラリが充実しているので、他の言語に比べ、簡単に簡単に作れます。
(ここでいう簡単は、コーディング技術あっての上。)
まだ出来たばかりの言語なので、将来性も抜群です。
配列という概念がなかったり、独特の書き方なので、他の言語から入ると、コーディング手法で戸惑う事もしばしば。
現状ではGUIを使ったソフトを作るにはちょっとコツが必要。
- 用途:AI、トレードBOTなど
- 将来性:★★★★★
- 難易度:★★★★
プログラムの勉強方法
本買ってもよいのですが、実際に作るのが一番です。
全くのド素人の場合、いきなり本格的なものは目指さず、まず最初は簡単な事から始める事をおすすめします。
検索して勉強
「Python 入門」など、「目的のプログラミング言語+入門」で検索してください。
環境構築方法から実践的な書き方まで
書籍並みの解説サイトがずらずらと出てきます。
学ぶべき重要ポイント
どのプログラムも、条件分岐とループ、それぞれの処理(関数化)というのを覚えれば、他への応用は簡単。
条件分岐
if文
もし~だったら、こっちの処理という場合の「もし~」の箇所。
言語によって書き方がだいぶ違います。
ループ(繰り返し)
for文
while文
指定回数繰り返し、指定条件内の時繰り返しのときに使用。
関数
重複処理など機能化したい場合は関数にすると管理が楽。
クラスや他にも覚えたい事があるけど、最低限、上記だけ真っ先にに覚えておく。
ご質問はコメント欄からお願いします
コメント一覧 (8件)
今回の記事、大変参考になりました。私も矢野テックさんにプログラミング言語について伺っていた一人です。
先日は、問い合わせフォームで入力・送信してしまいすみませんでした。
とりあえず、興味の先がアンドロイドアプリなので、JAVAから入ってみようと思います。次に、pythonでbotなどに挑戦したいです。
ポイントや色々な参考も紹介していただいてるので、目からうろこです!
頑張ってみます!
これからも、記事楽しみにしています。ありがとうございました。
おおっ、意外でした。アンドロイドアプリ作成ですか。
色んな手段があるので、Javaでの環境構築などやり方は、「アンドロイドアプリ JDK 開発」で検索してください。色んな方が分かりやすく解説してくれてます。
先ほど帰宅して、早速矢野テックさんの紹介のとおり「アンドロイドアプリ~~」で検索してみました。ずらっと分かりやすそうなサイトが並んでいて、逆に選ぶのが困るくらいでした。自分に合うものをじっくり選んでみたいと思います。
それと実はサイト検索する前に、やるとなったら早まってしまい、初心者向けのJAVA入門書を購入してしまいました。
なので、知識は色々な側面から得るぞ!と前向きに考え、サイトも書籍も順番に目を通していきます。
長文ですみませんでした。
的確なコメントありがとうございました。
書籍はJavaの本でも良いのですが、Androidアプリ作成がゴールであるなら、Androidアプリ作成の入門書の方がベストです。
アプリ作成は単純なプログラム言語だけでなく、環境構築が肝だからです。
大型書店に行けば、たくさん出ています。初心者向け、上級者向け、多々あるので実際に目を通してから購入することをおすすめします。
おー!そうなんですね!
それでは、今回は早まらず色々と研究してから購入してみます。
環境構築ですね!
節目としては半年(11月からと考えて来年の4月いっぱいまで)には、それなりとなる目標でいってみます!
目指せ、TUNAテックで頑張ります!!!
がんばってくださいw
プログラマーちゅうのは
4面ワンバンテニスならルール決めても良い
天にいる状態だから他3面に指示出せていいとは思わないすねえ
キャドは実線、またはプラ整形曲面からしてほしいすねえ
難しいコメントありがとうございます。難しすぎて、あまり頭よくない僕にはよくわからなかったのですが、「ルール決めて」というのは激しく同意です。
書いた通りに動くので、どのプログラムでも、アルゴリズムが全てだと思います。