これは、「プログラマ」と「ソフトウェアエンジニア」の間に意味的に意味のある区別が存在する場合があります。この文脈では、具体的には、いくつかのプログラミング言語と関連技術の知識があり、それらを使用して目的の結果を生成できることがわかります。これは、「コンピュータープログラマー」の優れた運用上の定義です。
私は自分がソフトウェアエンジニアであると考えています。私の仕事の日々のほとんどの面で、私はおそらくあなたと同じことをしています。コンピューター言語と関連テクノロジーを使用して、望ましい結果を生み出しています。しかし、私はデータ構造とアルゴリズムを理解しており、その知識はもっと多くのことをする能力の基本的な基盤であると考えています。
多くの場合、毎日ではありませんが、私の仕事は複雑な問題の解決策を見つけることです。明確な解決策はなく、使用しているフレームワークの機能や作業している言語の機能によって直接対処されません。と。この中で、問題を分析して解決策を考案する必要があり、このプロセスは大規模なアーキテクチャの領域で行われることがあります。
この種の作業を行うには、これらのより深い問題の優れた理解が必要ですが、それだけでは不十分です。言い換えると、ハッシュテーブルの仕組みや、ヒープソートのパフォーマンス特性が通常優れている理由を知るだけでは、システムアーキテクトやシニアエンジニアになるには不十分です。それは論理的な出発点であり、そこからより深く掘り下げてより広く旅を始め、より大きな問題に取り組むために必要な経験を得ることができます。
私はあなたの質問に答えるために、「私は何になりたいですか?自分のキャリアでどこに行きますか?」と自問するべきだと思います。自分がやっていることを続けることに満足しているなら、あなたが直面している大部分はarbitrary意的なインタビューの質問を通り抜けるのに十分なデータ構造とアルゴリズムを学びたいだけかもしれません。
あなたがあなたのキャリアで成長したい、そしてそれが不可欠であるという情熱を持っているなら、あなたはできるだけこれらの主題をしっかりと受け入れるべきです。それらに取り組む時間があるなら、心を開き、真の熱意を持って、あなたはいくつかの素晴らしいエキサイティングなものを見つけるでしょう。クイックソートを初めて理解した日を決して忘れません。興奮と発見の感覚は、私の人生の残りの大部分のコースを設定し、私はそれに対して感謝することはできませんでした。今、ソフトウェアエンジニアとして働く以外に何かをすることは想像できません。
何を選んでも幸運です。