ひよっこゲームブログ

なにもかも初心者のひよっこがゆったりと何かする

今までと、これからのこと

おかげさまで転職ドラフトで自身の過去最多指名を頂きましたーん

そのうち職務経歴書を書かないといけないので
今まであったこと&思ったこととか整理したいので書き残す

あとは個人的には、転職ドラフトの指名体験記書いてる人って
「学生時代はベンチャーインターンしてて~」とか「OSSコミッターでした~」とか
指名されるの当たり前じゃねーか!みたいな人ばっかだったので
こういった話に需要がないかなーって感じでのんびり書いてきます


おちこぼれの這い上がり経験談です
前半はプログラミング関係ないです



学生時代

高校は全科目ほぼドベ。でも数学はマジで死ぬほど大好きだった
プログラミングの勉強ができたらいいなってなんとか情報系の大学へ進学した

大学でも勉強はからっきしで、とにかく人から教わるのが苦手
今そこにあるものの理論の根っこが気になって仕方がないのですぐに物事を覚えられない
(でもこの考え方がプログラミング的には有用かも)

自分に見合ったやり方じゃないと
勉強ができないということにようやく気が付いたのはつい最近

プログラミングの実力に関しては、情報系大学出身とは言えないレベルだった
研究もお粗末だった。よく卒業させてもらえたな・・・


社会人1年目

めちゃくちゃでっかいメーカー企業
エンジニアで入ったはずがなぜか品質保証部になった

過去にブログで書いたように色々ありすぎた
この経験があったから、身体を壊すような働き方をしないと一生誓った

身体を壊して1年たたずに退職


無職1年目

数ヶ月療養してからはしばらく遊んでた
幸いにもお金を全く使ってなかった上に実家住まいだし貯金はあった

興味があったWebとか(今ではもう役に立たない知識ばかりだけど)触った
あとはラズパイとかで無意味な鯖立てたりした


無職2年目

どうせならやりたかったことをしようとゲーム会社を目指してみる
結論から言うとこの就活には失敗した

Unityで半年ちょっとでゲームを作った
ついったーのもーめんと
"作ったゲームのzipリンク(クリックでダウンロードが始まります)"

このとき一人で開発してた経験がめちゃくちゃ役にたってる
一人でものを1つ完成させることの大事さを知った。完成は正義

コーディングのアンチパターンを踏みまくって開発したので
何をしたらダメなのかを身をもって実感した

溢れかえるグローバル変数
1つのメソッドに大量の処理が書き込まれ
1つのクラスに様々な機能が盛り込まれ
めちゃくちゃな命名規則に始まり
複雑な条件分岐が構成され
〇〇フラグが大量に散在し
次の日には見たくないようなコードが生成された

マジで全部踏みつくした

再就職の活動には失敗し、貯金も底をつき
病院や年金が財布を襲い、どこでもいいから就職しないとって感じで
ひとまず働けるとこをって就活し始めた


再就職

なんか勉強意欲あるし、Javaちょっとやったことあるんでしょ?
って感じでAndroid開発にまわされた

給料は一般の新卒くらい
前職よりちょっとあがったけど賞与ないし見込み残業だったからトントン


入りたての頃

開幕Android担当が3人⇒2人になった
もちろんマニュアルなんてあるわけもなく、仕様も分からず
コードを片っ端から泣きながら読んでった。Javaを復習した


Kotlinに触れ始める

Kotlinがイケてるらしいからに脱Javaしようぜって空気が社内に流れ始めた

ここがエンジニアとしてのターニングポイントな気がする
もちろんKotlinなんて初めて触った
ひとまず本を買って必死に勉強した


プロジェクトが大きくなった

新人がぶわっと入ってきた
何人か抱えることになって、教えなきゃと思ってgitの復習とかした
間違ったことを教えないようにと思って基礎を固めた

コーディングの基礎とか、丁寧に書けるように意識し始めた
この辺で人へ教える技術のノウハウを入手する


技術書をあさり始めた

とにかく新しいことを覚えることが楽しくなり
家で勉強する機会が増えて、この辺でぐーんと実力が伸びた

CoroutineとかJetpackとかその辺をそこそこ使えるようになった
ようやくエンジニアとして働いてますって言えるかなって思い始めた


役職が上がった

給料が変わるわけじゃないけどサブリーダーにランクアップした
上の人がいないときに代替で色々やるようになった
チームビルディングとかの本を読んだ

