IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→起業)

なぜ10年以上エンジニアをやった私が「分からないことだらけ」なのか?

アプリなんてちょっとしたものなら初学者でもリリースしてるし、15人月規模のアプリでも2年目の新人3人でリリースすることができました。
でも10年以上iOSエンジニアをやってる私でも「分からないことだらけ」と思うことが多いです。これはどういうことなんでしょうか?という話。このロジックは若手のうちには気づきにくいんです。

大きく3つあります。

 

1.書き方がたくさんあって、プロジェクトによって書き方が違うから

特にフリーランスになったりするとこれにぶち当たります。1つの機能を作るのにも、やりかたが何通りかありますよね。あれのうち1つだけあればとりあえず動かせるのですが、メンテナンスしようとすると他人のコードを読まなければなりません。他人はいろんな方法のコードを書くので、全部読める必要があります。

機能だけではなく設計方針もそうです。たくさんの思想があるため、それを引き継ぐには設計方法をたくさん知り、そのコードから思想を読み取る必要があります。

この点だけでも「10年あっても足りない」くらいです。

 

2.書き方がどんどん変わっていく上に、昔のコードも残っているから

初学者は、今ならiOS14,iOS15、Swift5の書き方を覚えればいいかもしれません。しかしいろんなプロジェクトではiOS7の時から使用しているコードが合ったり、Objective-Cがあったりと、地層のようなコードになっていることがあります。
成功しているプロジェクトほど昔からやっているのでその傾向が強いです。
それらを読めるためには、{1の複数の書き方}×{時代ごとの仕様}分の知識が必要になります。

 

3.頭良い人が難しいコードを書くから

難解な設計、難解な主張、コメントのないコードによって、素人目(?)に見たらスパゲティコードにしか見えないものを頭いい人は生成します。
それを理解するにはやはり10年でも足りないです。

 

あとは自分の得意な分野以外の知識が必要になるケースもあったりしますし、それらも上記1〜3が発生していることがあるので、分からないことは雪だるま式に増えていくわけです。

たぶん30年かけても無理でしょうから、全てを理解しようとするのはどこかで諦めなければならないでしょう。しかし界隈的には「そういうのを勉強していくべき」という風潮もあるので、バランスを上手く取らないと挟まれて苦しくなってしまうので気をつけたいところです。