新卒入社したSESの会社を退職しました
新卒で入社して3年半ほど務めました。9月26日が最終出社日でした。 前職でどのようなことを経験してきたか書いてみようと思います。
前職について
一応正社員契約でしたが、SESと呼ばれるものでお客様先に派遣されて勤務します。いわゆる客先常駐というやつです。メリットは短期間で複数の現場に派遣されるので、転職することなく複数の業界/現場で働くことができることだと思います。
前職で担当した仕事&仕事に関連して学んだこと
Salesforce
salesforceは簡単に言ってしまえばインフラとかミドルウェアの構築が一切不要なPaaSのことです。
簡単な顧客管理機能等がバインドされています。画面をクリックするだけで簡単なアプリケーションを作成することができます。
また
を組み合わせることで柔軟なアプリケーションの構築が可能です。割と少ない工数で形になるものが出来上がるので、前職のような小さい会社と相性がいいのかなという印象です。
Salesforce社は自社でprogateのようなSalesforceを学べる教育サイトTraiheadを持っており、これの出来が非常に良いです。
COBOL,Javaのマイグレーション
COBOLで書かれたシステムをJavaで書き直すという経験が出来ました。業務分析などはせずに基本的にCOBOLのソースを一行単位で一致するJavaに置き換えます。一応証拠としてJavaのソースに対応するCOBOLをコメントアウトして添えていました。こんな感じです。
//PRODUCT-NO PIC 9(8). 👈移行後のJavaのコードに対応するCOBOLのコードをコメントアウトして残しておく Integer productNo; //👈 移行後のJavaのコード
デバッグスキル
諸事情により納期前のどうしてもバグが取れない5万行程度の機能のバグ取りの担当になりました。 ほぼ新人の自分が完成できるか不安しかありませんでした。
とにかく自分が知っている道具は全て駆使しました。Eclipseの条件付きブレークポイントとか、Watch式とか。 結局、EclEmmaというプラグインを導入してメソッドごとにカバレッジを取りながら、 微妙テストデータを変えながら調査を行ったのが一番効きました。正しい値を出す/出さない時でカバレッジが変わっているメソッドに徹底的にブレイクポイントとWatch式を貼ってデバッグしました。
バグは結局全て見つかりました。
ryokin12[1][2]
こういう複雑な変数名や[]
内のindex- if分の大小条件
が微妙に違ったりしているものでした。 見つかった時は創意工夫して結果が出たことが非常に嬉しかったし、納期にも間に合うことができました。でも汎用機からオープン系へのマイグレーションは社内にノウハウがあるような巨大なSIerでないとしんどいと思います。
テスト
テストをすることが多かったため 在籍中にテストに関する本を5冊読みました
- 作者: 高橋寿一
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
- 作者: Kent Beck,和田卓人
- 出版社/メーカー: オーム社
- 発売日: 2017/10/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
- 作者: セムケイナー,ジャームズバック,ブレットペティコード
- 出版社/メーカー: 日経BP社
- 発売日: 2013/11/20
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
レガシーコード改善ガイド (Object Oriented SELECTION)
- 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義
- 出版社/メーカー: 翔泳社
- 発売日: 2009/07/14
- メディア: 大型本
- 購入: 45人 クリック: 673回
- この商品を含むブログ (157件) を見る
- 作者: リー・コープランド,宗雅彦
- 出版社/メーカー: 日経BP
- 発売日: 2005/11/03
- メディア: 単行本
- 購入: 24人 クリック: 539回
- この商品を含むブログ (51件) を見る
※5冊目は今読んでいます
テストは製品の品質を担保する重要なプロセスだと思っています。 そこが軽視されていたり、いい加減だったりするのよくありません。 今ではテストは知的興奮が大いにある物作りのエキサイティングな分野の一つだと思っています。
テストや品質保証を専門にキャリアを築いている人も社外で何度かあいました。 そういう人の生き方は尊敬しているし、決してテスト=雑用では無いと思っています
偉そうなことを行っているが以下は自分もよくわかっていません
- 複雑な平行/並列処理が絡むテスト
- 大規模なシステムの負荷テスト
- テストの自動化のためのテクニック(特にフロントエンド周り)
フロントエンド周りの知識
フロントエンド周りの技術は進歩というか変化が特に激しく、 サーバーサイド側の人間が片手間で追従できるものでは無いと思っています。 だからフロントエンド周りのスキルは時間をかけて基礎からじっくり勉強するつもりはありませんでしたが、 どうしても作っているものに納得が行かなかったため何冊か本を読んで勉強しました。
- 作者: 高橋朋代,森智佳子
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/12/14
- メディア: 単行本
- この商品を含むブログ (11件) を見る
改訂新版JavaScript本格入門 ?モダンスタイルによる基礎から現場での応用まで
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/30
- メディア: Kindle版
- この商品を含むブログを見る
JavaScriptパターン ―優れたアプリケーションのための作法
- 作者: Stoyan Stefanov,豊福剛
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/02/16
- メディア: 大型本
- 購入: 22人 クリック: 907回
- この商品を含むブログ (76件) を見る
※3冊目は見事に途中で挫折していますね
フロントエンドエンジニアとして世間一般で通用する自信はありませんが、 フロントエンド技術を利用しているチームの成果物の改善にはかなり貢献できたと思います。
フロントエンド技術(UI/UX)の本質的な難しさは,非技術者のもっとも関心が高くなる部分という点だと思います。 現場によってはカジュアルな仕様変更などが多数発生します。
ここをしっかり戦い抜いていくには技術以外にも人間工学とか、心理学とかもしっかり抑えて 「なぜそのデザインがBestなのか」を説得できる能力が必要だと思いました。
Javaとかオブジェクト指向とか
大学時代はほとんどJavaを触っていませんでした。趣味でAndroidアプリの入門書を一通りやったり、大学で1コマそういう授業があっただけでした。
Javaは動かし始めるまでに覚えないといけない概念が多いわりに、それが駆使できるのはもっと経験が必要なので、覚えた概念の恩恵みたいなものはイマイチわからなかった。 結局最初はC言語によくわからないキーワードが大量に引っ付いたプログラムみたいな印象を受けました。
で就職してからはこれを使わなくてはならないと思って、Javaを本格的に学んだ。
なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
- 作者: 小森裕介,アクロクエストテクノロジー株式会社
- 出版社/メーカー: 技術評論社
- 発売日: 2004/12/01
- メディア: 単行本
- 購入: 10人 クリック: 217回
- この商品を含むブログ (50件) を見る
- 作者: 平澤章
- 出版社/メーカー: 日経BP
- 発売日: 2011/04/07
- メディア: 単行本
- 購入: 6人 クリック: 92回
- この商品を含むブログ (20件) を見る
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2018/10/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
Javaは動かし始めるまでに覚えないといけない概念が多いわりに、それが駆使できるのはもっと経験が必要なので、覚えた概念の恩恵みたいなものはイマイチわからなかった。
大学時代分からなかったこの箇所がわかるような気がしてきた。 だから必死で勉強しました。特に後者の2冊はとても勉強になった。 Javaのプロジェクトには数週間しか関われていないけど*2、Java及びその関連技術(JVM言語等)を自分の強みにしていきたいという思いがあります。
正規表現
事務作業が8割くらいの時期があり、雑務にひたすら正規表現を使って進めることで退屈をしのいでいました。
きちんと本で勉強して覚えたわけではないけど、1ヶ月程度毎日ググりながら正規表現を書いていたので、機械的に行えば良いだけのテキスト変換、置換などは、加工対象の文字を大体見ただけでどういう正規表現を書けば良いか思いつくし、ほとんど空で書けるようになりました。
正規表現完全に理解した!と思って調子に乗ってネットにいい加減なこと書きまくって、ある日rubyの正規表現エンジン(Onigmo)を作ってる人から訂正コメントが飛んできて、自分は何も理解できてない、と自信を失ったりしたこともありました。
位置指定子っていう概念が微妙に理解できていないこと以外はだいたい実践的な部分では困らなくなった。あと計算量とかパフォーマンスの理解が不十分。
大学のころ、正規言語とかオートマトンの授業を取っていたので、この辺はきちんと勉強したいですね。
SQL&RDBMS
開発がやりたかったけど、結局規模の大きい保守案件に配属になった。データはたくさんあったので*4SQLとRDBを勉強すると自分にも会社にも+になるだろうなと思い、勉強し始めた。
ある日バグの影響範囲を調査するため、再帰クエリが適応できそうな調査案件があった。 他のメンバーはお手上げだったが、急いで技術調査をして調査のクエリを作った。その時復習した内容は以下の記事にまとめてあります
こういう風にやればできますよと提案して、結局自分が担当になってそのデータを調査、修正するクエリを書いた。 あの時は純粋に学んできたことが活きた数少ない瞬間だった。自分にも会社にも+になったと思う。
Excel VBAや自作スクリプトによる調査の効率化
大規模なシステムだったので、目grepが厳しいのでExcel VBAやJavaScriptを使って効率的に調査をするツールを作成しました
VB.NETのクラスを調査するファイルを作っていて、
https://teratail.com/questions/118863
vbのこんな仕様に悩んだりしていました。
プログラムの解析を正規表現でゴリゴリ書いていましたが限界を感じました
http://leoclock.blogspot.com/2009/01/blog-post_27.html
仕事関係ないけどこの経験から少し言語処理系とかに興味を持つようになりました
セキュリティ
詳しくは書きませんが、システムのセキュリティ強化のため個人的に勉強していました。
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版[リフロー版] 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/09/20
- メディア: Kindle版
- この商品を含むブログを見る
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
- 作者: 小森裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/10
- メディア: 大型本
- 購入: 57人 クリック: 1,242回
- この商品を含むブログ (35件) を見る
色々指摘することができましたが、進捗にはマイナスでしかなかったので、迷惑だったかなと思います。
会社へのSlack導入
脱メールでのコミュニケーションを目標に、上司への提案でSlackをチームで採用していただきました。チーム、部という順番で広がっていったのでおそらく、退職後しばらく経てば全社的に使っていると思います。
これから中小企業で導入して見たいけど、使い方が良く分からない。。。という人は最近は技術コミュニティでもSlackを積極的に使っているので、 そちらに参加して慣れながら活用方法を学んでいけば良いと思います。
私ができなかったこと、足りなかったこと
自社/協力会社の有志で勉強会
どうしても業務で経験できることには限界があるので、エンジニアには業務以外での技術研鑽が必要だと思います。 SESというのは客先の稼働時間が大事なので基本的に就業時間内に勉強はできませんが、 もっと仕事で使っている技術やフレームワークについて、特に新人を含めた勉強会などができたらよかったと今になって思います。
ちなみに仲良くなったパートナー会社の社員さんには技術書を貸したり、JavaScriptの基本を教えたりしていた。
本の紹介を依頼され、他社の新人にリーダブルコードを貸した。チョイスは仕事中メソッド名や見やすいSQLのインデントに何度も悩み、他の開発者に相談している姿を何度も見たため。きっと役に立つと思う。
— yuYabu@転職中 (@yuyabu2) March 2, 2018
コミュニケーション
私はお酒が飲めないこともあって、非常に人付き合いが悪かった。別に飲み会を欠席したことで非難されるようなことは1度くらいしかなかったけど、 そういう所で信頼関係が結べていなかった所でスムーズに物事が運ばなかった面はあったと思います。
またあまり失礼とか気にせず思ったことを口にするタイプだったので、色々勉強して見ました。
まだまだ未熟者ですが日々修行中です
今後
働く前は開発こそ至高みたいな考え方があったけど、自宅学習でそれなりにスキルを高めて、問題解決ができれば保守/調査/テストも面白いと思いました。 でも開発をあまりやらせてもらえなかったので開発をしたい思いが強いです
今後は以下の業務に関わってみたいです
最後になりましたが、前職では社長、前社長、前前社長をはじめ、様々な方々のお世話になりました。 本当にありがとうございました。