【経験談】未経験から独学で個人アプリを作れるようになるまでにやったこと

未経験から独学で個人アプリを作れるようになるまでにやったこと プログラミング初学者

こんにちは。わっと(twitter: @wattflex)と申します!
今回はアプリ開発未経験だった私がどのようにして個人アプリを開発できるレベルになったのかその手順を皆さんに共有したいと思います。
「アプリを作ってみたい!」「フリーランスとして企業から案件を受注したい!」そういった方に少しでも参考になれば嬉しいです。

はじめに

これから書く個人アプリを作るまでにやったことはあくまでも当時素人に毛が生えた程度の知見しかなかった私のケースです。
現時点でのレベルによっては「この手順は俺は踏まなくてもいいな。」という人もいるでしょうし、 業界に精通した人からすると「むしろこの部分はこうした方がいい!」と思う方もいるでしょう。 いずれにせよ、この手順をそのまま鵜呑みにしてやるのではなく、自分の参考になりそうな部分をうまく取り入れて自分なりの学習方法を築いて頂ければと思います。

手順1:コンピューターサイエンスの基礎を理解

まずはプログラミング言語を学ぶ前にそもそもコンピューターがどのような仕組みで動くのか、コンパイラやインタプリタとは何なのか等、コンピューターサイエンスの基礎を以下の書籍を使って勉強しました。 これらを知っていないとどんな言語の技術書を読もうとしても用語の意味がわからず挫折すると思ったからです。

・プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
・絵で見てわかるITインフラの仕組み  (DB SELECTION) 

個人的にはこれらの基礎を学ばずして言語の技術書を読むことはsin,cosやルートを知らないのに微積分の本を読むことと同じだと思います。「プログラミングを頑張ってみたけど途中で難しくて挫折しました。。」みたいな人をよく見ますが、ほとんどの人が sin,cosやルートの計算の勉強をすっ飛ばして微積分の本を読み、「難しすぎてわからん!」と言っているように見えるんですよね。
※そりゃー挫折します(笑)
焦る気持ちは何となくわかりますが、まずは基礎から。sin,cosやルートの計算から学ぶことが大切です。

手順2:プログラミング言語の文法を理解

基礎が理解し終わったら、次は文法の理解に移りました。私の場合、Androidのサポート言語であるJavaとKotlinの技術書を紙で読んでいました。 ここが正直、個人アプリを開発するまでの中で一番大変な部分だった気がします。 特にインターフェースの仕組みやラムダ式などは本を何度読んでも中々理解できずに もがいていた記憶があります。
ただ、ここのフェーズがしっかりと出来ると後々の手順がめちゃくちゃ楽ですし、何より勉強が楽しくなります。

※参考書籍
・改訂2版 パーフェクトJava
・Kotlinスタートブック 新しいAndroidプログラミング

手順3:オープンソースのコードを理解

文法の理解が一通り済んだら実際にインターネット上にあるオープンソースのコードを読んだり、動かしたりしていました。 この手順は技術書を読む時と違って本当に楽しく、モチベーションも維持できてすんなりとこなせた気がします。

また意識した事として、自身が作るアプリと同じようなアプリを参考にしていました。 その方が個人アプリ開発をスムーズに進められるためです。 私の場合はクイズアプリを作りたかったのでクイズ系のアプリを探してコードを読んだり、 デバッグして動かしたりしていました。

手順4:個人アプリ開発

一通りオープンソースのコードを理解し終えたら、いよいよ個人アプリの開発に入っていきます。 ここまでくると、「この機能を実装するにはこういうコードを書こう。」というイメージは 既に頭の中にある状態でした。そのため後はそれに沿って開発を進めるだけです。
私の場合、手順1から4まで通して大体1年間くらいかかりましたが、個人アプリ開発の部分だけを見れば 10日間程しかかかりませんでした。

※個人アプリのソースコードはこちら

誰でもわかる事を順序立ててやろう

少しでも、私の経験談がプログラミング初学者の参考になれば嬉しいです。 読みながら気付いたと思いますが、別に目新しい特別なことはしていないです。
入門書を読み、ブログやオープンソースのコードを漁り、アプリ開発を進める。
よくよく見たら案外誰でもわかるような普通の事だったりします。

ここで私が伝えたいのは順番の大切さです。「誰でもわかる事を順序立ててやろう。」という事です。

プログラミングを挫折する人が多いとよく聞きますが、そういう人の殆どが順番の事を考えずに何となくで勉強しているように感じるんですよね。 例えば、メモリ、exeファイル、ビルド等の基礎理論を知らないのに「猫でもわかる〜」みたいな 技術書をとりあえず購入して読んだりする等です、相当根性がないと挫折すると思います。

「早くプログラミングができるようになりたい!」と焦る気持ちはわかるのですが、冷静になって どういう順番を踏むか考えながら、アプリ開発をこなすのがエンジニアデビューの一番の近道だと私は思っています。

最後まで読んで頂きありがとうございました。

※ライター紹介※
ペンネーム:わっと
twitter: @wattflex
大学卒業後、大手Sierに入社したものの、プログラミングができずにエクセル業務で消耗。一年半勤めて退職。その後はフリーランスエンジニアを目指してプログラミングを勉強し個人アプリを開発する。

コメント

タイトルとURLをコピーしました