プログラミングの技術習得について思ったこと

最近はSwiftをはじめました。技術習得する上で思ったことを綴りたいと思います。

ぼくは元々WebエンジニアでPHPerです。この世に存在するものであればなんでも作れるとおもっています。DBも一から作りますしデザインもそこそこのものはできます。「Facebookっぽいの作って」と言われれば作る自信もあります。そんなぼくですが、アプリ開発は少々挫折気味です。挫折ってほどではないですけど、色々なものがありすぎて簡単にはいかない状態です。

iOSアプリ開発で挫折感をほんのちょっぴり味わう

Swiftという言語はコンパイラ言語です。PHPのインタプリタ言語とは異なり複雑さが増しています。元々JavaやC++、C#もほんのわずかかじっていたので大変さを重々承知していました。Web制作ならサーバーを立ち上げて一から作りプロダクトするまでできますがSwiftはそういうわけにはいきそうにはありません。元々決まっている関数などを利用して組み立てていかなくてはなりません。バグの解決方法なども少々が癖がありコンパイラ言語独特の技術習得方法を身につけるためには一苦労しそうです。

ぼくがやっているSiwftの技術習得方法

簡単なことは少しずつできるようになりました。RSSを取得してリストで表示させ、リストの中の1つを選択するとWebページを表示させたり、ボタンを押すと画像が切り替わる等です。1度やっただけでは身につかないので反復を繰り返しています。参考書を見なくてもスラスラコードを書けるレベルにまで達しました。ただそこで1つだけ疑問点が。。「これは参考書を書き写しただけで応用がきかないのでは?」 もちろん、何度も写経をすれば理解が深まることも確かですし、まったく知らない言語を理解するためには書き写して実行できるようになることが大切です。ある程度習得したい言語の癖や実行の仕方がわかれば応用していったほうが理解が深まるとおもっています。

学習よりもアプリを完成させることに力を入れる

このまま写経を続けていくも良いと思いますがそれでは時間がかかりすぎます。ぼくには作りたいアプリが山ほどあります。すべて実現するには時間がとてもかかります。ぼくも30代後半に突入するので若くなくできるだけ速くアプリを作る必要があります。
そこで一旦細かな技術学習はやめました。泳ぐのを習うのと一緒で陸上で泳ぐ練習をするよりもまずは実践で四苦八苦しながら学習していこうと考えました。まずは自分が考えたアイディアの中でもっとも簡単なアプリ開発をしていきます。最低でも今年までに完成することを目標としています。1からすべて自分が作った作品があれば人にどのような技術があるか伝えやすくなりますしやりきった自信につながります。ユーザーが必要と感じているものを常に模索してアプリ開発していきます。