🏫

学生時代に知っとけば良かったなあ...を挙げてく

に公開

前書き

学生時代はちょっとC言語で変数、条件分岐、ループ、その他基礎的なプログラミングルールについて学んだだけで、実際にどういうことをすれば実用的、現代的なアプリケーションが作れるのか全然知らなかったなあ...と振り返ってみて思います。

なので、当時の自分がこれ知ってたらな~~なことを書こうかと。

脳内の散らかったものがそのまま出てきてるので、駄文です。

C以外のプログラミング言語を知ろう

授業でCをちょっと書いたとは言え、Cだけでアプリケーションを作るのはめちゃくちゃ厳しいです。
知識が全くないんで、ヘッダファイルとかの挙動も全然知らないとなるとライブラリを拾ってくるのが難易度高すぎます。

Pythonはインデントで挙動が変わるしデバッグの難易度が高すぎるのでダメです。動く理由も動かない理由も理解するのが難しすぎます。
Javaはオブジェクト指向というキーワードに囚われすぎるのでダメです。あとEclipseが重いし分かりにくい。
C#はVisual Studioが学生が持ってる貧弱PC(当時はギリギリSSD普及してないし)の性能に対して重すぎるのがダメです。

Goを使いましょう。

当時のGoの流行度は分かりませんが、おそらく取れる選択肢としてはかなりマシなものだったんじゃないかと思います。
ドキュメントや記事がどれくらいあったかとか、Goのスタイルにコーディング経験ほぼゼロの学生が耐えられるのかとか、まあ懸念点はありますけど....
Goに入門しておくとかなり良いものが作れたんじゃないかな?

当時の自分は何故かVSCodeをやたらと使い込んでたんで、GoとかGoの拡張機能を入れて動かすところまでたどり着いてたら世界を変えてた可能性があります。はい。

後述もしてますが、ビルドとかテストに必要なあれこれが同梱されてるのも便利ですし。

ライブラリを使おう。ビルドツールを使おう。

普通にモダンな言語で開発環境を整えればビルドツールが付いてきます。
ライブラリの導入もめっちゃ楽です。
これ学生の時に知りたかったよね。ほんとに。

Java人間なのでJavaの話をしますけど、Webページ作りたければSpring Boot使えばいいし、ちょっとしたファイル操作とかデータ操作したければApache Commonsとか適当に探せばいいし。
そこの管理は全部Mavenに任せれば良いんです。

Goはgo get / go install (途中で変わったらしい)使えばいいし。

学生時代の自分は世のアプリケーションは一体どうやって開発されているのか、皆目見当もついていませんでした。早く知りたかったよねー。

Linuxで遊べ

学生のお財布に求めるのは酷なんですけど、Linux環境を1つ持っておくとちょっと面白かったんじゃないかなと。
クレカがないのでクラウドサービスはちょっと厳しい...ということで中古ノートPCを買ってUbuntuかDebianを入れるのが良いでしょうか。

社会人になった自分はIntel NUC(最近ASUSに事業譲渡されましたが)で遊んでいますが、やっぱLinux環境を実機で持ってるとちょっとおもろいので、学生の暇つぶしとして持っていたらもっともっと面白かったんじゃないかと思いますね。

ゲームかよ!って感じもしますけど、マインクラフトのサーバー環境を整えるだけでも良いものですし。
あと、aptみたいなパッケージマネージャだけでPostgreSQL環境作れるのも良いですよね。WindowsにPostgreSQL入れるといろいろめんどくさいですから。

番外:今の学生に向けて言うなら

コーディングやりたいなら基礎的なコーディングのテクニック、ビルドツールの使い方を軽く押さえてJavaかGoでアプリ開発してみると良いと思いますね。

こういう感じでGeminiとかに質問してみて、わからない単語は全部GeminiとかGoogle検索で解消していけばかなり良いものが作れると思います。

コーディングは全部AIがやってくれるさ~という説は多く囁かれてますし、実際そうなってもおかしくないと思いますが!
コーディングを一切やったことない人間が作るシステムなんてだいたい上手くいかないので!
簡単なもので良いからアプリ作ってみると良いと思います。

特にWebシステムは超おすすめですね。
UIを宣言的に書く考え方とか、データの受け渡しとか、そういうのをある程度考えながら処理の流れを組み立てる経験が積めますし、リクエストからレスポンスまでの1つ1つの処理が薄くできるので楽ですし。
ライブラリの導入とかライブラリのドキュメントとにらめっこする経験も積めます。

最悪ドキュメントのリンク貼ればAIが解説してくれたり、サンプルコード生成してくれたりしますからね!
なんでもAIの補助輪付けてやってみればいいと思います。

Discussion