BPSの福岡拠点として一緒にお仕事させて頂いてます、今年4月に入社した株式会社ウイングドアのヒダカです。
来月9月で入社半年となるのですが、文系出身で入社するまでPCに縁のない生活を送っていた私が入社してどのようなことを行なったのか、どこで躓いたのかなど一部ですが簡単に記事にまとめたいと思います。あくまでも一例となりますが未経験で入社した人が何をするのか、どの辺で躓くのか参考になればと思います。
4~6月: 外部研修
入社して3ヶ月は外部研修に参加させていただきました。この研修では、プログラミング技術を黙々と学び身につけていくというものではなく、社会人になるにあたり必要な挨拶や名刺交換のマナーやチームでの開発の流れをチーム演習や模擬プロジェクトを通して学びました。ちなみに研修ではJavaを用いてif文や配列、変数とは何かなどのプログラミングの基礎知識とHTMLとCSSについて軽く学んでいきました。
研修中特に私が躓いた部分
研修が終わってしばらく経っているので他にもあったかもとは思いますが、印象に残っているのは以下の3つです。
- インスタンス化
- インターフェース
- MVCモデル
1. インスタンス化
よくある説明では、
クラス:設計図、インスタンス:実際に作ったもの
というのが多いように思います。私は建築設計図(クラス)があって、それを元に家(インスタンス)を作ると実際に使えるようになると覚えました。
しかしなぜクラスのままではダメなのか、このような概念的な説明では理解が進みませんでした。
2. インターフェース
インタフェースやインターフェイスなどネットで表記がバラバラなので読み方はどれなのだろうと若干疑問に感じています。前述したインスタンス化もそうですが、コンストラクタなどの専門の用語が出てくるたびに参考書とネット、講師陣や研修同期を頼っていました。何度も参考書の同じ部分を読み直した記憶があります。
3. MVCモデル
研修では軽くさらった程度でしたが、これは会社に戻ってきてから先輩社員にそれぞれどのような役割を持つのか調べるように言われたため、この考え方は学んでいて損はないと思います。こちらは研修中に躓いたというより社に戻ってきてもう少しきちんと話を聞いておくべきだったと後悔した部分です。
外部研修を振り返って
研修で用いていた言語はJavaですが、言語で躓くというよりコーディングする上での考え方や記述の仕方がわからず頭を抱えることが多かったです。
プログラミングの学習を始めて間もないため、参考書を見てもその説明文で使用される単語がわからないことが多くあり、研修という場でしたのでとにかく質問していた記憶があります。
7~8月: 会社で業務開始
いよいよ会社に戻り業務が始まります。冒頭でも記述いたしましたが、文系出身のプログラミング未経験者でできることはあるのかと内心不安に思っていました(今でも不安です)。
まず行ったのは、今後のスケジュール確認と弊社では主に「PHP」と「Ruby on Rails」を用いて開発を行っているため、どちらの言語をやりたいかそれぞれの言語を調査して最初に学ぶ言語を決定することでした。
色々と調べ、最終的にRubyを学んでいくことにしました。決め手としては記述量が少ないという点とレール(rail)に沿ってやっていけばできるという点です。
9月頃まではRubyを用いて簡単な社内システムを作る社内研修を行う予定です。また研修だけでなくできる範囲のことから業務の手伝いも行います。
業務中に躓いたこと
言語学習にも苦労していますが、そこはカウントには入れていません。
現在進行形で悩んでいるものですが以下4つをあげます。
- GitHubの使い方
- ターミナルの使い方
- フレームワークの導入
- 命名規約(命名法則)
1. GitHubの使い方
躓いた理由
- 操作ミスをしてしまった場合に多大な迷惑をかけてしまうという恐怖心から最初は中々pullすることもできない
- 特にmasterが更新されたときはstashして…などの操作も最初はこの操作であっているのか、不安で何度も検索
その時とった対応
- とにかくGoogleで検索。用語がわからずさらに検索…という風に陥ることもありましたが
- 何かあってからでは遅いのでわからなければ先輩社員に聞く
しかし開発を行っていく中で避けては通れないものですので、現在行っている社内研修で色々と操作を試して慣れていこうと奮闘中です。
2. ターミナルの使い方
躓いた理由
- どのコマンドを使うのかわからなくなることが多かった
- エラーが出た場合なんとなくこの辺りでエラーになっているのかと予想はできても、どのように解決すれば良いかがわからないことが多々ある
その時とった対応
- 使用するコマンドを順番にメモ帳になんの操作をしているのかの説明と一緒にメモ
- 調べてもわからない部分は先輩社員に質問して解決
- 質問して対応してもらった状態のターミナルをスクショして、後からこの時どのような操作をしていたのか調べると理解できる部分もあった
コマンドと実行履歴を表示することのできるコマンドもあるようですが、最初のうちは何回か実行履歴を見返したいということがあったため、ターミナルの画面をそのままスクショしてどの操作で迷った時のものなのか、名前をつけて保存しました。
慣れてくるとディレクトリを移動するだけで色々と操作ができることは便利だと感じます。
3. フレームワークの導入
社内研修で作成中のシステムにBootstrapを導入した時の話です。
躓いた理由
- いざBootstrapを導入するとそれまで作成していたCSSが反映されない
- 何度もエラー文を読んでこの辺がおかしいのかと当たりをつけて修正を行っていたが自己解決はできなかった
その時とった対応
- 先輩社員に質問
- 結局見ている部分はあっていたが修正の仕方が違っていた
最初はエラーの原因すらわからない状態でしたが、エラー文を読んで理解し、修正部分を特定できたのは成長した部分です。
4. 命名規約(命名法則)
これはLaravelで作業の手伝いを行なった際に指摘を受けた部分です。
躓いた理由
- 定数名の命名の仕方で他の人が作成したコードの定数の命名の仕方やコードの記述を統一させるよう指示を受け、定数名の修正作業に地味に時間を取られた
- 定数名のつけ方について、情報共有・意識のすり合わせをを怠っていた
その時とった対応
- どのように記述すれば良いか確認
変数はスネークケースでメソッドはキャメルケース…などは使っていかないと覚えられないものだと思いますが、勉強あるのみですね。
コーディングの仕方については『リーダブルコード』を読んでいる最中です。
業務中に躓いた時の対応
基本的に何をするにしてもわからない場合がほとんどですので検索をかけます。よく参考にするサイトは「Qiita」や「TechAcademy」です。まだRailsを学習中のため「Ruby on Rails ガイド」にもよくお世話になっています。自分にとってわかりやすいと思うサイトがあればブックマークに追加したりメモ帳やExcelにURLとキーワードをまとめて見返しやすいようにしています。
しかし説明を読んでも結局どういうことなの?となる場合もありますので、その時は周りの先輩社員を頼ります。数日悩んだものが説明込みで30分で解決、なんてこともありました。
終わりに
まだまだ知識不足が否めないため、参考書やサイトのチュートリアルを繰り返すことが多くあります。
しかし、サイトや参考書を見て勉強することはもちろん大切ですが、実際にコードを見ることの方が学べることが多いように感じました。
ネットだと「このように記述します」と必要箇所のみ情報として出てきますが、その記述をどのあたりにすれば良いのかまだ判断がつかないためコード全体を見ることができるとかなり勉強になります。
今後も実際に現場で書かれたコードを参考に学習を進めていき、開発能力を身に付けたいと思います。
以上、簡単に文系出身未経験者が入社約半年で行なったことの流れの紹介でした。
教育担当のコメント:
ヒダカさんは、まず細かく理解し、掴んでから挑戦したいタイプのよう。
「理解できた」のハードルが高く、1つ1つ丁寧に調べてから作業に移ってくれています。
そのため初動は時間がかかるかもしれませんが、これから調査で得た経験や知識が多いに役立ってくれると思うと今後がとても楽しみです。
株式会社ウイングドアでは、Ruby on RailsやPHPを活用したwebサービス、webサイト制作を中心に、
スマホアプリや業務系システムなど様々なシステム開発を承っています。