こんにちは。
地方の無名文系大学に通う2年生です。
私は就活のために1ヶ月前からプログラミングの勉強を始めました。
これから1ヶ月ごとに勉強の進捗をここで記録していこうと思います。
今回は
・私が何故プログラミングの勉強を始めたのか
・初めてプログラミングについて勉強してみて感じたこと
・Javaの勉強で躓いてしまったところ
という3つの観点から記事を書いていきます。
自己紹介
・教育学部2年生(この春で3年になります)
・小学校の教員になるためのコースに所属
・今年の1月下旬にJavaの勉強を始める
何故プログラミングの勉強を始めたのか
私は小学校教員養成コースに所属していますが、元々小学校の先生になりたいわけではありませんでした。
本当は保育士養成コースに出願する予定だったのですが、親からの説得や自身の無知などの要因により変更しました。
そのあたりの事情は書き始めるときりがないので割愛させていただきます。
そして入学後初めて知った免許取得の条件や教育現場の実情、自身が教職に不向きであるという気付きなどにより、結局私は免許を取得せずに一般企業に就職することを決めました。
そのことを決意した後、大学の就職支援センターに相談に行きました。
東京で就職したいと考えているので、そのことも踏まえて話をしました。
正直その時は、学校のパンフレットに記載されている就職率の高さから、就職もそんなに難しいものでもないだろうと考えていました。
しかし勧められるのは大学付近の企業ばかり。
今までの卒業生で東京の企業に就職した人はいなかったのか?
疑問を感じ、過去の就職状況を調べました。
そして現実を知りました。
こんな無名大学では地方の企業にしか雇ってもらえない…!
よく考えれば分かることでしたが、国公立の底辺な上に設立してから数年しか経っていない大学では大卒の肩書もネームバリューも無いも同然。
もう東京で就職するには今バイトをしている飲食店の東京の店舗で社員をするしかないのではとも思いました。
そんな時、ふと頭に浮かんだのが
「学歴が関係のない職場であれば働けるのでは?」
ということ。
実は、私と同い年の知り合いに高卒でプログラマーになった人がいます。
その人(以下A君)が高卒でも就職できたということや、彼からプログラマーの人数はまだ不足しているという話を聞いたことを思い出し、もしかして今から勉強したら私でもなれちゃうかも?と思ったのです。
また、勉強してみて向いていないと感じたとしても、今時パソコンの知識がどこの会社でも必要だろうから無駄にはならないかなぁとも思いました。
そんな思い付き程度の考えでしたが、とりあえずA君に相談してみることにしました。
ちなみにその時の私(今も大して変わりません)がパソコンで出来たことといえば、検索、Wordでレポートを書くこと、メールを送ること程度で、Excelすら使いこなせるか怪しいくらいです。その上英語も苦手です。
よくプログラミングに手を出す気になったなぁと我ながら思います。
初めてプログラミングについて勉強してみて感じたこと
私はプログラミングの勉強をprogateを使って行っています。
A君の勧めでJavaから始めており、今はprogateのJavaの学習をとりあえず一通り終わらせ、復習として2巡目に取り掛かっているところです。
2巡目に取り掛かる前にGitも一通り学習しました。
progateの説明だけでは理解できなかった部分はA君に教えてもらいながら理解できるよう取り組んでいます。
この1ヶ月Javaの勉強をしてみて感じたことは、プログラミングが自分が思っていたよりも面白いということです。
思い付きで始めてみたことだったので、何事も三日坊主になりがちな私ではすぐに挫折してしまうのではないかと思っていましたが、就活のためとはいえ気付けば1ヶ月も続いており驚いています。
1ヶ月前までは何の暗号かと思っていたコードも、今では簡単なものなら理解できるようになり嬉しいです。
始めてみてよかったです。
しかし「出力する」「条件分岐する」「繰り返す」など一つ一つの動作はできてもまだ開発の経験がないため、実際にアプリを作るという段階ではどのようにこれらを活用していくかの想像もつきません。
また、これらを活用することでどのようなものを作ることができるのかもよく分かっていないままです。
この1ヶ月で勉強したことをこれから活用してアプリを開発するのは楽しみですが、同時に本当に自分にできるのかという不安もあります。
Javaの勉強で躓いてしまったところ
私がJavaの勉強で躓いてしまった主なところは
・拡張for文
・戻り値
・オブジェクト指向
・インスタンスメソッド
・インスタンスフィールド
です。
拡張for文
まず拡張for文ですが
for(int i = 0; i < names.length; i++){
System.out.println(names[i]);
}
と
for(String name : names){
System.out.println(name);
}
が何故同じ意味になるのかが初めは全く分かりませんでした。
「i++どこに消えた?」と思っていました。
「name」と「names」がそれぞれ何を指しているかもよくわかっていなかったように思います。
戻り値
これについてはreturnに何が入ってそれがどこに返されるのかよくわかっていませんでした。
どういった場面で使われるのかもよくわかっていませんでした。
正直戻り値とか使わずにそのまま書いたらダメなのかなぁとか思ってました。
オブジェクト指向
これはオブジェクト指向そのものがわからないということではなく、このタイミングで新しい用語が一気に出てきたのでこんがらがってしまい理解が難しかったです。
インスタンスメソッドとインスタンスフィールド
これについてもオブジェクト指向と同じような理由です。
インスタンスメソッドを定義しろという問題でインスタンスフィールドを定義してみるなどめちゃくちゃなコードを書いてエラーを連発していました。
なんとかこのあたりの内容も乗り越えてJavaのレッスンをすべて終わらせるに至りましたが、まだ不十分である自覚があるのでprogateのレッスンⅣからは特に復習に力を入れたいと思います。
終わりに
最後まで読んでくださってありがとうございました。
まだまだ始めたばかりでわからないところだらけですが、これからも頑張って続けていきます。
次は来月末に2ヶ月目の進捗を書きたいと思いますので、ご覧いただければ幸いです。