エンジニア

【客先常駐】準委任契約(SES)で勝つために「プログラミング」と本気で向き合った話

4年生大学を卒業後、独立系のSIerに就職しました。
大体今は7年くらいIT業界で仕事をしています。ちなみに現在は、フリーランスエンジニアで会社に縛られない働き方をしています。

大学は工学部でしたが、プログラミングを全く触ったこともなく0ベースからのスタートでした。
あまり業界研究をしていなかったので、メーカー系、独立系…など正直全くわかっていませんでした。

就活していた頃は…「年収と年間休日、そして社員数が大きい企業なら働きやすく、ちゃんとしてるんじゃないか?」という安易な考えでシステムエンジニアになりました。
これを読んでいる方でIT企業に興味のある方はどうですか?

  • 年収が高い
  • 色んな分野の仕事ができる
  • 未経験でも問題ないとうたっている会社が多い

などと安易に飛びつこうとしていませんか?

社会人1年目の僕は、ビジネスマナーからITスキルの基礎、そして簡単なプログラミング研修を受けました。
ちょうど研修が終わり、入社して4ヶ月目のことでした。

所属先が告げられるのです。
いわゆる”辞令”というやつです。

その辞令を聞いてびっくりしたことは「君は明日から●●株式会社で仕事をしなさい。」ということでした。
僕はこの会社の人間なのに、”何で他の会社で働くのか?”正直疑問と会社に対する不信感が半端じゃなかったです。

正直GoogleやMicrosoftなどIT業界に夢を膨らませていただけに、ただの”派遣”、システムエンジニア(プログラマー)として身売りされているという気持ちでいっぱいでした。
詳しくは(姉妹ブログ):IT業界の働き方「SES」について

初めての開発案件では…

●●会社に配属されて1年くらいはずっと”テスト”ばかりやっていました。
正直スキルなんてつきません。強いていうのであれば”エクセルマクロ”が強くなったくらい…。

しかし、これは僕が仕事で身に付けたもので教えてなんてもらっていません。
もちろん、1年以上やっているので環境構築とトラブルシューティングくらいは一人でスラスラできるようになりました。

ただし、これが一番SES事業の怖いところ何だと気づくのです。
それは…

そのスキルは”その”現場でしか使えないスキル

ということです。

派遣エンジニアなので、派遣先のスキルは高くなります。
しかし、高確率で”その現場”でしか使えないスキルです。

これに焦りを感じた僕は、上司に「プログラミング」がしたいです。
と志願しました。

なぜプログラミングなのかというと「アルゴリズムやロジック」などは他の職場、他のプログラミング言語で共通なんじゃないかと思ったのです。
もちろん、IT業界の仕事としては「プログラミング」が全てではないです。

しかし、IT業界で仕事をする。
少なからず、「エンジニア」を生業とするにはコーディングの知識が必要です。

考えてみてください!システムの構造を考える人が中身を知らなくて本当に任せて大丈夫なんですか?となりませんか?

正直ボロボロだった…。

そして開発チームに異動し、プログラミングをやらせてもらいます。
案件の内容としては、とあるデータベースよりデータを取得してエクセルの帳票を作るという機能の実装でした。

もちろん設計書もどのテーブルからデータを取得するのか、関数はどのように実装するのか、など細かく書いてあったと思います。
隣に上司がいながら、私は一向に悩んで全くできませんでした。

正直、1日でできるようなものだったと思います。
まず現場に出て、実際に世の中にリリースされているソフトのソースコードを見て感じたのが…

「教科書と違う…。」

ということでした。
確かに、関数の仕組み、ループの使い方、変数の定義など概要は理解できます。

しかし、それらを”どう使うの?”、”どのようにすればこれ(正解)になるの?”と実装方法が全くわからないのです。
今の僕が当時の僕にいうのであれば、「とにかく作れ!(経験しろ)」ということです。

正直、これら実装方法はそのような機能を持ったプログラムを作ることしかないと思います。

真剣に向き合ったきっかけ

■1年目の冬のある日
担当していた開発が思うようにできずに、上司に別室に呼び出されました。
当時は煮詰まってはGoogleを繰り返していました。もちろん、残業もかなりして夜遅くまで作業していました。

もちろん新人だったけれど、なぜか助けてくれる先輩は一人もいませんでした。
「テストチームではみんなの作業を巻き取ったのに…何で誰も手伝ってくれないんだろう。」

本当に当時は”ショック”で劇萎えしていました。
”概要はわかるのに…何で作れないんだろう。”

できない自分に絶望しながら、胃がめちゃくちゃ痛かったけど…それでもグッと耐えて仕事にちゃんと行っていました。

翌日もいつも通り出社して、その上司に挨拶をします。
成果が出ない自分に「空返事だった」ことはわりと今でも根にもってますし、本当に辛かったです。

ただ、僕は正直負けず嫌いなので…悲しい気持ちもありながら、どこか心の奥底で「こいつをいつの日か見返す」という気持ちがありました。
これが僕の「プログラミング」に真面目に向き合ったきっかけです。

