プログラミング初心者がWebアプリ開発できるようになるまで【会社員によるPython学習】

今でこそWebアプリ開発できます!と、何とか周囲に言えますが
勉強し始めのときはまさかここまで成長できるとは思っていませんでした。

全て独学で身につけて、最近は作りたいものが何とか作れるようになってきました。

今回は、自分のようなプログラミング初心者が
どうやってWebアプリ開発ができるようになったか、について
ご説明したいと思います。

ちなみに、大学で情報系の勉強はしましたが
「C言語でfor文とかif文書いたことあるぜ!」
というレベルからの成長です。

今どんなことができるか

まず最初に、だらだらと流れを書き始めるよりも自分がいま何ができるか、をイメージにしてみました。

いまできること

de_ki_ru_ko_to
けっこう色々できるよ!

Webアプリに必要な機能の開発は一通りできるようになりました。

モバイルアプリ開発もしようかな〜と考えてます。

始める前はどうだったか

学生時代、WebCreators(現在は休刊してる)を購読しながら
HTML + CSS を習得しました。

休刊になってしまった Web Creators.

しかしながら、これらはプログラミング言語ではなくWebページのマークアップ言語と
スタイルシート言語です。

Javascriptも触っていましたが、意味を理解せずコピペで使わせてもらう程度。

参考書を見ながら Perl で CGI を作ったりもしましたが、仕組みはさっぱり理解できて
いませんでした。

何からはじめればいいの?

自分がWebアプリ開発が出来る状態になって、色々わかってきました。

大切な3つのポイント

1. やりたいことを明確に
2. 学習できる良いネタを手に入れる
3. とにかく手を動かし、失敗して、乗り越える

1. やりたいことを明確に

漠然と「プログラミング出来るようになりたいな〜」と思っても
何から手をつけていいのか、何を目指すのか、自分はどうなりたいのか
決まっていないまま進む事になります。

継続する上で大事なことは「目標」です。
簡単な目標でもいいので、プログラミングを通して何をしたいのか?を
決めて、そこに向けて進むことをお勧めします。

自分は、面倒な作業を自動化したい!と思って学習を開始しました。
もっと具体的に言うと、以下を自動化できるよう学習しまくりました。

目標:面倒な作業の自動化

作業内容:

1. テキストファイルに書いてある建物の住所が10万行程ある

2. 10万行の住所から、地図座標(X, Y)を特定する

3. 特定した「地図座標(X, Y)」を GoogleMap にプロットする

4.プロットしたGoogleMapをWebページとして表示する

1件あたりの作業時間(手動で地図座標から住所を割り出す)が
30秒かかると仮定します。

100,000行を手動で処理する場合、
30秒 x 100,000 = 3,000,000秒 となるので
時間換算すると 833.3時間 かかります。

1日8時間作業できるとして、104日ちょっとかかる...
1年の1/3ぐらい同じ作業するの?
こんなのやってられない!

これを、自動化すると1件あたり1秒で出来ちゃったりする。
そうすると、100,000秒なので27.8時間。
PCに処理を任せて放置すると、1日ちょっと経てばもう終わってます。

学習期間を2週間程度、開発期間を5日程度としても
お釣りがたくさん来る。
やらないわけにはいかない!と言う感じでした。

2. 学習できる良いネタを手に入れる

具体的な目標を決めた後は、実際に学習していく事になります。
ただ、急に難しいことをしようとしても継続できなくなってしまうので
学んだことをちょっとずつ活用していくのが大切です。

自分の場合は、生活の中に上に書いたような良いネタが
たまたまあったので、それを中心に学習を進めていきました。

具体的な学習ステップはこんな感じでした。

1. テキストファイルに書いてある建物の住所が10万行程ある
 →Pythonだと行列処理がやり易いようだ!
  (?)PythonってWindows上でどうやって動かすんだろう?- ①
 →Python動くようになった!テキストファイル読み込もう
  (?)Pythonでテキストファイルってどうやって読み込むんだろう? - ②
 →テキストファイル読み込んだら文字化けした!
  (?)Pythonの文字化けどうやって直すんだろう? - ③
 →文字化け直った!よし、DataFrameってやつに格納してみよう
  (?)PythonのDataFrameの格納ってどうやって使うんだろう? - ④
 →DataFrameに格納したはいいけど、取り出し方がわからない
  (?)DataFrameの操作ってどうやるんだろう? - ⑤
 →やったー!一つずつ取り出せるようになった。

2. 10万行の住所から、地図座標(X, Y)を特定する
 →地図座標(X, Y)から住所を取得する方法があるようだ!
  (?)Pythonで Geoコーディングってどうやるんだろう? - ⑥
 →Python と OpenStreetMap を連携させればできるみたいだ!
  (?)OpenStreetMap ってどうやって動かすんだろう? - ⑦
  (?)OpenStreetMap で座標から住所を取得するのってどうやるんだろう? - ⑧
 →やったー!住所情報取得できた。

3. 特定した「地図座標(X, Y)」を GoogleMap にプロットする
 →OpenStreetMap は座標プロットもできるみたいだ!
  (?)OpenStreetMap に緯度と経度をプロットする方法は? - ⑨
 →地図へのプロットもできたぞ!

4.プロットしたGoogleMapをWebページとして表示する
 →Python で簡単にWebページ作るれるようだ!
  (?)PythonでWebページ作るのってどうやるんだろう? - ⑩
  (?)PythonのWebフレームワークのBottleってどうやって使うんだろう? - (11)
 →Bottle使ってWebページ作れた!

こんな感じで、やりたい事に向かってちょっとずつ
調べながら手を動かして進めていったところ
最終的には簡単なWebアプリが作れるようになっていました。

できる事の幅をちょっとずつ増やしていく。
それを積み重ねていく。
これがプログラミングの上達で大切な事かな、と思います。

3. とにかく手を動かし、失敗して、乗り越える

プログラミングできる事を増やしていく中で、失敗はつきものです。
なるべく失敗したくない!と思うのは人間なので普通なことですが
プログラミングというものは
一度で完璧な状態にする事の方が難しいものです。

失敗を前提に進める、失敗を楽しむ、という前向きな考え方が必要になります。

デバッグ(エラーを直す事)を繰り返すうちに
開発で気をつけなければならないポイントがだんだんと
見えてきます。

どんどん手を動かして、どんどん失敗する事。
失敗したら、諦めずに成功へもっていく事。
それが自身の成長へと繋がります。

継続するためには

どんなに頑張ろうとしても、継続することは中々難しいものです。
モチベーションが上がらない、今日はいいかな、という感じで
どんどん後回しになっていき、最終的には触らなくなってしまったりします。

自分の興味と結びつけることが大切

継続していく上で「なんでこれやってるんだっけ?」という
自問自答がたまに発生します。

そんな時に大切になってくるのは、最初に立てた目標が
本当に自分のやりたい事、なりたい自分につながっているのか?
ということ。

目標をなるべく具体的にして
目標に向かう毎日を楽しめるようにできれば
自然と継続できるようになります。

自分の場合は「なるべく楽したい!」という考えで
プログラミング学習をスタートして
見事に楽することができました。

作業の自動化によって生まれた時間の余裕は
他の好きな事をする時間にあてました。

終わりに

今回は概念的なお話が中心になってしまいましたが、
今後は具体的な開発の内容をブログに残していこうと思います。

このブログ記事を通して伝えたかったことは
当たり前の内容になりますが

こつこつ楽しみながらやっていれば、いつの間にかやりたい事ができるようになる

ということです。

このブログで、みなさんのプログラミング学習を応援していければいいな
と、思っています。

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事