幼い頃から、私は常に非常に好奇心旺盛で、問題を理解したり解決したりすることが好きでした。私が初めてプログラミングに出会ったのは高校の時で、明白な理由からすぐにプログラミングに夢中になりました。
高校時代、私が覚えている最初に使用した言語とツールは、Turing、Processing、GreenFoot、BlueJ などでした。これらはすべて学習ツールであり、チューリングを除いて、グラフィカル プログラミングに主に焦点を当てた Java 抽象化でした。これらのツールを使用すると、非常に優れた作業を非常に迅速に実行できるようになりました。これらの初期の経験は、本当に私の興味を刺激したものです。
そこから地元の大学で Web 開発を学びたいと思っています。ここでHTML、CSS、JavaScriptなどを学び始めました。その後、PHP、Ruby、ASP.NET、Angular など、純粋な開発以外の多くの関連スキルに移ります。これは素晴らしいコースで、非常に有能な Web 開発者になるために必要なすべてのスキルを私に与えてくれました。
大学生活の終わりまでに、私は Web 開発全体についてかなりよく理解しました。もちろんすべてを知っていたわけではありませんが、私にとって何も不思議ではない段階にはいっていました。ここから、私の自然な好奇心がさらに深く潜りたいと思うようになりました。これにより、オペレーティング システム、システム レベルの開発、組み込みシステムというウサギの穴に私を導きました。ご想像のとおり、最初のステップは C に傾くことでした。
C の学習は、私が予想していたよりもはるかに難しかったです。スタックとヒープ メモリ、およびポインタの概念は非常にわかりにくいものでした。特にガベージ コレクターを備えた高水準言語からのものです。 C が単純に難しいということではなく、実際には言語は実際には非常に単純であることがすぐにわかりました。高レベルの言語を学習するために過去数年間に行った悪い習慣や誤った仮定をすべて常に取り除かなければならないことがわかりました。
これは私が今トップダウン学習の呪いと呼んでいるものです!
非システムレベル言語を学習するときに、これらすべての誤った仮定を行っていたことに非常にイライラしました。また、C を学習するプロセスに、おそらく必要な時間の 3 倍の時間がかかりました。
自分が使用していた抽象化に対する認識が足りませんでした!
誤解しないでください。アプリケーション レベルの開発、または基本的な Python スクリプト作成のみに集中してキャリア全体を歩むことができる人はたくさんいます。しかし、本当にソフトウェア エンジニアになり、組み込みシステムからオペレーティング システム、それらのオペレーティング システム用に開発されたアプリケーションに至るまで、この分野全体を理解したいのであれば、ボトムアップから学ぶことが非常に有利です。
本当にソフトウェア エンジニアになりたい人への私の提案は、C から始めることです。スタックとヒープの違い、およびポインタを理解することです。たとえそれが小規模な C アプリケーションが生成するアセンブリを分析するだけであっても、アセンブリに手を出してみてください。これらのことを基本的に理解していれば、他のことはずっと簡単になります!
そうやって始めればよかったのに。私の間違いから身を乗り出してください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3