LoginSignup
7
2

More than 1 year has passed since last update.

はじめに

私は2020年のGWから機械学習を目的にPythonを独学で始めました。
その後、自力での学習に限界を感じた結果、
その年の8月からいわゆる『公文式』のプログラミングスクールに通いました。
やがて、本格的にプログラミングを学んで就職したいという思いが強くなり、
現在はG's Academy Tokyoという起業家・エンジニア養成スクールに通っています。

今回はプログラミング学習を始めて1年経過したことを踏まえ、
学習してきた中で感じたことやこれから継続していきたいことを
この記事にまとめました。

駄文ですが、お付き合いのほどよろしくお願いいたします。

学習してきた言語

Python(pandasによるデータ処理・scikit-learnによる機械学習・DjangoによるWebアプリケーション作成)
HTML・CSS・JavaScript(jQuery含む)
(以下、少し触れた程度)
PHP・SQL・React

10の気づき

インプット・アウトプット・エラー・その他に分けて書きます。

インプット編

1.全体観を把握してから学習を始める

プログラミングの学習教材は分厚いものや量が多いものが多いので
『1日数ページ進める』としたくなる人が多いかもしれませんが、
やめておいた方がいいです。
早いうちに全体像を把握し、
『どういう記述をすればいいのか』『何ができるのか』などといったこと
を確認した方がいいです。
とりあえずProgateやりましょう。
ちなみに自分はPythonも機械学習も何も分かっていなかった状態から、
GWを使ってUdemyのデータサイエンス講座を1週間で強引に見終わりました。
記憶に定着させるという点では微妙でしたが、
機械学習の概略やデータの扱い方を
知ることができ、その後の学習方針を立てる上で大いに役立ちました。

2.実践を重視する

アウトプットと重複しますが、
一通り言語の基礎学習が終了したら、
どんどん手を動かして作ってしまいましょう。
実際に物を作ることで必要な技術がわかり、
習得が早くなります。
私が今通っているスクールは毎週アプリを作成する課題が出される
スパルタスクールです。
プログラムを書いて、プロダクトを作ることで
否でも応でも実力が付きます。

作りたいものがないのであれば、
既存のサイトやアプリを真似したり、
UdemyやTechpitで教材を購入して
ガンガン手を動かしましょう。
その際にオリジナリティを加えると◯です。

3.量を確保する

プログラミングはとにかく手を動かすことが大事です。
同じものを作り直したり、
同じようなレベルの他の教材に取り組みましょう。

私が前所属していたスクールでは
一回の教材を5回やり直さないと次のコースに進めない
形式でしたが、初めは手が立たない内容でも、
何回も繰り返すうちに何も見なくてもコードを書いたり、
他人が描いているコードの内容が理解できるようになりました。

アウトプット編

4.言語化・視覚化する

手を動かすことは大切ですが、
プログラムを書き始める前に自分が作成したいものを
言語化・視覚化しましょう。
プログラムは上から下へ流れて行くので、
事前にどのような手順で動かしたいのかを
しっかりと整理しておきましょう。

5.分割する

分割して考えましょう。
例えば、作成している課題にjQueryのプラグインを入れたい時、
いきなり自分が作成しているコードに入れてしまうと、
上手く稼働しなかった時にコードを
修正する手間がかかり面倒です。
まずはそのプラグインが単体で自分の環境で動作するか確認し、
確認できて始めて作成しているコードに
組み入れるという方法がよいと思います。

6.コードが汚くてもいいのでとにかく動かす

とにかく書き上げましょう。
同じ手順を何回も繰り返すから、
関数化しようとか、
別の手段を考えようとすると余計に時間がかかります。
まずは書いたコードで動くかどうかを
実際に目で確認することが重要です。

エラー編

7.とりあえずコピペ→ググる

エラーが出てきたら、
とりあえずコピー&ペーストして検索しましょう。
他の方も同じようなエラーに直面している可能性が
高いので検索すれば、
解決策が見出せることが多いです。
また、単純にググるのではなく、
QiitaやTeratail、Stack Overflowで
直接検索すると良い結果が得られやすいです。
ちなみにこれはエラーに限らず、
普段の学習で詰まったら、検索しましょう。
『自走力』が大切です。

8.手を動かして原因を探る

エラーの内容を把握したら、
自分の手でエラーの原因を確認しましょう。
JavaScriptであればalertやconsole.logを、
Pythonであればprintでエラーの原因を探りましょう。
例えばボタンをクリックした時反応しないということであれば、
ボタンの動作の一番初めにalert関数を入れることで
jQueryに問題があるか、それとも
中の関数に問題があるかを把握できます。

9.質問する

自分で試行錯誤して
解決できない場合は
質問しましょう。
これに関しては次の記事が詳しいです。
https://qiita.com/seki_uk/items/4001423b3cd3db0dada7

また、質問するために現状を言語化することで、
自力で問題が解決することもあります。

その他

10.知識は共有する

現在のスクールに入って思うことは、
『複数人の力ってすごい』ということです。
スクールの他の方の素晴らしい課題を見ることができる上に、
自分が手間をかけることなく、
使った技術を学ぶことができます。
また、色々な情報が入ってきます。
これはエンジニア全体に言えることです。
Github経由で無料で素晴らしいプログラムを入手することができますし、
このQiitaのように様々な経験知に容易にアクセスすることができます。

私はずっと独学で学習してきたので、
この考え方に少し抵抗がありましたが、
一度慣れると『共有って素晴らしい!』と思えるようになりました。

おわりに

プログラミング学習を1年間継続してきましたが、
自分はまだまだ未熟者です。
こうしてQiitaに投稿することに非常に抵抗を感じていましたが、
一番最後に述べた考えに基づいて投稿しました。
私の経験が少しでも力になれば幸いです。
ここまで読んでくださり、ありがとうございました!

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2