毎月書いてきたこのシリーズも遂に1周年を迎えた.
- プログラミングって何だろう?
- どうやってブログを書けばいいんだろう?
からスタートした私も1年経って少しは成長したようだ.
今回は次の点を紹介したい.
- この1年でやってきたこと
- 現在直面している課題など
対象読者
今回の記事は次のような人を対象に書いてみた.
- プログラミング初心者
- これからプログラミングを始めようと思っている人
- プログラミングに挫折した人
私はまだ初心者だと自覚してるし, いわゆるプログラミング歴はたったの1年だ.
プログラミングを始める前はただの英数字の羅列だとしか思ってなかった.
いざ初めてみると広すぎる知識を吸収しなきゃいけないことが分かって何度も挫けそうになった.
正直, 今も理解しにくい問題に直面している.
それでもまだ続けることが出来ている理由は, やりたいことや目標があるから・・・だと思う.
それはさておき, 当記事が上記の皆様に役立つと嬉しい.
「プログラミングを始めてxxか月」系の記事一覧
このシリーズは 「3ヶ月目」 の記事が抜けてしまった.
だから全部で11記事.
毎月書いてきた記事は次の通り.
- プログラミングを始めて1か月で出来るようになること
- プログラミングを始めて2か月で出来るようになること
- プログラミングを始めて4か月で出来るようになること
- プログラミングを始めて5か月で出来るようになること
- プログラミングを始めて6か月で出来るようになること
- プログラミングを始めて7か月で出来るようになること
- プログラミングを始めて8か月で出来るようになること
- プログラミングを始めて9か月で出来るようになること
- プログラミングを始めて10か月で出来るようになること
- プログラミングを始めて11か月で出来るようになること
見直してみると書き方が雑なものがいくつかある.
それらについては時間を見て一つ一つリライトする予定.
この1年で取り組んできたこと
この1年で取り組んだきたことを分類してみた.
全ては書ききれないが, ざっと挙げると次のようになる.
着手したもの
- 言語
- Excel VBA
- PHP
- javaScript
- R
- フレームワーク
- CakePHP
- Laravel
- その他ツール
- composer
- データベース
- MySQL
- WEBサーバ
- Apache
- その他サーバ
- エックスサーバ
- AWS (EC2, RDS)
- API
- Amazon Product Advertising API
- Microsoft Translator API
- Google 各種API
- Facebook API
- twitterR (package)
- ReporteRs (package)
- ローカル環境構築
- vagrant (Box作成, provisioning)
- centOS
- WordPress
この1年で何ができるようになったのか
ここでは 「今では xxx ができるようになった」という形で1年前の自分との比較を行いたい.
単に 「xx のツールが使えるようになった」 という表現だとつまらないので,プログラミングを活用して実生活でどんなメリットを得たのかをまとめてみたい.
概要は次の通り.
- 物販の半自動化
- アルバイト・業務委託 的にお金が稼げた
物販の半自動化
プログラミングを始めた当初の目的だった作業効率化は概ね達成したと思う.
具体的には, VBAで在庫管理・売上管理をして, PHPで商材の価格比較を半自動化した.
半自動
というのは, どうしても手作業が残っているから.
プログラムの定期実行や商材データの更新作業は手動で行っている.
いまならこうやる
VBA やら PHPでスクレイピング やらに着手したときは cron を知らなかった.
MySQLも満足に扱えなかったから強引にcsvでなんとかしていた.
もし今から同じツールを作るとしたら適当にサーバを立てて
- スクレイピングの定期実行
- csv出力
- 必要なデータのみDBへ保存
- その場で検討が必要なものはcsv出力
という具合で自分用商材リストを作成する.
使用言語は PHPではなくRでやるかも.
理由はRの方がデータを扱いやすいから.
過去にスクレイピング
について紹介した記事はこちら.

