見出し画像

42 Tokyo で学んだこと

おそらく 42Tokyo について書くのはこれで最後のはず。2020/9 (piscine) - 2020/11 (kick off) - 2022/7 (black hole) の 22 か月間で何を学んだのか、ざっと書きます。やる気があったら書くとか言ってたら次の新入生入ってきちゃったよ。

退学後の現在

実務未経験から派遣エンジニアやってます。

「正社員じゃないんだ・・・」 → 正社員やりたくない(性格の問題で辞められなくなりそう、正社員って会社もクビにするの大変だからいくらでもサボれちゃうからなんかやだ、ボーナスは欲しい、ボーナスだけくれ)

一社目、四か月で案件二つ、実装~テストと、設計~テストをやらせてもらい、案件の忙しい時期を乗り切ったところでお役御免で現在二社目。C++、C#、VBA、Java あたりを中心に実務で書かせてもらってます。複数人での大きなプログラムの開発のやり方とか、設計書の書き方とかその辺を実務で勉強したかったので。

採用されるにあたっては、特にコーディングテストや制作物の提出とかも今のところなく、主に面談でコミュニケーション能力を評価されて採用されてる感じ。コミュニケーション能力については前回の記事で多分大体書いたので今回は書きません。

学んだことざっと箇条書き

  • シェルってなんだ

  • OS ってなんだ

  • OS とハードウェアの関係ってどうなってるんだ

  • デジタルデータってなんだ(ビット表現)

  • CPU、メモリ辺りってどうなってるんだ、何してるんだ

  • プログラムってなんだ、どう動いてるんだ

  • いいコードってなんだ

  • いい設計ってなんだ

  • (ネットワークってなんだ)

まなんだこと

シェルってなんだ

CUI アレルギーだったので C# とか Processing みたいな視覚的にわかりやすいところから独学を始めていたんですが、そろそろ手を出さなきゃなと思っていた部分。だいぶ慣れました。使いこなしてはいない。シェルスクリプトかけって言われたら man とggrks しながらなら書ける程度。使いこなしてる人は使いこなしてるので俺の問題。
業務ではどうかといえば使った場面は MySql 入れていじったりテスト用のデータを大量生成するのに使ったくらいなので特に困ってはいない。

バリバリ使ってみたい人は 42 の課題でも使える場面はバリバリあるのでバリバリ使うといいと思うバリよ。

OS ってなんだ

42 入ろうと思った主な理由そのいち。
初心者向けのプログラミング言語のチュートリアルとかって大体、
「こうやって書くと、こうできますよ!」
は書いてあるんだけど
「どうしてこう書くとこうできるのか」
を書いているところがなくて(それを書こうとするとそれだけで膨大になるから当然書くわけはないんだけど)、俺のやりたいことってどうやればいいんだろう~~?になってたんですが、42 でちょうどその部分から学べた、その部分の学び方も学べたので非常に良かったです。

「その部分」って何 → コンピュータサイエンス、Computer Science (CS)
とかって部分っぽいです。
42 じゃなくてもハーバード大学が CS50 (CS50x 2022 (harvard.edu))ってやつ提供してるのでそっちでも学べるっぽい。日本語版 (CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。) もいつの間にか出てた。

OS とハードウェアの関係ってどうなってるんだ

デジタルデータってなんだ(ビット表現)

CPU、メモリ辺りってどうなってるんだ、何してるんだ

プログラムってなんだ、どう動いてるんだ

このあたり全部 CS ?この辺りを理解りたくて 42 やった。結果としてだいぶ解像度高くなったし、まだわからんこともたぶん自分で調べていける見通しがついた。

いいコードってなんだ

独学やってる間は全然こんなこと考えませんでしたね。あれ、この処理さっきも書いたな、って思ったところで関数を切り出す、くらい(ド初心者)。
MainForm.Button_Click() に全部の処理を詰め込んでたようなもんなので、自分が使うだけのツールなんで別にいいっちゃいいんですが、機能追加とか修正とか後からやる気は起きませんよね。

42 でそういう話をいろんな人としていろんな観点を知れました。できるようになったとは言っていない(もっと書け、はい・・・)。

リーダブルコード読んどけ。

いい設計ってなんだ

独学やってる間は全然こんなこと以下略。そもそも設計なんてしてなかったし。

大規模なプログラムとかってどう書くんだろ~~~~?はわわ~~~~??って感じだったんですけど、分割、設計、そうっすね・・はい・・・・。

クリーンアーキテクチャ読んどけ。

(ネットワークってなんだ)

あんまちゃんとやってないのでカッコ書き。俺のやりたいことに今のところネットワークは絡んでこないのでやる気薄め。でもインターネットは楽しいので。

最後に

途中まで作ってまとめきれんな、と思って放り投げておいたよくわからん図を貼っときます

残ってるみんながんばえ~~~~~~

なんだこれ


貰えるのであれば貰えるものは貰う乞食(いざ本当に貰ったら申し訳なさでやる気が出る仕組み)