できない自分が嫌で、土日は本でプログラミングを勉強していました。
しかし、本で勉強すると詰まるたびに検索するので時間がかかります

この頃の僕はというと…

  • 1つ1つの概要は分かるけど、どこで使えばいいのか分からない
  • 教科書のソースは理解できるけど、実システムのソースは読めないし、書けない
  • 効率の善し悪しが分からない

実務で応用できない人はこのようなことが当てはまるのではないかと思います。
教科書では理解できてスラスラ書けるのに、なぜ実務に活かせられないのかは「ソース」が起因しているからなのです。

どういうことかというと、実務のコードはいろんな方々がメンテナンスをしているので人によって記述がバラバラで、わかりづらいのです。
一方、教科書のソースコードは「綺麗なコード」です。

体裁が整っていない「汚いコード」は理解するのにも、それに追加で実装するとデグレード(既存処理へ影響)が発生したりなどバグが起きやすいです。
したがって、まずは「自分ならこのように作る!」というものを身に付けることからはじめました。

そのコードが正しいか、綺麗なのかは人に評価してもらいました。
そこで僕が利用したのは”オンラインのプログラミングスクール”です。

お金でスキルを買った件について

現在は、お仕事でプログラミングをがっつりやっており、プライベートでもホームページを作ったり、エリブログや働き方大学などを開設したりプログラミング力をフル活用しております。

正直、スキルをお金で買ったことには変わりはないので…恥ずかしいからあまり言いたくはないことでした。
ただし、IT業界の殆どが「SES事業をメイン」としているので、僕みたいな悩みを抱えている人は多いんじゃないかと思うのです。

少なからず、そのような人たちっていっぱいいると思うんです。
IT企業で劇萎えして業界を変えようと思ってる人、気持ちが荒んでいる人にほんの少しでも光がさせば良いなと僕は思っています。

そのような人たちの手助けがしたいです。

プログラミングスクールにて

僕が受講したものは「コードキャンプ」というオンラインのプログラミングスクールです。
これの30万円の”マスターコース”というカリキュラムを受講しました。

当時の僕にとって”30万”は非常に高額でした。(もちろん今でも)
しかし、本で勉強するのは「正直限界だ」と感じていましたし、「僕のソースのダメなところ」もわからなかったので…

もしも、この30万を投資して何も変わらなければ、IT業界で働くのは辞めようと決めました。
ある意味、「見切りをつける指標」としてコースを購入したことを覚えています。

プログラミング学習の内容については、別の記事でまとめます。

何を勉強していいの分からない君へ

あくまでも私の経験上の話ですが、おおよその会社勤めのエンジニアは、普段勉強していないです。
皆さんの周りはいかがですか?おそらく、先輩や上司も普段から勉強などしていない方が多いでしょう。

その現場で作業をやられている方も、その職場に長くいるからできるのであって”別の現場”に異動したら多分また1からのスタートです。
大体の方は同じ業務を年々繰り返し、プログラミングを覚えていきます

当時の先輩たちを見てきて、強くそのように思いました。
したがって、今のあなたもその人たちのように月日が経てばその現場で困らない程度にはなるでしょう。

しかし、別の現場に行って違うシステム開発になってしまってはどうでしょう?言語が変わったらどうでしょうか?
覚える速度は以前より早いと思います。

応用できるということは深く理解していることが前提となるので、理解していないと再び多くの時間を浪費するのです。

したがって、深く理解する必要があるのです。
プログラミングは言語が色々あり、書き方は異なりますが…考え方はほぼ一緒なのです。
1つの言語を完璧に習得することで、別の言語も少し勉強すれば同等に扱えるようになるのです。

まずは1つの言語を完璧に理解してみましょう。
そこで、今あなたは「プログラミングに興味をもっている状態」つまり…自発的に「プログラミングを覚えたい!」と思ったことはすごく立派であり、チャンスなのです。

本で挫折した僕が気づいたプログラミングを最短で習得する方法
それは「人に教えてもらうこと」です。

正直、ネットでは色々怪しい情報商材が多いので吟味と口コミは大切ですので、たくさん調べましょう!
もし自身の周囲に実績があり、信頼できる人がいるのであれば相談してみると良いです。もちろん僕にDMや問合せより質問していただいてもOKです。

すぐに人に教えてもらえない場合は、職場の人たちが書いた「汚いコード」に慣れましょう。
教科書のソースコードは基本的に綺麗なコードですので、実務でコーディングをする際にはあまり参考になりません。
また、実務では効率速度など重要になる場合があるので、独自のロジックを組んでいたりするのでそのような部分をきちんと理解しましょう!

プログラミングは人に教えてもらいましょう。
自発的に勉強したい!と思った時が全てのチャンスです。

もしも、当時の僕のようにプログラミングができなくて転職しようか迷っている。つらいという人は、この記事の内容で少しでも気持ちが楽になれば幸いです。
全然できなかった僕でも人からプログラミングで仕事をお願いされるようになっています。

大丈夫です。
僕ができるので、あなたもできます。

そのつらい気持ちがあるということは必ず飛躍する”バネ”になります。
諦めないでチャレンジしてみましょう!!