見出し画像

新しい技術を学びたいエンジニア必見! 「やってみた系」の学習中毒者が提案するスキルアップ手法

エンジニアにとって、新しい技術を短時間で身につけるのは必須のスキル。ほかの職業と違って、習得すべきアプリケーションやルールの進化が、とても速いことも特徴的です。

たとえば、不動産や介護といった業界では、制度の改定など、国が決めたルールに沿って仕事の仕様が変化します。
それに対してIT業界では、小さな団体が公開したライブラリを急にたくさんの人たちが使い始めたり、大企業が標準化させようとしたプロジェクトが失敗したりと、予想外のケースが少なくありません。

本稿では、学習オタクとして書籍まで出版しているジョシュ・カウフマン氏が考察してきたトレーニング方法を参考に、プログラミング手法をマスターするための工夫について、まとめて行きたいと思います。

## 短期間のダッシュで学習目標を達成する

ビジネスの手法についてコーチングを行っている、ジョシュ・カウフマン氏は、学習方法の書籍(※1)を出版するだけでなく、過去にTED(※2)にも登壇し、効率のよい学び方を提言しています。
その特徴は、従来の学校教育と違い「一定のスキルを短期間で習得する」ことに特化した方法。何かを学ぶ際に、基礎から積み上げるのではなく「やりたいこと」を絞り込んで 20時間でマスターすることを推薦しています。

## 結果がでるから、継続する。学習のゴール設定を見直そう

カウフマン氏は、学習以前に「ゴール設定を明確にする」ことを推奨しています。それも、大きなゴールではなく今の自分がイメージできる範囲のゴールが良いようです。

たとえば、「人工知能の勉強をしよう」というのは、応用数学からプログラミング言語、ライブラリの調査、ハードウェアの設定などなど……。その道のプロになるために、必要な工程が広過ぎます。

もちろん、最終的なゴールを持つのも重要ですが、まずはそこまで到達する前に、「素人としてほかよりも一歩先に立つ」ことを大切にしています。

具体的な例として「JavaScriptを学ぶ」を挙げれば、一般的には「入門書を買ってきて変数への代入など基礎から学ぶ」と考えがちでしょう。
しかし、それよりも「jQueryで動くマウスオーバーの処理を5個ほど作ってみる」といったように、実際に動かして結果がわかりやすい仕組みを作ってみるのはどうでしょうか? 

従来の学校教育では、基礎からしっかりと体系的に学ぶことが重視されてきましたが、大人になってからの学習方法は「結果が可視化できること」が重要です。

では、なぜそのようなゴール設定が必要なのか? それには、モチベーションが関連してきます。

## モチベーションが保てない分野からは、撤退する勇気も必要

カウフマン氏による「The first 20 hours」では、20時間で一定のスキルを身に付けた後に「今後それを続けるか?」を自分に問うことを勧めています。

書籍の中で紹介する例で言えば、囲碁に関して一通りのルール学んだ後に、「これ以上、このゲームには時間をかけない」として、スキルアップを中断しています。

理由としては、1試合の時間が長いことや、黒帯レベルの強さになるためには、もっと時間が必要であることを挙げ、自分の余暇の時間を考えるとこれ以上の投資は難しい。と判断したようです。

20時間やってみて「自分には合わないな」と思ったら、それを中断して、ほかの目標を追いかける。という学習方針は、エンジニアにとってもメリットのある方法です。

たとえば、webサービスを制作するにあたっても、PHP, Perl, Python, Ruby などさまざまな言語がありますし、フレームワークにも Rails, Bootstrapなど多種多様です。

Python + Flask で簡単なページ生成を行って、面白いなと感じたら、そのまま継続すれば良いでしょうし、もしかすると「もっとデザインの方面に進みたい」と思い直すかも知れません。
インターフェイスのデザインに進むのであれば、Adobe XDを試してみるのも方法の一つです。ここまで挙げてきた例は、すべて無料で利用できます。

自分が「いつか学習しなければ」と思っていたことも、実際にやってみたら思ってみたよりも簡単だったり、反対に楽しくなかったり。といったことがあるでしょう。

プログラミング言語の学習において「企業でPythonのエンジニアを募集しているから、自分も勉強しよう」という外的モチベーションも否定しませんが、学習をストレスなく進めるには「好きだからやる」という内的モチベーションが重要です。

幸いなことに、ほかの業界と違って IT業界では「制御系のプログラマから Webデザイナーに転職」など、異なるジャンルへの移行は珍しくありません。

## エンジニアのスキルアップには、さらなる分野も

ここまで、プログラミング言語など技術系の学習に関して触れてきましたが、実際の業務に入ると「対人関係スキル」も重要です。

単に自分だけが「Unityでポリゴンのキャラクタを自由自在に動かせる」というスキルがあっても、ゲーム開発は複数人数のプロジェクトになります。

また、ある程度の規模のwebサイトも同様ですね。個人サイトぐらいなら、自分一人でコーディングできるでしょうが、企業サイトになると規模の大小を問わずチームが必要です。

そのようなチーム開発において、バランス良く他人と協力していく方法に関しても、米国をはじめとした、数多くのジャーナリストや研究者が、論文・書籍を出しています。
特にトム・デマルコ氏、エリヤフ・ゴールドラット氏などが、その分野で注目されています。参照してみてください。

※1.
タイトル:たいていのことは20時間で習得できる 忙しい人のための超速スキル獲得術
著者:ジョシュ カウフマン

※2. アーティストから研究者まで、多様な分野の人物がプレゼンテーションを行う、世界的なカンファレンス。過去には元大統領のビル・クリントンも登壇しています。
https://www.youtube.com/watch?v=5MgBikgcWnY

(2019-07-14:期限切れテスト記事を投稿)


この記事が気に入ったらサポートをしてみませんか?