こんにちは。東京のひとです。
めっきり書評を書かない間何をしていたかと言うと、プログラミングをしていました。
前からやろうやろうと思って先延ばしにしていたので、年始の暇な時間を使って始めてみたんですね。
結論、めちゃくちゃ面白い。
今日はプログラミングをはじめてだいたい2週間経ったので、
- 2週間どのように勉強したか
- どんな人が向いているか
について書こうと思います。
以下ページでは紹介用リンクを使用しており、リンクからAmazonなどで書籍をご購入いただくと著者に紹介料が還元されます。書評を読んで本を買っていただける、これ以上の喜びはありません。筆者への商品紹介料の還元を拒否する方法もご覧ください。
プログラミングを学び始めて2週間でやったこと
1. やろうと思ったきっかけ→発火
実は私、去年の夏に一度プログラミングを勉強しようとして失敗しています。
ミーハーなので「AIとか話題になってるし作れるようになったらかっこいいな」くらいのモチベーションで去年の8月ごろに始めたのですが、
機械学習の背後にあるのが難しい数学だということを知って挫折しました(考えてみれば当たり前なんですけどね)。ど文系なので…。
で、そんなわけで最初に買った『いちばんやさしいPythonの教本』もUdemyの講座 も完全に放置してたんですね。
転機となったのはメルカンというメルカリが社内の働き方とかを掲載しているメディアを読んだことでした。
結構読み漁ったのですが、例えば
GitHub採用→メルカリの新卒エンジニアとして半年を振り返る話 @kzbandai - mercan(メルカン)
この辺はかなり影響を受けました。
仲間と一緒にパソコンに向かってコーディングすることで世界に挑戦できるっていうのが本当に新しいし、
最高にクールじゃん!と思ったんですね。
それに加えてこのブログも他の方々の見よう見まねでカスタマイズとかしていて、
コーディングにあまり抵抗がなかったというのもあります。
それで、一気に火がつきました。
2.形から入る:色々なサイトに登録
まずは形から入ろうということで、様々なサイトに登録しました。具体的には
Udemy | プログラミング中心に動画講座が充実しているサイト |
Progate | 初心者向けのプログラミング学習サイト |
Aidemy | AI関連の動画講座・手を動かす教材が充実しているサイト |
GitHub | コードを共有できるプラットフォーム |
Qiita | プログラミングのtipsを共有するSNSみたいなサイト |
といったところです。上2つが実際にコーディングを学ぶサイト、下2つがプログラマ向けのプラットフォームですね。
ざっと説明します。
Udemy:宝石揃いの動画学習サイト
この2週間「大事なことはすべてUdemyで学んだ」といっても過言ではないほど良いサイトです。
私がPython関連で受けた講座は先ほど貼った
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
こちらの講座だけです。
この講座だけでも30時間弱のボリュームがあり、まだすべて受けきれていません。
シリコンバレーで働いているエンジニアさんが撮られてるので、講師の実力は間違い無いですし、講座としても面白いです。
あ、ちなみにUdemyはミスドくらいの頻度でセールをするので、絶対に定価で買わないようにしましょう。定価は10000円を超えていますが、私は去年の夏に2400円で買いました。
もっと内容の薄いPython本が平気で4000円とかしますから、とてもお買い得だと思います。
Progate:「はじめの一歩」に最適な学習サイト
Udemyに弱点があるとすれば、それは「動画ゆえ学びが受け身になりがち」ということだと思います。
本来プログラミングは自分でどんどんコードを書いていく無限に能動的ないとなみなので、
Udemyの動画を惰性で受けているだけだとプログラミングの面白さはわからず、
結果挫折すると思います。私は去年の夏それで挫折しました。
とはいえ、自分のPCにPythonのコーディング環境を構築するのは初心者には結構大変です。
Progateは自分の手でコードを書いて課題に答えていく形式なので、最初からプログラミングの面白さに触れることができます。画面はこんな感じ。
本当の初期から簡単なプロダクトを作りつつプログラミングを学べる機会は貴重だと思います。
Aidemyもコンセプトは似ていて、AI関連のより高度な内容を扱います。
Aidemyはまだ無料版しか試していないので、ここでは割愛します。
GitHub:コードを共有できるプラットフォーム
GitHubは自分で作ったプロダクトを共有できるプラットフォームです。
プロのプログラマの肩が使うサービスで、正直はじめは全然使いません。
名刺とかにGitHubアカウント書くとかっこいいので作りました。
だいたいのプログラミング系学習サイトはGitHubでログインできるので、ログインは楽になります。
Qiita:困ったらとりあえず駆け込む、プログラマの問題解決プラットフォーム
Qiitaは「プログラマ向けのブログプラットフォーム」といった感じのサイトです。
Qiita自身は自サイトのことを「プログラミングに関する知識を記録・共有するためのサービス」と位置付けていて、
プログラムを実行してエラーが起きた際にエラーコードをググると、かなりの確率でQiitaが上位に表示されます。
正直プログラミング初心者のうちは「こんな情報みんな知ってるだろ…」と思ってしまってなかなか情報を発信するモチベーションは湧かないのですし、
他の人の投稿を見ても、高度すぎてほとんどわかりません。
でも、たとえ初歩的すぎても他人に読まれること前提で記事にまとめることはかなり勉強になりますし、
何より他の人の高度な内容の記事を読むのは「なんかよくわかんないけどもうちょっと勉強しよう」というモチベーションになります。
最近一番凄いと思った記事:WEB上の任意の記事から、読者の感情を推定する試み - Qiita
ちなみに私はこんな感じの記事を書いてみました。すごく勉強になったのですが、よく考えるとプログラミング関係ないですね。
3.とにかく手を動かす
さて、GitHubやQiitaといったプラットフォームに登録し、ProgateやUdemyでコーディングの基礎を学んだら、あとはひたすら手を動かします。
Progateのところで書いたように、初心者が自分のPCに1から環境構築をしてコーディングするというのは地味にハードルが高いです。
実際、ProgateやAidemyなど、環境構築不要の学習サイトが流行っているのもそういう背景があると思います。
ただ、私は自分でゼロからプロダクトを作れることこそ、プログラミングの醍醐味だと思います。
そして自分でプロダクトを作ってみて学ぶ方が、結局のところ身につくのは早いと思うのです。
学習時間を記録するプログラムを書いてみた
この2週間で、主にUdemyの講座 で学んだPythonの書き方を生かして自分なりにプログラムを作ってみました。
プログラムの内容は「●月●日に何を何時間何分学んだ」という情報を入力すると、過去1週間や1ヶ月の学習時間の割合や推移をこんな感じのグラフで出してくれる、というものです。(たぶんいずれQiitaやGitHubに上げます)
正直この程度であれば市販に優れたアプリ(studyplusとか)がいくらでもありますから、作る必要性は皆無ですし、
作る過程は未知のエラーとの戦いでかなり大変でした。
ただ、SQLというデータベースの理解もだいぶ進みましたし、
何より、実際にコーディングしてみる感じがよくわかって面白い体験でした。
まとめ:自分でモノを作る面白さ
さて、2週間集中してプログラミングを学んでみて思うのが、プログラミングは「モノづくり」だということです。
たとえば「可処分時間でプログラミングの勉強ばっかしてて慶應通信の勉強していないな」という問題意識があったら、
「勉強時間と割合を集計して可視化する」という道すじでその問題を解決できる
プログラミングというのはそういう強力な問題解決のツールなのだなと思いました。
かなり楽しいので今後もプログラミングはやっていこうと思いますし、
皆さんもぜひやってみてください。
レゴブロックとか好きな人はハマると思います。