プログラミングで初めのうち悩んでいる人に向けた記事
この記事の対象
プログラミングを始めばかりの人、なにを作ればいいか分からない人。
記事を書くに至った経緯
初学者でプログラミングの学習している人には、私が思うに二つのパターンがいると思います。何か作ろうとは考えているものの、何を作ろうか悩んでいる人。プログラミングの学習はしているが、結局何に使うのかを明確にできていない人。この二つのパターンかと思われます。そこで私も過去大変な思いをしたので、これらの人の力になりたいと思い記事を書くに至りました。
この記事を通して作るためにどう考えていくといいのか?という問いに、私個人の考え方を元に話していきたいと思います。
プログミングへの考え方
よく、学習に対してフォーカスされているプログミング。学習することばかりに必死になって先が見えない勉強に挫折していく...プログラミングスクールではよくそのような人を見ます。
学習するのはとても良いことなのですが、何に対しての学習をしているのかを明確にできなければあまり効果的ではありません。そのままではすぐに、モチベーションもなくなってしまいます。そこで、まず一番に意識して欲しい事は何が作りたのかを明確にすることです!そこで、選び方を紹介していきたいと思います。
分野で選ぶ
ひと括りにプログラミング言語といってもそれぞれの言語によって得意分野があります。学習にあたってどの言語がどのような分野で活躍しているのかを知るということはとても重要なことです。
言語 | 利用分野 |
---|---|
業務システム向け | C言語,C++,Java,Haskell,Scala,Groovy,COBOL |
組み込みシステム向け | C言語,C++,D言語,MATLAB |
Webアプリ開発向け | Java,JavaScript,PHP,Ruby,TypeScript,Go言語,Perl |
スマホアプリ開発向け | Java,C#,Swift,Kotlin,Objective-C,Dart |
パソコンアプリ開発向け | C#,Swift,Objective-C,Visual Basic,Delphi |
ゲーム開発向け | C++,Java,JavaScript |
人工知能開発向け | Python,R言語,SQL,MATLAB |
業務効率化/自動化向け | VBScript,Google Apps Script |
科学計算向け | FORTRAN |
これだけの分野があります。この中でまずは自分のやりたい分野を選択しましょう。
同じ分野で別の言語もあるけど、どれ選べばいいのか?については、簡単なものを最初はやるのがいいでしょう。例えば、Webアプリ開発向けのJavaとGo言語ではどちらがいいのか?というものがあります。
答えはJavaです。
理由は、Go言語は最近出たばかりなので参考にできる記事も少ないし、難しい言語であるからです。
このようにそれぞれ似た分野でも、話が変わってくるので、すぐにやる前に難しさを比較してから学習するといいでしょう。
そもそも何を作ればいいのか
記事を読んでくださった方は、一番気にしている部分だと思います。
私も昔はそうでした。プログラミングの学習というのは永遠と続く長い道、仮にその言語をマスターしたとしても時代の流れでどうなるかもわからずその都度新しいことを覚えていかねばなりません。そんな最中自分の作りたいものというものがない人は尚更つまらないでしょう。
そこで、まず何かを作ってもらうのが一番であると思います。
よく他の偉いプログラマーさんも言っていることなのですが、学習する前に何か作りながら学べ、というもの。そんなこと言われても最初はむずかしすぎて無理だよ!と思う人も多いかと思われます。
そんな貴方に私はいくつかのステップを用意しました。
ステップ
1.やりたい言語の環境構築について動画を見ながら学ぼう!
2.動画を見ながら、作りたいサイト、アプリを作ってみよう!
3.作った後にそこで何を感じ取ったのか考えてみよう!(向いていないと感じたら2に戻る)
4.そこで得た学びを通して今度は自分で作りたいアプリを考えてアプリ、サイトの作成しよう!
5.作った後にそこで何を感じ取ったのか考えてみよう!
この5つのステップでやってみてください!
それぞれのステップの解説
1.やりたい言語の環境構築について動画を見ながら学ぼう!
割愛
2.動画を見ながら、作りたいサイト、アプリを作ってみよう!
まずは、動画を見ながら何かを作るこれは非常に素晴らしいものです。
しかし、とても難しい内容のものもの紛れておりますので、そのような動画はやめて最初はこれならできそうだけど完成したらやり甲斐を感じれそうというものにしてください。
動画は見るだけでなくしっかり打ち込んでちゃんとプロダクトを作ってくださいね!
3.作った後にそこで何を感じ取ったのか考えてみよう!(向いていないと感じたら2に戻る)
この何を感じとったのかがとても重要です。それぞれの分野ごとに向き不向きがあるので、むいていならやらない方がいいです。
ステップ4につながるくらいに何が作りたいかはっきりとわかる分野を選べえるといいですね!
4.そこで得た学びを通して今度は自分で作りたいアプリを考えてアプリ、サイトの作成しよう!
ステップ3での学びを通して今度は自分で何かを作ってみましょう。
ここで重要なことはプロダクトを分解して調べるということです。
SNSの作り方ー!と調べてはいけません。というのも確かにSNSの作り方はヒットするのですが、それはその人の作りかたになってしまい。自分の思ったように作ることもできず見た目も自分の思い通りにはいきません。
まして急にそんな調べかたをしても、事細かに解説した記事など、有料の記事や動画を購入するか乱雑な説明のGithubに毛が生えたような記事や、とても簡易的なSNSの解説の記事、動画しかヒットしません。
なので、そのような調べかたは始めたばかりの方だからこそおすすめできません。
仮にSNSを作りたいといっても、SNSがどのような仕組みでできているのか、自分で理解しなければなりません。
例えば、SNSであれば投稿機能、プロフィール編集機能、ホーム画面での遷移の処理はどようにするかなどひとつのプロダクトに複数の機能や画面の構成を考える必要があることがわかります。
なので、調べる時も分解した機能を一つずつクリアしてSNSを完成させるというイメージの方がうまくプロダクトをつくることができます。
当時の私の分解画像
5.作った後にそこで何を感じ取ったのか考えてみよう!
最後にプロダクトを通じて次に何を作ろうかやプロダクト制作の中で考慮できなかった部分や汚くなってしまったコード等をしっかりダメだった部分を直し、それを次にどのようにつなげていくのかを意識して今後のプロダクト制作に励んでください。
決めるにあたってのもう一つの指標
それぞれの言語が実際どのくらい使われているかの表がこちら
pthon,java,c言語 はやはり人気のようです。
一説によるとjavaができれば仕事に困ることはないと聞いたことがあります。
続いてこちらの表をご覧ください
こちらの表はそれぞれの言語の年収ランキングです。
平均的な値なので、これをやればこの金額になるとは思わない方がいいです。
能力次第ではどの言語も素晴らしいものであることには変わりはないのです。
ただ、上の表のように需要がある言語を理解することができれば、間違いなく仕事に困ることは無くなるでしょう。
需要のある言語で且つやりたい分野である。この二つの掛け合わせを上手にして、言語を選んでくださいね!
私の作ったモンストのSNSアプリ
Discussion