このブログはプログラミング記事が多めで、毎日たくさんの方が検索から訪れてくれています。
私もよく検索して、いろんな方のプログラミング記事を読んで勉強したり、問題解決したりしています。
ところで、プログラミングを独学で習得するパターンは2つしかないと考えています。
パターン1は言語を網羅的に習得する目的の場合。
パターン2は作りたいものが明確で、それを実現するのが目的の場合です。
実際、私の経験でもこの2パターンしかありません。
私はC,C++,C#,Fortran,VBAを独学で学んで、開発業務に携わってきました。
就職前(内定後)に会社の命令でC言語のオンライン講座を受講(パターン1)
就職後の勤続7年間で、VBA、C#、Fortranを独学(パターン2)
Pythonでブログ検索順位取得ツールを独学で作成(パターン2)
現在はKotlinでAndoroidアプリ開発の勉強中(パターン2)
多くの人のプログラミング学習の目的が、この2パターンのどちらかに当てはまるはず。
では、パターンによってどう勉強するのが、最短で最適なのか?
私の経験から、最適の勉強方法をまとめました。
プログラミングを学習中、これから学習したい方、プログラミングの問題にぶつかっている方は、ぜひ学習方法を参考にしてみてください。
パターン1:網羅的に勉強したい
あるプログラミング言語を網羅的に(全体的に)勉強したい場合はパターン1です。
手に職をつけて転職したい人などはこちらのパターンではないでしょうか。
特に作りたいものが決まっているのではなく、「プログラミングを習得する」ことが目的の場合がパターン1になります。
オンラインプログラミングスクールで学ぶ
ある言語を網羅的に学びたい、時間を無駄にしたくないなら、オンラインスクールが一番最適です。
なぜなら、私も入社前に会社指定のオンラインスクールでC言語の講座を受講していたからです。
プログラミング初心者で、かつ院生で修論執筆に忙しい時期に受講しなければいけませんでしたが、なんとかC言語を習得できた経験があります。
1人で書籍で勉強するよりも、講座のほうがサクサク進みます。
説明が初心者向きで分かり易い&課題があり、フィードバックもあるのが良い点ですね。
おススメのオンラインプログラミングスクールを3つほどあげます。
教室に通うことなく、自宅で好きな時間に受講できるオンラインスクールで、最短で学習しちゃいましょう。
Techacademy
とにかくコースが豊富なのが魅力なTechAcademy [テックアカデミー]
Pythonコース、iPhoneアプリコース、ブロックチェーンコースなどがあります。
現役のエンジニアのメンターがついて、質問に答えてくれます。
Tech Boost
エンジニアになりたい人にはうってつけのtech boostオンライン 。
基礎から実践までカバーしたカリキュラム。
そして卒業後の就職・転職支援も手厚いのが嬉しいサービスです。
CodeCamp
テレビや新聞、ビジネス誌で多く取り上げられているCodeCamp 。
現役エンジニアのマンツーマン指導が人気で、レッスン満足度も高評価のスクールです。
学習時間が7時~24時となっているため、深夜型/早朝型の人以外におススメのスクールとなります。
パターン2:作りたいものが先にある
作りたいものが決まっている場合、例えばC言語の全体を学ぶのでは遠回りになってしまいます。
必要な機能のみを学んで作っていく方が最短で完了するのは当然ですね。
プログラミング言語を全体的に勉強するのではなく、「作りたいもの」を作るのが目的の場合はこちらのパターン2です。
私も就職後、会社では常にこのパターン2でした。
作りたいもの(お仕事)があるので、それを実現するために必要な機能を勉強していました。
こちらのパターン2は、学生さんや会社でツール開発をしたい方が多いのではないでしょうか。
必要な機能を考える
パターン2の場合、初めにすべきなのは必要な機能を大まかにでも洗い出しておくことです。
例えば、
Excelファイルを読み込む機能が必要
ボタンを押したらプロットが表示される機能が必要
プロットをpng画像で保存する機能が必要
などなど
必要な機能が分かったら、次はその機能を実現するためにどういうコードを書けばいいのか調べていきます。
ネットで検索 or 書籍で勉強
作りたいツール、必要な機能がある程度あるのなら、ネット検索や書籍での勉強で独学で進めることが可能です。
書籍よりもネット検索の方がお金もかからずハードルが低いですね。
ただ、ネット検索にはそれなりの検索スキルが必要になってきます。
検索スキルが高ければ十分勉強できる
基本的にはネットで検索すればどんなツールも作れます。
実際ブログ検索順位取得ツールを作る際は、全てネットで検索した情報のみで作成できました。
ただ検索に不慣れな人は少し手こずるかもしれません。
例えば、私がPythonでGUI画面を作る際にどう検索したかというと
- 「Python GUI」で検索し、「tkinter」というモジュールを知る
- 「Python GUI tkinter」で検索し、初歩的なGUI画面を作ってみる
- 「Python tkinter ファイル読み込みダイアログ」で検索してファイル読み込み機能を作ってみる
- 「Python tkinter 表」で検索して、Listbox機能を知り、作ってみる
- 複数列の表が表示できないので、「tkinter 表 複数列」で検索し、Treeview機能を知る
といった具合に、進んでいきました。
・まずはGUIを実装できるのかを知るための検索
・検索して出てきた有名どころのモジュール名で検索
・取り入れたい機能(ファイル選択ダイアログや表など)を入れて検索
:
まずはツールを作っていく上で必要な機能を把握して検索していく。
そして検索して出てきた簡単なサンプルコードを実装してみて理解していく。
これにつきます。
プログラミング上達のコツは、なんといってもマネです。
先人たちのコードをマネしていくのです。
ネット上には、各言語、各機能、いろんなコードが転がっています。
その中から参考とするコードを見つけるのです。
また、何か問題にぶつかった際にも、検索スキルの有無で解決できるかどうかが変わってきます。
実際私がGoogle検索結果のHTMLが正しく取得できなかった際は、解決に2日も要してしまいました。
検索ワードをどう入力するかで、解決の糸口が見えたり見えなかったり・・・
この経験から、検索スキルは重要だと実感しました。
なお、日本語のサイトでは問題解決できない場合も多々あります。
その場合は英語や中国語のサイトも見てみてください。
日本人がやっていなくても、海外の人がやっている場合があります。
書いてあることが分からなくてもコードは分かるはず!
ある程度プログラミングに慣れてくると、検索スキルが身についているので、新しい言語でもすんなり解決できるはずです。
初心者の方で検索スキルがついていない場合は、以下に示すMENTA などを利用して有識者に相談するのが、最短で学べる道ではないでしょうか。
書籍をあさる
ネットで調べて分からないことも、案外書籍に載っている場合があります。
ただ、書籍をあさるのは難易度が高いですよね。
書店に売っている本も限定的ですし、そもそもどの本がいいのか分からない。
書籍の内容も、簡単すぎることしか書いていない本もありますし、初心者には難しいものもあります。
こちらのSEshop なら、プログラミング関連書籍が充実しています。
目次が乗っているので、内容の充実度がすぐ分かります。
そして送料無料!
書籍をあさる際におススメのサイトです。
詳しい人に相談する
自分が作りたいツールを作ろうとしていると、予期せぬエラーや問題が発生することが度々ありますよね。
調べてもどうしようもできない問題に直面した場合、どうしたらいいか・・・
それは詳しい人に相談するのが一番早いです。
私は会社の先輩方によく相談していました。
独学だと、誰に相談していいか分からないですよね。
そんな場合にうってつけのサービスがこちらのMENTA
自分に合ったメンター(教えてくれる人)を見つけて相談することができます。
プログラミング系のメンターが多く揃っているので、困ったらメンターを探して相談してみてはいかがでしょうか?
番外編:作ってもらう
作りたいツールがあるのに、プログラミングが分からない・・・
どうにもプログラミングが苦手・・・
そんな人でも大丈夫!できる人に作って貰っちゃえばいいのです!
スキルのフリマ【ココナラ】 で頼めば、ツールを作れる人が手をあげてくれますよ。
プログラミングが苦手で苦しむくらいなら、サクッと作ってもらいましょう。
その方がお互いWin-Winです♪
私のプログラミング独学経験から、2パターンの独学方法を紹介しました。
網羅的に学びたいのか、作りたいものが決まっているのか。
あなたの状況によって、パターンを参考にしてみてください。
どちらのパターンにせよ、大事なのは“マネすること”です!
んじゃ、また~
コメント