未経験からウェブカツ!!"webサービスOP達成"プログラミング学習レポ
スポンサーリンク

ウェブカツ!!女性割引を適応し、プログラミング学習をしています。
ウェブカツを受講し始め、4ヶ月半になります。前回からの経過報告をしたいと思います。

日々のプログラミング学習過程をtwitterで報告しています。ペースは早くないけど日々頑張っているので、いいね・フォローしてもらえると嬉しいです。

初回の記事やプロフィールにも書きましたが、プログラミングは全くの未経験者です。
ある程度早急に、そして確実に仕事にできる、かつ、フリーランスとして働ける技術を身につけたくて探していたところプログラミングに辿り着きました。

前回の進捗報告はこちら

自作サービス製作!!

自作サービスとはいえ、まだまだプログラミング初心者。
少しでも変わると訳分からなくなります。

やっていることを少しアレンジすることで考えるヒントを見つけながら進めていく
という方向で、型は学習内容で使用しているものを使い、極力使えるところは変更せずに作っていました。

そのかいあって?ほとんど変更しないログイン機能までは無事にきました。
そりゃそうでしょうよ。内容変えてないんだから。

で、ちゃんとプログラミング作業に向き合ってこなかったツケがここで回ってきました汗;

データベースからデータの取り出しに苦戦

さすがにこれだけは自分で考えないと出来ません。

いや、それだけじゃないんだけど。

毎日毎日、エラーとの格闘、取り出した値との格闘でした笑

結果、色々取り出せるようになりました!!!

でも、連想配列いっぱい出来てしまって、多分もっとスマートな取り出し方があるんだろうけど。。

煮え詰まって、分からなくて、全然進まないどころか、エラーから戻れなくなったりと、
ここ数日同じところ行ったり来たり、なかなか気持ちも折れたりしましたが、

確実に、すこーしずつ「プログラミング脳」は進歩しているような。。!!気がします。。

この日々、辛かったけど、プログラミングっぽいことを自分で出来ているのがなんかやけに嬉しくて、データ取り出せた時の感動はすごくて!
思わずツイしてしまいました!!

普段は報告だけなんだけど笑

で、今回は、このデータを取って来る際に考える頭が必要だと実感したので、
プログラミング初心者なりに重要だった作業について書き出します。

みんなやっていることだと思いますが、私は今回やっと痛感しました。
プログラミングを理解するには、丁寧な作業が理解への近道。

前回からの進捗状況です。

スポンサーリンク

学習状況

学習進捗報告
ウェブカツ!!学習:138日経過
学習時間:253.5h
学習内容:PHPオブジェクト指向部lesson2まで

変数、関数、SQL…

まず、いろんなサイトやブログでみなさん丁寧に説明してくれているんだけど、何にも分からないプログラム初心者には、それすら分からない。

一体それをどこでどうやって使うの??

使い方は勉強しましたよ?

DBから値を取ってくるSQL文の書き方も、Foreach回して取ってくるのもわかるんですよ、やり方は。
でも、どこに何を入れたらそれが出るのか分からない…!!
完全にアウトです。

それだけ基本的なところを固めずきてしまったということです。
それならそれで仕方ないので、地道に、地道に!!!

ウェブカツの鬼十則にも出てきます。
10.「勉強」をするな!「練習」をしろ!です。

ifやfor文、関数といった「基本的な書き方」が分からないのではなく、
処理フローが説明を聞いても分からないのなら、(なぜそこで分岐やループさせるのか、なぜそこで変数に入れるのか、関数にまとめてるのか、なぜこの関数を呼び出すのかなど)それは
「分かるまでの量を書いていない」
からでしかない。
勉強して満足するな。書け。試せ。そうでなければ理解は出来ない。

ただ、どこでそれを書いたらいいか、わからない。
「考えろよ」ってことなんですが、そもそもの「プログラミング脳」ができていなかった私にはそれすらも意味不明。

**これは、プログラミング超初心者の方で、やっぱり関数や変数、デバックの仕方よく分からないような方向けに、プログラミング初心者が書いたものです。**

できる人は鼻で笑ってやってください。

では、どうやったら使い方がわかるのか。

変数、関数、SQLの使い方を知る

使われている関数に、DBに入っている数字を入れてみる。

→ウェブカツ質問欄でよく言われる
「SQL文に実際に値を入れて実行してみましょう」
というやつです。

MySQLで実行してもいいんですが、すぐ結果の知りたい私は、
変数の入れるところに実際の数値を入れてみる。方が早いです。

SQL文を書く練習にはなりませんので、ある程度MySQLできちんと構文を書いた方が良いかもですが。

まずは数値を入れてみて、うまくいかないなら、MySQLで書いてみる。
こちらの方がエラーの時どこが悪いかわかりやすい。(個人的に)

この作業をすることで、関数にどの値を入れればいいか分かります。

あとはその値を呼び出す処理を考えればいいのです。
新たに呼び出さないといけないのか、もうすでに変数として使われているのか。

debugとvar_dump、exitを使って呼び出したデータをチェックする。

exitを使うことで、その場で処理が止まりますので、めちゃ分かりやすい。
何度も無駄なログ吐き出さなくて済むし、どこに出したか探さなくて良いです。

