私は自分のやっていることを見て、興味を持ち、質問をする友人がたくさんいます
Do you think I could be a programmer?
私の応答は
... ummm ... do you like math?
有益な回答が欲しいので、スクエア1から開始するが、批判的思考と問題解決スキルを持っている人のためのかなり適切な適性テストを知っている人がいるかどうか知りませんでしたか?
私は自分のやっていることを見て、興味を持ち、質問をする友人がたくさんいます
Do you think I could be a programmer?
私の応答は
... ummm ... do you like math?
有益な回答が欲しいので、スクエア1から開始するが、批判的思考と問題解決スキルを持っている人のためのかなり適切な適性テストを知っている人がいるかどうか知りませんでしたか?
回答:
「数学が好き」は悪いテストです。私は数学が好きではありませんでした(主に高校の数学教師の90%が吸ったからです)。
あなたが「数学」と言うとき、ほとんどの人はあなたが「非常に厳しいルールのセットに従って方程式を慎重に解く」ことを意味すると思います。プログラミングはまったくそのようなものではありません。
プログラミングは描画に似ていますが、達成できることは想像できることによってのみ制限されます。
重要なのは、システムを想像し、それがどのように機能するかを見る能力です。
私は子供の頃からBrainbench Aptitude Testをしていたことを覚えています。私はまだどこかに証明書を保存しています...
テストの概要:
Abstract Thinking
Process Flow
Spatial Manipulation
Analytical Reasoning
Inductive Reasoning
Logic Application
Word Problems
Attention to Detail
Following Instructions
Reading Comprehension
Rule Interpretation
Writing Analysis
Mathematical Problem-Solving
Word Problems
Process Mapping
General Processes
Letter Manipulation Processes
Number Manipulation Processes
Shape Manipulation Processes
すでに良いものが存在する可能性があります。
たとえば、プログラミング羊と非プログラミングヤギの分離に関する議論を参照してください。
プログラミングのすべての教師は、結果に「二重のこぶ」が表示されることに気付きます。まるで2つの母集団があるかのようです。それぞれが独自のベル曲線を持つ[プログラム]できる人々と[プログラム]できない人々です。プログラミングの教育と学習に関するほとんどすべての研究は教育に集中しています。言語の変更、アプリケーション領域の変更、IDEの使用、動機付けの作業です。いずれも機能せず、二重こぶが持続します。コースが始まる前に、プログラムできる人口を選ぶテストがあります。ダブルハンプを分解することができます。あなたはおそらくこれを信じないでしょうが、あなたは話を聞いた後にそうするでしょう。どのように/なぜ機能するかは正確にはわかりませんが、いくつかの良い理論があります。
テストで特定されるのは、一連の指示を操作化することに一貫性のある人々がどれだけいるかです。つまり、彼らは心の中でモデル(抽象化)を構築し、それらと連携できるということです。
もっと重要な「テスト」は、彼らが遊ぶことができる簡単なプログラミング言語/環境を示すことだと思います。たとえば、processingまたはpythonです。もし彼らがそのような言語を使って学び、楽しむことができたら-たぶん簡単なタスクを1つか2つ解決しながら-それはおそらくあなたが求めることができる最高の「適性テスト」でしょう。
「数学が好きですか?」悪いスタートではありません。数学は重要です、その後...
問題を取り上げてブロックに分割し始めることができるかどうかを音声で確認することをお勧めします。基本的な問題を段階的に進めることができるかどうかは、最初の良いスタートです。
プログラマーが日々持っている分析的で深い方法で彼らにうまく答えることができれば、彼らはおそらくそれを扱うことができるでしょう。
「数学が好きですか」よりも良い質問は、「論理パズルを解くのが好きですか」です。これは、数独など、または「ジョン、アン、ピーター、メアリー、ブルターニュは隣人です。ジョンには白い車があり、ブルターニュはアンの左に何とか、何とか順番に住んでいます」と答えます彼らは生きているのか?」
それがプログラミングだからです:1つの巨大な論理パズル。
好きな数学が重要だと思います。厳密に証明するものを楽しむという観点からではなく、それは真面目な数学者になるために必要です。しかし、あなたにとって重要な問題を考えると、数学的な方法でそれを解決することに関係する問題を定式化することができます。私が主張するのは、コンピューターが行うことはすべて数学であり、何らかの記号データを取り、それに対して何らかの操作を実行するということです。それが数学の本質です。だから、何かを数学的な構造のような何らかの種類に抽象化し、前進の理由を説明できるようにしなければならない。それがなければ、あなたはただハッキングし、いくつかのコードを捨て、それがあなたが望むことをすることを望んでいます。タイプミスや迷子にならずに複雑な代数を解決できることは、おそらくそれほど必要ではありません。しかし、計画を策定できることは重要です。私はしばしば10行のプログラムを書いて、あまり複雑でない数学が正しく行われたことを確認します。検証、発見の目的でコンピューターを数学と組み合わせ、詳細が十分にある場合は、それを使用して詳細を計算することが本当の鍵です。