1人前のシステムエンジニア(SE)になるために勉強した5つのこと

LifeHack

SE(システムエンジニア)として活躍するためにはどうしたら良いでしょうか?

システムエンジニアは医者や教師と違って必須資格が存在しません。

営業職のように目に見える成績がでるような職業でもありませんし、「1人前のSE」という定義も非常に曖昧なのが実態です。

ですが、誰もが認める事実として「この人に聞けば何とかなる!」「この人が作ったシステムは抜けが無い!」「この人の説明はわかりやすい!」と評価される「できるSE」と、そうでない「普通のSE」が明確に違います。

このページでは、そんな「1人前のSE」「できるSE」になるための勉強法や、取得するべき資格、読むべき本、身につけるべきスキルをまとめました。

このページで紹介する「できる」SEになるための勉強方法
  • ライティング(ビジネス文書の書き方)を学ぶ
  • 一般的な業務知識を学ぶ
  • IT基礎知識を身につける
  • プログラミングスキルを身につける

SEになったばかりで右も左もわからない方や、システムエンジニアってどんなスキルを身につけたらよいの?と疑問に思っている方に、知っておいて損はない役立つ内容ばかりですので、是非最後までご覧ください。

はじめに:「心構え」的な話

フィードバック, 満足度, 従業員, 調査, 顧客, 世論調査, おすすめ

始めに心構え的な話です。

そんな簡単に "できるSE" にはなれない」―。これは、このページの前提として理解いただきたい内容なのですが、やはり1日や1週間で急にその道のエキスパートになるのには無理があります。

よく、「1週間でプログラマーになる!」とか、「未経験からエンジニアへ!」という謳い文句を目にすることがありますが、それと「できるSE」になるのとは違うというスタンスです。3年5年10年かけて、ハードな経験を積んだ人が、1週間前に勉強を始めた人と同じレベルであるはずがありません。

このページで解説する勉強方法の目的としては「じっくりSEとしての土台をつける」ということ。魔法のような勉強方法を紹介できるわけではないことをご了承ください。

前提知識の重要性

また、ここで紹介する勉強方法で最も重視しているのが「前提知識」です。

いきなりプログラミング初心者がコーディング方法を勉強しても完全には理解できないように、どのような勉強もある程度の前提知識を必要とします。急に「インクリメント」という言葉で、コーディング方法を説明されても困りますよね。

それと同じで、急にシステムの複雑な仕組みを完全に理解するのは不可能です。前提知識がないまま、むやみやらたに知識を詰め込み続けても、その知識は砂上の楼閣にすぎません。1年後(もしかしたら1か月後)には、その知識をもう思い出すことができないかもしれません。

では、どこから勉強すれば良いのか?

その答えが、このページで紹介している内容です。このページで紹介しているのは、単にプログラミングの勉強方法や、資格試験の勉強方法ではありません。プログラミングの勉強・資格の勉強、普段の職場での勉強をより効果的にすることができる前提知識の付け方を包含して紹介していきます。

それでは、本題に移ります。

1.ビジネスライティングを学ぶ

デスク, メモ, ノート, アルバム, 書きます, ペン, 鉛筆, 問題, 本, テーブル, フェルトペン

1番重要なのが、ライティングスキル(文章力)です。

いきなり、システムエンジニアぽくない話ですが、実は文章力こそができるSEの必須条件です。

理由① SEは意外とコミュニケーション大事

イヤホンを耳につけてひたすらコーディングをしているのがSEのイメージだとしたら、それは完全に誤りです。SEの仕事の半分は、クライアントとの「コミュニケーション」です。

開発・設計、仕様変更、運用・保守、どのフェーズをとっても、相手の話を聞き自分の意見を相手に納得してもらわなければならないタイミングで溢れています。そして、できるSEは例外なくこのコミュニケーションが非常に上手です。

たまに、自分語で話して自分語で納得して作業を進める人がいますが、あれは完全に罠だったりします。

後から「全然話が違うじゃん!」ってことが想像以上に多く発生します。特に、初めてのプロジェクトや初めての現場に行ったときに「あるある」なのですが、その現場特有の言葉の使い方・言い回し。これ、普通分からないです。現場独自の意味があったり、常識と異なる使い方をしていたりするので、結構コミュニケーションに苦労します。

