大学レベルのプログラミングと企業プログラミングの違いは何ですか?[閉まっている]


28

IT分野の学士号を取得しました。私はコーディングに深い興味があり、本当にプロになりたいと思っています。現在、大学のコースとは別に、私は自分でプログラミング(C#)を学んでいます(大学レベルのプログラミングは基本的すぎます)。今では、プロのプログラマーに近づくにはもう少し時間が必要だと感じています。しかし、私の先輩の何人かは、企業の世界のプログラミングは本っぽいプログラミングとあまりにも違うと言っているので、時間を無駄にする意味はありません。(彼らはプログラマー自身ではありません。これはおそらく彼らが聞いたことでしょう)。

上級レベルのC#に到達することでメリットがありますか?または、インタビューを破るには平凡なレベルで十分なので、企業レベルでは物事がどのように機能するかを教えるためだけにトレーニングに頼っているので、より高いレベルは企業にとって重要ではありません。助けてくれるプロのプログラマーがいるなら、これがプログラミングに興味のあるすべての学生について私のステージで聞きたいことだと約束します。「プログラミングの分野で実際に学習者から専門家にどのように変わりますか?」-完璧になるまで学習を続けるか、基本をカバーしたら会社に入社する必要がありますか?


24
学校はあなたに仕事を見つけるために必要なスキルを与えることではありませんでした。仕事を見つけるために必要なツール提供することです。実際の経験に代わるものはありませんが、学校が必要です。
ロバートハーベイ

5
タイトルは有用な質問を示していると思いますが、質問の本文はこのサイトのトピックから外れているキャリアアドバイスを求めています。
ブライアンオークリー

Programmers.SE(ホワイトボード)のチャットチャネルは、このような質問をするのに便利な場所です。多くの場合、企業の世界から幅広いスキルを持つ人々がいます。


3
保留???これは、キャリアに関するアドバイスを求めるものではありません。はい、この質問は議論に関するものではありませんが、回答は可能です。この質問には、stackexchangeのメモリが不足している場合を除き、この質問を削除する方法はありません。受け入れられた回答を参照してください。キャリアに関するアドバイスはありますか??
vish213

回答:


32

学校でのプログラミングと現実の世界では多くの違いがあります。企業プログラミングのようなものがあるかどうかはわかりません。

実際に作業している場所に応じて、大きな違いがあります。また、手元のタスクに応じて大きな違いがあります。

ただし、まだいくつかの一般的な問題があります。

  • 実際のコードのライフサイクルは、大学の宿題とは大きく異なります。実際のプログラミングでは、通常、既存のコードベースで作業しています。最大の問題の1つは、顧客(実際の職場とケースに応じて内部顧客または外部顧客)が使用するコードとの互換性を壊さないようにすることです。あなたが書いているコードはおそらくその後何年も使われるでしょう(これは依存します:問題はウェブサイトや一部のデバイスに埋め込まれたコードと同じではありません)。これに備えたい場合は、すべてのコードに対して単体テストと機能テストを作成する習慣を身に付けてください。それは常に実際のコードで行われるわけではありませんが、大学でも企業でも、あなたの人生をよりシンプルにする必要があります。

  • 設計/要件は通常、大学の雰囲気よりも現実の世界ではるかに曖昧です。プロのコードを書くときは、誰かがコードの目的を定義する必要があり、単におもちゃの問題やよく知られている問題さえ与えられません。遅かれ早かれ、設計を行うのはあなたである可能性が非常に高いです!顧客は通常、自分が何を望んでいるのか分からず(自分が何を望んでいるかを知っていても、それが必要なものではないかもしれません)、マネージャーは通常、多くの詳細と選択肢をプログラマーに任せるだけで、全体像を説明します。従う方法(「アジャイル」-「Vサイクル」など)に応じて、選択と詳細な問題定義が遅かれ早かれ発生する可能性がありますが、少なくともオープンな心を保ち、実際に何をしているのか疑問に思うべきです必要とされている。また、進行中のタスクがコーディングが難しすぎる場合や非効率な場合は、要件の変更を検討することもできます。とにかく役に立たない、または過度に複雑なものを書くことになってしまう可能性があります。これは、顧客またはあなたのマネージャーがあなたの主張を受け取らなかったか、彼らがあなたに同意しないからです。それでも、常に要件に疑問を持つ必要があります(サバイバルスキルです)。また、要件はタスクの途中で変更される可能性があり、そのための準備ができている必要があることに留意してください。

  • 大学では、課題を取得するとき、通常はいくつかのコードを書くことになっています。現実の世界では、通常、代わりに既存のコードを使用できるかどうかをチェックすることから始めます。プロジェクトの一部を再利用または変更し、ライブラリを使用または購入します。またはない(メンテナンスの問題、パフォーマンスの問題、著作権の問題、さらには価格の問題がある可能性があります)が、通常は既存のコードを再利用するオプションを考慮する必要があります。

チームワーク、プロジェクト規模などに関連する他の多くの問題が明らかにあります。しかし、上記のポイントは、企業環境で見られる可能性が非常に高い問題ですが、大学の割り当てで考慮する必要はありません。


コーポレートプログラミングとは、企業のプログラミング環境を意味します。良い答えbtw :-)
vish213