ローカル開発環境はこう変わった
当時のローカル環境と現在のそれを比較するとこんな感じ.
(当時) -> XAMPP
(現在) -> vagrant + CentOS + Apache + MySQL
XAMPPは直ぐにブラウザ表示できて初心者には優しいと思う.
実際,私はXAMPPを利用していたからapache周りを気にすることなくPHPという言語習得に励めた.
一方,vagrantでLAMP環境を構築するとapacheの設定からは逃げられない.
実際のWEBサーバでもapacheは触るので,ここで慣れておいて良かったと感じている.
ファイル管理方法はこう変わった
ファイルの管理は一人でGitLabを使っている.
GitLabについては以前の記事にまとめた.

以前まではPC内に 「名前を付けて保存」 を繰り返していた.
その結果, 「.old」「xxx_2.php」のような杜撰な管理状態になった.
Git等を使うことでファイルの差分管理が可能になった.
vagrant環境でプログラミングを行っている人は .gitgnore を自然に覚えるはず.
アルバイト・業務委託 的にお金が稼げた
以前Wantedlyを利用して10社ほど会社訪問した記事を書いた.
その時の記事はこちら.

そこでご縁のあった会社で最初に依頼された最初の業務もスクレイピングだった.
このときは自分が身に付けたスキルが役立って ほっ とした記憶がある.
最初は自分のために学んだ技術だったけど,結果的に他の会社でも役立った.
この技術がお金に変わったのは嬉しかった.
「お金を稼ぐ」という点だけ考えると,時間やスキルを売るよりも,サービス自体を売りたい.
それだけ価値のある 何か を作れるようになりたい.
今苦戦していることは何か
現在は
- DB設計
に苦戦している.
一人でサービスを作ろう! と考えたとき,どうしてもテーブル構造・リレーションを意識することになる.
現状では, ユーザの動作を基にテーブル設計進めているが,これが最適かどうかの判断ができない.
なにをもって 「最適」 とするんだろう・・・
そんな状況です.
まとめ / 今後の抱負
1年間PHP, VBAに取り組んできて分かったことは次の通り.
- できない事・分野 があって当然
- 書籍やネット通りにプログラムが動作しなくて当然
ここでは上記2点と今後の抱負を述べて当記事を終えたい.
できない事・分野 があって当然
DB設計, サーバ管理, コーディング.
国内ではそれぞれの分野にエキスパートが存在する.
それほど奥が深く、専門的なものだと感じるようになった.
さらに,OSや対象アプリ(windows向けIIS専門のエンジニア, iOS/Android専門エンジニア など)によって扱う分野も言語も異なってくる.
だから、一気に全てを把握する必要はない.
というか、ムリ.
だから、まずは目の前のエラーから逃げずに対処することが大切だと思う.
少なくとも,自分の目の前で起きている問題なのだから.
自分が着手している分野なのだから.
自分のやりたいこと、作りたいサービスに必要なもの・知識から習得するのが良いよ.
WEBの世界は広すぎるから出来ない分野があって当然。
書籍やネット通りにプログラムが動作しなくて当然
WEB周りのインフラはアップデートに弱い.
apache2.2 -> 2.4 の違いで何度躓いたことか.
持っている書籍の通りコーディングしても上手く動作しなくて何度憤りを覚えたことか.
でも,あまりにもこの状況を繰り返していると
- errorがあって普通なんだ
と思えるようになる.
私はvagrantやcakephp, laravelで環境構築を繰り返してこういう気持ちになった.
1年前の私にとってはerror自体が 異常だ! と思っていた.
今ではerrorが出ないことの方が異常だと思っているので,無駄にlogを眺めたりしている.
今後の抱負
一先ず次の一連の作業をこなしたい.
- サービス設計
- DB設計
- デザイン、コーディング
- デプロイ
- SNS戦略
- リリース
- 改修・運営
これを一言で言うと次のようになる.
- 0から何かを創って人に使ってもらうこと
これだけ毎日PCに向かっているとどうしても
- 新技術
- ツール
- 美しいコード
に目が行ってしまう.
でも,私にとってはプログラミングはあくまでも 手段 なので.
目的を見失わないように,今後も技術を研いていきたい.
今回は以上.