SESの会社に入って3週間経過しました。

プログラミング

 

先週

 

え、もう3週間・・・?!!

 

ドキドキしながら入社日を迎えてから、もう3週間?!

月日の流れの速さに最近ついていけない月子です、こんにちは。

 

今週もゆるりと会社忘備録を書いてきたいと思います〜

 

今週は苦労したなぁ(遠い目)

 

手も足も出ないクラス型変数

 

 

今週も先週と同じような内容でした。

 

・API
・例外処理
・クラス型の変数
・継承やインターフェイス
・コレクションフレームワーク
・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つの手ですよ♩

無料説明会はこちら

 

2、TECH::EXPERT

「有料でもいいから手厚いサポートを受けたい」という方は、

私も大好きなマコなり社長が経営しているTECH::EXPERTをおすすめします!

なんと、質問し放題の環境が整っています。

未経験エンジニアとしての経験談なのですが、

質問できる環境ってありがたいですし、なにより成長ができます!

相談会や説明会は無料です。


無料相談会はこちら

3、DMM WEBCAMP

DMMが開催しているプログラミングスクールです。

こちらは有料ですが、条件を満たすことで

支払った教育訓練経費の最大70%が教育訓練給付金として支給されます。

こちらも相談は無料です。

無料相談はこちら

 

 

無料・有料どちらがいいかは体感だと、

有料の方がサポートが手厚い傾向です(当たり前ですよねw)

しかし無料だから適当というわけではないですし、

私のように転職を繰り返してお金がない人からしたら、

無料スクールはすごくありがたい存在でした🎵

 

有料スクール→手厚いサポートが欲しい人
無料スクール→自主的に勉強できる人・お金がない人

 

自分にあった方を選んでくださいね^ ^

 

この記事を書いた人
月子

文系エンジニアの月子です。
SEになり、3年目。主な言語:Java / Python / GAS
フリーランスエンジニア&副業で年収1千万いくのが夢です。

駆け出しプログラマーの毎日
プログラミング
スポンサーリンク
駆け出しプログラマーの毎日
月子.log

コメント

タイトルとURLをコピーしました