基礎研究をやって0->1 をやる場合は、確かに開発より先に基礎だと思います。 とはいえ、基礎研究を役立てる訳じゃないパターンの人までそれというは...的な内容でした。
Agile的学習方法Gunma.web #49@kanayannet
View Slide
前提学習方法を学習する話すごい技術の話じゃないだがしかし「重要」です単純な段取りの話でもない
今回の対象自分の学習方法を見直したい方初学者をマネジメントする役割の方昔の技術が好きな方
対象外「即戦力」「案件丸投げ」可能な人材ほっといても「勉強してくる」人材知識を「一気」に頭に詰め込みたい方
昔の技術?BBSCGI or素のPHP
懐かしいでしょ?
解った方は同年齢かそれ以上
お題プログラミングは出来る開発は経験ないこの前提の方にどういう順番で教えるか?
何を?BBS
実は
重要な要素を揃えている一覧表示機能新規書込対象指定して削除対象を指定して表示対象の記事を編集
例1Frame WorkRuby on RailsLambda http apiExpress etc..RDBAmazon aurora: mysql
どうなりやすいか?作法だけで頭が一杯一杯開発どころではないSQLを覚えるまでに心が折れる
例2C言語 or JavaRDBmysql
どうなりやすいか?言語で苦戦はあまりない大学や専門学校でやってる事多いしかし...HTTP serverと言語を紐づけるところで躓くRDBつまづくレコードとカラムの概念に不慣れSQL??
例4レコードとカラムの概念を教えるtextファイルでいいよRDB使わない言語も「LL」を何かしら教えてPython, Ruby, Perl慣れるまで待つ文法にや実行速度に違いはあるが...「必要な機能」で足りないものはない
どうなるか?実装の際のイメージは湧く疑似コードは書ける状態実行環境整はまだイメージ沸かない
例4(続)Dockerコンテナで Amazon Linux入れるレクチャー会HTTP Server立てるApacheで構わないchmodの概念を教える読み,書き,実行何らかのLLで実装しようと提案CGIで構わない言語の pathをファイルの先頭で定義するだけ#!/usr/bin/....
どうなるか?立ち止まりはするが「つまずいて止まらない」ゆっくりだが確実に進む最後まで行く
謙虚に考える人間「一気」には無理一つ一つ覚える方が EasySimpleと Easy違うっていうけど...
「Easy」でもいいじゃん
ここで終わり?
SQLをレクチャーDocker: mysql公式イメージで立ち上げるMySQL clientを installする基本的な構文を教えるinsert, update, delete, selectwhere, order by, limit, offsetしばらくデータを色々入れてもらって...「遊んで」もらう
LLと繋げ方をレクチャー端末に LLの MySQL Libraryを installLLから基本構文で「遊んで」もらう
RDB(MySQL)とCGIを紐づけるここまで来れば自力でやれちゃうtextファイルから卒業おめでとう!
ここでお終い?
デザインパターンいきなり難しい奴とかやらないMVCで十分CGIファイル =コントローラ下記は別途ライブラリファイルで名前空間切って分けるModelView
どうなるか?Modelのライブラリ関数に全部引数渡しする悪いんじゃないだが...
オブジェクト指向を教えるインスタンス変数があるよこれ使えば関数の()内に引数渡しにせずともやれるよ(...)だけで数行使う問題解決
ここまで来ると...基本的なデータ設計 -> OKRDBの基本操作 -> OKOOでの実装およびライブラリ設計 -> OK自分で「とりあえず動くBBS」を作れる
もっと教えたい事あるんだけど詰め込みすぎここまでだけでも 2-3週間は慣れながらだとかかるはずFWもこれをやってからだと「本当の価値」に気づける
教育機関に言いたい事プログラミングは出来るけど...開発経験ない人多いんでない?教えていると凄く「残念」な気持ちになるなぜなら...
「一番重要」で「一番楽しい」おろそかにしてしまってカリキュラム消化するだけになってない?俺だけかな?この感想を持つのは?
まとめ教えたい(覚えたい)事が一杯あるけど...詰め込みすぎは要注意順番守った方が結局覚えるの早いFWやRDBの「価値」にも気づける他の学習必要なものも同じでは?確実に「進んでいる感」大事ちょっとづつでもね「楽しい」よ?
ご清聴ありがとうございました。