1人前のシステムエンジニアになるためには「何を」「どのように」勉強すれば良いか?
このページでは現役のエンジニアが考える「勉強しておいてよかったこと」「勉強しておけばよかったこと」を実体験ベースで解説!これを読めばきっと何かのヒントが見つかることでしょう。是非最後まで読み進めてみてください。
ご存じの通り、システムエンジニアは医師や教師と違って必須資格が存在しません。営業職のように目に見える成績がでるような職業でもありませんし、「1人前のSE」という定義も非常に曖昧なのが実態です。
ですが、誰もが認める事実として「この人に聞けば何とかなる!」「この人が作ったシステムは抜け漏れが無い!」「この人の説明はわかりやすい!」などと評価される「できるSE」と、そうでない「普通のSE」「できないSE」は明確な差が存在します。
このページでは、そんな「1人前のSE」「できるSE」になるための勉強法や、取得するべき資格、読むべき本、身につけるべきスキルを現役のエンジニアが実体験をもとに解説しています。
SEになったばかりで右も左もわからない方や、システムエンジニアってどんなスキルを身につけたらよいの?と疑問に思っている方に、知っておいて損はない役立つ内容ばかりです!
エンジニアに必要な知識・スキルとは?
結論から言います。
1人前のエンジニアとして自立するために必要不可欠なスキルは以下の4つです。
上記4つができていれば、ある程度の仕事は自分一人でこなすことができるようになるでしょう。
なぜ、これらのスキルが必要になるか?実際のシステムエンジニアの仕事内容や、業務内容を紹介しつつ解説します。
STEP1:ビジネスライティングスキルを身につける
1番重要なのが、ライティングスキル(文章力)です。
いきなり、システムエンジニアぽくない話ですが、実は文章力こそができるSEの第1条件です。
理由① SEは意外とコミュニケーションスキルが求められる
イヤホンを耳につけてひたすらコーディングをしているのがSEのイメージだとしたら、それは誤りです。SEの仕事の半分は、クライアント(お客さん)・チームメンバー(上司・部下)との「コミュニケーション」です。
開発・設計、仕様変更、運用・保守、どのフェーズをとっても、相手の話を聞き自分の意見を相手に納得してもらう必要があるタイミングばかりです。そして、できるSEは例外なくこのコミュニケーションが非常に上手です。
SE同士(社内・プロジェクト内)では、メールやチャットでの会話が主流となります。その際に、自分の言いたいことが説明できない、相手が言っていることが分からない、なんてことはよくあります。
もっというと、同じ文章を読んでいるのに、自分と相手の認識が違っている可能性も非常に高かったりします。これが、プログラミングの設計段階で起こっているとしたら恐怖ですよね。その意味で、ライティングの基本を理解し、分かりやすく説明できる能力をつけておくのは非常に重要です。
理由② ライティングスキル=思考スキル
コーディング・設計がうまいSEは間違いなくコミュニケーションスキルも高いです。その理由が以下です。
ライティングスキル = 思考スキル
その人の思考回路は文章に形として現れます。逆に言えば、文章のスキルが身についてくれば、思考力・ロジカルシンキングの基礎スキルも自然と高まってくるということが言えます。SEのスキルが如実に表れる「設計書」を見たとき、できるSEが作った設計書は「分かりやすく」かつ「漏れがありません」。
ただのSEではなく、部下がいてチームをまとめるレベルのSEになりたいのであれば、間違いなくビジネスライティングスキルを磨くべきです。ビジネスライティングのスキルは、そのままSEとしてのスキルに直結します。
ライティングスキルを身につけるために:実際に読んだ本
ライティングスキルを身につけるために必要なのはこの1冊。
知っている人たちにとっては、非常に有名な本です。
マッキンゼーをはじめとした著名なコンサルティングファームで得た著者の気づきとノウハウが、この1冊に凝縮されています。
今でも定期的に読み返しているエンジニア・コンサルタントの方は大勢います。逆に言えば「これさえ読んでおけば間違いない」ということです。頑張って何冊も読むより、この1冊を暗記レベルで理解できれば、今まで何とも思わなかったコミュニケーションの一つひとつにツッコミができるようになります。
1つ目に紹介している内容が「ビジネスライティング」となっていますが、それだけできるSEになるには重要な内容です!本自体は分厚いので持ち運びはお勧めしませんが、ベッドの横に常に必携しておきたい書物です。
STEP2:一般的な業務理解を身につける
SEとプログラマーの大きな違いの1つが、設計書を書くか書かないかという点です。プログラマーとしての役割が「設計書を基に実装する」ことに主眼が置かれているのに対して、SEは「設計書を作成し、かつ実装も行う」ことが守備範囲となります。
エンジニアとプログラマーの違いを家を作る場合に例えて説明すると・・・
職種 | 家を作る場合だと・・・ | 主な役割 |
---|---|---|
システムエンジニア | 建築士 | 家の設計を行うことが主な役割 |
プログラマー | 大工 | 設計書にしたがって実際に家を作るのが主な役割 |
プログラマーは、設計書を基にいかに綺麗に機能を作り上げるか?というところに主眼が置かれているのに対して、エンジニアはどのような機能を作るか?に力点が置かれます。
詳しい業務内容の違いは、以下の記事に整理していますので、是非ご覧になってみてください。
できるSE(つまり綺麗なロジックを考えられるSE)になるには、どういう業務で利用される機能なのかということを大雑把でもいいので知っている必要があります。
実際のプロジェクトで「請求書作成機能」を作ってください、急に言われたとしても「なんとなくこんな感じの機能だな」とイメージできるのができるSEの必要条件です。この「なんとなくのイメージ」ができるかどうかで、現場独自の業務のヒアリングのスピードが格段に違います。
なんとなく、一般的な業務が分かっているだけで、その後の学習のスピードが段違いに異なります。
では、どのように勉強すれば良いのでしょうか?
業務知識を身につけるために①:実際に読んだ本
一般業務の知識は、実際にその業務を行うのが一番です。ただし、なかなか実際に業務を行う機会がないSEにとっては書籍からインプットするのが基本となります。
「業務知識」と言うと企業ごとにそれぞれ異なっているイメージですが実は違います。基本的な業務の流れはどの会社でも大体同じなのです。
これらの業務ではどのようなことが行われていて、どの辺がシステム化する上のボトルネックとなるのか?そこを押さえれば、どの会社のSEになってもある程度通用します。
そのような一般的な業務知識を身につけるために最適なのがこちらの本です。
業務知識を身につけるには「その業務経験を積むしかない」と言われていましたが、この本がその常識をちゃんと覆してくれています。第5版まで出版されていることからも、世間からの根強い信頼があることが分かります。
熟練のシステムエンジニアは例外なく一般的な業務知識を知っています。
頭で業務の流れがイメージできないままSEとしてのキャリアを歩み続けても、より上流工程の案件では活躍できません。
業務知識を身につけるために②:目的の明確化
また、より具体的に業務知識を身につけるためには、上記で紹介した書籍で学ぶと同時に普段の一つひとつの作業の中で業務の最終ゴールを意識するということが重要となります。
業務知識をつけるといっても、やたらめったら本を読んでいるだけでは何も成長しません。 しっかり自分の頭で考え「業務のゴールを知る」ことが重要です。
例えば、経理部門の人たちの業務の最終ゴールは何か?
取引を全て正確に記帳することでしょうか?請求書の発行や、入金の確認でしょうか?
経理部門の最終的なゴールをあえて一言で言えば「財務諸表を正確に作成すること」となります。会計部門のすべての作業は最終的には「財務諸表の作成」がゴールとなる作業になっています。簿記をつける・売掛金の管理をする・決算をする。どれも、必ず目的が存在します。
業務の最終ゴールが分かれば、全ての業務を一連の流れで理解・推測することができます業務の基本知識+各業務の最終ゴールの意識で業務への理解が深まり、SEとして綺麗な設計・漏れがない実装が可能になります。
STEP3:基本情報技術者試験を受験する
ライティングスキルと業務理解を深めつつ、いよいよシステムエンジニアとしての専門性を高めていくための勉強も必要となります。そのために必須となるのが、基本情報技術者の資格取得です。
基本情報技術者試験とは、経済産業省主管の国家資格です。この資格を保有していると、IT全般の幅広い(※深くはない)知識・スキルを有していることの証となります。
基本情報技術者メリット1:ある程度のIT知識が身につく
基本情報技術者試験を取得するメリットはその資格自体にはありません。資格取得に向けて勉強していく中で、広く・ある程度深いIT知識を取得できることにあります。
システムエンジニア・プログラマーとして活躍している人は、それぞれが自分の専門性を持っており、その分野のエキスパートとしてスキルを売りにしています。が、さらにできるSEは自分の専門外とする分野の知識もある程度有しています。
実際の現場では、業務の守備範囲が明確に分かれているわけではないことが多々あります。
例えばバグ一つをとっても「それがソースコード・プログラムが原因エラーなのか、サーバー設定が原因のエラーなのか、はたまたユーザの入力ミスなのか」分からない場合。この原因を何となく推定(エラー原因の切り分け)ができるようになるためには、システム全体の仕組みを学んでいることが前提となります。
ただのSEとして作業をするのであれば、自分の専門分野のみのボールを拾い続けていればいいのです。しかし、1人前のSEとして1つのチームを回していくためには、自分の専門以外の知識も持っている必要があります。そこで、そのスキルを身につけるためにうってつけなのが基本情報技術者試験の取得です。
基本情報技術者メリット2:ある程度認められる
基本情報技術者試験の合格率は3割程度。当日受験しなかった人を母数に含めるとさらに合格率は下がります。
そんな資格を持っていれば「ああ、ある程度分かるやつだな」と認定されます。会話のレベルも少しだけあげてもらえるかもしれません。専門的な知識やスキルを積極的に教えてくれる先輩ができるかもしれませんし、転職にも有利ですし。持っていて「社会的な損は全くありません」。
既に基本情報技術者に合格した方は、応用情報技術者試験・ネットワークスペシャリスト試験、また各種ベンダー資格など資格取得にも挑戦してみましょう!
実際に基本情報技術者試験に合格するための勉強法は以下のページでまとめています。自分のスキル向上のために最も効果的な勉強方法を実践していきましょう。
STEP4:プログラミングスキルを身につける
できるSEになるには、プログラミングスキルは必須です。
システムエンジニアたるもの、少なくともどれか1つのプログラミング言語は自由に読み書きできる必要があります。
プログラムが動く仕組みを知らない人が、システムを設計してしまうと、実現不可能なロジックが出来上がったり、業務上無駄な運用を発生させてしまうなど、弊害が発生する原因となります。
どのプログラミング言語を学べばよいか
結論から言うと、どのプログラミング言語でもOK。1つのプログラミング言語を学べば、他のプログラミング言語にも共通する基本知識が身につきます。
システムエンジニアとして押さえておきたい「メモリ」「CPU」「エラーハンドリング」などの基本的な知識を身につけることが重要です。
これらの知識は、やはり自分で1からプログラミングを学び、プログラミングを通して簡単なシステムを作るなかでスキルを磨くのが最も効率的です。
プログラミングの勉強法
では、実際にプログラミングスキルをみにつけるにはどうしたら良いの?という疑問にお答えします。
結論、プログラミングスキルを身につけるには次の3ステップが重要です。
- 独学でプログラミングを学ぶ
- (限界を感じたら・・・)プログラミングスクールを利用する
- 実際にモノを作ってみる
STEP1:独学でプログラミングを学ぶ
まずは、独学でプログラミングを学びます。
プログラミングについては、様々な書籍が売られていますが、Webサイトで学んでいくのが手っ取り早く最も簡単です。
例えば「Python 実行方法」などでGoogle検索をかければ、分かりやすく解説してくれているサイトが多く出てきます。そこに書いてある内容を1つ1つ理解しながら勉強していくだけでも相当の知識を身につけることが可能です。
STEP2:プログラミングスクールを利用する
プログラミングスキルは誰もが簡単に身につけられるスキルではありません。独学である程度のスキルレベルまでたどり着く人は決して多くないのが実情です。
そこで、もし自分ひとりでの独学に限界を感じたら、プログラミングスクールを利用してスキルアップをはかりましょう。プログラミングスクールといっても、今はオンラインで完結するスクールがほとんどなので、身構える必要は決してありません。
プログラミングは大体の人が独学で挑戦し、そして一人で諦めてしまいます。
プログラミングスキルはSEにとって非常に重要なスキル(ないと、現場で使えない・・。)となるので、どんな手を利用しても身につけることが重要です。
値段はもちろん有料です。ただし、プログラミングスキルを身につけた人は1日で1万~10万円の副業も可能になると考えると決して高い買い物ではありません。
例えば、クラウドワークスというネット発注の案件募集ページでは、簡単なHP作成が報酬単価50000円で募集されています。一度ご覧になってみてください。
SE向けのおすすめプログラミングスクールを知りたい方はこちらの記事をどうぞ。
STEP3:実際にモノを作ってみる
スキルが身についたと感じたら、最後はアウトプットです。
磨いたスキル、身につけた知識が本物であることを確認するために、実際にモノを作ってみましょう。
例えば、誰かのためにプログラミングの教科書になるようなメモを作ってみる、プログラミング学習用のWebサイトを作ってみる、など方法は様々あります。結果的に何かアウトプットする作業であれば問題ありません。
当サイト(https://it-biz.online/)をご覧になっていただいている方から、Webサイト・ブログの作り方が知りたい!というお声を多くいただき、WordPressを用いたWebサイト・ブログの作成方法を以下の記事にまとめました。
自分専用のサーバーを設定し、WordPressというソフトウェアをインストールして作る本格的な方法です。IT知識も一緒に身につけられる方法ですので、是非ご覧になってみてください。
アウトプットをすることによって、身につけたスキルは本物かどうか?を確認することができます。プログラミング以外でもアウトプットはもちろん重要なのですが、特にプログラミングにおいてはアウトプットは必須です。
自分が作ったWebサイトやアプリが動くと、自身につながります。かつ、IT・プログラミングの面白さに気づき、今後楽しんで学んでいくことができるようになるでしょう。
そのために、自分で何かを作成するという行為がおすすめです。
おまけ:転職サイトに登録する
4つのスキルが身についたら、転職サイトに登録してみましょう。
ですが、これは決して転職するために行うのではありません。今の自分の市場価値を客観的に計測することが目的です。転職サイトに自分のこれまでのキャリアや資格を載せておけば、エージェントから様々な提案や、転職する際の想定年収などを確認することができます。
例えば、身につけたプログラミングスキルや、現場で経験したプロジェクトの内容を随時アップデートしていくと、今の自分はどれぐらいのレベルにある?というのが理解できます。
自分の市場価値がどれぐらいか?次はどのようなスキルを身につければよいか?いつまでもモチベーションを高く持ち続けることもできるSEの1つの条件です。
エンジニア向けの転職サイトだと、周りと比較してどれぐらい成長できたか?がより詳しくわかるようになるでしょう。以下の記事で登録しておきたい3つの転職サイトをご紹介しておりますので、最後にこちらをご覧になってみてください。