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

LifeHack

1人前のシステムエンジニアになるためには「何を」「どのように」勉強すれば良いか?このページでは現役のエンジニアが考える「勉強しておいてよかったこと」「勉強しておけばよかったこと」を実体験をベースにして解説します!

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

ご存じの通り、システムエンジニアは医者や教師と違って必須資格が存在しません。営業職のように目に見える成績がでるような職業でもありませんし、「1人前のSE」という定義も非常に曖昧なのが実態です。

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

このページでは、そんな「1人前のSE」「できるSE」になるための勉強法や、取得するべき資格、読むべき本、身につけるべきスキルを現役のエンジニアが実体験をもと整理しました。

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

スポンサーリンク
スポンサーリンク

エンジニアに必要な知識・スキルとは?

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

結論から言います。

1人前のエンジニアとして自立するために必要不可欠なスキルは以下の4つです。

エンジニアに求められる基礎スキル
  • ビジネスライティングスキル
    ⇒伝えたい内容を伝え、聞きたい内容を正確に聞き取ることができる。
  • 一般業務知識
    ⇒人事・会計、稟議・承認フローなどの一般業務の流れをイメージできる。
  • IT基本知識
    ⇒サーバーとは?メモリとは?LANとは?という質問に答えることができる。
  • プログラミングスキル
    ⇒プログラミングで何ができるか?できないか?を把握している。

上記4つが完璧にできていれば、ある程度の仕事は自分一人でこなすことができるようになるでしょう。

なぜ、これらのスキルが必要になるか?実際のシステムエンジニアの仕事内容や、業務内容を紹介しつつ解説します。

STEP1:ビジネスライティングスキルを身につける

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

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

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

理由① SEは意外とコミュニケーションスキルが求められる

イヤホンを耳につけてひたすらコーディングをしているのがSEのイメージだとしたら、それは完全に誤りです。SEの仕事の半分は、クライアント(お客さん)・チームメンバー(上司・部下)との「コミュニケーション」です。

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

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

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

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

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

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

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

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

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

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

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

この本の主題
  • ①大枠を伝えて詳細情報を伝える
  • ②詳細情報を全体の中に正しく位置付ける
  • ③常に聞き手・読み手のことを考える

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

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

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

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

STEP2:一般的な業務理解を身につける

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

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

エンジニアとプログラマーの違い

エンジニアとプログラマーの違いを家を作る場合に例えて説明すると・・・

システムエンジニア
⇒ 建築士:家の設計を行うことが主な役割

プログラマー
⇒ 大工 :設計書にしたがって実際に家を作るのが主な役割

詳しい業務内容の違いは、以下の記事をチェック!

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

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

なんとなく、一般的な業務が分かっているだけで、その後の学習のスピードが段違いに異なります。

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

では、どのように勉強すれば良いか?

実際に業務知識を学んだ方法

一般業務の知識は、実際にその業務を行うのが一番です。ただ、そういうわけにもいかない場合がほとんど。

実は、そんな方のために書かれた本、あります。

上級者向けです。ですが、最終的に理解しておきたいレベルはこの本です。

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

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

普段の仕事で気を付けること

また、上記で紹介した書籍で学ぶと同時に、要件定義や設計をする中で気を付けるべきことがあります。

それは、業務の最終ゴールを意識するということ。

業務知識をつけるといっても、やたらめったら本を読んでいるだけでは何も成長しません。 しっかり自分の頭で考え「業務のゴールを知る」ことが重要です。例えば、経理部門の人たちのゴールはなんでしょうか?取引を全て正確に記帳することでしょうか?請求書の発行や、入金の確認でしょうか?

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

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

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

STEP3:基本情報技術者試験を受験する

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

ここからは、いよいよシステムエンジニアとしての専門性を高めていくための勉強です。

基本情報技術者試験とは、経済産業省主管の国家資格です。この資格を保有していると、IT全般の幅広い(※深くはない)知識・スキルを有していることの証となります。

基本情報技術者メリット1:ある程度のIT知識が身につく

基本情報技術者試験を取得するメリットは、広く・ある程度深いIT知識を取得できること。

システムエンジニア・プログラマーとして活躍している人は、それぞれが自分の専門性を持っており、その分野のエキスパートとしてスキルを売りにしているのは事実。ですが、そのうえでできるSE自分の専門外とする分野の知識もある程度有しているのが普通です。

実際の現場では、業務の守備範囲が明確に分かれているわけではないことが多々あります。というのも、例えばバグ一つをとっても「それがソースコード・プログラムが原因エラーなのか、サーバー設定が原因のエラーなのか、はたまたユーザの入力ミスなのか」分からない場合。この原因を何となく推定(エラー原因の切り分け)ができるようになるためには、システム全体の仕組みを学んでいることが前提となります。

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

基本情報技術者メリット2:ある程度認められる

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

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

基本情報技術者以外の資格も知りたい方は

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

実際に基本情報技術者試験に合格するための勉強法は以下のページでまとめています。

STEP4:プログラミングスキルを身につける

