8

私はソフトウェア開発を学んでいる学生ですが、一般的に、プログラミングはすべてを知ろうとするには範囲が広すぎると感じています。熟達するには、学習と理解に焦点を当てる領域を決定する必要があります。データ駆動型の Web 開発や SQL の経験など、特定のスキル セットは互いに相乗効果を発揮します。ただし、世界中のすべての win32 API の経験が Linux 開発に直接適用されるとは限りません。このことから、初心者のプログラマーとして、ソフトウェア開発の基本原則を一般的に理解してから、専門分野を決定し始める必要があると思います。

これは本当に複数の部分からなる質問です:

  1. コンピュータ プログラミングとソフトウェア開発における一般的な専門分野は何ですか?
  2. これらのスペシャライゼーションのうち、他のスペシャライゼーションの基盤として、および/または市場性のあるスキルとして、より長期的な価値があるのはどれですか?
  3. 互いに補完し合うスキルセットはどれですか?
  4. 他の専門分野を開発する能力を妨げる専門分野はありますか。
4

6 に答える 6

21

ベン、経験豊富なプログラマーのほとんどは、まだプログラミングの学生です。あなたが開発者であるとき、あなたは何かを学ぶことを決して止めません。しかし、あなたが本当にキャリアをスタートさせようとしているのであれば、専門分野について心配する必要はほとんどありません。この分野で長期的に存在できるようになると期待するすべての API、フレームワーク、およびスキルが実現するわけではありません。テクノロジーは大きく変化しているように見えるので、何でも学べる多才さと柔軟性を備えている必要があります。1 つのプラットフォーム/API/フレームワークで得た知識は消えません。次に優れたプラットフォーム/API/フレームワークにスキルを適用できます。

そうは言っても、将来について心配するのをやめて、基本に集中する必要があります. DataStructures、アルゴリズムの分析と設計、コンパイラの設計、オペレーティング システムの設計は、最低限必要なものです。さらに、キャリアのどの時点でも、これらの分野の本に戻って読むことを厭わないはずです。これだけ必要です。幸運を。

大したアドバイザーのように聞こえたら申し訳ありません。しかし、それは私が思うことです。:-)

于 2008-08-20T02:20:32.873 に答える
5

あなたの前提を真っ向から否定するわけではありませんが、私は実際、プログラミングにおいてゼネラリストであることは良いポジションだと思います。あなたは確かに特定の分野で専門知識を身につけますが、それは個人的な興味や仕事上の必要性の産物である可能性があります. 時間が経つにつれて、言語や問題領域を超えて転送できるものは、優れたプログラマーの核心になります。

于 2008-08-20T02:12:21.190 に答える
3

より重要な質問は、どの専門分野に最も関心がありますか? ということだと思います。

わかったら、その分野で学び始めましょう!

于 2008-08-20T02:14:12.000 に答える
3

あなたの雇用主があなたのこの可能性を見ることができれば、彼らはしっかりと握るのが賢明だからです.

そうは言っても、あなたが楽しめるエリアに飛び込むことをお勧めします。学習は熱意によって推進されます。

私の現在の雇用先はインターネット プロバイダーなので、ネットワークの知識は特に役に立ちます。でも、いつかは 3D グラフィックスで遊んでみたいです (必ずしもゲームではありません)。

于 2008-08-20T02:22:26.673 に答える
1

win32、.net、Java、Objective Cなど、1つの環境から始めて、できる限り深く掘り下げてください。

X がどのように機能するかを深く理解することが重要です。必要に応じて、同じ概念を他の言語またはプラットフォーム/環境に翻訳できるようにします。

「他の専門分野を開発する能力を妨げる専門分野はありますか?」一種の、しかし永続的なものは何もないと思います。

私自身は比較的環境に優しいので (4 年未満)、本当に OOP の考え方から来ています。私はめったに .NET から飛び出さなかったので、組み込みコードに触れたとき、1 つの仕事で苦労しました。オブジェクトの作成と継承によるパフォーマンスの低下を恐れる組み込みプログラマー。私は環境を学ばなければなりませんでした。深刻なメモリ不足とクロック時間の遅さでした。自分の分野をよく理解していたので、より良い時間を過ごすことができました。

市場性とお金のために何かを専門に選ぶと、おそらくすぐに燃え尽きてしまうでしょう。専門化を始める場合は、好きなものを選んでください。私は GUI プログラミングが好きで、サーバー サイドが嫌いです。友人はその反対ですが、2 人とも仕事が大好きです。もし彼が私の仕事をしなければならなかったら、そして私は彼の仕事をしなければなりませんでした.

于 2008-08-20T08:29:15.560 に答える
1

学生としては、プログラミングのことは忘れて、ソフトウェア プロセス自体に集中することをお勧めします。問題を分析し、適切な質問をする方法を理解する。オブジェクト指向設計の本当の理解と評価を得るために、できる限りの設計パターンをすべて学び、それらすべてを実際に適用します。テストを書き、テストに合格するために必要なだけコーディングします。本当に学ぶための最善の方法は、できる限りコードを書くことだと思います。言語やドメインは重要ではありません。sourceforgefreshmeatを参照して、興味深いプロジェクトを探して参加してください。重要なのは、ソフトウェア エンジニアリングの基礎を理解することです。

はい、これにはC.またはアセンブラーが含まれます。これは、コンピューターがどのように動作し、高レベル コードが実際に何を行っているかを理解するための最も簡単な方法です。

最後に、学習をやめないでください - サービス指向アーキテクチャ、制御の逆転、ドメイン固有言語、ビジネス プロセス管理はすべて大きな利点を示しているため、それらを認識することが重要です - しかし、学習を終えて労働力に加わるまでには、次の大物は何か知っていますか?

于 2008-08-20T13:40:51.160 に答える