未経験のプログラミング言語を効率よく習得する

エンジニアの内山です。
最近はダイエットのために1日4リットルの水を飲んでいて、
とてもトイレが近くなりました。

はじめに

近年、新しいプログラミング言語が次々と出てきていますね。
適材適所で様々なプログラミング言語を使うことが多くなりました。
そのため、未経験なプログラミング言語でも、即座に習得する必要がある場面が多くなっています。
今回は、未経験のプログラミング言語を効率よく習得するためのポイントを考えてみました。

対象者

すでになにかしらのプログラミング言語を1つ以上習得している人 が対象です。
まったくの初心者には向きません。

まずは実行環境を構築する

プログラミング言語を習得するには、
実際にプログラムを書いて実行しながら学んでいくことが基本です。
まずは実行環境を構築することが最優先です。

最初は本を読まない

本を読むのは時間がかかります。
また、読んでいるだけでは記憶の定着率が悪いです。
文法など詳細に書かれている本に手を出してしまった場合は、それこそ時間がかかりすぎてしまいます。
最初は必要な情報を検索して調べていくほうが効率的です。

IDEの構文チェックやlintツールを導入する

基本的な構文や作法などは、IDEの構文チェックやlintツールに教えてもらいます。
コードレビューしてくれるエキスパートが近くにいない場合の代替手段となります(完全ではありませんが…)。

基礎文法を最速マスターする

いっとき流行った「基礎文法最速マスター」というシリーズがあります。

基礎文法最速マスターランキング
http://cielquis.net/programming-grammer/

習得しようとしている言語の基本文法最速マスターを見つけて、数分でざっと確認します。

プログラムを実際に書いてみる

あとは、実際にプログラムを書いて実行することを繰り返します。
ある程度のイディオムは、書いているうちに自然と記憶してしまうのが理想です。

プログラムを書くといっても題材に困る場合があります。
以下に、内山がよくやっている題材とそれによって得られる知識をまとめてみました。
参考になれば幸いです。

  • デザインパターンを実装してみる
    – オブジェクト指向の構文
  • スクレイピングスクリプトを実装してみる
    – HTTP/WebAPIの操作
    – ファイル操作
    – JSON/XMLパーサ
  • 自分が知っている言語のライブラリを新しい言語に移植してみる
    – オブジェクト指向
    – ライブラリの作り方
  • echoサーバやHTTPサーバを実装してみる
    – ソケットプログラミング
    – プロセスモデル
    – 並列プログラミング
  • TDDのサンプルコードを移植してみる
    – テスティングフレームワーク
    – オブジェクト指向の構文

オープンソースを読む

よく使われているライブラリやフレームワークなどのプログラムを読むと、
その言語でできることやベストプラクティスなどを発見できます。
また、バグや改善点を発見したら、プルリクを送ってみるのも良いです。

手を動かした後に本を読む

上記の作業を一通りやって、初めて体系的に学ぶために本を読みます。
プログラムを書いた経験が理解の手助けになってくれます。
体系的に学ぶと、意外と知らなかったことや誤解してたことなどが出てきます。
より深く言語について理解できます。

まとめ

自分がやってきたことを基に、未経験のプログラム言語を習得する方法をまとめてみました。
要は「手を実際に動かすこと」を重視しています。
実際に動かしてみて、動作がうまく行かなかったりして、アレコレ悩んで調べたりするのが、一番力になるのではないかと感じております。
なにか参考になれば幸いです。

このエントリーをはてなブックマークに追加