3
良い答え@kriss。「プログラム」ではなく、お客様の言語で話すことを学ぶことが重要だと付け加えます。これは、顧客とあなたの両方に役立ちます。
水田ランダウ

38

企業プログラミングと大学プログラミングの主な違いは規模です。学校では、1学期内に1人が開始および終了できない課題を取得することはありません。専門家として、「完成」せずに何年も続くソフトウェアで、他の何十人ものプログラマーと仕事をするかもしれません。

ミクロレベルでは、仕事はそれほど違いはありません。結局、もしそれがあまりにも異なっていたら、大学の学位は企業にとって何の価値もないでしょう。しかし、12個のクッキーを焼く場合と12,000個のクッキーを焼く場合の違いのようなものです。前者は本当に上手で、後者は完全に無知です。

学校では、主に正しいプログラムの作成に関心があります。職場では、ソフトウェアが正しいだけでは不十分です。保守、テスト、効率、および複数の人が同時に作業できる必要があります。それは学校が教えようとすることですが、実際にそれを行うことを除いて完全に学ぶことはできません。


私の経験では、「企業コード」の大部分は、保守可能、テスト可能、および効率的であることを目指していませんが、短時間で問題を解決するのに十分です。多くの場合、コードは「正しい」ものでさえなく、「十分に正しい」だけです。
サイモン

26

この質問は、無効な仮定に基づいています。

「プログラミングの分野で実際に学習者から専門家にどのように変わりますか?」

あなたはそれをするためにお金を稼ぐことでプロになります。学習者であることをやめることはありません。もしそうなら、あなたのキャリアは終わった。

世界に出て仕事に就きましょう。学習への熱意は資産です。


4
それはすべて良いアドバイスですが、実際には質問に答えていませんよね?
ブライアンオークリー

6
プロのプログラマーが決して学習者になることをやめることは同意しますが、支払いを受けることでプロになるわけではありません。私はひどいひどいコードを書くために支払われた多くのアマチュアに会いました。プロフェッショナルとは、コードを解き放つために支払われることではなく、正しい仕事をすること、そして正しい仕事をすることです。
ベヴァン

@Bevanそれは、それが「プログラマー」と「開発者」の違いだと主張することもできます。しかし、私がどこに立っているのかわかりません。
イズカタ

3
@Bevan:「プロフェッショナル」という言葉は本当に曖昧です。ウィクショナリーのエントリにリストされている感覚には、「職業の(通常は高い)基準に関連する、またはそれに準拠する」と「金銭、特に生計のために行われる」の両方が含まれます。自動的に支払われると、前者について何も言わなくても、後者の意味でプロのプログラマーになります。
-ruakh

12

簡単に言えば、はい、企業の世界は多くの大学の環境とはまったく異なります。

とはいえ、企業はこれを知っています。大卒者はほとんど役に立たないと予想しています。プログラミングの学習に時間を費やしているなら、それは素晴らしいことです。あなたが適用するために超素晴らしいである必要はありませんが、平凡な滞在はそれをカットしないことを理解してください。

