一見普通の人に見えるエンジニアは皆、実はプログラム開発を学ぶ途中で耐えたり、落ち込んだり、トラウマを抱えた社会病質者である、という人もいます。
プログラム開発を学ぶ過程で、ネット上で「苦楽を語る話」をよく見かけますし、私の周りの将来有望なエンジニア仲間が学習過程を共有しているのを聞いても、いつも同じような話だと感じます。さまざまな人々と繰り返し、オオカミの叫び声が遠くから次々と響きました。
私は最近、Viking Code School ブログの Erik Trautman の記事「Why Learning to Code is So Damn Hard」を読みました。その記事では、コーディングの学習プロセスを 4 つの段階に分け、それぞれの形成に影響を与える 2 つの重要な要素について説明していました。 「データ密度」と「知識の幅」という段階が、最終的にこの図に集約されました:
この記事は非常に興味深く、私が聞いた「エンジニアの苦い歴史」と非常に一致しているので、これを公開することにしました。プログラム初心者の皆さんには、この後戻りのできない道に入る前に、常に目を離さず、慎重に計画を立て、この先に何が待っているのかを明確に理解し、十分な心の準備をしていただきたいと思います。
次に、エリック・トラウトマンがプログラムを書き始めてからエンジニアになるまでに通過しなければならない 4 つの段階を紹介します:
エンジニアになりたいなら、この必要な旅の準備をしてください
まず、あなたの究極の目標を想定してください。プログラムの書き方を学ぶ目的は、この業界で生計を立てることです。関連分野で働くか、自分のビジネスを始めるかは、自信 (Confidence) と能力 (Capability) の分布図からわかります。 より多くの知識とスキルを習得すると、それに応じて自信が増減し、最終的には能力と自信が持てる「就職準備完了」ポイントに到達します。 Job Ready の前には、次の 4 つの段階に分けることができます: 最初の段階: 手を取り合って心と心のハネムーン期間 プログラム開発の世界に入り始めたばかりの友人は、常に高い夢と野心を抱くことができます。結局のところ、一方では、私たちが幼い頃、「プログラムを書くのは難しい」「コンピュータサイエンスは難しい」などの噂をたくさん聞いていたため、多くの人が最初から怖がって社会科学を勉強することになりました。 (...社会科学の専門家に悪気はありません) ; 一方、「Everyone Write Program」運動は非常に成功していますが、プログラム開発を理解しやすく、簡単に始めることができるツールや学習プラットフォームが数多く市販されています。 Codecademy、Treehouse、Code School などのオンライン プラットフォームや、誰もがプログラムを作成してこの職業で生計を立てることができるという幻想を作り出すことに成功したのは、MIT の Scratch 言語や Google の Blockly などのプログラミング言語ツールです。 突然、私たちの問題はもはや「困難」ではなく、「空高くの期待」と「地球のような大きな夢」になりました。 最も重要なことは、上記のツールとプラットフォームが非常に便利で、プログラム開発の経験がない初心者でも変数、条件文、プログラム構文を段階的に理解できるようになるということです。一通り合格してプログラミング言語の基本的なロジックや構文を習得すると、大きな達成感と「自分にもできる」「これならできる」という自信が生まれます。基本的には「エンジニア」には程遠いと感じています。 このステージは、さまざまなオンライン ツールとオンライン教育の助けを借りて、指先で指示を与え、コンピューターに正確に実行させるという支配感を楽しみ、その魔法に感心します。 Hello World から単純なループまで、演習を完了するたびに達成感が高まります。この時点で、多くの人がコンピューター サイエンスに夢中になったと感じるでしょう (そしてコンピューター サイエンスも自分を愛していると感じます)。 )あなたの能力が向上し、自信が大きく高まった「ハネムーン期」、この時期、あなたは世界が本当に美しく、これからあなたの人生が繁栄するだろうと感じるかもしれませんが、私は言わなければなりません。あなたは残酷に: この旅はまだ始まったばかりです。 第 2 段階: 混乱の崖 ほとんどのカップル/新婚夫婦と同じように、新婚旅行の期間が終わり、「恋に落ちることはそれほど単純ではない」ということがゆっくりとわかるようになります。 宿題の難易度が上がると(プログラムコードの長さも増えるのがポイント)、プログラムエラーの警告が頻繁に表示され、デバッグが始まります。そして多くの場合、最大の課題は、エラーが発生したときに、それが何なのか、何を質問すればよいのかまったくわからないことです。この段階で学習の進歩は停滞し始めます。あたかも道の途中で突然崖にぶつかり、進むべき道がなくなったかのように、これまでの知識に混乱し、自信を失い始めます。 通常、この段階は基本的なオンライン指導を完了した後に行われます。 W3スクールプラットフォームでは、個人のWebサイト(ポートフォリオWebサイト)の作成を例に、HTML、CSS、JavaScriptなどのWebページ制作に関する一連のプログラムを提供し、初心者でも単元ごとに構文や機能を学ぶことができます。各ユニットには、使用例が示されていますが、とても簡単そうです。すべてを学習した後、独自の Web サイトを構築する準備が整い、テキスト エディタを開いた...と思ったら、たった 2 行書いたところで止まってしまいます。
おそらく Google 検索に頼ることでウェブサイトの基本構造を完成させることができますが、自分の創造性を発揮してパーソナライズされたデザインを追加したい場合、インターネット上の答えやデモンストレーションは常に自分が頭の中にあるものとは異なります。したがって、プログラム コードを完全にコピーすることはできません。ただし、プログラム コードをつなぎ合わせたものは実行可能であるように見えますが、実際にはそれは不可能です。しかし、どこからデバッグを始めればよいのかまだわかりません。プログラムコードにほとんどの時間を費やしているのに、依然として「減ってはいるが増えていない」状態で、まったく進歩がありません。
これは、プログラマーになりたければ、このレベルを通過し、勇気を持って崖から飛び降り、翼を広げて高く飛ぶように強制する必要がある、特にイライラするステージです。この段階で転落死する雛の数は非常に多い)。
しかし、たとえ数え切れないほどのバグを取り除き、最終的にいくつかの小さなプロジェクトを完了したとしても、あまり喜ぶ必要はありません。この先の道はまだ非常に長く、より困難です。この業界に参入したい人にとって、「迷いの崖」は、この業界に本気で参入するかどうかの分岐点です。プログラムを書くことにすべての時間と労力を費やすと、最も挫折する段階に入ることがあります。風邪の第3段階。
密接に関係している第 1 フェーズ (ハネムーン フェーズ) と第 2 フェーズ (混乱の崖) の間になぜこれほど多くの違いがあるのか、気になるかもしれません。もしあなたも上記の 2 つの段階を経験しているのであれば、その段階の移行の理由はあなたとは何の関係もないことを知る必要があります。それは完全にあなたが他の人より愚かであるから、または他の人より努力していないからではなく、次のような理由によるものです。 「リソース密度」の変化が理由です。
要素 1: リソース密度
最初の段階で述べたように、経験も基礎もゼロでプログラムの書き方を学び始めると、周囲にはあなたが使用するのを待っている無数のリソースやツールが存在します。 Googleで「Learn to Code」と検索すると、たくさんのプログラミング学習プラットフォームや教材、教材動画、さらには体験談などが見つかり、とても優しい気持ちになれる「ハネムーン期間」と呼ばれています。手を取り合って心を繋ぐのは当然だ。」
しかし、第 2 段階までに、これらの教育リソースの数は大幅に減ります。初心者を卒業したばかりのプログラム学習者であれば、私の発言が真実であることを確認できます。初心者が最初に遭遇する障害はすべて教材や教科書に記載されている「一般的な問題」ですが、その後、宿題の難しさや個人的なニーズにより、問題は徐々に複雑になっていきます。 Stack Overflow または一部のプログラマーから、問題を解決するためのヒントを得るためにブログをチェックしてください。遭遇した問題がインターネット上で手がかりが見つからないほど難しくなるまで、次の段階に進みます。
第 3 ステージ: 絶望の砂州
第 3 ステージに入る鍵を理解するには、各ステージの変化に影響を与えるもう 1 つの重要な要素、つまり知識の幅を理解する必要があります。
要素 2: 知識の範囲
「知識の範囲」とは、各段階を通過する必要がある知識領域の範囲です。どのプログラミング言語を使っても、どんな関数を使っても、最初は変数の型、宣言構文、ループ、条件判定など、吸収すべき知識が非常に集中しています。この時はとにかく聞いてください。これらは「知っておくべき重要なこと」なので、あなたも同じです。
ただし、基本的なスキルを学んだ後は、オブジェクト指向を学び始めたり、アルゴリズムの効率性を重視したりするなど、必要な知識の領域が一気に広がります。それに対応するには、しっかりとしたコンピューターサイエンスの背景が必要になります。 、そしてすべてのアプリケーションはさらに多くの変更を伴う可能性があります...信じてください、これはいくつかの MOOC コースであなたを救えるものではありません。
この期間中、全能の Google はあなたが理解できないことをさらに投げてくるだけで、関連する手がかりはまったくありません。最悪なのは、自分が何を知らないのか全く分からないことです。 (あなたは自分が知らないことを知りません。)。その結果、「学び終えない、学べば学ぶほど理解できなくなる」という無力感が襲い、3番目の最も困難な段階である「絶望の中州」に突入しました。
その名の通り、このステージは砂漠を越えるようなもので、そこから抜け出すのに何年かかるか、何ヶ月かかるかわからない、とても長く孤独な旅です。 。果てしなく続く砂漠の中、東も西も北も南も分からず、長い間情報を探しても何も見つかりませんでした。この中には、暴露、渇き、または絶望のために命を落とした有望な若者も数え切れないほどいます。
でも、絶望の中州で耐え続ければ、次回はもっと楽になるでしょう!経験を積めばプログラムのミスは大幅に減り、ある程度の知識が身につくと問題の方向性を正確に判断して核心を突くことができるようになり、結果として作業効率が向上します。改善され、知識の幅が徐々に集中していきます。全身疲労を抱えながらようやくこの砂漠を抜け出すと、いよいよ最終段階に突入する。
第 4 段階: 心的外傷後の回復期
何千万もの人々の体をかけて砂漠を横断することに成功すると、自信が高まり始め、Google スキルもレベルに達したと言えます。神。この時点までに、Hacker News のニュースや超ハードな MOOC コースも問題なく、専門とする特定のプログラミング言語とフレームワークを選択し、正常に動作するアプリケーションを作成する能力を身につけています。
でも、プログラムは「使える」と思っていても、実はコードが汚い、という漠然とした不安が心の奥底にあります。仕事に就くための条件はすべて揃っていますが、面接官に自分のコンピューターの知識が弱いことがバレるのではないかという不安が常にあります。あなたは「心的外傷後の回復期間」を経験しています。
混乱の崖を飛び越え、絶望の中州を渡った後、学ぶべきことを学び、やるべきことをやり遂げ、立派なエンジニアになったはずなのに、自分の資格は凡庸であり、自分の基盤が不十分であると常に感じています。うまく構築できましたが、プロジェクトを重ねるごとに自信は高まってきましたが、自分の中で「プロのエンジニア」との間に大きなギャップがあるといつも嘆いています...これらはすべて「インポスター症候群」によって引き起こされています。
この心的外傷後の回復期には、自分自身を疑うことも多いかもしれませんが、この効率向上と自信回復の波に沿って努力を続ければ、能力と自信が一定のレベルに達したときに...おめでとうございます: あなたは就職準備完了です!
LAMP Brothers オリジナル PHP チュートリアル CD/「Essential PHP in Detail」を無料で受け取ります。詳細については、公式 Web サイトのカスタマー サービスにお問い合わせください: http://www.lampbrother.net
|