Help us understand the problem. What is going on with this article?

未経験からARスタートアップエンジニアになった1年を振り返ってみた

More than 1 year has passed since last update.

こんにちは。
この記事はAR Advent Calendar 2018の14日目の記事です。

ARのスタートアップでエンジニアとして働き始めて1年になりました。

最近こんなものつくってます。


しかし、実は1年前までは新規事業の立ち上げやコンサルタントをしており、エンジニアとは無縁のところで生きていました。

ちょうどプログラミングを始めて1年ということで、未経験から1年でどのように学んできたかをまとめてみました。

自分自身、未経験からどうやって学んでいけばわからなかったり、本当にエンジニアになれるのか不安でした。
自分のように未経験からエンジニアに挑戦をされる方が読んで自分でもやれると思っていただければ幸いです。

下記のように整理しました。
- どのようなものを作ってきたか
- 実践してみてよかったこと
- 実践してよくなかったこと
- 実践してよかったかわからないこと
- 後悔してること

※個人の主観部分もありますのでご了承の上お読みください。
※もし他にもオススメがある!って方は、こそっと教えて頂けると幸いです。

どのようなものを作ってきたか

実践してみてよかったこと

一週間単位で強制的なアウトプットを行うこと

友人などに毎週土曜日に検証をしてもらう予定をいれ、何がなんでもその日までに終わらなければならない状況を作っていました。これは作業の波ができたり、具体的にアウトプットすることを定めるので作業効率が上がりました。

「これは決まり!」

当初ですが、下記のような決まり文句みたいなものや構文などは「これは決まり!」と納得して、深く考えないで進めました。あまり最初から全てを理解するには時間もかかり、アウトプットできないことでやる気も低下します。

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour
{

}
スクリプトを見て、何をしているか日本語で言い直しができるようになる

一方で、何もわからないままコードを使っていても応用できないので、どのスクリプトが何をしているか/どの順序でコードが読まれているかなどは丁寧に追いかけました。
そうすることで、次回同じ場面に出くわした時にどのメソッドを使えばいいかとわかるようになってきます。

気分が前向きなものに取り組む

気分が向かないことをすると作業効率が落ちる性質だった為、これは徹底していました。幸いにも学ばなければいけないことが多かった為、他に作業がないという状況はありませんでした(笑)

知ってる7割、知らない3割

これもよく言われます。上記とも絡むのですが、やる気の低下に繋がります。

もくもく会に参加

これは本当にお勧めします。いくつかのもくもく会に参加しましたが、毎回何かしらの学びがあるものです。また周りは全員自分よりできる人なので、わからないことを聞いたり、どのように作業を進めているかを見るだけでも本当に肥やしになります。

Unity1week参加

アウトプットを出し、且つ、他人が必ずプレイしてくれる環境はなかなかありません。Unity1weekが開催された後、全てのゲームを実況してくれるので実際に遊んでくれている人の反応が見れてとてもうれしいです。

コード詰まったら一旦放置

1日考え続けた問題が、朝起きてやるとすぐ解決するという話をよくあります。作業にのめり込みすぎて視野が狭くなっていたりするので、「一旦放置」はとても有効です。

発信の多いエンジニアをフォロー

先輩エンジニアたちは、学びなどをどんどん発信してくれます。Twitterのタイムラインで見るだけで生きた情報を仕入れることができます。

他のエンジニアの人のエディタを見る

他人のエディタを見る機会はめったにないですが、エディタは毎日使うものなので、皆さん色々カスタマイズされています。これを真似ない手はありません。
もくもく会に参加やアポをとってエディタを見せてもらいます。

ユーザーに触ってもらう見る

やる気の向上です。友人を毎週会って、どんどん触ってもらいました。エラーがでたとしてもうまくいったとしてもユーザーの反応が見れることは本当にうれしいものです。

実践してよくなかったこと

具体的な目的なくコードを読むこと/具体的な目的なく勉強すること

上記の「ひたすら知識インプット(期間:1.5ヶ月)」は失敗しました。

一本ゲームを作ったことで、もっと仕組みを理解したいと思い取り組んだのですが、目的もなく知識をだらだらいれるだけになってしまう上に、あまり使えない知識になってしまいました。

アウトプットベースで知識を入れた方が効率的ですし、何より楽しいです。

実践してよかったかわからないこと

基礎技術の勉強

コンピュータがなぜ動くのかなど学びました。しかしこれを学んだほうがいいかは正直わかりません。普段の開発で役立っている感じはしません。(フロントしかやってないからかもしれませんが。。)

ただUnityがコードを読む時にどのような順序で読むかなどの仕組みについては、早めに理解したほうが圧倒的にプログラムを書く時にプラスになります。

後悔してること

コードレビューをし合えるエンジニア仲間を持つのが遅くなったこと

本当に家(兼オフィス)に篭りきりでプログラムを書いている為、あまり自分のコードを見てもらう機会がありませんでした。最近やっとコードを見てくれる方と出会い、知らなかった自分の癖や当たり前に皆さんがやっていることを学べました。

あとエンジニア同士で話すのって本当楽しいです。普段はエンジニアが社内にいないので、知らなかったです。もっと早く知っとけばよかった。。。

最後に

いかがでしたでしょうか?少々長くなってしまいましたが、ここまで読んでいただきありがとうございます。

私自身、エンジニアになりたての頃は、本当に今からやってプログラミングができるようになるのか?と毎日不安でした。しかし1年ひたすらインプットとアウトプットを繰り返すことで、自分でもエンジニアになれたなと思えるようになりました。

まだまだ未熟者ですが、今後も学び続けてユーザーにとって価値のあるプロダクトを作っていきたいです。

Tanktop_in_Feb
UnityでARゲームを開発中
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away