エンジニア

エンジニア就職に必要な実務経験と考え方

対象者

本記事は「フリーランスエンジニアになりたい人」を対象にしています。

キヨシ
キヨシ
フォッフォッフォッ、キヨシ(@kiyothink12)じゃ^^今日は「フリーランスエンジニア」について語ろうと思う。^^
ケイタ
ケイタ
キヨシさんもフリーランスエンジニアとして働いたことあるんですか?
キヨシ
キヨシ
うむ、じゃがワシの場合はweb制作などを請け負って自分で営業もするフリーランスではなくて、フリーランス紹介企業に登録して紹介してもらう形のフリーランスじゃな。そしてサーバーサイドエンジニアじゃ^^

エンジニア面接時によく聞かれること3選

まず、フリーランス、正社員、派遣問わずよく聞かれる経験ベースでの質問は以下です。(サーバーサイドエンジニア)

1.DBのパフォーマンスチューニング

2.フロントも触ったことがあるか

3.実装だけではなく設計もしたことがあるか

4.AWS、GCPなど使ったことがあるか

これがprogateだけ、ドットインストールだけ、スクールの課題だけだとダメだと言われる所以でもあると思います。

エンジニアの素養として求められるのは「何を作ったか?」以上に、「なぜそこをそうしたか?」という部分だったりします。

プログラミングは自由度がある

たとえばですが、答えが10になるメソッドを書くときに処理を

2*5
1*10
2*2*2.5

上記いずれでも答えは10になります。

そこで大切なのはなぜそうしたか?なのです。

「とにかく10になればいいんでしょ?」

私はそういうタイプだったのですが、ひょっとしたらそれは個人開発だったり自分だけが使うものだったりするのなら良いのかもしれません。

ですが、企業でサービスプロダクトとして作られるものであればそうはいきません。

特にチーム開発では他の人があなたの書いたコードにあとで機能を追加したり、予期せぬバグが出て修正することなどがよくあります。

「なんとなくこれが良いと思ったからそうした。」だと、誰かに(自分かも?)いつかツケが回ってきます。

良いシステムとは?

一般的に良いシステムの条件として挙げられるRASISと呼ばれるものがあります。

RReliability(信頼性)

AAvailability(可用性)

SServiceability(保守性)

IIntegrity(保全性)

SSecurity(安全性)

それぞれの頭文字を取ったものですね。

これらを意識してコードを書くためには「なぜそうするのか?」をそれぞれのコードで説明出来ないといけませんし、同じような処理をする場所があっても「あっちもこうしたから、こっちもこうする」ではダメなのです。

まずはこういうところから意識してコードを書いていきましょう。

具体的にどうやって最初の実務経験を積むか?

自分で営業をして仕事を取るweb制作の仕事ならばprogateやスクールで覚えた知識を使ってポートフォリオを作成し、ガンガン営業していけば良いと思います。

ですが、レバテックやMidworks等の紹介会社などを使ってサーバーサイドエンジニアなりになりたい場合はいきなりは無理なのでまずは「バイト」でどこかの企業で経験を積みましょう。

バイトで入る企業としてオススメは以下です。

 中規模以上のサービスを運営している

冒頭で述べたデータベースのパフォーマンスチューニングに携われる機会がある可能性があるからです。

破茶滅茶なコードを書いて不要な処理、無駄な呼び出しを行なっていると処理が大幅に遅れます。

小規模なサービスだとそれだけのアクセスがそもそもないので経験しづらいです。

開発部門を3〜5人で回している

これは諸刃の剣かもしれませんが、これだけの人数しかいないと嫌が応にも色々なことを自分がしないといけません。

ここだけやればいいということはなく、あれもこれも仕事が回ってきます。

やはり経験に勝る勉強はないので、「自分がやれる」というのはチャンスです。

ですがチーム内の雰囲気が悪いと潰れるので注意です。

また、そこで信頼が得られれば実装だけでなく設計などの上流の仕事も回ってくる機会が得られるでしょう。

部門責任者が人間的に尊敬できそう

おそらく面接時には必ず部門責任者が出てきます。

技術のことは社長がわからないことが多いので、CTOか開発責任者の立場にいる社員です。

基本的にはその人の管理下で仕事をしていきます。

エンジニアは自分で仕様書通りに進めていきますが(仕様書がない場合も多い)、コミュニケーションがないかといえばかなり多くの場面でもあります。

現場で相談を受ける立場の者の人間性が終わってるとその現場は確実に終わります。

これは面接時にどうにか見極めてください。

実務以外にも「技術」に興味を持つ

初めは実務でいっぱいいっぱいになってしまうと思いますが、少し慣れてきたら実務でやったこと以外にも、自分で興味の幅を持たして自宅で色々と調べて作ってみることを強くオススメします。

結局一番伸びるのは「好きになること」だと思います。

おそらく実務で慣れないうちはググりまくってあっちこっちにいってしまうと思います。

知らないことを手探りでやっていくことがほとんどでしょう。

ただ、その状態は実はいつになっても解消されるわけではありません。

ベテランエンジニアでもググりからは抜け出せません。

ベテランであれば何も見ずにスイスイとやっていると思うのは間違いです。

ただ、彼らはググり方、また以前に使ったようなことをメモしておいて、それを応用する力を持っています。(なのであとで索引にして取り出しやすいようメモで保存しておくことが大事)

もし、あなたがスクールで習ったり、ググってコピペしてみたことがあれば、それらがどう動いているのかを調べてみて、少し工夫し自分で何か作ってみるとものすごく実力がつくと思います。

同じ経験でも考え方で人生は変わる

ここからはエンジニアとは少し関係ない話になってしまうかもです。

たぶん誰でも経験があると思うんですが同じ教室で同じことを学んでいるのに差がついてしまうことってありますよね。

もちろんそれは頭の良さが関係していることもあるかと思います。

じゃあその頭の良さってなんでしょうか。

私は「考え方」が大きいんじゃないかなと思います。

この考え方さえ身に付けば最高にコスパがよくなるんじゃないかなって思うんですよね。

実際に皆さんがすごいなって思うエンジニアでスクール通ってたり、お金をかけてプログラミングを習ってすごい人になってる人ってどのくらいいますか?

私が尊敬しているエンジニアは皆自分で考えて環境を作ってのし上がってきた人ばかりです。

これはスクールを否定しているんじゃなくて(むしろ私はスクール賛成派)、スクールに行こうが行かまいが、はたまた独学でやろうがやらまいが、ベースとなる考え方がしっかりないと伸びませんよって話です。

何かあなたが他の人より秀でているものがあるとしたら、どうやってそれが得意になったか思い返してみてください。

それでそれがあなたがプログラミングが得意になる、エンジニアとしての伸びしろが伸ばせるヒント、答えになっているかもしれません。

 

ABOUT ME
キヨシ
キヨシ
キヨシじゃよ^^ 30歳を超えてからエンジニアに転身。現在はリモートワークしながら海外と日本を行き来して自由気ままに暮らしておるよ( ^ω^ ) フォッフォッフォッ