備忘録ページ作成
Java Silver対策で黒本の学習を進めていますが、自分が最低限の基礎しか学習できていなかったことを改めて思い知りました。
3章までやって、そもそも問題のコードが多次元配列で、多次元配列は学習していなかったり…など。C#で多次元やっていなかったら多次元配列が存在することすら分からなかったかもしれません…こうして知らなかったことを知ることができてよかったと思います。
そうしたわけで、知識自体をアウトプットかつ、疑問に思ったときお布団の中でも見られるように、サイトにしてまとめることにしました。
まだつくりたてなのでほとんど空ですが、カリキュラムと試験対策の隙間に増やしていきたいと思います。
そのうちHTMLからJSPに移行しようか悩むかもしれないので仮TOPで。(Fc2はJavaに対応しているのか?)
Tomcatが使えるのは有料サーバーの上レンタルで実現するのはとてつもなく不便…!!電気使い放題の一軒家で自サーバー立てて運営するしかない…!?なんて不便な言語()
(自宅サーバー運営調べてみました。PCにガンガン金かけるクリエイターからすると安!?てなりました(お金だけならね…))
さくらのVPSがおすすめのようですが、とてもじゃないけどまだセキュリティ対策なんてできないのでおとなしくphpとか覚えたほうが良さそうですね
サイドバーにも追加しました。
5月の終わり、Java学習進捗
暑くなってまいりました!
夏の到来とともに虫という虫が部屋に侵入してきます!助けて!!
前回の更新からだいぶん間が空いてしまいました。
カリキュラムのスケジュールが詰まってきてギリギリ解消していました…なんとかかすかな余裕を残して今週を終えたので今週末は久しぶりにお休みです。1日12時間勉強は楽しいし構わないのですが(どちらにせよ空き時間全部勉強してるし)エラーと戦って何もできず無力感にさいなまれながら時間が経つのは何よりも恐ろしい……
前職でデスクが近くだったSEさんも1日かけてほんの1行のミスを見付けて直したときはすごい喜びようでした。昔サイト作ってたときに思う通りにならなくて徹夜で仕上げたときあるからわかる……なつかしい…。
全然解消できなかったエラーが実はちょっとしたミスで、とかたいへん怖いですね。
論理エラーにも悩まされているので、今のうちに失敗しまくって経験値を貯めていこうと思います。サクサクいくよりたくさんの失敗のほうが後で役に立ちますし。(余談ですが、春原ロビンソン先生が原作の「姫様“拷問”の時間です」の12話を失敗で落ち込んでいる人に読んでもらいたいです)
さて進捗の報告です。
スッキリわかるJava入門は1周しまして、2周目はゆっくりいこうと思います。なぜか?スッキリわかるサーブレット&JSPとJava Silver問題集(黒本)を購入しました!ので早く読みたいから!です。
本が好きなのでとにかく次々読んでいきたいのですね。復習大事ですが…
そういったわけで、カリキュラム途中にサブJSP本さんにはお世話になったり、黒本は2、3日で1章ずつ進めることにしています。余裕があればスピードアップしたいですが…
カリキュラムはDB操作までおおよそ終えまして、ついにやや実践的?な内容に入りました。絶対エラーがたくさん出ると思うので、レベリングに徹したいと思います!来週からの自分ファイト!
最後に本日論理エラーを修正して飛び跳ねたので備忘録です。
サーブレットからDBへSELECT命令する内容でしたが、HTMLのformから名前・年齢・生年月日を取得して当てはまったもので検索するのですが、生年月日だけを入れたときに合ってようが合ってなかろうが全件検索されるという…問題なくtryブロックが実行されているので論理エラーです。
SLECT文の条件は、
WHERE name = ? OR age =? OR birthday = ?
です。PreparedStatementを使っているので?には取得した値が入ります。
問題は前述のとおり。悩み続けても仕方ないのでメンターさんに相談です。
このときORDERも入れててSQL構文エラーも出てたのですがそれは置いておいて…
経緯の詳細は省くとして、いちどnameとageを検索条件から抜くと正しく実行されました。ということは、nameかageのどちらかで問題が起きています。
そして結論を言うと、nameの値をgetParameterした際に空文字が代入されていたことが問題でした。空文字でString型の値を検索するとなんでも合ってる!と思われるようです。
spaceでもなく空文字有効なの?という不思議は置いておいて(こちらのQAでやや不思議が解消です-
空文字の意義 -どうして、sqlserverには、空文字が存在するのでしょう- SQL Server | 教えて!goo
)、この空文字をとりあえず名前に使わなさそうな記号を代入することで撲滅しました。
if(StringUtils.isEmptyOrWhitespaceOnly(inputName)) {inputName = "×";}
もっとよい方法があれば、ぜひ教えてください。
あと今後の自分に向けて忠告です。現在の自分はとりあえずザーッとコードを書いて、あとから行から行へワープして修正しているせいか、自分が書いたコードでもしばらくしてからパッと見ると何をしているかわかりません。自分で書いたコードくらい一瞬で理解すべきだと思います。先にプロセスを考えて処理を整理して書きましょう。いま忠告しましたよ!
スッキリわかるJava進捗
本日は1日中スッキリわかるJava入門を読み進めて392pまで読了。
Progateで履修済&半分がC#と共通の知識なのであれもこれも見たことある状態であるものの、復習にもなるし、何より今まで読んできた書籍より圧倒的に詳しい解説があるのが素晴らしいと思う。C#のときによくわからなかったgetter,setterもきちんとアクセス制御と絡めて理解しやすいように説明してあることに感動した。本当に他よりわかりやすい。
明日からまたカリキュラムも進めていくので書籍は来週中までに読了してしまいたい。それから復習も兼ねてBronze問題集を一気に解く。2周してミスがなくなったところで試験申し込みをする予定。
SPI
いまのところ、SPI学習は
このサイトがたいへん有用で、数学の学習を挫折した経験があっても分かりやすかった。昔躓いたときにこういったサイトで学習していれば別の道もあったかもしれない。(そのときはそのときでこれ以上に大切にしたいことがあった)
1日1単元だと並行学習には少しきついかもしれない…?ので、公式と簡単な付属問題だけやっていったのち、最後に数日とって応用問題と期末テストとしていきたい。
英語学習はどのみち必須ということで、DUO3.0を毎日読んでいる。
JavaPGへ、最初の一歩
プログラマへの転職活動備忘録・学習状況チェックとしてブログを始めてみました。
まずは状況確認。
- 3月中旬頃からJavaの独学開始。
- 2020.4.20にGEEKJOBで学習開始。(なお新型ウィルスの影響で完全オンライン学習)
- 基本構文の学習を終え、オブジェクト指向学習へ移行中。
- 並行してBronze試験対策も進めている。5月中にBronze資格取得が目標。
- 教本はスッキリわかるJava入門第2版
- 世情的に難しいところではあるが、3ヶ月での転職完了を目指す。
- 1年で問題なく開発ができるスキルを身につけたい。
前職は3DCGデザイナー兼Unity使いだったので完全に別軸方向転換ではなく、C#やRubyやPythonにも手を出していたのでややスルッと内容が入ってくる。JavaはC#とかなり酷似しているので少し安心した。配列はArrayList使わないと変更ができないのは不便だなーとか中間コードを作成するというあたりがギャップだったり。
ともあれ、この自粛GW中にBronze試験対策を復習も兼ねていけるところまで進めようと考えている。