プログラミング

未経験者がエンジニアのアルバイトをベンチャー企業で始めてみた

no-experience-job
対象者

本記事は「プログラミング初心者、未経験者、エンジニア転職やアルバイトをしようと視野に入れている方」を対象にしています。

キヨシ
キヨシ
フォッフォッフォッ、キヨシ(@kiyothink12)じゃ^^ 今日は30歳過ぎてからエンジニアに転向し、1社目でアルバイトした経験を体験談として話していきたいと思うぞい^^
ケイタ
ケイタ
おーキヨシさんの1社目の経験ですね!やっぱり大変でした??
キヨシ
キヨシ
まあ大変っちゃ大変だったな。だが大変には2種類ある。楽しい大変と苦しい大変じゃ。ワシは楽しい大変じゃったよ^^
ケイタ
ケイタ
なるほど〜ぜひ聞いてみたいです!

未経験者がエンジニアのアルバイトを開始

時給は?週何回?

アルバイトとして入社しましたが週5回、フルタイム(1日8時間前後)で働いていました。

時給は入社当初は1000円前後だったと思います。

東京都の最低賃金が現在985円ほどなのでほぼ最低賃金で働いていたということになりますね。

とは言っても、私は「拾ってもらった」感があったので不満はありませんでした。

もし、仕事を覚えて進めていく上で、自分の価値はそれ以上だと感じれるならば交渉、転職すれば良い話なので、まずはしっかりと実務経験の中で実力、実績をつける期間としてとらえていました。

むしろ、色々経験させてもらいながらお金ももらえてラッキーくらいにも思っていたと思います。

ちなみに半年毎に時給は上がって行きました。

アルバイト入社をしてエンジニア業務として初めにやったこと

エンジニア最初の業務は環境構築

エンジニアアルバイト入社をしてからまず最初にやったのは環境構築。

学習の時点では環境構築が既になされている状態でコードを書いていくものも、おそらくあまり意識してきた方はいないでしょう。

ただ、実務となるとチーム開発だったり、お客様の指定した環境で開発を進めたりと自分が好き勝手な環境で開発していくことは許されません。

よって、その企業・案件に合わせた環境構築をしていきます。

私がおこなった環境構築

私の場合はパッケージマネージャーのHomebrew、Rubyのバージョン管理ツールのrbenv、gemの互換性を保ちながらパッケージやバージョン管理してくれるBundler、DB(MySQL,PostgreSQL.SQLiteなど)、Dokerをインストールしたりとプロジェクト単位で違うので、ドキュメントに沿って構築していくか、先輩に聞きながらおこなっていきます。

この作業を数時間から1日かけておこない、ハマってしまうと数日かかってしまったりもするので 環境構築は意外に厄介ではあるのですが、環境構築時点では全くお金を生み出す作業をしていないので早急に済ませたいところです。

とはいってもさすが実務

わからないことが多すぎる。

むしろ、ほぼわからない。

説明のまた説明を求めるような愚問をしてしまいますが、愚問と思わずググりながらも上手いタイミング、聞き方でメンターに指示・説明を仰ぎましょう。

知識、経験がない中で、私が必要だと思うのは「何を・誰に・どのように・どのタイミングで聞くか」というセンスです。

エンジニア(未経験アルバイト用)研修開始

環境構築が終わって私の場合はまずは研修から入りました。

研修などない企業も多く、いきなりOJTという名の下無茶振りしてくることもあるので注意してください。(とは言っても確かにOJTでしか学べない、手っ取り早いことも多いのも事実。)

その無茶振りを「自分もそうやって育ってきた」、「金もらってんだからしっかりやれ」と圧かけられることも多いと聞きます。大事なことなので何度も言いますが、エンジニアの仕事自体は割と楽しいと思います。

学習過程で「プログラミング楽しいじゃん!時間忘れて没頭してる!」って思う人も多いと思います。

ですが人間関係で追い込まれる人はマジで多いので気をつけてください。

研修の内容ですが、これからおこなう仕事の簡易版をローカル環境で実装し、先輩から次々にお題を出題されては実装して出力結果を見せていくというものでした。

アルバイトといえども入社前に最低限おさえておきたいのはhtml,css、使用するプログラミング言語の基礎でしょうか。

では基礎とはどこまでのレベルか??

これはProgateを2周くらいしておけば良いと思います。

実務で使いながらの方が記憶にも定着しやすいですしググりながらやれば大丈夫です。

「Progateを2周やっておけば〜」とか言いましたが、当時の私はProgate2周分の知識もあったかは怪しいです。

研修は早い人で1週間程度で終わり、私は1ヶ月程度を費やしてしまいました。(そりゃそうだ)

その間も根気強く丁寧に教えてくれたので焦らず自己否定し過ぎず前向きに進めていけたのでとても感謝しています。

改めて職場の人間関係は超重要だと思います。

辛くて高時給で5時間よりも楽しくて低時給で10時間の方が絶対に良いです。(ただし、知識が積み重なる仕事であること)

未経験アルバイトからいよいよ実務開始

まずは軽いタスクから修正・追加実装

約1ヶ月の研修が終わるといよいよ実務に入りました。

初めてのプロジェクトは新しくサービスをガリガリ実装していくというより、既に先輩が実装してあるものを追加、修正実装をしていくという感じでした。

軽いタスクから振ってくれるので全体の流れを追いながら処理を確認できました。

