[初心者向け]どのプログラミング言語から学習すべきか?に対する私なりの答え
「今、プログラミングを学び始めるとしたら、何から学び始めるべきだろう?」
IT業界の片隅で働き、生きがいとしてプログラミングをしている身としていつかはこのテーマに対する自分なりの答えを整理しておきたいと思い、ようやく考えがまとまってきたのでここに書いておこうと思います。
この記事は釣りでもなんでもないし、何か特有の勧誘をするつもりもなく、まったくの素の自分が今考えて思っていることを素直に書いています。
私の経歴(話の前提として)
その前に、私がどんな人なのかを前提として書いておきます。
私がIT業界へ入ったのは2002年のころ。未経験の文系学生という状態から身を投じました。
そのあと、なんやかんやで20年近くこの業界で仕事(そしてプログラミングは趣味にもなった)を続けることができています。
今では、開発者のヘッドとしてひとつのサービスを最初から構築して運用を開始できるくらいにはなりました。
収入に関しても、具体的な額を公開することは控えますが生活するには十分な稼ぎを得ることができています。
プログラミング言語、という範囲からするといろいろやりました。
古い言語だとCOBOLやExcelのVBA、アセンブラなどもありますし、JavaやRuby,PHP,SwiftやObjective-C、Dart,JavaScript,C# などなど本当に様々です。
ITエンジニアのキャリアは本当に人それぞれですが、私は比較的様々な言語、職場環境を体験してきた方だと思います。
そんな人がどのプログラミング言語から学習すべきか?という話を書きます。
最初のご縁を大切に
さて、どんな言語をオススメしてくるのか?、と期待を持たれているかもしれません。
オチから話すと、実はオススメはありません。
アレレ、と思われたかもしれませんが、具体的にこの言語を学ぶべきだというのは本当にありません。
では、何から学ぶべきか?
もし、あなたの近くに先達がいる場合はその人と同じものを最初に学ぶことを強くオススメします。
友達や先輩、親兄弟などなど。
Pythonをやっている人が近くにいるなら、Pythonを。
Kotlinをやっているプロジェクトと接する機会があるなら、Kotolinから手を付ける。
それが一番です。
なぜかというと、気軽に質問ができるからです。その人の技術力の高い、低いはあまり関係ありません。
あなたがもし、経験がゼロの状態から始めるのであれば、少なくともあなたよりはその道に長けています。
質問ができない状況であったとしても、その人のアウトプットを直近に見ることができはしないでしょうか?
それで十分です。真似をしてみてください。
いまなら、おそらくGitHubなどでコードを管理しているはずです。
そのコードを全て理解するつもりで読んでみて、動かしてみて、写経してみてください。
その人と同じくらいになるまでは同じ環境で、同じ言語で同じものが作れるようになるまで練習をしましょう。
実は言語の種類は関係ないのです。ましてやどの言語がこの先生き残るかとか就職に優位かとか、そんなことは全く考える必要はありません。
そう考えると、Webアプリか?ネイティブアプリか?なんて話もあまり関係ないことになります。
近くにいる人がやっていることを真似てください。それが一番です。
目の前に成功している人がいるのです。その事実を信じることから始めてみましょう。
身近にモデルとなる人がいないときは?
そうはいっても、近くに誰もいないから困っているんだ!、という方もいらっしゃると思います。
むしろ、そういう方の方が多いのかもしれません。
その場合はどうするか?
YouTubeでもブログでも、Udemyみたいな学習教材でもなんでもいいのですが、「この人なんとなく合いそう」という人はいないでしょうか?
今はもう、オンラインコンテンツが豊富にたくさんある時代で、勉強しようと思えばどの言語でも学習する材料にはほぼ困らないですがここで、ポイントは「言語で選ぶ」のではなく、「教えてくれる人のキャラで選ぶ」ことです。
人間なんで、好みがあります。
この「好み」というのが結構というかかなり重要です。
勉強は割と長い時間をかけてやるものですが、そのときに教えてくれる人の個性や教え方、キャラクターが合ってないと結構しんどいです。
そんなことで決めていいの?と思われるかもしれません。
でも、先生となる人とウマが合わないと、継続して学習する確率がメチャ下がると思いませんか?
学校を思い出してください。自分が好きだと思う先生から教わった授業の方が楽しかったし、覚えやすかったでしょ?
同じです。
嫌いな人から教わるより、好きな人から教わった方が上達もしやすいし続けやすいんです。
大事なのは学習を始めることよりも続けられること。
今はメンターサービスのようなものもありますね。そうしたサービスを活用するのもよいと思いますが、その場合もその人が教えられる言語やスキルとかよりも、「人柄」や「個性」を自分が受け入れられそうかで判断しましょう。
プロフィールだけだと少しわかりにくいかもしれません。そいうときはTwitterを見てみてください。
その人がどのような発言をしているか、覗いてみましょう。
発言から滲み出てくる個性を察してみるのです。それで合う合わないを判断してみてもいいと思います。
それで実際に会ってみて、「合わなかった」というのもあり得ます。その場合はすぐに変えてしまいましょう。オンラインでつながるのが前提の今なら、(前向きに)縁を切ることも以前よりも簡単にできます。
そして、ある程度学習ができて、何かしらアウトプットができるようなれば、あとはもう自分の気が向くがまま、覚えたい言語や技術を学んでいくことができると思います。
最初の言語はなんだっていいんです。
方言とかと同じです。ちょっと言い方が変わるだけなんで、ひとつ覚えればあとは言い回しを少し変えるだけですぐに身につけることができます。
その最初の言語は自分の身近にいる人や、なんとなく好きだなと思える人からサッと学んでしまいましょう、という話でした。
近くにご縁がないか、ぜひ眺めてみてください。
駄文に関する他の記事を読む
最近の記事を読む
- Flutterでcontextを使わずにlocale情報を取得する
- Cloud RunでIAPを有効にしようとしてハマったこと
- slimでtype='application/ld+json'のscriptタグを書く
- タグマネージャーでjsのloadイベントを発火させたいとき
- mysqlコマンドを実行してERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)と言われたら