またSE同士(社内・プロジェクト内)では、メールやチャットでの会話が主流となります。その際に、自分の言いたいことが説明できない、相手が言っていることが分からない、なんてことはよくあります。もっというと、同じ文章を読んでいるのに、自分と相手の認識が違っている可能性も非常に高かったりします。これが、プログラミングの設計段階で起こっているとしたら恐怖ですよね。その意味で、ライティングの基本を理解し、分かりやすく説明できる能力をつけておくのは非常に重要です。

理由② ライティングスキル=思考スキル

あるとき気付いたのですが、コーディング・設計がうまいSEは何故かコミュニケーションスキルも高いな、と。最初はその因果関係、よくわからなかったのですが、これ実は

ライティングスキル=思考スキル

が成り立つためです。どういうことかというと、結局その人の思考回路って文章に形として現れてくるんです。逆に言えば、文章のスキルが身についてくれば、自然と思考スキルも高まってくるということです。SEのスキルが如実に表れる「設計書」を見たとき、できるSEは「分かりやすく」「漏れがない」のです。

ただのSEではなく、部下がいてチームをまとめるレベルのSEになりたいのであれば、間違いなくビジネスライティングスキルを磨くべきです。ビジネスライティングのスキルは、そのままSEとしてのスキルに直結します。

実際に読んだ本はこれ1冊

知っている人たちにとっては、非常に有名な本です。

マッキンゼーをはじめとした著名なコンサルティングファームで得た著者の気づきとノウハウが、この1冊に凝縮されています。

この本の主題は
①大枠を伝えて詳細情報を伝える
②詳細情報を全体の中に正しく位置付ける
③常に聞き手・読み手のことを考える
という3点に凝縮されています。

逆に凝縮されすぎていて、私は1回で全てを理解できませんでした。今でも定期的に読み返しています。が、逆に言えば「これさえ読んでおけば間違いない」ということです。頑張って何冊も読むより、この1冊を暗記レベルで理解できれば、今まで何とも思わなかったコミュニケーションの一つひとつにツッコミができるようになります。

あとは、いかにしてそれを「自分の骨肉」とするか、です。なので、私はこれ以外の「コミュニケーション系書籍」は読んでいません。1番の良書をひたすら読み続ける、という形で学ぶのがおすすめです。

まさかの1つ目に紹介した内容が「ビジネスライティング」でしたが、それだけ重要であると感じています。分厚いので持ち運びはお勧めしませんが、ベッドの横に常に必携しておきたい書物です。

2.業務への理解を深める

SEとプログラマーの大きな違いの1つに、設計書を書くか書かないかという観点があります。プログラマーとしての役割が「設計書を基に実装する」ことに主眼が置かれているのに対して、SEは「設計書を作成し、かつ実装も行う」ことが守備範囲となります。

したがって、できるSE(つまり綺麗なロジックを考えられるSE)になるには、どういう業務で利用される機能なのかということを大雑把でもいいので知っている必要があります。

実際のプロジェクトで、いきなり「請求書作成機能」を作ってください、と言われても「なんとなくこんな感じの機能だな」とイメージできるのが、できるSEの条件です。この「なんとなくのイメージ」ができるかどうかで、現場独自の業務のヒアリングのスピードが格段に違います。

これは、「はじめに:『心構え』的な話」の章で説明した通り、前提知識の有無による理解するスピードの違いという話です。なんとなく、一般的な業務が分かっているだけで、その後の学習のスピードが段違いに異なります。

できるSE(業務もシステムもわかるSE)になるには、前提知識としての一般業務の流れを理解しておく必要があります。

読んだ本はこれ

① ある程度業務経験がある方向け

上級者向けです。ですが、最終的に理解しておきたいレベルはこの本です。この後もう1冊別の書籍を紹介しますがそちらはこの本を読むための「前提知識」を付けたい方向けです。

業務知識を身につけるには「その業務経験を積むしかない」と言われていましたが、この本がその常識をちゃんと覆してくれました。第5版まで出版され続けており、長く読まれているだけの価値はあるな、と。

逆に言うと、日本全国で読まれているだけあって、この本の内容自体がスタンダードになりつつある側面もあります。ので、最終この1冊だけ全て理解できれば、その状態が「業務を理解している」と言えます。

② ①の前提知識となる本

この本は、①で紹介した本の「前提知識」を身につけるための本です。この本だけでは、実際の業務説明の抽象度が高すぎて現場で即戦力とはなりません。

