先週
え、もう3週間・・・?!!
ドキドキしながら入社日を迎えてから、もう3週間?!
月日の流れの速さに最近ついていけない月子です、こんにちは。
今週もゆるりと会社忘備録を書いてきたいと思います〜
今週は苦労したなぁ(遠い目)
手も足も出ないクラス型変数
今週も先週と同じような内容でした。
・例外処理
・クラス型の変数
・継承やインターフェイス
・コレクションフレームワーク
・UML図やシーケンス図からの読解
それぞれの問題で予定時間が書かれているのですが、
4時間くらいのところを、
私は24時間かけたりしていました。
手も足も出ませんでした……。
フォロワーさんに教えてもらったり、優しい同期に教えてもらったのですが、
全く理解でできず、「プログラミング向いてない……」と泣きそうになっていました。
ただ同じ問題と睨めっこしていると、

あぁ、そういうこと・・・?!
突然ひらめきました。
今まで散々教えてもらったのに、理解ができなかったのは、
私の理解が遅いのもあるのですが、
そもそも分からないところが分からない状態でした。
(根本的すぎる)
例えると、皆さんカレーの作り方を教えてくださるのですが、
私は「カレーって何?」という状態だったんです。そりゃ分からん。
例えば下のコードをご覧ください。
//鍋のメソッド
package curry;
public class Nabe {
public Curry make() {
//素材入れの作成
Sozai sozai = new Sozai("にんじん");
Sozai sozai1 = new Sozai("たまねぎ");
Sozai sozai2 = new Sozai("じゃがいも");
//カレーを生成
Curry curry = new Curry("材料");
//素材たちをセット
curry.addsozais(sozai);
curry.addsozais(sozai1);
curry.addsozais(sozai2);
return curry;
}
}
//カレーメソッド
package curry;
import java.util.ArrayList;
public class Curry {
private String name;
private ArrayList<Sozai> sozais = new ArrayList<Sozai>();
//素材の名前をセット
public Curry(String name) {
this.name = name;
}
//素材たちの中身を生成
public void addsozais(Sozai sozai) {
this.sozais.add(sozai);
}
}
こんなコードがあったとしましょう
(即興で作ったコードなのでクオリティについてのクレーム等は受け付けておりません精進します)
私の段階としては
Curry curryって何?
こんな感じなんですね。
カレーの中にカレーの変数?何それカレー臭すごくない?みたいな。
他にも、
Sozai sozai = new Sozai(“にんじん”);
というのも理解できませんでした。
Sozaiの中に何入れてんだ、頼むからString型に入れてくれよ分かりづらいだろ。
コードに向かってキレる私。そして返されるエラー。
最後にこれも分からんでした。
curry.addsozais(sozai);
自分が書いたヘボコード&行数が少ないから理解できますが、
行が長くなるたびに

この??Curryメソッドに??sozaiをadd??what???
畳み掛けるように、ArrayListやHashMapがくると、もーーーーお手上げです。
絵を書く&戻り値を意識した
ずっと同じコードを見つめているうちに、

あぁ〜〜〜〜なんとなく分かってきた、ような…?
私がやったのは2つ。
②戻り値を強く意識する
字が下手とかは気にしなくていいんです、頭の整理用だから(言い聞かせる)
②の戻り値を強く意識するは、
もーーーー本当に恥ずかしいことを白状するのですが、
public Curry make() {
//素材入れの作成
Sozai sozai = new Sozai("にんじん");
Sozai sozai1 = new Sozai("たまねぎ");
Sozai sozai2 = new Sozai("じゃがいも");
//カレーを生成
Curry curry = new Curry("材料");
//素材たちをセット
curry.addsozais(sozai);
curry.addsozais(sozai1);
curry.addsozais(sozai2);
return curry;
}
}
上記のメソッド、
Curryを返してますよね?
しかし私は、String型を返してると思ってました。
リターンしてるのに!リターンしてるのに!(2回言った)
いや、なんかもう、Curryを返すという概念がなかったんですよね。
そりゃーーーいくらコードと睨めっこしても分からんよな!!
これは上司や先輩にも言われたのですが、

