今回もエンジニア向けのスキルアップ方法について書いていきます。
プログラミングの習得はエンジニアにとって大きな課題で、前回の記事でも効果的なトレーニング方法としてインプット-アウトプット法を紹介しました。
インプット-アウトプット法の概要は以下の手順でした。
- 見本のソースコードを見つける
- ソースからプログラム仕様とコーディング技能をノートなどにまとめていく
- 仕様と技能を見て、実際にコーディングする
- 自分がコーディングしたものと見本のソースの相違点をチェックしながら、スキルアップする
今回はその詳細版で、コーディング技能の吸収方法について詳しく解説していきたいと思います。
今回も以下の方向けになっています。
- これからエンジニアを目指す方
- すでにエンジニアで新しい技術を身につけたい方
- 主体的な勉強方法を取り入れたい方、部下などに紹介したい方
ソフトウェア品質特性を意識
まず技能の習得方法としてあげるのがソフトウェア品質特性を参考にすることです。*1)
これはIPA(独立行政法人 情報処理推進機構)がまとめている、ソフトウェアの品質を評価するための指標で、色々な場面で活用されています。
コーディング技法を身につける理由は、ソフトウェアの品質を上げるためです。
そのため、この品質特性が参考になります。
詳細はリンク*1) を参照して頂ければですが、例えば以下のようなものです。
- 保守性 … そのソフトウェアが他の人が見てもわかりやすく、改修時にもバグが出にくい性質のことです。
- 信頼性 … どのようにコーディングすればバグが出にくいかを意識しながら、お手本から吸収していく。
品質特性を意識したコードをピックアップしていくことで、コーディング技能を吸収していくことができます。
“難しい箇所”に注目する
勉強していると難題にぶつかるのはよくあります。
ソースコードも、読んでいると難しい箇所もあるでしょう。
例えば
- 階層の深いソース
- オブジェクト指向を駆使したソース
- 画面の描画処理と、それに対応する内部処理を並行して解析する技能

難しい箇所を理解し、コーディングへ反映していくのも立派なスキルです。
難点を使いこなすことで、スキルの向上を実感できるので、この方法はおすすめです。
メンタルモデルを活用する
本ブログは心理学の知識を活用する要素もあるので、心理学的なテクニッっくを一つ紹介します。
それはメンタルモデル(心的モデル、または真的表象とも言う)です。*2)
心的モデルとは、「繰り返し登場する概念や技術のこと」です。*3)
リサーチしていると「パターン」、すなわち繰り返し登場する概念や技術に自然と気づくだろう。そういった概念は「心的モデル」と呼ばれ、とても重要だ。
「たいていのことは20時間で習得できる」 忙しい人のための超速スキル獲得術 ジョシュ カウフマン
例えば以下のようなものです。
- javaなどのオブジェクト指向言語における「クラス」
- HTMLにおける「ハイパーテキスト」
- データベースにおける「スキーマ」

見本のプログラムを解析するにも、読むのが難しい場合もあるでしょう。
その技術特有のメンタルモデルが繰り返し使われているからです。
繰り返し使われている概念や用語に気づくことで、技能の全貌が見えてくるでしょう。
クリエイティブなコーディング技術を吸収する
プログラムの主な目的は、業務の効率化・デジタル化です。
そのテクニックとして上記を紹介しましたが、一方で創造的な仕事をすることもあるでしょう。
特に自社製品に関わる方などは、独創性が重要になってくると思います。
クリエイティブな開発をする上で必要なコーディング技術を吸収する観点で見ていくのも面白いと思います。

例えば以下のようなケースです。
- ユーザーに”体験”を提供するUX関連のコーディングテクニック
- エンタメ系のアプリ制作
- webサイトの制作
参考リンク
*2)メンタルモデル
https://sevendex.com/post/322/
*3) たいていのことは20時間で習得できる 忙しい人のための超速スキル獲得術 ジョシュ カウフマン https://www.amazon.co.jp/dp/B00NGCLXX2/ref=cm_sw_r_tw_dp_2A9D2WQD52Z5X580Q59E
コメント