プログラマの勉強方法などについて考えてみる。
なんかですね、彼女さんがwebデザイナーの勉強をしたいって言ってるんですよ。まぁ、勉強して技術を身につけてキャリアを積み重ねたら、比較的他の業種より未来がある業界ではあるんで応援しているんです。なんで、progateなどのオンライン学習サービスを教えていろいろと基本を勉強してもらってるんです。
でもって、僕も生業はwebプログラマなんですけど、どんな風にプログラミングの勉強していたのかなー?って思い出して整理してみようなどというのが今日のエントリーである。僕もまぁ、10年以上のキャリアをもつプログラマだけど、大学生の時の専攻は心理カウンセリングでした。大学生の時に独学でプログラミングを勉強して、IT企業に就職して、なんやかんや現場で揉まれながら現状の状態までたどり着いたって感じです。まぁ、僕はプログラマとしては大したことないですけど、一応、職業プログラマとして喰うのに困らない程度のスキルはもっている。
現状でもネット上を彷徨いながらいろいろとプログラミングの情報などを集めたりしながら、日常的に技術の勉強はしている。朝早く会社に出勤して30分程度、技術書を読んだり写経したりなどをしている感じだけど、腕がなまらないように最新の情報はピックアップしているつもりだ。
ちょっと、プログラミングの勉強方法について方法論をまとめてみようかな。
プログラミングの学習方法としては遅延評価勉強法が良いと言われている。
参考書などを最初っから全部読んでいくようなやり方をするのではなく、実際に必要になった情報だけを調べて勉強するやり方である。プログラミングの情報なんてものはネットをググれば大体情報はあるもんで、それをちょっと突っ込んで参考資料などを買って読み込むようなやり方で勉強したら実際に使える技術になるもんなんですよ。
無論、全くの初学者には基盤となる基礎知識が必要だったりするんですけど、何かしら一つの言語を身につけておけば他の言語も似たような文法になっているので芋づる式に理解できるようにはなっている。むしろメタプログラミングというか、アルゴリズムとかデザインパターンの方を一通り知ってた方がいい気がする。デザインパターンなんかは既に古い考え方だとは言われているけど、枯れた技術を知っておくことは無駄ではない。
言語の習得は最近だとドットインストールだとかprogateみたいなオンライン学習サービスがあるので、そちらの方でやればいいだろう。僕はpaizaラーニングを暇な時にやっている。
最近のwebプログラマの学習リソースなんかはこちらのQiitaで紹介されていた。
こちらも古いけどいい。
後は、勉強したことを本当に腹に落とし込むためにはアウトプットが肝心だ。学んだ技術はブログなりでアウトプット。書いたコードはGithubで共有である。こうやってアウトプットをしていると徐々にネットワークができる。新しく知った知識などは積極的にtwitterやブログでアウトプットした方がいい。そうすることで情報のハブになって、ますます新しい知識が手に入るようになる。
まぁ、個人的に感じるコツとしては一つの技術に固執するよりは複数の言語や技術を知ってた方が食いっぱぐれがないようだ。僕はメイン言語はPHPだけど、Ruby、Python、Perl、Java、C言語、C++、object-c、node.jsは勉強したことがある。最近はフロントエンドを勉強しようと思ってvue.jsやNuxt.jsなんかに興味がある。PHPフレームワークもLaravelなんかを勉強していきたいなーと思っている。
プログラマは一生勉強しないといけないというけど、そりゃま、基本みたいな事だ。というか、人生は基本的に一生勉強だ。僕は勉強しても勉強してもまだ汲み尽くせぬほどの水脈があるプログラミングというジャンルは大好きなんである。まぁ勉強が好きじゃ無いとやってらんないですよ。
今日の徒然
今日の本題とも関係することなんだけど、いろいろと勉強を頑張ろうかな?と思い始めている。 夜は寝る前に15分ほどDuolingoってアプリで英語を勉強しているんですよ。
英語をね、勉強しようと思うんですよ。まー、僕は昔っから気分が乗れば英語を勉強しようと頑張ってきたんだけど、結果には全く残らないで居る。まぁ、曲がりなりにもプログラマなので英語は読めるではあるんだけど、書けないしリスニングやヒアリングも全く駄目である。
Duolingoはゲーム感覚で英語を勉強することができるアプリである。
文法からフレーズまで結構本格的に勉強できるみたいなので、これでできる部分は全部習得してみようかなと思っている。これで基礎的な英語力を身につけて、ゆくゆくはTOEICの試験でも受けてみようかなと思っておるのである。
まぁ、DuolingoだけではTOEICは無理だろうけど、英語学習アプリとかskypeで英会話できたりする様なオンライン学習でも利用しながら、本格的な英語学習をやってみようかなどと思っているのである。とりあえず、Duolingoが全部マスターできたらスタディーサプリでも契約してみようかな?などと思っている。
英語ができたらプログラミングの勉強も捗る。洋書なども読むこともできるし、CNNニュースなどを聞いて国際情勢を知ることもできる。まぁ、英語の初学者向けの英語のポッドキャストなどもあったりするので、そういうのを使って通勤中に英語の勉強もしてもいいかもしれない。僕が英語を勉強したい一番の理由は英語の情報源を知りたいみたいなモチベーションが強いので、何も考えずに最初っから洋書を読んだ方がいいかもしれないけど。