
どうも、クドーです。
システムエンジニアとして仕事を始めてから大体半年が過ぎました。(厳密には8か月)
プログラミング自体には大学時代から興味があって、3ヶ月くらいプログラミング入門という科目でC言語を体験して難しすぎて挫折しました笑
それ以降一切プログラミングに触れる機会は無かったのでほぼ未経験と同じです。
昔の僕みたいに全くやったことないけど、プログラミングやエンジニアに興味がある人っているんじゃないでしょうか。
実際プログラミングって何すんの?
パソコンとにらめっこしてんの?
って、疑問をもつ方のために今日はこの半年間の実務内容を書いていきます!
SEを始めた理由が知りたいかたはこちらも合わせてぜひ一読ください。
目次
入社して2週間弱は社内で自習をしていた
僕の入社した会社は中小規模の会社で研修制度はあるものの新卒にしか実施しておらず、中途採用ということで僕は研修をしていません笑
後で採用担当者に聞いたら、本当は経験者を採るつもりがポテンシャル枠でとってもらったそうです笑
ですので、他社のEラーニングシステムでプログラミングの基礎をざっくりと流して学んだあと、とっかかりとしてJAVAの勉強を始めました。
スッキリわかるJAVAという参考書を使っての学習でしたが、未経験の僕にとっては、入門編にもかかわらず難しく感じました・・・笑
クイズゲームや、おみくじのプログラムを作る例題を解きながらわからないところは参考書で調べて、どうしてもバグが解決できないときは先輩社員に質問できたので個人的には学習しやすかったです。
ソースコードを書いてプログラムを動かす作業をやってみた感想としては
「初めは全くわからなくてもやっていたらわかるようになる」の典型のような作業です。
意味わからなくてもとりあえず進めて、進めていくうちに「あ~こういうことだったのか!」って理解できるみたいな感じです。
初めてのプロジェクトは画面レイアウト作成とテスター業務
そして一か月が経つと、運よく自社で行うプロジェクト案件が回ってきて
、先輩社員に指導してもらいながら僕もその仕事に携わることができました。
先輩いわく自社の案件は珍しいそうで、そこはラッキーでしたね。
今回僕が携わったのはお客さんの会社の社内ポータルサイトを新しくする案件です。
その中でも僕が携わったのは、画面レイアウトのサンプルを作ったり、プログラムが正しく動作するか確認するテスター業務でした。
HTMLとCSSで画面レイアウトを作る
詳細設計書というプログラムの設計図みたいなのを見て仕様を確認しつつ、それに記載されている通りのウェブページのサンプルを作ります。
HTMLすら触ったことのない僕にはすごいありがたい業務経験でしたね。
ウェブページ作成は、自分が打ち込んだコードが画面に反映されて可視化しやすいので、どこが間違っているのかがわかりやすくてとても楽しかったです。
わからないなりに、HTMLの構文とかはネットでググりつつ、先輩が書いたソースコードを読むことでかなり力はついたと思います。
・・・まぁ未経験で元々の基礎力が0なんで、そりゃね笑
他の人が書いたコードを読むのはホントに力がつくのが実感できます。
先人が書いたソースコードを参考にしつつ、真似をしながら、ひとひねりを加える
これの繰り返しでプログラムを学んでいくんだなーって思いました。
設計書通りにプログラムが動くか確かめるテスター業務
テスター業務は・・・楽だとおもって舐めてました笑
最初、プログラムがちゃんと動くかテストするって聞いたとき僕は
「お、このボタン押して次のページに飛ぶかどうか確認すればええんやな簡単やんけ!」
「データを検索してちゃんと結果が表示されるか確認するんやろなぁ。簡単やんけ!」
って思ってました。
実際は、
同じユーザーIDで同時にログインできないように制限されているかチェックしたり(排他制御)
営業の売り上げ金などの数値を入力するような入力ボックスに全桁最大まで値を入力して、ちゃんと想定した桁数まで表示されるかチェックする(フル桁チェック)
というような細かいところまでテストをして確認するので、かなりテスト項目が多くてテストしていくのが大変でした。
この業務ではデータベースに入っているデータが、作ったウェブページでちゃんと表示されているか、ウェブページ上で削除を実行したデータが、データベース側でも実行(コミット)されているか確認する機会がありました。
データベースを触る機会は後述のプロジェクトのメインになるので、
この時に少しでもデータベースに触れる機会があったのは運が良かったです。
次はお客様の実績管理システムの移行プロジェクト
わからないことがわからないのは本当に苦痛だった
前回のプロジェクトから1週間ほど間があいて、続いて2つ目のプロジェクトを経験することになります。
初のお客さんの社内でのプロジェクトなので緊張しました。
業務内容はざっくり言うと、お客さんのデータベースのデータを今使っているサーバーから別のサーバーに適応する形でデータを移す業務に携わりました。
ここではPL/SQLを主に使って仕事をしていました。
前回がHTMLとCSSなのでかなり直感的に分かりやすかった分、文字でしか結果がわからないので覚えるのが難しかったです。
そもそもPL/SQL自体が難しいのかな?って思って、
プログラミング言語の習得難易度ランキングとかで調べると
PL/SQLは易しいに入っていることが多く、
「これがわからなかったらプログラミングって向いてないんじゃね??」
って思いましたね・・・
また、初めての客先でプロジェクトの途中から参加したので、自分が何の目的で、何を作るために仕事をしているかわからなくて、
要は「自分が何をしているのかわからない。」「何がわからないのかわからない」
状態です。
お客さんのところの社員(プロパー)も僕がなんもわからない新人なのは知っていたので、かなり考慮して簡単そうな作業を振ってくれるのですが、
それでもわからないのです。
頭で考えてもわからなさすぎて眠くなってうとうとして注意されたこともあります。
学校の授業で眠くなるのと同じですね。
わからない、理解できないから脳が文字通り思考停止するんですよ。
人間の脳は理解できないことにはエネルギーを割かないようで実に合理的です。
いやー当初はめっちゃ辞めたくなりましたね。
いわゆる挫折です。
それでも、優良大手のオフィスで仕事していたので人間関係や勤務時間などには一切不満がなく、僕に仕事を教えてくださったプロパーさんのリーダーが非常に気にかけてくれる親切な方だったのでなんとか頑張ることができました。
本当に感謝しています。
ずっとやっていたらカチっとハマるときがくる。自転車理論
そうこうしているうちにお客さんのオフィスで客先常駐で働いていると、2か月がすぎました。
職場の環境は比較的ゆるくてPCで調べものをしながら働けているので、業務中にわからないことがあればどんどん調べて作業しています。
ソースコードが複雑で、自分ではもはや何がわからないのかわからない状態になれば、先述のプロパーのリーダーや、先輩社員にロジックを教えてもらってます。
そんな風に作業を進めていくと、ほんの少しずつですがもはや読めなかったソースコードが理解できるようになりました。
今ではデータベースの操作も簡単なものならできるようになりました。
こうなってくるとちょっとずつ仕事が楽しくなってきますよね。
職場の環境も最高なので仕事へのモチベは上がりました。
僕はフットワーク重いのでオフィスまでの通勤が唯一めんどくさいです笑
まとめ
最初はソースコードの読み方もロジックもわからないので何書いてるかさっぱりわからず、しかも英字だらけなので英語が苦手な僕にとっては非常に苦痛でした。
自分の脳に負担をかけてるのがはっきりわかりましたね。
「こんなもん解析できねーよ!」
未経験じゃやっぱ無理だったかって思いました。
でも結果的には何とかなっている今の僕がいます。
断言します。独学でプログラミング習得するのはほぼ挫折します。
今から学ぼうとするひとはSEになるか、学校で専攻科目にするか、
すでに何かしらのプログラミングができる有識者に教えてもらいながらでないと厳しいと思います。
プログラミングスクールでもいいですし、SNSでプログラミング知ってそうな人となんとか仲良くなって教えてもらいながらやるのもいいかもしれません。
それでも一人だけでやるには強靭な精神力が必要になるでしょうね。
そして、わからなくても投げずに継続すると絶対に理解が深まるときが来ます。
初めて自転車に乗る練習で例えると、
「タイヤが一列しかないのにこんなもん乗れるわけねーだろ!」
って思ってた自転車も試行錯誤を繰り返すうちに乗れるようになります。
自転車のバランスの取り方がわからなくても、ペダルを漕ぐタイミングがわからなくても、失敗しまくって、それでも諦めなかったら乗れるようになるんです。
それと同じでソースが全く読めなくても、自分で調べたり、知っている人に質問するんです。
もし調べて、質問して、その時完璧に理解できなくてもいいです。
「ほーあんまわからんけどそういうものなのかぁ、とりあえず動くようになったしいいや。」
もちろん最終的には理解しないとだめですが、最初はそれでいいです。
失敗を繰り返しても諦めないで継続しているうちに、
いつの日かカチっとハマる時が来ます。
・・・まぁ、僕の場合は挫折して諦めかけたので環境に救われた部分もありますが笑
だから一人でプログラミングを習得しようとするのが難しいんですよね。
自分に何かスキルをつけたくて始めたSEの仕事を諦めなくて良かったなって、本当に思います。
最近はプライベートでもプログラミングを勉強してますし、
これからもどんどん新しいプログラミング言語を覚えて頑張っていこうと思います。
お読みいただきありがとうございました。