KNOWLEDGE - COLUMN ナレッジ - コラム

あなたもITエンジニアになれる

蒸留(後編)

ITインフラ事業本部 ITS第3部
テクニカルスペシャリスト 秦 拓郎
顔写真

自己紹介

はじめまして!テクニカルスペシャリストの秦です。今回がコラム初投稿となります。よろしくお願いいたします。
私は2005年に新卒入社し、システム運用を経て、ITインフラ領域でのシステム開発に携わっています。
その間、現場に配属されたメンバーのOJTをはじめ、社内研修の講師を担当するなど、技術者育成に触れる機会をたまたま多く経験したことから、現在も技術者育成を自身のミッションと捉えて、システム開発案件を通じてメンバーを育成したり、社内の技術者育成のスキーム作りに参画したりしています。

はじめに

今回は「あなたもITエンジニアになれる」と題し、未経験からITエンジニアのキャリアを歩み始めるとき、どのような心構えを持ち、どのような技能を備え、どのような学習を進めればよいのか、ということについて整理していきます。

読者像は、漠然とITエンジニアに興味を持っている方、就職や転職でITエンジニアになることが決まった方、実際にITエンジニアになったばかりの方を中心に想定しています。
それに加え、キャリアチェンジやアップスキリングで改めてITの基礎を学びたい方、技術者育成に関わる方などの気づきやヒントになればと思います。

ITエンジニアと一口に言っても、アプリケーション、ITインフラ、サイバーセキュリティ、システムマネジメントなど分野は様々です。ここでは分野を問わず共通する基礎を築くための、いわば「地盤」となる素養や学習の指針を整理していきます。

終わりなき学び

「ITエンジニアは学び続けなければならない」というイメージがあるかもしれませんが、概ねその通りです。
もちろん、最新の技術に追いついていかなければならないという側面もありますが、実態としては、同じ業務を長く続ければ続けるほど、得られる知識や経験の範囲が限定的になっていくためです。
そのため、業務とは別に知識を得る機会を持ち、それを業務に活用しながら実践を重ねることで、より本質的な技術力が身につきます。

例えば、システムトラブルなどは絶好の機会です。なぜトラブルが発生したのかを、知識と実際の事象を照らし合わせながら理解していくことで、どちらか一方だけでは得られない学びにつながります。

読み取る力を養う

「読解力」などと言い出すとスケールが広がりすぎてしまうので、ここでは「書かれていることを、書かれている通りに理解する」ことに焦点を絞り、これを「読み取る力」と呼ぶことにします。

ITエンジニアの仕事では、プログラム、設計書、議事録、メールやチャットなど、さまざまな情報を読み取り、行動に移す場面が多くあります。
最近では、リモートワークの普及により、基本的なコミュニケーション手段がチャットになることも増えています。
そのため、読み間違い、読み飛ばし、先入観による思い込みが、作業ミスやコミュニケーションミスにつながることもあります。
こうした背景から、「読み取る力」はITエンジニアにとって重要だと考えます。

もちろん、いろいろな要因により、書かれていることがそのままの意味でないことも往々にしてあります。そして、それを推理したり、想像したり、解釈したりして真意を見出すのも重要なスキルです。
しかし、そもそも真意が書かれていないのであれば、それは書き手の責任でもあります。
そのため、まずは書かれている通りに理解することを出発点とすべきです。

「読み取る力」の土台は語彙力です。語彙力といっても幅広い意味がありますが、まずは「知っている言葉の多さ」と捉えるのがよいでしょう。日本語についてもIT用語についても、知っている言葉が多いほど正しく読み取る力になります。当たり前ですが、知らない言葉を正しく読み取ることは難しいです。
知っている言葉を増やす方法は、シンプルに読書がよいと思います。IT用語に関しては後述する基本情報技術者試験の参考書も適しています。