しかし、その抽象度の高さから割と大体の業務の説明がキチンとされています。私は、①の本を読んでしっくりこなかったのでこの本で勉強したのですが、この本を読んで前提知識が身に付いた状態で、①の本に戻ると驚くほど「読んでいて面白い本」に変身します。私はこのタイミングで、前提知識の重要性を実感し始めました。

やったことはこれ

実際の業務の「ゴールを明確に意識」することです。(抽象的ですみません。)

業務知識をつけるといっても、やたらめったら本を読んでいるだけでは何も成長しません。 しっかり自分の頭で考え「業務のゴールを知る」ことが重要です。。

例えば、経理部門の人たちのゴールはなんでしょうか?取引を全て正確に記帳することでしょうか?請求書の発行や、入金の確認でしょうか?

一応どれも個々人単位の業務でみれば正解だと思います。そのうえで、経理部門全体のゴールをあえて私は経理部門の最終的なゴールは「財務諸表を正確に作成すること」です。つまり、財務諸表の作成という最終ゴールに向かって「取引の記録」、そのための「請求書発行」があり「入金の確認」があるととらえています。。

業務の最終ゴールを知る

このことによって、全ての業務を一連の流れで理解・推測することができます。もし、設計する機能の業務が分からないものであっても、前提知識を蓄えたうえでその部門の業務の最終ゴールが分かっていれば、なんとなく推測することができます。

仮に「0円の金額を入力する」的な業務があるとします。もし、経理部門の最終ゴールが「財務諸表を作ることだ」という視点も、一般的な業務の前提知識もないと、「なんじゃそりゃ!!!!」「全く意味が分からない」って状態になってしまいます。

ここでもし、前提とゴールが頭にあれば、「ああ、財務諸表には関係ない業務だな。ってことは、内部共有のためのメモ的な使い方をするのかな」なんてことが推測できますね。

業務の基本知識+各業務の最終ゴールの意識 で業務への理解が深まり、SEとして綺麗な設計・漏れがない実装が可能になります。

3.基本情報技術者試験を受験する

さて、ここからいよいよSEっぽいことの紹介に突入です。

基本情報技術者試験とは、経済産業省主管の国家資格です。この資格を保有していると、IT全般の幅広い(※深くはない)知識・スキルを有していることの証となります。詳細は公式サイトをご覧ください。ここでは、自分自身が勉強に取り組んだ理由と、合格して実感したメリットを書いていきます。

基本情報技術者試験受験の動機

基本情報技術者試験を持っている人は、知識にむらが無い、と感じたことが受験の動機です。

SE・ITコンサルとして活躍している人は、それぞれが自分の専門性を持っており、その分野のエキスパートとしてスキルを売っています。そのうえで、できるSEとできないSEの違いは、他の分野の知識もある程度知っているかどうかで変わります。

実際の現場では、守備範囲が明確に分かれているわけではないことが多々あります。というのも、例えばバグ一つをとっても「それがコードのエラーなのか、サーバーのエラーなのか、はたまたユーザの入力ミスなのか」分からないという状況が発生するからです。

普通のSEとして作業をするのであれば、自分の専門分野のみのボールを拾い続けていればいいのです。しかし、1人前SEのとして1つのチームを回していくためには、自分の専門以外の知識も持っている必要があります。そこで、超・おすすめされたのが「基本情報技術者試験」でした。

基本情報技術者試験に合格すると

思考の幅が広がる

結論、一気に思考の幅が広がります。それまでは、アプリケーション層(プログラミングメイン)の知識しかなかったため、バグの原因調査に時間がかかりました。構文エラーになっていないしショートダンプもしていない、つまり自分では解決しようがない・・・と結論づけていた事象に対しても、インフラ的な観点からの調査・推理が可能になります。

この試験を受験する、みたいな行動を起こさない限り、IT全体の俯瞰地図が頭の中に出来上がらなかったかもしれません。

SEとしての基本知識が網羅的に身につく

SEとしてのIT基本知識が大体身につきます。もっと言うと、基本情報技術者試験で学んだ「範囲」さえ知っておけば、IT全般でクライアントとの話や説明ができるようになります。先輩SEや、上司の会議に初めて参加したときでも、大体理解できるようになります。

試験自体は詰込みで合格可能ですが、その知識がめちゃめちゃ役に立つことを保証します。

ある程度認められる

今や高校生までもが合格する試験となっていますが、それでも合格率は3割程度。当日受験しなかった人を母数に含めるとさらに合格率は下がります。