プログラミングスキル

できるSEになるには、プログラミングスキルは必須です。

システムエンジニアたるもの、少なくともどれか1つのプログラミング言語は自由に読み書きできる必要があります。

確かに、システムエンジニアの仕事は実際にプログラミングするだけを行うだけではありません。システムの設計や、システムの運用などプログラミングスキルがなくてもできる仕事は案外豊富に存在します。ですが、どの作業1つとってもプログラミングの知識・スキルがある場合と無い場合では作業スピードも、作業効率も、そして作業の結果も一目瞭然に違います。

プログラムが動く仕組みを知らない人が、システムを設計してしまうと、あり得ないロジックが出来上がったり、業務上無駄な運用を発生させてしまうなど、弊害が発生する原因となります。

どのプログラミング言語を学べばよいか

結論から言うと、どのプログラミング言語でもOK。1つのプログラミング言語を学べば、他のプログラミング言語にも共通する基本知識が身につきます

要は、システムエンジニアとして押さえておきたい「メモリ」「CPU」「エラーハンドリング」などの基本的な知識を身につけることが重要なのです。これらの知識は、やはり自分で1からプログラミングを学び、プログラミングを通して簡単なシステムを作るなかでスキルを磨くのが最も効率的です。

プログラミングの勉強法

では、実際にプログラミングスキルをみにつけるにはどうしたら良いの?という疑問にお答えします。

結論、プログラミングスキルを身につけるには次の3ステップをこなせばOK。

プログラミングスキルがみにつけるためのステップ
  1. 独学でプログラミングを学ぶ
  2. 他人からプログラミングを学ぶ
  3. 他人にプログラミングを教える

独学に限界を感じている方であれば、以下の方法もおすすめです。

  1. プログラミングスクールを利用する
  2. 他人にプログラミングを教える

STEP1:独学でプログラミングを学ぶ

まずは、独学でプログラミングを学びます。

プログラミングについては、様々な書籍が売られていますが、断然Webサイトで学んでいくのが一番。例えば「Python 実行方法」などでGoogle検索をかければ、分かりやすく解説してくれているサイトが多く出てきます。そこに書いてある内容を1つ1つ理解しながら勉強していくだけでも相当の知識を身につけることが可能です。

STEP2:他人からプログラミングを学ぶ

独学の最大のデメリットは知識が極端に偏ってしまうこと。つまり、自分一人で勉強していると、どうしても自分が得意な分野の知識や、自分一人でも理解できる範囲だけしか身につかなくなってきます。

これを矯正するために必要なのが、プログラミングスキルを有している誰かにプログラミングを1から教えてもらうこと。できれば、1つのカリキュラムに沿って独学で得た知識に新たな知識を補完しつつプログラミングスキルを磨くのが1番おすすめ。

社内や、知り合いに該当する方がいれば多少のお金を払ってでも、スキル向上のために協力してもらいましょう。

【補足】プログラミングスクールを利用する

そんな都合の良い知り合いがいない・・・という方は、プログラミングスクールを利用するのも1つの手です。

実は、プログラミングスクールといっても最近はオンラインで学習できるスクールもたくさん存在します。現役エンジニアからプログラムの採点をしてもらったり、疑問点を質問できたりなど幅広く学ぶ機会を得ることが可能。

実は、今だけ無料体験することができるスクールもあります。期間限定なので、一旦どんなものか知っておきたいという人は是非以下の記事を参考に無料体験からはじめてみましょう。

STEP3:他人にプログラミングを教える

磨いたスキル、身につけた知識が本物であることを確認するために、プログラミングを学びたがっている人にプログラミングを教えてみましょう。

「教える」という行為でなくても、結果的に何かアウトプットする作業であれば問題ありません。例えば、誰かのためにプログラミングの教科書になるようなメモを作ってみる、プログラミング学習用のWebサイトを作ってみる、など方法は様々あります。

いずれにせよ重要なのはアウトプットをするということが重要です。

Webサイトの作り方

当サイト(https://it-biz.online/)をご覧になっていただいている方から、Webサイト・ブログの作り方が知りたい!というお声を多くいただき、WordPressを用いたWebサイト・ブログの作成方法をまとめました。

自分専用のサーバーを設定し、WordPressというソフトウェアをインストールして作る本格的な方法です。IT知識も一緒に身につけられる方法ですので、是非ご覧になってみてください。

STEP5:転職サイトに登録する

最後にやったことがこれ。転職サイトに登録することです。

ですが、これは決して転職するために行うのではありません。今の自分の市場価値を客観的に計測することが目的です。

転職サイトに自分のこれまでのキャリアや資格を載せておけば、エージェントから様々な提案や、転職する際の想定年収などを確認することができます。

自分の市場価値がどれぐらいか?次はどのようなスキルを身につければよいか?いつまでもモチベーションを高く持ち続けることもできるSEの1つの条件です。

是非、このページで解説した内容を1つずつ実践していただき、これまでとは1つレベルが違うシステムエンジニアを目指していってみてはいかがでしょうか。

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