この処理をするにはどういうコードを書いていけば良いのか?というのはもちろん、人のコードを読み解くことが難しいと同時にすごく為になりました。

リモートは意外と大変。直に話せるのは結構良い

実務では数ファイル、数行というレベルではなく、何千何万ファイルあって、数千数万行のコードが書いてあることもあります。

このへんは社内で実装者とチャットツールのslackなどで連絡を取り合いながらやっていったりしますが、実装した人が既にやめていたり、その人も忘れているということが発生したりします。

そういうこともあったりするので特にリモートでの作業は大変だったりします。(私が1,2社目は常駐、3社目でリモートをしてました。)

直に話せば即解決することもリモートだとなかなか解決しなかったりするので余計ストレスが溜まったりすることもあります。

急な仕様変更は大変

仕様は途中でよく変わります。

お客さんの「やっぱりこうして」はよくあることです。

また、仕様書からはこういうふうに作るように思っていたが、実はそういう意図ではなかった。など。

この変更が一部のロジックだけ変更で済むのであれば良いですが、これが土台となっているところの変更ならば大変です。

納期の延期や追加料金の発生を交渉することになりますが、現場を理解していないディレクターや上司が勝手に色々進めてしまい、デスマーチとなることもあるようです。

幸い、私のいた企業では毎回充分な納期を設定してくれていて、何かあればお客さんにかけあって納期延長してくれていたのでノビノビとやりやすい環境でした。

仕様変更や曖昧な仕様によって悩まされるエンジニアは少なくないと思います。

人間関係と同様、仕様変更への対応もエンジニアの仕事で大変だと思ったものの一つです。

企業でのチーム開発にgitは必須

チーム開発ではgitは必須です。

masterやdevelopブランチからトピックブランチを切って開発していきます。

gitの基本的な使い方もググって覚えておきましょう。

まずはgitの概念、そしてgitコマンドのadd、commit、push、clone、pull、checkoutだけは必ずおさえておきましょう。

gitの概念は最初は理解しづらいと思うのですが、漫画式の解説書や図解してあるものを探してみるとイメージしやすいと思います。

わかばちゃんと学ぶ Git使い方入門

また、vimエディタの使い方もぜひ覚えておいてください。

Vimが使えるようになる本

未経験でエンジニアのアルバイトをして感じたこと

エラー文の読み方がわからない

最初の方はエラー文が出るたびに辟易していました。

今となってはエラー文からどこが間違っているか?を判断するスピードが上がってきましたが、当時はパニクってしまい、簡単なエラーでも解決出来ず、1日何も進まず先輩にガチで呆れられることもありました。(エラー文のどこを見れば良いのかが全くわからなかった)

また、ググって出てきたものを意味もわからずこれで良いはずだと判断し、そのままコピペしてやらかしてしまうこともありました。

やらかしてしまっても何がいけなかったのかも分かっていない状況です。

そのコードが何をしているのかがわからなければコピペをしてはいけません。

ローカル環境ならまだしも、すでにサービスインしている本番環境にリリースしてしまったら大変なことになりかねません。

正解への道筋は複数あるが、「なんとなく」はダメ

エンジニアになって感じたのは正解に辿り着くために通る道筋(コードの書き方)はそれぞれありますが、それぞれのコードに対して「何故そうしたか」を説明できる状態で書かないといけません。

「なんとなく」や「ノリ」で事を済ませてきたド文系の私にとっては初めはなかなか苦戦しました。

未経験エンジニアはまずは6ヶ月頑張ってみよう

おそらくほとんどの人が、

「私はなんて覚えが悪いんだろう」

「役に立っていない。足を引っ張っている」

「わかる気がしない」

と、いった思いを抱えてエンジニアデビュー初期を迎えると思います。

私もご多聞に漏れずそうでした。

人間関係に無理のない環境であればとりあえず6ヶ月踏ん張ってみてください。

3ヶ月では多分無理です。

6ヶ月でふんわりとやっていることの輪郭が見えてきて楽しくなってくると思います。

困った時に上司、先輩へのアドバイスの求め方

新人の時によくやってしまうのは聞き方、聞く内容、聞くタイミングがわからないということです。

聞いた時は必ずメモをする。(膨大なメモ量になってくるのであとで探しやすいようにメモツールにも工夫)

まずは自分で調べてみる。

それでもわからなければ、
・やりたいこと
・しらべたこと

を添えて聞く。(丸投げで聞かれるのをエンジニアは嫌がるのでポイントを絞る)

slackなどのチャットツールで「おてすきのときに教えてもらえませんか?」 と、タイミングをうかがう。

いきなり直接話しかけにいったりすると集中していた時に悪いのでやめる。

遠慮しすぎない、びびりすぎない。(何時間も迷うのは時間の無駄。30分わからなければさっさと聞こう。)

まとめ

  1. 6ヶ月踏ん張ってみよう(但し人間関係つらいなら辞めるべき)
  2. 環境構築の勉強もしよう(転職サイトで色々な企業の技術環境を眺めると良い)
  3. コードは何故そう書くのか?を意識して書こう(意味のわからないコードのコピペはダメ)
  4. 聞き方のテクニックを心がけよう
ABOUT ME
キヨシ
キヨシ
キヨシじゃよ^^ 30歳を超えてからエンジニアに転身。現在はリモートワークしながら海外と日本を行き来して自由気ままに暮らしておるよ( ^ω^ ) フォッフォッフォッ