参考として、語彙力や読解力をチェックできるサイトを掲載しておきます。
また、「読み取る力」よりも少し進んだ内容になりますが、論理思考力を問うような問題集も出版されています。これらも書かれていることを正しく読み取り、論理的に推理して答えを導くような内容になっていますので「読み取る力」を養うのには有効です。すぐに答え合わせができる点もトレーニング向きです。当コラムの最後、参考文献に掲載しておきます。

参考サイト

ワーキングメモリを使う

ワーキングメモリとは、情報を一時的に保持しながら処理する脳の機能のことです。
繰り上がりがあるような、少し難しめの暗算をするときに使う部分と言えば、イメージしやすいでしょうか。いろいろなことを同時にこなそうとして、「頭がパンクしそう」な状態になるのは、ワーキングメモリがいっぱいになっているからです。

不安や心配ごとを抱えていると、ワーキングメモリの一部が常に占有された状態になり、その結果、不安や心配ごとが解決しないという悪循環に陥ることもあります。
ITエンジニアの仕事は知的労働が中心ですので、あらゆることで自ずとワーキングメモリを使っています。
とはいえ、短期的にワーキングメモリを増やすのは難しそうなので、ここではどう補うかということを考えます。

最も手軽な方法は、思考を紙やメモアプリに書き出して、ワーキングメモリを空けることです。ポイントは、思考を整理せず、そのままの形で書き出すことです。そして、書き出してから整理すればよいのです。暗算だと難しい計算も筆算なら解けるのと同様です。

タイピングを鍛える

プログラミング(コーディング)、設計書の作成、業務日報の作成、メールやチャット、生成AIのプロンプトなど、ITエンジニアのアウトプットの多くはテキストベースです。タイピングが速ければ、早く終わる仕事もあります。
どれだけ速ければよいという明確な基準はありませんが、タッチタイピングができればひとまず困ることはないでしょう。

特に、人差し指タイピングに慣れてしまっている方は、いずれ速さに限界が訪れますので、タッチタイピングができるようトレーニングすることをおすすめします。
また、ローマ字のタッチタイピングができるようになっても、意外とできないのが英語ベースのタイピングです。プログラミング(コーディング)を始め、CUIでのコマンド実行など、英語ベースでタイピングをする機会は多いです。そういった観点でもトレーニングしてもらえればと思います。

参考サイト

ITの基礎を学ぶ

ITの基礎を学ぶ方法として、まずは基本情報技術者試験の範囲に沿って学習を進めるのが合理的です。
IPA(情報処理推進機構)の基本情報技術者試験のサイトから引用しますが、以下のように書かれています。

「ITエンジニアとしてキャリアをスタートするには、まず基本情報技術者試験から受験することをお勧めします。しっかりとした基礎を身に付けることにより、その後の応用力の幅が格段に広がります。」
引用元サイト:基本情報技術者試験 | 試験情報 | IPA 独立行政法人 情報処理推進機構
https://www.ipa.go.jp/shiken/kubun/fe.html 

基本情報技術者試験は国家試験です。つまり「日本における情報技術者(ITエンジニア)の基本というのはこれくらいの範囲でこれくらいのレベルだよ」と示している試験だということです。
学習のマイルストーンとして、試験の合格を目指せるところもモチベーションに繋げやすいと思います。

すでに興味のある分野があったり、どの分野で働くか決まっていたりしても、ベースとして基本情報技術者試験の学習をしておくことで、結果的に理解が深まると思います。
また、共通言語としての役割もあり、基本情報技術者試験で使われるような用語は、実務における会話でも日常的に使われます。そういった観点でも学習しておいて損はないでしょう。
さらに、最初から基本情報技術者試験は難しいという方は、情報セキュリティマネジメント試験から始めてみるのがよいでしょう。情報セキュリティはどの分野でも必須ですし、基本情報技術者試験の情報セキュリティの部分だけを抜き出したような範囲になっているため、ステップアップとして挑戦しやすいと思います。

