ちょっと変わった独学プログラミング塾 & MENTOR(メンタ)
ようこそ、メンターの「のぶ亭」です
コンピュータの世界(インフラ、環境、サービス、デバイス、概念、言語、カテゴリ(ジャンル))は、ますます進化し広がり続けています。 インターネットの普及で加速度的に変化したことで、エンジニアは様々な対応(できるか、できないか)が求められています。
ところが、基礎を勉強する間もなく(プログラミング言語は基礎ではありません)実践に向かうため、さらに混沌とした事態に陥る方が少なくありません。 このようなエンジニアの方に対し、これまでの経験、そしてこれからの変化予測を踏まえて、メンタル面、思考(実践的な考え方)、心構え(チェックポイント)、指針、本質(実態)をお伝えすること、そして可能な範囲で技術支援をさせていただきたいと思います。
メールによる文章が基本です。とはいえ、文章表現が難しい場合は、図解、スナップショットやスライドや動画などを使ってお伝えします。
「わからないが、わからない」 から
「わからないところが、わかる」 から
「わからないところは、どうすればわかる様になるのか」 から
「わかった」「できた」 へ
これが独学の本質です。自分自身で解決できるように、貴方の側で支えることがメンター「のぶ亭」の目標です。
よろしくお願いします。
プログラミングの本質とは何か?
もし、
- もっと簡単にマスターできないのか
- 何を作ればいいんだ
- どうやって作ればいいんだ
- 何から始めればいいんだ
- どんな流れになるんだ
- 技術を習得したい
- プログラムが完成しない
これらの共通する問題点・疑問点を整理してみます。
プログラミングの本質は、「自分の考えを、論理的に磨き、コンピュータ的に組み立て、プログラミング言語によって実現する」です。貴方のその問いかけ、その言葉は様々ですが、共通の問題について考てみます。そして、プログラムを作るための勉強が、いつしかプログラミング言語の勉強やコードを書くこと変わり、本質を見失わないようにするために。同時に、プログラム作りは「楽しい」、「面白い」ご紹介したいと考えています。
とは言え、どんな方法であっても、時間(期間)はかかります。まずは、その覚悟と心構えが必要です。そして、
低い目標を立て、行動し、結果を出し、フィードバックする。→「設定した目標の達成」
これが、モチベーションを高め維持する秘訣です。大それたは思いや計画は心に秘めておいて、実現可能の高い方法に切り替えましょう。
インターネット(Webサイト)
とても便利な時代になりました。わからないことがあれば、ググるだけで様々な情報にアクセスできるし、開発環境も無料で入手できるのですから。
だけど、安易に「便利だ」とは言えません。すべてが正しいとは限らないからです。
- ウソ、間違い、勘違い、未確認
- 情報漏れ、情報不足
- 情報の鮮度(探している物より古い)問題
- 対象バージョンの違い
自己対策として
- 鵜呑みにせず、一つだけに固執せず、確認して活用する
- もし、間違っていたら、すぐに認識を改める
これは、便利になった代償ですね。くれぐれも信じすぎないように気をつけましょう。現時点では、「こうなのかな」程度で、いつでも認識の差し替えができるようにすることです。
役立つサイトは、「ブックマーク」として保存し、たまには整理しておきましょう。
小さな目標→行動→レビュー(ステップアップ,積み重ね)
- 小さな目標を立てて、成功体験を積み上げていく
- これまでの体験を元に、次への目標を設定する
- これを繰り返していくことで、本来の目標に近づいていく
長期計画は、成功率も低く長続きしない。そもそも立案時間が無駄です。それよりも、「小さな目標と行動と成功体験」を繰り返すことで自信につながっていくと考えます。
独学における問題点として
- 具体的に何を目標にすればいいのか
- 具体的な行動と、やるべき事とは
- 結果をどうレビューすればいいのか
- 次への反映はどうすればいいのか
これらすべてを一人で考え、一人で行動するのは難しいし、方向性は?内容は?将来性は?・・・と 間違っていても、気づかなければ、遠回りすることになります。例えば、「やるべき事を避け、好きなことに時間を費やす」です。独学でなくても陥りやすい罠です。
メンターは
- 客観的な意見やアドバイス、実体験からお話することができます
- さらに、その中からヒントが見えてきて、膨らませていくこともできます
- 特に、心構えや考え方については、適切なアドバイスができる自信があります
- 長期間、お付き合いすることでその精度も高まってきます
目標例・・・さらに細分化する必要あり
- 「プログラムを作るために言語を理解する」≠「プログラミング言語を学習する」
前者が「正」と考えた場合、プログラム作りの意識のない言語学習。
言語仕様そのものを学習する場合、後者は「正」。
しかし、同じ意味にはならない - 「プログラム作りのための習得ストーリー」
- 「全体(システム)デザイン」「見た目のデザイン」の重要性
- 「人の書いたプログラムを理解する方法」
- 「目先の問題:早急にプログラムを作るために」
- 「一人反省会」とは
- 習得するための原理原則「心構えと考え方と行動指針」
- 「思い出せない操作を思い出す方法」
- 「作業の時間割」に「反省・整理時間」を加える
- などなど
最後に … メンターから一言
試行錯誤を続けますか?
もの作りに役立たない「基礎学習だけ」を続けますか?
私は、ほとんどの技術や考え方は、試行錯誤による実践と基礎学習を積み重ねながら磨いてきました。つまり、今の貴方と同じです。
「先に知りたい、考え方や行動指針など」について、貴方の状況に合わせた形でお伝えするのもメンターの役目と考えています。
プログラム作りについて
- 学び方、考え方、習得方法
- 孤独を活用する「逆境の時ほど力を発揮する」
- 混沌とした状況からの脱却
- 今やるべき事、どう目指すかといった指針
- メンタルを強く持たないと続かない
様々な問題について、自分で考え、答えを見つける、これは大変な作業です。MENTORの重要性ここにあると考えています。