プログラミング学習を始めて1か月が経ちました!

ブログを始める経緯

2021年5月7日からプログラミングの学習を始め、今日で30日目となります。自分の学習過程を後から振り返れるように記録を残していきたいなと思っています。Twitterだけだと後から見返すの大変かなと思ったので、ブログを始めることにしました。ブログ書くのめちゃくちゃ久しぶりです。

私は誰?

私は機械設計エンジニアをしてます。プログラミングは大学のC言語で挫折し大っ嫌いでした。ただ会社に入ってEXCELを使ったデータ集計をやるようなことも出てきて、ポチポチ作業するのめんどくさいなーと思っていたところ、知り合いの方からPythonという言語の存在を教えてもらい使ってみました。そして私はPythonに感動しました、、、。少しコードを書くだけでEXCELでポチポチやってた作業から解放されます。プログラミングってすげーって思いました。

プログラミング学習を始めたきっかけ

”私は誰?”に書いたようにたまに業務でPythonを使っていたのですが、業務でロボティクス関係の人と仕事をすることが増えてきて、機械設計の制御アルゴリズムとしてもプログラミングに触れる場面がちらほら出てくるようになりました(私は書きません、理解して使う側です)。ロボティクス系の人本当にすごいんですよね。機械工学の知識+プログラミングも書けますって感じでなんかもう本当にすごいんですよ。そんな人達を見ていたら”Python書けます”なんて恥ずかしくて言えないです、、、。所詮私の書くコードなんてググったやつを適当に編集して動くようにして使ってるだけです。もうなんか同じ”動く”でも天と地ほど違うわけです。そんな経緯もあり少し真面目にプログラミングの勉強をしてみようと決意したのが2021年5月のGWでした。

学習した言語は?

主にJavaです。理由は3つです。

【理由①:読もうと思った書籍がJavaで書かれていたから】この書籍を読んで勉強しようと思ったのですが、Javaのコードで説明されていて、何言っているか全くわかりませんでした、、、。でJavaを学ぼうと思いました。

画像に alt 属性が指定されていません。ファイル名: image-2.png

【理由②:オブジェクト指向をきちんと学びたかったから】恥ずかしながら”クラス”とか名前は知ってるんですが、自分のコードをクラス使って書いたこと1回もありませんでした。なのでまずはオブジェクト指向から学ぼうと思いました。いろいろググっているとJavaはクラス中心に書くとのことなのでちょうどいいかなと思いました。

【理由③:Python以外の言語を学んでみたかった】単純なる興味ですね。どうせ学習するなら新しいことやりたいなと。

実際Javaを学んでみてどうだった?

慣れていないのもありますがPythonより全然難しく感じます。Javaの学習の実践編としてAndoridアプリとSpringBootをやりましたが、Andoridアプリは楽しくJavaを学べましたね。SpringBootはプログラミングをやめたくなるくらい挫折しましたね。鬼ムズでした。詳しくは後述します。

1か月間学習した内容の整理

学習した内容をまとめると以下の表のとおりです。言語ごとの学習時間比率も円グラフにしてみました。まあJavaが半分くらいですかね。当初予定だともっとJava中心なつもりでしたが、壁にぶつかって回り道したり、興味のあるものに手を付けたりしてるうちに色々やることになりました。

変化点おさらい

30日間のおもな変化点を表にしました。特に大きかった変化点は赤文字にしときました。個人的にGitとIDEを使い始めたことはぶっちぎりで大きい変化点です。きちんと学習しようっていうモチベじゃなかったら”めんどくさそう”と思って使ってなかったと思いますね。学習の推移は、Java基礎文法習得→Java実践編開始→Androidアプリ作成→DBの学習が必要と感じる→SpringBootに挑戦→大挫折→Firebase面白そう→Javascriptに興味持つ→DB操作がしたい→Node.jsに手を出す→今に至るって感じですね。

振り返って1か月前の自分に言いたいこと