プログラミングを理解する

さて、ITエンジニアといえばプログラミングですよね!
ITエンジニアと聞いて、まず漠然とプログラマーを思い浮かべる方もいるのではないでしょうか。
そして、「よくわからないけれどとりあえず書店でJavaやPythonの本を手に取ってみた」という経験がある方もいるかもしれません。
実際には、すべての分野で常にプログラミングスキルが必須というわけではありません。
しかし、コンピュータの動作原理を理解するために、プログラミングを学ぶのは非常に有意義です。

ここでは、初学者が混同しがちなプログラミングの工程を、大きく2つに整理してみます。
  1. アルゴリズムを考える
    アルゴリズムとは、問題を解決するための手順のことです。より抽象的に「ロジック」と呼ばれることもあります。アルゴリズムは、フローチャートや疑似言語などによって、特定のプログラミング言語に依存しない形で表現されます。
  2. コーディングする
    アルゴリズムを特定のプログラミング言語で書き表すことです。多くの方が「プログラミング」と聞いて思い浮かべるのは、こちらではないでしょうか。この2つを混同してしまうことが、初学者がプログラミングにつまずいてしまう要因の一つです。
よくあるのが、アルゴリズムを考える前から、どうコーディングするかということに意識を向けてしまうことです。つまり、「何を書くかが決まっていない」のに「何かを書こうとする」ため、混乱してしまうのです。

アルゴリズムを考えるときは、まずプログラミング言語のことを一旦忘れ、日本語(母語、第一言語)で手順を整理しましょう。手順が整理できたら、プログラミング言語に翻訳していきます。

例えば、「数字のリストを昇順に並べ替える」という課題があったとしたら、アルゴリズムを考える段階では次のように日本語で整理します。
  1. 隣り合う数字を比較し、順序が逆なら入れ替える
  2. これをリストの最後まで繰り返す
  3. 並び替えが終わるまで1~2を繰り返す
この段階では、プログラミング言語でどう書くかは一旦考えません。
そして手順が整理できたら、for文やif文など、プログラミング言語に翻訳します。これがコーディングです。
アルゴリズムとコーディングについて学ぶには、これも基本情報技術者試験の学習が有効です。

基本情報技術者試験には、プログラミングと情報セキュリティについて出題される「科目B」の試験があり、「科目B」に特化した参考書も出版されています。これに沿って学習を進めることで、アルゴリズムの考え方については基本的な理解ができると思います。

コーディングについては、試験問題が疑似言語で出題されているため直接的に特定のプログラミング言語を学ぶことはできません。とはいえ、この疑似言語は非常にプログラミング言語に翻訳しやすくなっていますので、実際にお好みのプログラミング言語に書き換えて動かしてみることで理解を深めるといった使い方ができます。
また、定番の「ソートアルゴリズム」や「サーチアルゴリズム」をコーディングしてみるのも有効です。インターネットで検索すれば、教材となる解説やサンプルがすぐに見つかります。


おわりに

最後までお読みいただきありがとうございます。いかがだったでしょうか。
ざっくばらんな内容でしたが、お読みいただいた方にとって当コラムが何かの役に立ちましたら幸いです。
次回は、私の本業であるITインフラ領域のお話しができればと思います。

それでは、また!

参考文献

最後に、今回のコラムを執筆するにあたり、持論を補強したり、自ら理解したりするために利用した参考文献を掲載いたします。



当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エンジニアによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。

メルマガ登録ボタン


秦 拓郎

ITインフラ事業本部 ITS第3部 テクニカルスペシャリスト

この執筆者の記事一覧

関連するナレッジ・コラム

ITSMツール導入におけるPoC

ITコンサルタントの「中立性」はなぜ重要なのか ― パッケージ製品やクラウドサービス(SaaS)の選定を成功に導く“第三の視点” ―

IT領域におけるリスクを減らすHAZOP分析の活用法