エンジニアが初心者から実務に移行するためには実際何が必要なのか?
自分自身が初心者をようやく脱出しつつあるので、とくに有用だった知識を備忘録としてまとめておいて、来る新人教育のときに活用しようと思う。なんとなく抽象概念〜実務に向かうように列挙してみた。
コンピューターアーキテクチャ(ハードウェア、OS、プログラミング言語など。実装は知らなくても抽象的なしくみは知っておくべき)
構造化プログラミング
オブジェクト指向プログラミング、カプセル化
関数、戻り値、引数の概念
型の概念とクラス(Stringはクラスで実装されているというのをきっかけとする。クラスを定義すると型を作れる、データとデータの操作ロジックをまとめておくと便利とつなげる)
良いコード 悪いコードで学ぶ設計入門(マジの良書。実務のイメージが一気についた)
リファクタリング 既存のコードを安全に〜 -> クソコードのイメージをもっておく
早期return
バリデーションの必要性とコンストラクタ。型の有用性につなげる。
git(VSCodeのGUIでいい)
TABによる補完、スニペット(存在を知っておく。認知してないと使えない)
vim(nanoでもいい。SSH接続で直接ファイル編集できるとはかどるという実感が必要)
フォーマッタとリンタの存在、コーディング規約の存在
慣習的な命名規則について(booleanはisSomething, キャメルケースとスネークケースなど)
型、引数、戻り値、クラスとメソッド(クラスとメソッド名からほしい処理を発見する)
ここまで知っていてようやく公式ドキュメントが読めるようになると思う。GNUオプションとPOSIXオプション
シェルスクリプト
コマンドライン引数とは
OSSライセンスについて
自分が全く知らないものの存在を認知するには
ChatGPTに「〇〇ができるものには何がありますか」と聞く。手軽、最新、かつ一人で可能な最良の手段だろう。ChatGPTは使わないと損。
もう一つは、「書店に行って」「PCの棚に行き」「資格の棚を」物色することだと思う。資格のテキストはとても網羅的に、必要十分な知識が書かれているため、全く知らない状態から入門するのに最適。分野ごとに手に入れるのがよいだろう(機械学習ならディープラーニングG検定…など)「実装」というキーワードを知ること。
デザインパターン、ソフトウェアアーキテクチャについて知る。理解する。この2つが理解できているとOSSのコードが読める。OSSのコードが読めると自分のコードに取り込める。これが最後の鬼門っぽいことがわかった。
この記事が気に入ったらサポートをしてみませんか?