はじめに
こんにちは!テコンドーです。
インターンの選考などで、成果物(オリジナルアプリケーションとも言う)を見せる機会って多いですよね。
僕もToDoアプリからスタートして色々なオリジナルアプリケーションを作ってきました。
初めは自分のポンコツアプリを見せるのが恥ずかしいし、質も高くなかったので評価されず成果物を見せるのは苦手でした。
しかし聞かれるポイントなどがわかってきてからはそれに注力して作成することができるようになったので
高い評価を得て成果物でプラスの評価を得ることができるようになりました!
この記事ではそのコツを皆さんにお教えしたいと思います。
この記事が対象としている方は
- チュートリアルが終わって一通りのコードがかけるようになった
- 成果物(オリジナルアプリ)を作ったけど全く自信がない
くらいのレベル感の学生エンジニアを想定しています。
今からアプリケーションを作る人も、作ったアプリをブラッシュアップする際にも参考になると思うので、
サマーインターンを見据えてより良い成果物を作っていきましょう!!!
基本的には量より質
僕が初学者だった時の成果物に対する一番の勘違いが色々できるアプリの方が良いという勘違いです。
どれだけ多機能なアプリを作ってもちょっとした操作でエラー画面が出るアプリなどはめっちゃ評価が低いです。
実際の業務ではコードに含まれる小さなミスが莫大な損害を生むため、エンジニアのエラーに対する感覚は非常に敏感である必要があります。
それをしっかりと意識したアプリケーションを作りましょう。
例をあげると
- POSTに対するバリデーション
- スマホでもレイアウトが崩れないか(レスポンシブ)
- 意図していないURLへのアクセス
- ブラウザバックしても正しく動作するか
などの細かい点で不備がないのかをチェックします。
簡単なToDoアプリでも、これらの点を意識していくと作業量がどうしても増えます。
こういう理由で、多機能のアプリを一人で作るのはかなり難しいので、機能を絞ってその質をあげる形でアプリケーションを作成していきましょう!!!
この考え方がオリアプを作る時の基本的な考え方になります。
意識する五つのポイント
それでは本題の五つのポイントについてご説明します!!!
結論から書くと
-
-
技術選定をしっかりする(説明できるようにする)
-
コード単位で頑張った箇所を作る
-
友達に使ってもらう
-
の5点になります。
それぞれについて説明していきます。
なぜ作ったのかを説明できるようにする
『なんでこのアプリを作ったんですか?』
という質問が本当に多いです。
この質問を『待ってました!!!』と言えるようにするには、
二つの観点のどちらかで答えれるかどうかを判断するのが有効だと思っており、その二つとは
- 自分を表現できるか
- 課題解決の考えがあるか
です。
一つ目は自分の好きなこと、思いを表現できているかどうかです。
僕はTrello風に、続けようと思っている習慣を管理できて、成果をシェアできるタスク管理とSNSの機能を持ったアプリを作成したことがあります。
僕は元々自分を高めるのがすごく好きなので、友達と一緒に習慣形成を互助するグループなどを作って高め合ったりしていました。
そこで思いついたのがこのアプリで、SNSの面白さで習慣形成の辛さを乗り越えることができると思い作成しました。
このアプリの作成動機を説明することで、習慣化が得意、コツコツ努力ができる、アイデアを実装できる、という僕の考え方と過去の行動を説明することができます。
聞かれてもいないのに強みなどを説明できるので、すごくお得だなと思っています笑。
また、二つ目の観点として課題解決のためのオリジナルアプリケーションも凄くいいと思います。
例えば、
周りの不満・不便を受け身ではなく主体的に解決できる能力は絶対に仕事の成果にも繋がるはずです。
それをアピールできるオリジナルアプリケーションはその人の非技術的な長所をしっかりと表現することができます。
特に人事の方など、非エンジニアの方と話すときに武器になるはずです。
例をあげると、
- 研究室の購買システムに顔認証機能の導入
- 画像変換をWeb上でできるようにする
- CLIでしか行えなかった操作をGUIで操作できるようにして非エンジニアの方でも利用しやすくする
などです。
不便などを感じる瞬間があれば、それをプログラムで解決できないか???
と考える習慣があればいつかいいアプリが思いつくかもしれません!!!
人事の方と面談する際には、
特に、新卒の学生に対しては現在の技術力ではなく伸び代を見ている
という言葉をよくいただきます。
伸び代って難しいですが、主体的に考え行動できる力ってどんどん進化していくIT企業では必須の能力だと思うので高く評価されるはずです!
作成動機をアピールできるオリジナルアプリケーションであれば技術力もアピールできて一石二鳥ですよね。
しっかりと作成の動機は説明できるようにしましょう。
技術選定の理由を説明できるようにする
エンジニアの方に成果物を見せる際には、
『なんでRailsで作ったの???』
というような質問をよくいただきます。
『それしか使ったことないので!!!』
『今イケイケの技術なので』
と答えたくなるのはわかりますが、グッとこらえて客観的な理由を述べれるようにしましょう。
何故かと言うと、業務でも技術選定は必ず行われており、複数の技術の中から適切なものを選ぶ力は必要とされるからです。
何かのイベントで会社説明を聞くとわかるのですが、どの企業も決まって
『私たちの会社では適切な技術、言語をプロダクトごとに選定します』
と仰います。
新しい技術がどんどん出てくるため、チームごとに適切な技術を選ぶ必要があるんですね。
そこで大事なのはそれぞれの技術のメリット・デメリットを把握することです。
専門家になる必要はなくて、ググって出てくる程度の知識を持っておけば十分です。
例えばRailsであれば、
メリット:
豊富なGemを利用することで、最小限のコードで色々な機能を実装できる
利用者が多いので、日本語の文献が非常に多い
デメリット:
規模が超巨大なプロジェクトだとMVCアーキテクチャではFatModelになるケースがある
RDBを使わないなど、既存のフレームワークから外れたことをすると無駄が多い
などがあります。実際にあるプロジェクトでの技術選定の中で、もともとRailsで決まっていたサーバーサイドの技術が、
FireStoreというDBを使うことにしたためRailsの恩恵を受けれなくなったことから別のフレームワークに変更したことがあります。
Webフレームワークに限らず、どの技術にもメリット・デメリットが存在します。
それを意識して技術を選択することは、技術者としてのスキルを高めることにも繋がるのでぜひ意識してみてください。
コード単位で頑張った箇所を作る
頑張ったところ・苦労したところはどこですか?
という質問もよく聞かれます。
問題に対する回答をしっかりとした根拠で述べられているのかどうかを問われているのだと思います。
新しい機能などをつけていくとどこか既存のコードでは効率の悪い、無駄なコードが出てくるはずです。
そこに対しての意識を忘れずに作成していけばどこか言える箇所が見つかるはずです。
Githubでコードを見せるタイプの面談もあるので、コードの流れを追いながら説明できるようになるとてもいいのではないでしょうか。
友達に使ってもらう
技術に詳しくない友人でも誰でもいいので、とにかく一回使ってもらいましょう。
成果物を見せる時はとにかく恥ずかしいです。
自分よりできるエンジニアにチェックされるわけですから。
友達に見せる、使ってもらうことで他者の目に晒すことに慣れましょう。
友達に見せるのをためらうような質のアプリケーションでは、見せてもあまりいい評価を得ることは出来ないと思います。
それ以外にもメリットが色々あって、
- 他の人の成果物に対する第一印象を知れる
- 気づかなかったバグを教えてくれる
- 案外高評価で自信がつく
などです。
他者の目に晒すことで質の高いアプリを意識できるようになるので試してみてください!
、、、偉そうなこと言ったので、僕もオリジナルアプリみなさんにお見せします。
という就活で作成することのあるモチベーショングラフをWeb上で簡単に作成できるアプリになります。
また機能などは後日ご説明しますが、そんなに機能ないので直感的に使ってもらえるかなと思います。
偉そうなこと言ってますが、僕もこんくらいのものしか作れていません。
みなさんも安心して作成していただければと思います。
細部にこだわる
これは量より質の観点と同じことを言っていますが、大事なことなので二回言いました。
もう少し具体的にいうと、テストが書けるといいですね。
全部書くのはしんどいので、上の頑張った箇所のロジック部分を切り出してテストを作るとかするとさらに頑張った箇所の説明もしやすくなるのでより良いと思います。
でも、僕はまだオリジナルアプリでテスト書いたことないので大層なことは言えません。。。
レイアウトのズレなども色々ついつい後回しにしてしまうと思いますが、グッとこらえてやりきりましょう!
いつか必ず報われるはずです。
終わりに
成果物・オリジナルアプリケーションで意識すべき五つのポイントを紹介しました。
まだ作っていないという人は何としても作りましょう。
エンジニアは手を動かしてなんぼですから。
一つそれなりに動くアプリケーションが作れると非常に心強いです。
作る際には今回ご紹介した五つのポイントを是非意識してください。
就活に有利になるだけではなくて、プロダクトを作ることを通して学べるものが増えるはずです。
一緒に頑張っていきましょう。
それでは!