文系が趣味で始めて(一応)普通にプログラミングができるようになるまで(その2・具体的な道のり編)
さて、心構え編の時点で長くなったのでこっちも長くなる気がしますが、具体的に何をすればある程度出来てるかな?と言えるかというところを書いていきます。
まず目標として 自分の作りたいアプリを作れるようになるまで というアバウトな目標をたてます。
で、あとこれは僕がandroidから始めたからなのですが、webアプリ作ろうと思う人は違うかもしれないです。 これはスマホのアプリとか作ってみてえ!とか思って始めた人用になる気がします。できるだけwebでやりたい人にも適応できるようにしたいのですが...
まず知ってもらいたいのは、この目標にたどり着くまでの道のりです。これがほんとに文系には想像がつきません。理由は簡単で文系の考え方は
プログラミング=javaとかの言語の文法を覚えること
だからです。アプリケーションがどう動いてるかなんて想像もつかないしプログラミングをやれば自動的に理解できるものと考えてます。 だからまずすごく重要なことを覚えてください。文系に一番大切なのはこの考えです。
言語の文法なんてなんの意味もないくらいはじめの部分だから。
ということです。ここで言うなんの意味もないってのは必要ないってわけではありません。というかなければもちろん始められません。 じゃあ開発できるようになるまでどのくらいの割合で勉強するの?というと
言語の文法→2%
アプリケーションの仕組みを理解→30%
ネットワークや様々な開発周りに必要な知識の理解→20%
ライブラリの使い方、有効なライブラリの発見→30%
デザインパターンとか→10%
その他8%
ってところですかね。言語の文法のウェイトがいかに低いかよく分かるでしょう。
文系でたまにいるんですよ、文法分かったからライブラリをコピペして仕組みわからないけど使い、すごい簡単なローカルアプリケーションを作ったらプログラミングできる!って思っちゃう人。僕ですね、はい。
そういってプログラミングできる!って思ってる人ってそこまで結構苦労したと思ってるんですよ。苦労して習得したんだ!と。 いや苦労はしてるんですけどその後の苦労に比べたら軽いものなんです。 でも最初はわからない。でも進むとそれが見えてくる。どれだけこの先が長いか。そんで絶望してやめる。
だからこそこれを見た人は勉強してる間いま自分がどの辺にいるかを自分で把握して、見失わないで欲しいです。だからこそこれを書きました。 今どこにいるのかを把握することが一番の近道だと言うのを僕は信じています。 それではその把握のお手伝いをしたいと思います。 まずちょっとした具体例を見てください
Javaから始めた人(僕)の場合の具体例
プログラミングを知らない人が先ほど書いた目標を達成しようとすると何が起こるかを実体験とともに言うと、
1: プログラミングってまず何からやればいいんだ?(3日)
2: よし!文法とか覚えればいいんだな!お!計算とか面白い!!(2日)
3: オブジェクト指向・・・?(3日以上。でも3日わからなかったらたいてい趣味の人は諦めます)
4: 微妙に理解した・・・これでアプリ作れる!・・・で何やればいいんだ?(1周間)
5: とりあえず簡単な計算機アプリ作った!わーい!!じゃあ自分の作りたいの作るか!!・・・あれ?どうやって作るんだ?(ここから3ヶ月以上頑張る)
6:よしとりあえずなんか出来た・・・あれ?簡単なゲームは作れるけど通信とかどうすんの?サーバー?なにそれ?(ここから1年以上)
7:基本的なのはバックエンドもできるようになった気がするが・・・また新しいライブラリでたのか。RxJavaとか初めて知った。あれ、これもおぼえなきゃ、あれ、これもだ。あれ、これもやん。(いまここ)
これが僕のたどってきた道のりですね。今思うとこんなんでよく続いたな...ただオブジェクト指向の時にちょうど情報系の授業でJavaやってギリギリオブジェクト指向までやったので、ギリッギリなんとかなった感はあります。
こんな適当な道のりで来れるのは運がいい人だけで才能とか関係ないです。僕はほんとに運が良かったと思ってます。ついでに自分は才能は多分ないです。普通の人に比べると時間かかりすぎだと思います。楽しいからいいんですけど...
結構こんな感じの道のりを歩む人もおおい気がするんですよね... なので僕がこれらを覚える上で辿った道のりを解説しながら、こうすればよかったとか、こういうふうに勉強するといいとかをいうことで、自分が今どこにいて、さらにこれからどうすればいいのかを把握してもらおうかなという試みです。
では次の記事からその解説をしていきたいと思います。