そんな資格を持っていれば「ああ、ある程度分かるやつだな」と認定されます。会話のレベルも少しだけ挙げてもらえるかもしれません。専門的な知識やスキルを積極的に教えてくれる先輩ができるかもしれませんし、転職にも有利ですし。持っていて「社会的な損は全くありません」。

基本情報技術者試験の勉強法

本ページをご覧になった方からたくさん質問が届いたので、こちらのページに合格体験記をまとめておきました。1週間で合格できます!

過去問道場をひたすら繰り返す

https://www.fe-siken.com/

こちらのサイトの過去問道場をひたすら繰り返します。この神のようなサイトで、過去問を倒し続けます。

このサイトが神である理由
① 解説付き!
② 出題範囲限定可能!(苦手な分野だけやりたいとき)
③ 無料!!!

もはや訳が分かりません。なぜか、会員登録も不要・無料で利用可能なので馬鹿みたいに使い倒しました。

4.プログラミングしてみる

やはりこれです。実際に手を動かす以外にプログラミングの仕組みを覚える方法はありません。百聞は一見に如かずです。

言語はぶっちゃけどれでもいい

自分に合う言語(javaとかcとかのやつ)はどれか?なんて考えていると、何も始まりません。言語は何百種類もあるんですから。なので、大事なのはどの言語を学ぶか?ではなく、どれだけ楽に始められるか?です。

でも、本当になんでもいいの?

なんていう質問もあるかもしれませんが、なんでもいいんです。プログラミングしてみること自体に価値があるからです。実際に1つの言語を習得すれば、大体のプログラミング言語の勉強の仕方が分かり、そこからできるSEへの窓が開かれます。なので、最初の1つをできるだけ早めに始めることが何よりも重要です。

事実、プログラミングをしていると全プログラミングで共通する「基本思想」みたいなものが身についていくのが実感できます。変数とか、定数とか、データ型とかオブジェクト指向とか。この「基本思想」は他のプログラミング言語でも十分応用できますし、最初の言語を基に派生して考えることができるようになります。

では、実際にプログラミングするにはどうしたらよいのか?ここからは、具体的な方法を解説します。

プログラミングの学び方

プログラミングの「環境」と「参考書」を整える

プログラミングを実際に学ぶにはまずは実際のコーディングする環境が大切です。ここでいう環境とは「エコロジー」的な意味ではなく、コーディングすることができる画面のことです。

すぐにできるのが「VBA」ですね。いわゆるExcelとかを自動化する際に利用される言語のことです。

VBAであれば、Microsoft Officeがインストールされていれば、いつでもどこでも誰でもプログラミングを経験することができます。また、VBAであればネットに膨大な量の情報が置いてあるので、「参考書」も整っています。

私もはじめはVBAで勉強しました。参考書も買ったのですが、あえて紹介はしません。なぜなら「ネットのほうが分かりやすい!!!」からです。VBAを勉強する際には、googleを常に立ち上げておくことです。まさに「google先生」の出番です。

実際にやったのはこれ

今って、オンラインで学べるプログラミングスクールが結構多く存在しているんです。無料のものから、有料のものまでいろいろな種類がありますが、私は(結果的に)有料のオンラインスクールで勉強しました。

VBAで挫折(なんか楽しくなくてやめました・・)した私の体験談を踏まえつつ、おすすめのプログラミングスクールについてまとめましたのでぜひ以下の記事をご覧ください。

1週間無料でやってみて合わないならやめてしまおう、と思っていたのですが結果的に1コースを最後までやり遂げちゃいました。

さいごに:5.一旦「始めてみる」

私が1人でSEの仕事をできるようになるまでにした4つのことは

① ビジネスライティングスキルを身につける
② 一般的な業務知識を身につける
③ 基本情報技術者試験を勉強する
④ プログラミングする


だけです。

その上で、この4つ全てに共通して重要なポイントが

すぐにやる!!!

という1点につきます。画面をじっと見つめて、座っているだけでは何も始まりません。次の行動をする前に、今このタイミングで何かを始めるということが重要です。何故なら、人間スタートしないとスタートしないからです。

実は私も本腰を入れて4つのアクションを取るまでに「1年半」かかっています。1年半もあれば、上記4つのアクションははるか昔に達成していたはずです。最も大切な「一旦始めてみる」精神がないと、1人前のSEにはなれないことだけは確かです。

本ページを閉じたその瞬間から、行動を開始してみてはどうでしょうか?

タイトルとURLをコピーしました