はじめに
初めまして、イジゲン株式会社でエンジニアをやっている原山といいます。
会社では主にRuby on Railsを使ったWeb開発を担当しています。前職では東京でメインフレームを利用してCOBOLでプログラムを書く仕事をしていました。
この記事では、前職から大分のベンチャーに転職して身につけたことに加えて、感じたことなどを書いてみようと思います。
先に軽く結論だけ書くと、技術力は上がったと思います。
同じように転職に悩んでいる方や興味を持っている方に、大分のベンチャーに転職した一人の事例として参考になれば幸いです。
転職前に学んだこと
もともと社会人になってからプログラミングをやり始めたので最初のころはなかなか理解が遅く、仕事で必要なことや考え方を身につけるのに数ヶ月かかった印象があります。
実際にやっていた仕事は今の会社の仕事とはちょっと違う感じで、独特の文化みたいなものがありました。
メインフレームでCOBOLだったので、古くからあるプログラムのメンテナンスをすることもあれば、業務フローに合わせたシステムの手順書の作成など、プログラミング以外にドキュメントの作成などもやっていました。
仕様書はSEが作成してましたが、かなり業務に合わせて合理化されていたのでほとんどのプロジェクトが同じような仕様で、書式も統一されていたので慣れれば大体同じようなシステムを開発する繰り返しでした。もちろんデスマはありましたが(笑)
作っていたシステムはデータ処理を行うもので、クライアントからもらった入力データを編集して帳票に出力するものでした。この入力データは業務システムやWebページで入力された情報をCSV出力してもらってるのかなーと漠然と考えてました。
ざっくりリストにすると以下のようなことを学びました。
・ アルゴリズム
・ Windowsの基本操作に加え、共有ファイルの管理やコマンドプロンプトの操作
・ COBOL
・ ジョブ制御言語(JCL)
・ IBM メインフレーム
・ VB
・ 独自の社内ルール
・ 仕様書に書いてあることを正確に再現する力?
・ 自分の作ったドキュメントを分かりやすく人に伝える力?
転職して学びたかったこと
とにかく技術力を上げたいと考えていました。
技術力上げるならWeb系がいいよと聞いたので、Web系やアプリ開発をやっている会社を探してました。Web系で必要そうなことを学びたかったので、漠然と以下のようなことを学びたいと思ってました。
・ Git
・ Webフレームワーク
・ インフラ
・ 自分で何か作る力
実際に転職して学んだこと
今の会社ではRuby on Railsを使った開発がメインだったので、必然的にRuby, Git, SQLなどを学ぶ必要がありました。また、この時初めてMacを触りました。
もちろん前職と比べて求められることがかなり多かったのですが、何と言っても開発で必要な考え方が圧倒的に不足していたと思います。
具体的にはログイン機能やデータの登録など、当たり前の機能ですが前職とインターフェースが全く違うので苦労しました。
新しいプログラミング言語やフレームワークを学ぶのは楽しかったのですが、Web開発の基本的な考え方が全くと言っていいほどなかったので、先にこれを学んでおけば良かったと思います。
技術力を上げるために、とにかく自分でプログラムを書いたり読んだりしてみて、エラーが出たら解決策をググって対応していきました。その中でこれってこういうことなのかなとか、これってこういう使い方はできないのかなということを身につけていきました。
このあたりのアプローチは都会でも地方でも関係ないと思います。
あと、これは僕だけかもしれませんが、技術力を上げるためには自分で何かを作ってみるのが良いと聞きますが、何かを作ればいいんだろう?という状態がありました(笑)
こんな時はとにかく自分が使っているアプリのコピーを作ってみると良いと思います。TwitterでもFacebookでも良いと思います。そして大体このようなアプリにある機能は作り方がネットにあったりします。
という感じで以下が学んだことです。よくあるツールも書いています。
・ ググり力(大切なのはキーワードを変えてみること)
・ 自分で何かを作る力
・ Mac
・ Web開発で必要な考え方や設計
・ Unixコマンド
・ Git
・ Github
・ GitFlow
・ CircleCI
・ Slack
・ Slackのbot開発(hubot)
・ NodeJS
・ JavaScript
・ jQuery
・ HTML
・ CSS
・ PHP
・ Ruby
・ MVC
・ Ruby on Rails
・ ActiveRecord
・ MySQL
・ PostgresSQL
・ AWS
・ Heroku
・ Vagrant
・ Docker
・ REST
・ GraphQL
・ マークダウン
メインで学んだのはRuby on Railsです。
何でも良いと思いますが、一つでも時間をかけて学んだフレームワークがあると他のプログラミング言語やフレームワークを学ぶ時に活かせると思います。
この先に学びたいこと
フロントエンドのフレームワーク(Reactとか)やモバイルアプリ開発をやってみたいと思います。
大分県で出来るか?
できる!
周りに詳しい人がいなくても何とかなると思います。
変わらなかった考え方
ドキュメントの大切さですね。
ドキュメントがないとプログラムに書いてあることが仕様として正しいか判断ができません。
最近ではドキュメント類は全てマークダウンで書いて自動でメンテナンスできればいいなと思っています。ドキュメントはプログラムと一緒に管理されるべきだと思います。
実際にプロジェクトで運用も始めてます。
以下は以前Qiitaに投稿した記事です。良かったらこちらもご覧ください。
https://qiita.com/ISLA/items/1286ad9b408c6c330db1
最後に
どうでしょう?僕は転職してこんなことを学びました。
こうやって自分のやってきたことを書くことで同じようなエンジニアの方の参考になればと思って今回の記事を書きました。
もし少しでも弊社に興味を持ってもらえたなら、Wantedlyかホームページをご覧ください。
それでは最後まで読んで頂き、ありがとうございました。