SpringBootに手を出すのは早いぞ!!これにつきますね笑。学習した中でぶっちぎりで難しかったです。その理由を考えると①ネットに情報が少ないこと、②同時に色々学ぼうとしすぎた(Webフレームワーク、html&css、DBなど)ですかね。プログラミング始めたころって出てくるすべての用語が全く分かんないんですよね。これは英単語わからないで長文読んでいるようなもんで、今考えると相当無謀だったなと思います。私はSpringBootで大挫折を味わいました、、、。でその挫折後Javascript始めたんですがこれがめちゃくちゃ楽しい。SpringBoot学んでるときは面白いいうよりは戦いって感じでした。エラー出て書籍読むググるの繰り返しです。戦いも必要だと思いますが”タイミング”があると思います。情報や教材がたくさん落ちているJavascriptでいったん楽に知識を貯めて再度挑戦したいと思ってます。

Twitterを始めてみてどうだった?

私はプライベートでもほぼTwitter見ません。一応趣味用のはあるんですけどたまにしか見ません。そんな私でしたがプログラミング初心者の人がTwitterに結構投稿していることを知り、学習仲間を増やす目的で始めました。結論としては初めて良かったです。学習開始から何日目みたいのを毎日投稿している人が居て、早速真似しました笑。朝起きてやること宣言して1日で必ず終わらせるみたいなルーティーンに落ち着きました。夜仕事から帰ってきて”朝方の俺、ふざけんなよ、、、。”みたいに思うこともありましたが、達成できないのは悔しいので頑張ることできました。30日のうち宣言した内容を達成できなかったのは1日だけだったと思います。あと情報取得にとても役立ちました。今でこそProgateやドットインストール知ってますが、始めたころは全く知らないので出てくる用語を片っ端からググり良さそうなものに取り組んでいきました。あと最近は少しずつ学習仲間も増えてきて楽しいです。スクールとか行っている訳じゃないので学習仲間は貴重だなと思います。たまに”嘘だろ、、?”みたいな学習ペースの人もいますが、絶望したり張り合ったり適当にモチベあげながらやってます。マイペースに行きます。たまに”Twitterやらずに勉強したほうが速いんじゃないか?”って思うときもありますが、人間そんなにずっと集中できるわけじゃないんで少しくらいの余白はあっていいと思ってます笑。

プログラミング学習続けられそう?

この1か月間のペースでは無理ですかね、、、笑。今ままでの30日間はまずは習慣化させるため重要な約束以外の隙間時間はすべてプログラミングに充てました。それでも学習時間は大体1か月で約60時間、、、。結構やりまくってたつもりだったんですが集計してみると意外とこんなもんかって感じです。以下の記事だと業務レベルのプログラミング技術習得には1000時間とのこと。60h/月 x 18か月 = 1080h で1年半ってとこですかね。正直続けれそうなのは40h/月くらいじゃないなと思ってるのでもっと時間かかりますね。ずっとプログラミング全振りはできないので。

外部記事:プログラミングの習得には1000時間が必要なのか。時短でスキルを身に付ける方法を解説
https://tech-camp.in/note/technology/61849/

ただ持続可能なペースを見定めて学習を続けようと思っています。実際に1か月前を振りかえるとめちゃくちゃ成長したなーと感じます。あとプログラミング学習開始と同時に始めた”朝活”は完全に習慣になりましたね。朝活やればお出かけする日でも1.5hくらい学習時間は確保できます。友達とのキャンプに行く日の朝と、翌日のクタクタな夜にも学習やりました。あれは我ながら自分の強い意志を感じました笑。朝活やってなかったらコンスタントに学習はできていなかったと思います。

最後に

記事を読んでくださった方本当にありがとうございました!1か月は一心不乱に学習するって感じやってきましたが、これからはTwitterでほかの学習している人たちとの交流も増やしていきたいと思ってます。やっぱり継続している知り合いがいるとモチベも続くと思うので。これからも学習継続しながら定期的に記事書こうと思うのでよろしくお願いいたします!

おまけ:読んだ書籍