var_dumpはそのまま書き出すと配列はみづらいけど、
リロードした瞬間画面に出るので、安心感があります!
何の…?笑

debugとvar_dump、exit、どこに入れたらいいかも、よく分かっていなかったんですよね。
普通に、代入式の後に入れればOK。
何も表示されないということは書き方が間違っているのか、入れるところが違う。

一つ書いては止めて値を確認する。

値が入らない、NULLが入ると言うことはそこがおかしい。
そしたらなぜこうなるのか、また一つ上の作業に戻ってみる。

おかしくなった時点が分かればあとはそこを解決してあげる。

一つ一つ見ることで、プログラミングってそんなに難しくないのです。

そして、こちらの書いたこと忠実に出してくれます。

debug、var_dump、exit、この3点セット。
私は関数にして、fanction.phpに切り出しています。
そうすると処理の途中でそれ書くだけなので、見た目にも作業的にも楽です!

//ログ書き出し関数
function check($expression){
    debug('Check:'.print_r($expression,true));
    var_dump($expression);
    exit;
}

$expressionにはその時の変数を入れます。
調べたい代入式の後にcheck($expression);と入れて実行すれば、その箇所で処理は止まり、debugとvar_dumpを書き出してくれます。
調べたあとはこれだけ消せば処理は進みます。

私はdebugは出しておきたい箇所では、追加で別に書いています。
処理を見たいだけの時はこれ一つです。

処理や使うものは整理した方がいい

使っている関数、変数の整理

使っている関数や変数名を別のノートに書き出しておく。
これ、デバッグしても関数たくさんあって、ややこしいし、同じような名前つけちゃうと本当、何回やってんのって感じです。

関数名、使う変数、型、関数に入った後の処理

なんかを書き出しておくと、「この値を出したい」時にすぐ見つけられます。
画面を追っても、印刷したものを追っても、なかなかそれを見つけるのに一作業かかってしまいます。

2関数名・変数名は多少長くても意味のわかるものに

これも本科でも言われています。
たくさん使うようになればなるほど、似たような関数や変数が出てきます。

大きなくくりではなく、なるべく詳細に書くことで、使うときもログを確認するときも、いちいち覚えていなくても大体わかりますよね。

3デバッグするときも変数名を入れる。

本科では、debug(‘取得したデータ:’.print_r($変数名));となると思います。
でも毎回それだとたくさんデバッグしたときわかりにくい。
取得したデータ→$変数名と書いた方が見やすい。

4デバッグした変数の値は書き出しておく。

ログを見返すのはナンセンスだし、その都度デバッグしていちいち止めるのも時間の無駄。
一度デバッグしたものは書き出しておく。
これで、使いたい値がどこに入っているのかわかりやすい。

5行いたい作業をフローチャートにする

プログラミング初心者だと、「何をしたいか」はあるけど、じゃあ何をしたらそれが表示できるのか、がピンとわかりません。

画面とにらめっこ、プログラムとにらめっこしているより、
そこまでの処理を簡単に図式化し、自分のしたい処理、出したい値を書き出せばやることが大体わかってきます。

例をお見せできるほどの物は作れていませんが、自分がわかる簡単なもので十分、頭の中整理されます。

と、当り前のことをつらつら書きましたが。

プログラミング初心者の私には今回のアウトプットでこれらの重要さに気づきました。…やっと。笑

あと、処理がうまくいったところまでのコピーはその都度更新して取っておくべき。
間違えてまたエラーになってしまって、これもあれも触って意味わからなくなったとき。

もちろんそこからエラー対処することが大事なのですが。
少しくらいのエラーや、初めてのエラーなら頑張りますが、何回も試行錯誤してやっとできたもの、消えてしまったら悲しいです。

やっと。自作サービス完成〜

というわけで、製作日数42日。約1ヶ月半かけてしまいましたが…

まだまだ抜けも多いのですが。
記念すべき第1作目としてはこのくらいかな。

今後はもう何周かwebサービス部を練習した方が良胃とは思いますが、
ちょっとここ数日こればっかりしていたので、少し息抜きに、次へ進んでみようかなあ。。

と考え中です。

さらに女性割引制度の廃止に伴う、現部員の月謝引き上げのことも考るとなおさら。

アウトプット、辛い時期もありましたが、諦めなくてよかったって思います。
今回はこればかり出しますが、ウェブカツの鬼十則にもありました。

どんなものでも、成長していくと必ず煮詰まり、壁にあたり「自分には無理かも」「こんなやり方じゃダメなんじゃないか?」と思う時がくる。そして、成功しない人というのはそんな時に「違う目標」を勝手に見出し、「こっちの方が良さそう」と飛びつくようだ。諦めたダメな自分を認めたくないからだ。だが、そこからが自分との本当の勝負だ。その勝負に勝てない限り何をやっても成功はしない

本当、ダメな自分を認めて、時間かかっても、無駄だったーと思う作業も経験しながら。
少しづつ、成長できたと思います。

ではまたここから、毎日コツコツ頑張って行きます!

最近のコメント

    Twitterでフォローしよう

    おすすめの記事