自分でビジネスに必要なものの多くを学ぶことはありません。自分で学習を続けながら、できるだけ早く応募してください。


4

上級レベルのC#に到達することでメリットがありますか?

いいえ。私たちは、生徒たちが侵入するまでの数ヶ月は役に立たないことを期待しています。学位は単なるテーブルステークスです。学習し、指示に従う熱意があなたの最高の資産です。大学の卒業生にインタビューするとき、私はグループを混乱させるホットショットではないチームプレーヤーが欲しいです。

...高いレベルは企業にとっては重要ではありません。企業の世界で物事がどのように機能するかを教えるために彼らのトレーニングに純粋に依存しているからです。

これは企業ごとに異なりますが、一般的に大企業ではより体系的なトレーニングが行われます。これが最初の大きな決断です。正式なトレーニングと高度な構造が好きですか?もしそうなら、それを提供する仕事を探してください。

プログラミングの分野で実際に学習者から専門家にどのように変わりますか?

就職することで学生からプロに変わります。シニアは、学校を通じて企業と協力することをお勧めします。あなたの足を濡らし、新しい職業の不安を乗り越える唯一の最良の方法です。

あなたが完璧になるまで学習を続けるか、会社に入社することが基本がカバーされたら必要ですか?

仕事を得る、待ってはいけない。神経質になることはよくありますが、自分のスキルについては正直で、詳細を学ぶことに熱意を隠さないでください。特にあなたのキャリアの初期に、会社を数回切り替えることが一般的です。

プロのプログラミングへの旅の学位と幸運を終えておめでとうございます。


1

企業レベルのプログラミングと大学レベルのプログラミングの根本的な違いは、企業レベルのプログラミングは、クラス設定で遭遇するものよりもはるかに協調的なプロセスであり、教育的学習よりも製品開発に重点が置かれていることです。


1

コーポレートワールドプログラミングが高度な高レベルプログラミング文化になることを本当に期待しているのであれば、むしろ失望するでしょう。企業の世界でのプログラミングは、あなたが書いたコードに責任を持ち、維持できるようにすることです。

しかし、あなたの質問に

プログラミングの分野で実際に学習者から専門家にどのように変わりますか?

これは、企業レベルおよび大学レベルのプログラミングとは関係なく、プログラミング全般です。あなたが本当に学びたいなら、あなた自身のソフトウェアの構築を始めましょう。あなたが構築したいもの、またはオープンソースソフトウェアプロジェクトで働き始めたいものです。あなたが直面している質問をしてください。そして、他の人のコードを読んでください。


1

スケールに関するカールの答えはすぐにわかります。15個の数字の配列を並べ替えることはできません。たとえば、100万個のデータセットを並べ替える必要があります。

データ構造とアルゴリズムのクラスは、おそらく十数種類のソート方法を教えてくれるでしょう。実際のアプリケーションでは、order by句をスローし、データベースに最適化させます。

企業の世界に向けて準備することに関しては、私が提案する2つの方法があります。b)周辺のすべてのアプリストアで、アプリを作成してApple / Google / MSストアに公開することができます。これにより、ワークフロー、テストの価値、適切な環境とツールのセットアップの必要性などをよりよく理解できます。


1
アプリストアに加えて、小規模プロジェクトのボランティアを試すことができます。私の最初の任務は、母の職場で休暇と残業の報告を
手伝うことでした

0

企業のプログラミングでうまくいくために必要な主なことは、忍耐力と、テクノロジーを理解していないユーザーとのコミュニケーション能力です。ユニットテスト、バージョン管理を使用し、慎重にデバッグし、適切なトレース/ロギングを使用してください。言語は変更される可能性がありますが、落ち着いて問題を慎重に探し続けることが常に有効です。


-1

「企業のプログラミング」が提供する優れた答えに加えて、明確でないまたは変更されていない要件についてもです。

教授がプログラミングの宿題の要件を、提出する2日前に変更したらどうしますか?

業界ではこれは非常に一般的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.