GitHubの使用許可が下りなかったので
コードレビューをほぼペアプロ状態でやってた


転職を考え始めた

今いる会社ではやれることに限界があるなぁと感じ始めた
自分よりもっと強い人に囲まれて開発がしたい


プロジェクト強制異動

色々あって異動になった。原因は資金まわり
納得がいかなかったので近々の転職を決意する


現在

無理くりしてリモートワークを勝ち取って、ある程度平和に働いてるけど
まだAndroidに未練たらたらなので転職がしたい

あとAndroidが見せてくれる世界をまだまだ楽しみたい
Android11Betaきたし、Kotlinの1.4の正式リリースもそろそろかなぁ

今年で27歳なので、なるべく早めに動きたいなって思ってる
そんなに時間は残されてないのかな・・・


現在使えるもの

基礎的なコーディング技術
Androidライフサイクルへの理解
Kotlinの基礎的な理解
Coroutine
DataBinding
Espresso
UIAutomator
GooglePlayConsole
Git

ぼんやり使えるもの

Androidアプリケーションに必要な機能実装(いつも調べながらやる)
xmlによるレイアウト記述(割と適当に書いてるのでよくない)
LiveData
Room
Retrofit2
MVVMアーキテクチャ
Androidにおけるマテリアルデザイン
スクラム開発

勉強したもの(未実践)

RxJava
CleanArchitecture

今後勉強したいもの

Android Architecture Components(AAC)
CI / CD
Unitテスト
ドメイン駆動開発
テスト駆動開発


つまづいたこととか感じたこととか

自主学習する人は一握りである

「この本とか参考になるから」とか「これ覚えとくといいよ」とか
自分の中では親切にアドバイスをしたつもりなんだけど、特に意味をなさなかった

彼らにとって「プログラミング = 仕事」であり
プライベートで仕事はしたくないと
別にこの思想自体が悪いとは全く思わない(個人の自由だし)

僕もそりゃあプライベートの時間を削って仕事はしたくない
でも新しいものを知ることが好きだからときどき勉強する
もちろん勉強よりゲームやってる方が好き


Androidの環境変化のスピード

とにかく色々なツールが使えなくちゃならない
新しいライブラリやGoogle I/Oで発表されることとか
AndroidのOS Verは1年ごとに上がっていくし

僕はそれが楽しかったんだけど
チームで使えるツールなどはある程度制御していかないと
やたらと便利にしても使えない人が出てきてしまう

あとリファレンス読まないで
個人ブログの古い記事参照にして書いちゃう人とかで事故る

一部機能は担当の人しかメンテできないみたいなことが起きた


設計

スタートとゴールだけ考えてなんとなく作っていくのは明らかに難しい
ソフトウェア設計で使う図とか色々あるけど、なんとなくしか読めない
(そもそも使える人いなかったから書いても意味なかったんだけど)

世間では何がどのくらい使われているんだろう

今は何をどう実装したらいいかなーって紙に書いてから手を動かしてる
流石にこの辺は今後やっておいた方がいいな・・・

アーキテクチャの理解はまだまだ足りないなぁ、実践経験が少ない


世の中で使ってるツールが使えない / 実践できない

わりと重めな悩みのタネ
1人だと実践できなかったりで、解決もできない

GitHubのプルリクとか


日本語を母国語としない人とのコミュニケーション

日本語は難しい。文章もそうだけど、はなし言葉も難しい

単語だけで分節を区切って、日本語だと不自然だけど
短い文章で簡潔にすると伝わりやすかった

敬語も「です、ます」くらいに抑えて
やたらと礼儀正しい文章は使わない方がお互いに楽だった・・・
できればこんどこそ日本人の方が多いところで働きたい(切実)


今後

ひとまず転職したい

転職するする詐欺みたいになってたのは
自分の実力がまだ足りないなぁって思ってたのと
どうせならアプリ1個くらい作りたいなぁって考えてたのがあって
なかなか足が動かずにいた

世の中のAndroidエンジニアは誰しもが個人開発して
アプリのリリースを1回くらいはしてるよなぁ
って思ってたけど、実際に企業の人と話してみたら
「家庭がある人はそもそも時間取れないし、そうでもないよ」って言われた

ちょっと安心した
でもそのうち何かリリースしたいなぁ。ネタはあるので

転職ドラフトでちょこちょこ指名されたりしてるので
今のスキルでも必要としてくれる人はいると信じて

やってみてダメならまた考える