こんにちは、迫佑樹です。
今日は「とりあえずプログラミングをしたい人が言語で迷うのは時間の無駄」っていう話をしていきたいと思います。
目次
プログラミング言語は自分が何をやりたいかで決める
プログラミング系の発信をしているとよくくる質問が、
というものです。
プログラミング言語を選ぶ時は、結局「自分が何をやりたいかで決めればOK」なんですよね。
どの言語で何ができるかっていうのは他の動画に撮ってますので、そちらを見ていただければと思います。
- Webアプリ開発するなら⇒RubyとかPHP
- iPhoneアプリを作るなら⇒Swift
- Androidアプリを作るなら⇒KotolinとかJava
とか、いろいろあるんですね。
そんな中で「とりあえずプログラミングを学んでみたい」って人もいるんですよ。
- プログラミングって楽しそう
- 収入も上がってきてるし高待遇だし
- プログラミング勉強してみたいな
くらいの人ですよね。
その状態だったら言語は特に悩まなくて良いかなって僕は思います。
その理由を今回は話していきます。
まずは無料でできる範囲でアプリやサービスを作ってみよう
「とりあえずプログラミングを学んでみたい」って人だったら、Prograteなどの無料サービスで、
- HTML、CSSを軽くさわって
- RubyとかRailsとかをさわってみて
- WEBアプリ、WEBアプリサービスを作ってみる
という流れで良いんじゃないかなと思います。
まあ、この中でちゃんとしたプログラミング言語って呼ばれるのはRubyだけです。
HTMLとかCSSは前提知識として必要なので勉強してもらってですね。
よくある質問で、
- この言語のほうが良いですかね?
- こっちの言語のほうが良いと思うんですよね〜?
みたいな。
でも「特に何を作りたいか決まってないです」人だったら、とりあえずさっきの流れで良いと思ってます。
基本的な考え方はどの言語も全部共通
「どの言語からやるか」って、たいして重要じゃないんですよね。
プログラミングって結局のところ、コンピューターに指示を出しているだけです。
指示の出し方って超ざっくり言うと、
- 「順番に動作してください」という逐次処理
- 「こういう条件の時はこの処理をしてください」という分岐処理
- 「この処理を繰り返してください」という繰り返し処理
その他、処理をまとめたりとかいろいろあるんですが、基本的には今挙げた、
- 「順番にしてください」
- 「分岐してください」
- 「繰り返してください」
ということを、
- 効率的に書いたり
- コードをまとめたり
- 設計をきれいにしたり
といった構造ですので、基本的なプログラミングの考え方はどの言語をやろうが全部共通です。
Rubyって言語をやろうが、PHPって言語をやろうが、最初のところ出てくるのは、
- 「パソコン上に文字を表示させてみましょう」ってプログラムで
- 次に「変数」を学んでみて
- 次に「if文を学んでみましょう」
- 次に「for文を学んでみましょう」
って感じで、分岐や繰り返し処理をしていくんですね。
細かい処理はちょっとずつ違ってくるんですけど、根本的なプログラミング的思考(プログラミングをする際は、こういう思考でコードを組み立てていくっていうスタイル)さえできてしまえば、どんな言語でも対応可能です。
僕もいろんな言語をさわってきました
その証拠に実際僕もいろんな言語にさわってきました。
- ロボットを作るための言語
- Ruby
- PHP
- Swift
- Java
昨日は、いろいろ分析したいことがあったのでデータ分析をするためのPythonでコードを書いて分析をしていました。
という感じで、1回コードをマスターしてしまって、プログラミングをある程度習得するための、
- 調べ方
- 基礎的な考え方
- どうやってエラーを解決するかという思考
このあたりを何かしらの言語1つ通して学んでしまえば、初見の言語であっても結構書けちゃったりします。
とりあえず1つの言語を極めれば他の言語も使えるようになる
なので、
みたいなことは、まったく考える必要ありません。
よくある勘違いとして、ポケモンって最初に3匹選ぶじゃないですか。
というイメージでプログラミング言語を捉えている人もいると思いますが、実際プログラミング言語は1つの言語をとりあえずマスターしちゃえば、他の言語も使えるようになります。
なので「プログラミング楽しそうだからやりたいな」くらいの人は、無料のProgateとかで学べるRubyとかを勉強していったら良いんじゃないかなというのが僕の結論です。
ちんともさんも学んだ言語と使ってる言語が別物です
ちんともさんも結構いろんな言語使えますよね、C言語とか。
ちんともさんは大学の専攻が画像処理なんですよ。
情報理工学部で画像の解析とかをしてた人なんですが、大学の授業で学んだ言語と研究で使ってる言語って違いますよね。
ちんとも
なんでかっていうと、大学で始めにC言語を学ぶんですが、C言語の知識があったら研究で使うPythonもある程度使い方分かるよねって形で「ちょっと勉強して使ってみてよ」みたいな。
ちんとも
そうそう。
ちんとも
そうそう。
どれか1個でも言語の経験があったら、他の言語も見ただけで「こうしてるんだろうな」ってことが分かってくるんですよ。
今回のまとめ:言語に固執しすぎて勉強を止めるのはもったいない!
できるエンジニアほど「この言語はこうだから」っていう、言語のいいとこ発見みたいなことをやってます。
なんかあるじゃないか、Twitterとかで。
「Rubyの良いところは、これとこれとこれである!」みたいな。
でも、「いやそれ他の言語もできるから」みたいなこともあるので、この人が言ってたからこの言語をやんなきゃいけないとかはありません。
それこそプログラミングスクールを運営している人は、自分のプログラミングスクールに入れたいから「この言語しかないです!」みたいな言い方をします。
でも僕は最初の言語はどこから入ってもいいと思うし、でもC言語とかだとRubyに比べると難易度が上がっちゃうんで、そのへんは無料サービスとかで学べる中から自分にできそうな教材を選んでいくと良いと思います。
あんまり言語に固執しすぎて勉強が止まってしまうのはもったいないと思うので、そのあたりの話を今回はしてみました。
どうもありがとうございました。