こんにちは。IT忍者です。プログラミングの最前線には現在居ないのですが、たまに「わざわざ開発コストを機能作る必要性ないじゃん」っと、自分でプログラミングもする時もありますし、いざというときには自分でSQLもガリガリ書きます。新しいビジネス用にすぐにプロトタイプがほしいなどもたまにあります。最近も新しい技術など、私も学習を継続していますが。ITエンジニアって覚える事多いなっと思う今日この頃。IT系知識欲旺盛で、勉強好きであってほしいと願いますが、皆さんは如何でしょうか?
IT系の学習とITエンジニアの学習範囲
ITエンジニアほど、守備範囲が広い業種はないのではないかと、ふと思うのですが、私もまだまだ継続していろいろと勉強中ではあります。そんなIT忍者流の学習方法という部分では、Web検索で今は調べる事が出来るので、専門書を使わなくなったなと思います。しかし、ピンポントで調べるにはWEBはいいんですが、適切に覚えるという視点では、専門書で1つ1つ適切な章立ての中で、記憶していく学習方法なのでいざというときに記憶の引き出しに溜まるというメリットがあります。
必要に迫られたものを調べながら「記憶に残す」
私の場合の話ですが、応用学習、新テクノロジー、ツール等であれば、業務や個人的に必要に迫られてからマスターするという形が多いです。後は何を覚えるべきなのかを、最初に計画するようにはしています。広く浅く学習すべきか、ピンポイントで深く学習すべきかを、「将来的に役に立つ可能性があるか」で判断します。
今後のIT市場や、クライアントが求めていくか、新しいビジネスモデルに欠かせないのかで、個人的に覚えておきたい内容、新しい技術をビジネスマーケット市場が求めていくのかに、重きを置いている感じですね。学習実施判断は「個のSkillUpの為だけではない」ですね。マーケット動向など非常に意識しています。なんのマーケットかは置いといて。。総合判断はITという括りだけではないかなっと。
ITエンジニア界隈で流行っていても市場で流行っているとは限らない
市場では流行っていない技術や、知識をいくら得ても活用させる場がないのでは、有効性に欠けますよね。これは非常に判断が難しいところではありますが、そんな中でも効果的に覚える為のワンポイントです。
200X年あたりだとJavaだとStrut、PHPだとCakePHPとか、DI系Seasarフレームワーク、Microsoft系だと.Netフレームワーク、デザインパターンなどなどなど。
デザインパターンは今もあまり変わってないですね。あと開発言語でなんだそれって言われる「D言語」w
今も、いろいろ新しいコンピュータ開発言語が多々あり、新しいオープンソースのフレームワークも多く存在します。全部が全部、Fullで逐一学習コストを使うのも勿体ないですし、エンジニア界隈で流行っていても、企業で使われていないと意味がないので、この辺りの調査は重要かと思います。
学ぶべき本質を見極める
1例ではありますが、WEBで多く使われている概念は、MVCモデルが多いですが、MVCモデルが何であるかを学習すると応用が利きますよね。 いろんなフレームワークがありますが、やはり基本コンセプトが何であるかを見ることで、概念をしっかり覚えれば応用が利くというわけです。そこから派生してMVVMなど概念派生しているものも覚えやすくなります。
いきなり知識や技術力が爆発的に伸びるわけではないですので、基礎と概念を覚えて応用というのが、私は効果的に感じます。その上でフレームワーク系の個別知識とかですが、そもそもフレームワークとは?を知らないで、特定のフレームワークの使い方やアドオンを追いかけるより、フレームワークを使う事のメリットデメリットをしっかり理解する事で、将来的にフレームワーク選定とかの役に立つとは思います。
個人的には、流行りだけに囚われず、本質を理解するが望ましい気はします。
ITエンジニアとしての学習は引き出しを増やすため
IT系の勉強する事が、楽しくないという人もいると思います。でも限られた時間内でアウトプットを出さないといけないのに、業務時間に対して学習ばかりでは成果を求められる時に、作業していないとなるのでそういった意味ではバランスも大切です。実力主義を取り入れている企業がITは圧倒的に多いと思いますので。
究極論で調査工数ください宣言
究極論ですが「調査工数」をくださいで宣言して、後々有効になるナレッジを提供するという手もありますが!注意しないといけないのは、その作業に利益を伴うのか?という問題も出ます。中にはそんな金にならない作業は家でやってくださいと言われるかもしれませんが、1つの方法としては、認められればありですよね。その分半年後には、生産性がチーム全体に影響し、十分かけたコスト以上のメリットが出ます。とか
でも、一方で半年なんて待たずに、すぐ効果を叩き出す能力値が高い人がいたり、きちんと独自で日々学習してる人がいたとしたら? 既に知識ありの人にお願いしますよね。何が正解かはそれぞれの環境に若干依存しますし、どのように時間を使うかも人それぞれですよね。他の人にやらされるのか、自分でやるのか どちらがベストでしょうか。
学習した引き出しの知識が役に立つのか
ITエンジニアはパターン化や階層化得意ですよね。何かの時に、引き出しに情報があれば、ふとした気に話や提案が出来るなどメリットがあり、上手に組み合わせを作れる人だときっと役に立ちます。
ですので、応用力という別なSkillが不可欠ですので、ITエンジニアは「暗記」ではなく「考える力」を重視するはずです。考える力の元は「知識の記憶」となるのでそこの「暗記」があって成り立つ気がします。まだまだ、私も日々いろんな事を学習中です。「継続は力なり」ですが的が外れていると、学習時間コストと比例しないので要注意かと感じます。
知識はITエンジニアの基礎能力を高める
まとめると、知らないよりは知っている方が、課題対応や、作業完了スピードが速いですよね。他の人が3週間かかる仕事が1~3日で終わるなど、無きにしも非ず。見積工数に対して早く完了させれば、それは利益にも直結します。何を学習するかにもよりますが、IT系は技術系だけではないですので、覚える範囲がトンデモなく広い。コミニケーションの技なんてもの大きく影響しますし、文章読解力なども必要ですし、さらに各業態知識などなど、一生掛けても終わりがない気がします。ぜひ継続して何か覚えていくことをオススメします。
その中から得意・不得意も出て来ると思いますので、より技に磨きを掛ける事ができる気がしますし、使えるチャクラの量を膨大にすることで技のバリエーション増えるかと思います♪