いきなりですが、質問です。
「エンジニアの仕事とは何でしょうか?」
昔々は1チーム10人の様な仕事がたくさんあって、プログラムだけを書いている人も『エンジニア』として存在していました。しかし近年では1チーム2-3人の様な仕事が多く、プログラムだけを書いてればよいわけでもなさそうです。
言い換えると、近年の一般的なエンジニアは 「本来9人でやってた野球を3人でやるような仕事」 をしていそうです。
さらに、フィールドにいる9人以外にも、コーチや監督の業務もその場にいるメンバーで賄うことになります。足りない6人の穴を補おうと思ったら、全員が守備範囲の広いプレイングマネージャである必要もありそうです。
蛇足ですが、ベンチに控えも入れられないから 有給を取るのも難しい です。
…といったところで、『エンジニア』として仕事をするためには以下の様なスキルが必要そうです。
- ヒアリングスキル
- 知覚力・論理的思考力・問題解決力
- コミュニケーションスキル
- ドキュメンテーションスキル
- IT一般スキル
- プログラミングスキル
まとめると、「エンジニアの仕事」 はこれらの能力を駆使して、お客様の困りごとをヒアリングして、課題を知覚して、論理的に考えて、問題の解決方法をお客様に提案し、文書化してメンバーに伝え、ITスキルやプログラミングスキルを駆使してリリース物を製造して納品してお客様に幸せになってもらう仕事と言えるでしょう。
『プログラム問題集』ではなく、『お仕事問題集』を提供したいと考えています。 前述の必要スキルのうち以下3項目について訓練できる問題集としています。
- 知覚力・論理的思考力・問題解決力
- ドキュメンテーションスキル
- プログラミングスキル
問題集と解答例の構成ですが、問題集は「汲み取りながら」読む必要がある構成としています。 また「なぜ」そうするのか?といったことをなるべく書くようにしています。
お客様から『こんなことがやりたい』とざっくりした依頼が来た時にどう考えるか、最低限どの様なドキュメントを残すか、などを考えながら取り組んでもらえればと思います。
※たまに趣味で、ただのプログラム問題集も混じっています。
プログラムの学習についても、本リポジトリの問題集で可能ですが量が少ないです。 Udemy や、書籍でとにかく身につくまで反復を繰り返すことをオススメします。 『言語』の習得には、とにもかくにも反復演習が必要です。テキストをなぞるだけではなく、パズルを解くように楽しみながら課題を整理、理解して、ロジックやアルゴリズムに落とし込んでプログラムを書く といったアウトプットを繰り返すことが重要かと思います。
以下をインストールしてください。開発、および、本 README.md 以外のドキュメントを読むのに必要になります。
ツール | 説明 |
---|---|
Visual Studio Code | エディタ。プログラムの開発でも利用。以下VSCodeと記載。 |
Markdown Preview Enhanced | VSCode 拡張機能。Markdown に拡張機能を追加したもの。スタイリングやUML表示ができる。 |
PlantUML | VSCode 拡張機能。コードでUMLが書ける。 |
Draw.io Integration | VSCode 拡張機能。図形描画ツール。 |
課題 | 内容 | 要素技術 |
---|---|---|
試験進捗集計ツール | 試験項目書を解析して、試験結果・進捗の集計を行う。 | nodejs, html, javascript, jQuery |
試験進捗集計ツール2 | 試験進捗集計ツール機能追加。デイリー/担当者単位集計 | nodejs, html, javascript, jQuery, DataTable, Chart.js, Tailwind CSS, React |
Switch ソフトウェア一覧 | My Nintendo Store ゲーム一覧 | nodejs, got, cheerio, sharp, axios, Nuxt.js, Vue.js, Vuetify |
インタラクティブサイトマップ | 爆速サイトマップ作成ツール | nodejs, html, jQuery |
家計簿 | レシート読み取り(OCR)家計簿のPoCを行う。 | nodejs, Cloud Vision API, Nuxt.js, Vue.js, Vuetify, 凸包 |
労働問題と詐欺グラフ | バーチャートレース(グラフ)作成を行う。 | Python, Pandas |