固定概念が強すぎる
私にはそんな傾向があるらしく、このクラス型変数で強く出てしまったそうです。
いやだってCurryを返すって……意味わからんし……
しかし、

Curryを返せるんだ!
そう気づいた瞬間から、やっと問題が解けるようになりました。めでたし。
オブジェクト指向ができていない
これも、めちゃくちゃ悩んでいるところです。

コンパイルを通すために、コード書いてる
これもよく上司に注意されています……
そうなんです、正解の表示をさせるために、現実とはかけ離れたコードを普通に書きます。
たとえば、鍵がしゃべり始めたり、人間がお金を吐き出したり……
上のカレーの例であれば、カレーの中に鍋を突っ込むようなコードを書きます。
(実際、上のカレーコードさえ自信がないので、ミスがあったら教えてください)
現実世界のものと、リンクさせた動きじゃないと、必ずどこかでエラーが出てきます。
分かってはいるのですが、どうしてもまだ、めちゃめちゃなコードを書いてしまう自分がいます。
そのため今は、
正解のコンパイルが出ても、
絵に描いたり、現実世界の動きとリンクできてるか?というのを
一度読み直してから提出しているようにしています。
成功体験が気持ちよかった!
さて、まとめです。
今週は色々と苦労もありましたが、達成感もありました。
同じ問題と睨めっこして、解けた時の達成感はなかなか快感でした。
社会人になってから、初めてこんな達成感を味わいました。
今までは「背中で覚えろ!」という体育会系だったり、
新入社員の私に「半年で収益3000万だせ、しかし営業の付き添いはせぬ」という超ハードモードな壁を突きつけられてきたので…
こう、ちょっと頑張れば乗り越えられる!という問題をいただけたのは、すごく良かったなぁと思うのです。
そして教えてくださる上司や先輩、フォロワーの皆様の優しさに触れることができました。感謝。
あと1週間で1ヶ月!頑張って行こうと思います!!!
次の週。1ヶ月経ちました!
\ いろいろやってるよ! /
よわよわエンジニアのブログ:月子.log
雑多な発信をしてるツイッター:@moon_trdr
ゆるーーーい絵日記:@tuki__tukiko
欲しいものリスト 公開しています🌸
「鈴木 月子」宛に届けていただけると泣いて喜びます!
(送っていただいた方の名前・住所は匿名で送られますのでご安心ください♪)
***
派遣から正社員として、内定をもらいました!
【未経験からエンジニアになりたい人、おすすめのプログラミングスクール】
(コロナの影響で、オンラインでの無料説明会で案内しています)
1、GEEK JOB
私が通っていたプログラミングスクールです!
1番のメリットは、
無料の転職サポート&プログラミング教育を受けられることです!
私もGEEKJOBで転職サービスを受けて、入社しましたが、
最初から最後まで完全に無料でした。
プログラミングできるかな・・・と不安な方は、
最初は無料の説明会と体験会もあるので、
お試しで行くのも1つの手ですよ♩
「有料でもいいから手厚いサポートを受けたい」という方は、
私も大好きなマコなり社長が経営しているTECH::EXPERTをおすすめします!
なんと、質問し放題の環境が整っています。
未経験エンジニアとしての経験談なのですが、
質問できる環境ってありがたいですし、なにより成長ができます!
相談会や説明会は無料です。
DMMが開催しているプログラミングスクールです。
こちらは有料ですが、条件を満たすことで
支払った教育訓練経費の最大70%が教育訓練給付金として支給されます。
こちらも相談は無料です。
無料・有料どちらがいいかは体感だと、
有料の方がサポートが手厚い傾向です(当たり前ですよねw)
しかし無料だから適当というわけではないですし、
私のように転職を繰り返してお金がない人からしたら、
無料スクールはすごくありがたい存在でした🎵
無料スクール→自主的に勉強できる人・お金がない人
自分にあった方を選んでくださいね^ ^
コメント