みにまむAIのテックブログ

読者です 読者をやめる 読者になる 読者になる

みにまむAIのテックブログ

ブロックチェーンやスマートコントラクトの可能性について考えるブログ。最近では人口知能も視野に入ってきました

今度こそ!プログラミング勉強をコンプリートするための習慣7選

プログラミング

f:id:since1991:20170206125403j:plain

近年、ものすごいスピードでIT技術が進歩を遂げています。そういった背景の中で私たちは必然的に、テクノロジーやエンジニアリングの知識が必要となってきています。実際に私の周りのIT企業に勤める人たちは、役職がエンジニアでなくても、エンジニアの人とコミュニケーションを取ったり、開発の進み方や感覚を汲み取るためにエンジニアリングやプログラミングの知識は必要とされてきています。
 
私もそのような背景のもと、プログラミングの勉強を開始しました。ですが、知識のない素人の私が今からプログラミングの勉強をするのはなかなか難易度が高いことでした。
 
そこで、これから似たような境遇のもと、勉強を始める人のために、めげずにプログラミングの勉強を終えるための7つの習慣をご紹介します。
ぜひ参考にしてみてくだい。
 
 
1. 勉強する技術分野を絞ることから始める
一口にプログラミングと言っても、学ぶべき技術分野は多岐に渡ります。
Webに話を限定したとしても、、
 
 
数え上げたら学習すべき知識はキリがありません。時間は有限なので、自分にとって必要な技術分野は極力絞りましょう。
 
*学ぶ分野の全体感を把握しよう
勉強を始めるときのファーストステップはその分野で何を学ぶ必要が有るのかを把握することが重要です。例えば、Webサービスを作りたいのであれば、技術評論社が出版しているWebアプリエンジニア養成読本やWebサービスのつくり方 ~「新しい」を生み出すための33のエッセイを読むべきですし、RailsでWebアプリケーションを作れるようになりたいのであればRailsTutorialを見るべきです。
 
対象とする技術分野の全体像をひとまとめにしている資料を探し、それらを一通り流して読んでみましょう。
 
 
2. 「理解した」を定義しよう
「理解した」という言葉のレベルを明確にして定義しましょう。
この「理解した」という言葉はよく使われ、同時に人や文脈によっても意味が異なります。
 
<例>
  • 一通り本を読んだので、Rubyの事を「理解した」
  • RailsTutorialを使ってTwitter劣化コピーを作ったので、Railsの事を「理解した」
 
どちらも「理解した」ということはわかるのですが、具体的にはどのくらい理解できているのかが定かではありません。なので、「理解した」という言葉のレベルを、1から10まで説明出来るを「理解した」とします。
 
 
3. 情報の信頼性を優先しよう
プログラミングの勉強を進めていくと、分からない事が沢山あるので調べてその疑問を解決する作業が無数に発生します。調べ物をする際に、どんな情報源を選択するかは状況によってまちまちですが、選択基準を大きく分けると以下の2つのがあります。
 
  • 欲しい情報に辿り着く速さ
  • その情報の信頼性の高さ
 
そしてこの2つのうち、情報に辿り着く速さよりも情報の信頼性の高さを優先するべきです。誤学習によって発生するコストは、学び直すだけではすまない事(クリティカルなバグを生み出すなど)もあるので、肝に銘じましょう。
 
 
4. 勉強のためにデバッグを行なおう
エラーやバグが発生した時、初めはいつも焦りますよね。何がいけないのか検討もつかないでいたずらに時間ばかりがかかってしまい、挙句原因がただのタイピングミスだったときの疲労感は凄まじいかと思われます。
 
しかし、エラーやバグが発生した時は、あえてコレはチャンスだと思ってみましょう。そのエラーやバグを解消する過程で、本を読んでいるだけでは学べない多くの事を勉強する事ができるのです。
 
 
5. 良き仲間を作り、レビューし合おう
プログラミング学習をする上で、自分が書いたコードを他人にレビューしてもらうことはとても重要です。特に初心者の場合は、自分よりも信頼できる先輩エンジニアからレビューを貰ったほうが上達が早いです。
 
できるだけ早いうちに我流の変な癖が入り込む余地を無くし、より一般的でかつベストプラクティスと呼ばれるような書き方を身に着けていくように矯正していきましょう。
 
 
6. 成果物を作り出そう
正直、プログラミングの勉強をする上で、最もモチベーションにつながるのは、作りたい物を作って、それが動作する時です。一度経験すると、次に作りたいもののアイデアが次々と浮かんできます。そんな思いから、それを実現する為の勉強のテーマが決まっていきます。
 
書籍の写しばかりだと独自性が失われ、そのあとのスキルアップにつながっていかないので、なるべく成果物を作ることを意識して学習していきましょう。
 
 
7. 体を鍛える
プログラミングの勉強は、己の精神の戦いといっても過言ではありません。精神の状態が不安定な時に勉強をすると、果てしなく効率が下がります。
また、長時間デスクに向かうプログラミングの勉強は、姿勢の戦いとも言えます。
 
体を鍛えて精神面と肉体面を強化することが、プログラミングの勉強には重要性が高いです。何より気分が良くなり、脳の動きも活性化するので、学習がスムーズになります。
 
 

まとめ

いかがでしたでしょうか。独学がうまくいかずに苦しんで、社会人としてはじめて体系的にプログラミングの勉強を行い、試行錯誤しながら取り組んだ事で学んだ集大成をまとめました。初心者の方や、新人エンジニアの方が勉強する際の指針として役立ててもらえれば幸いです。それでは!