web-dev-qa-db-ja.com

どのようにしてインターンシップを回復できますか?

私は現在、非常に大規模なソフトウェア以外の開発会社でインターンとして働いています。私が応募した職種は、特に開発職ではありませんでしたが、私を採用したチームは、CS専攻に社内プロジェクトの開発を手伝ってほしいと思っていました。私は4週間ここにいて、最初の困惑はすり減り始めています。しかし、私はオフィス全体で唯一のCS専攻です。私のチームの誰も、建物の中で、または近隣の場所でさえ、ソフトウェア開発の経歴を持っていません。私が持っている最高のものはデータベースマネージャーであり、彼らの部門は忙しくて私のプロジェクトをサポートすることができません。私のチームメイトは私が彼らの仕事のやり方を学ぶのを助けています(これは私が私の仕事をするのに重要です)が、私の仕事を助ける人はいませんmy仕事、すなわち開発。

彼らが私に与えたプロジェクトは、私が学校でやったことよりも規模が大きい。そのため、私が単独で作業し、ガイダンスのない、または明確に定義された目標さえない状態でアプリケーションをゼロから開発しようとしているという事実と相まって、成功する能力に非常に不安を感じています。どこから始めればいいのかほとんどわからず、残り2か月弱になっています。

私はソフトウェア開発プロセスを学ぶべきだと感じていますが、今は暗闇の中で自分の道を感じているようです。そもそも、自分の開発スキルには自信がないので、これは特に厄介です。私は自分自身を研究して教えてきましたが、私はほんの少ししか手に入れていません。彼らは私からの高い期待を持っていますが、私が提供する能力がわからない。明らかに、私は座ってマネージャーの立場について話し合う必要があり、できるだけ早くそれを行うつもりです(彼らは頻繁に出張してオフィスを出ています)。

これにどう対処すればよいですか?このインターンシップは、気付かないうちに終了するので、ここで見せるために何も見せずに帰りたくありません。彼らもそれを望んでおらず、いつでも私を助けることができますが、プログラミングの知識がなければ、できることはたくさんあります。私は彼らが望むものを生み出すことができないと彼らに話すのを恐れています。これを彼らにどのように関連付ける必要がありますか?エンジニアリングインターンが他のエンジニアから助けを得て、彼らの仕事をする方法を学んでいるのを見て、私はちょうどここに座って時間をかけているように感じています。私の状況を修正する方法についてのアドバイスは大歓迎です。

更新

皆さんからの有益なフィードバックに感謝します。心が落ち着くのに役立ちました。私が最初にしたことは、上司や上司と会うことでした。私はここで私の時間から何が期待されていたかについて話し合いました。彼らは私がインターンとしてそれほど時間がないことを理解しており、これは私たちが達成したいフレームワークのタイプに範囲を置くのに役立ち、将来のインターンや従業員がうまくいけば私が残したものから構築できるようになります。また、自分の能力に関する懸念について、彼らが理解して期待していた割り当てられた時間で対処しました。

別の場所にあるデータベース管理者から電話がありました-上司が上司と話し合って、彼らは私のプロジェクトをサポートしてくれます。これにより、使用するリソースが提供されるので、何をしているのかわからないまま座っていません。 mやって。それは半分だけですが。考えられるすべてのプロジェクトのうち、取り組むべき最も重要な2つのプロジェクトに絞り込みました。私の他のプロジェクトについては、誰かが言ったように、私は本質的にはインターンにとって独特な状況である主導的なソフトウェアアーキテクトです。少なくとも半ば成功すれば、将来の雇用主との助けとなるかなりの知識と経験が得られたと思います。今のところ、私は自分のプロジェクトの研究と開発を始めるための確かな基盤があると思います。皆様からの回答ありがとうございます!

65
bhamlin

私はあなたのために悪いニュースを持っていますbhamlin:

あなたはインターンではありません。むしろ、あなたは無給/安い従業員です。

インターンシップは無給または低賃金のポジションであり、新しく取得したスキルを安全な(通常は)リラックスした環境で練習し、フィードバックを得ながら、フィールドの「本当の」専門家が「本当の」仕事をしているのを観察する機会を得ます。それらがあなたが修正することを許可する部分について(通常、監督および/または承認の下で)。

あなたの会社が望んでいたのは、実際にはインターンではなく、ソフトウェア開発の無料/安価なソースでした。 これはかなり一般的です、私の意見では。私は大学の町に住んでいて、私の最後の職場で、マネージャーはよく言われます「ねえ、IT部門は忙しくてProject Xを実行できません。大学からインターンをして無料/安価で書いてくれました!」私たちはつぶやき、うめき声​​を上げて歯を噛み砕きますが、これがその場所の現実であり、その理由が理解できました。マネージャーはそのようなことを提案します。悲しいことに、結果は素晴らしいものではありませんでした。インターンから提供されたソフトウェアは、まとまりがあり、スケーラブルで、クリーンなどではありませんでした(正直なところ、いずれにしてもIT部門が出したものは...)

あなたがすることはあなた次第です。私のアドバイスは、あなたができることは何でも開発することです(時にはプレッシャーが素晴らしいモチベーションになります)が、可能であれば、他の場所で「本当の」インターンシップに参加することも計画すべきです。

だから自分を責めないでください、しかしあなたが入ったのは本当のインターンシップではありませんでした。

124
Graham

CS専攻として、あなたは自由に問題解決能力を持っています。彼らがどのような種類のプロジェクトを開発したいのかは不明です。私が推測しなければならないとしたら、おそらく彼らはあなたに内部プロセスのいくつかを自動化するのを手伝ってほしいと思っています。まず、現在どのようなプロセスが実施されているか、および各プロセスの部門間の依存関係の全体像を把握することから始めます。

次に、自動化できるか、少なくとも合理化できる、ぶら下がっている果物を探します。

プロセスを文書化する確実な方法

次の順序でこれらの質問をしてください。

  1. 出力は何ですか? (可能な限り具体的な回答を得る)
  2. 入力は何ですか?
  3. 出力を作成するのに十分な入力がありますか?

3番の答えが[〜#〜] no [〜#〜]の場合、不足している部分を取得します。これは、数式やビジネスルールなどです。

ステップ1の出力が複雑すぎる場合は、扱いやすいチャンクに分解し、各チャンクを個別のプロセスとして攻撃します。

発見したことを文書化します。潜在的な単一障害点を特定します。弱点や不足している依存関係を特定します。

圧倒的に聞こえるかもしれませんが、スキルは十分です。ちょうどそれを一口サイズのチャンクに変えてください。 「オタク以外の人が話す」を使用して「オタクなもの」を説明する方法を学ぶことができるなら、あなたは金であなたの体重に値するでしょう。

この状況全体に対する私の見解は次のとおりです。彼らは、合理的に達成できる以上のことを求めており、フィードバックやガイダンスを提供せず、一般的に仕事をそれほど快適にしていない。しかし、この雲には銀の裏地がありますあなたは何かを学んでいます。

特に、あなたは学位を取得するときに、 DO N'T が働きたいと思うような環境を学んでいます。また、大きすぎて実現できないほどのプロジェクトに対処する方法も学習します。どちらも、あなたの能力を下回ると思う仕事を誰もあなたに与えようとしないので、握るべき重要な知識です。彼らは常にあなたが与えることができる以上のものを求めます、そして彼らと協力して期待を管理し、彼らが望むものを提供するのはあなたの仕事です。

ここで今できることについて。 毎日/あなたがしていることすべての[////]日記を記録することから始めます。これはあなたに説明責任を与えます。簡単な1日の終わりでさえ、「これは私が今日取り組んだことです」と彼らが望むものを手に入れず、答えを探しに来ていないときに頼るべき何かをあなたに与えます。

私はあなたの上司と話をして、これらの大きなプロジェクトの1つを分類する方法があるかどうかを確認します。すべてを行うことに抵抗がある場合は、プロジェクトの調査とアーキテクチャを行ってもらい、後で別のインターンに実装してもらうことになるでしょう。インターンシップを終了したときに合理的に達成できると思うことを明確にし、それを目標にします。そうすれば、1日の終わりにも雇用主に関連する何かを提供できます。

最後に、エンジニアリングインターンに参加できるかどうかを確認します。これらのインターンもソフトウェアを開発していると仮定します。あなたがしていることと彼らがしていることは、お互いから学ぶことができないほど離れている理由はありません。私はプロジェクトで電気エンジニア、ソフトウェアエンジニア、コンピューターエンジニア、コンピューターサイエンティストと同様に働いており、一人一人がチームにそれぞれの長所をもたらしています。あなたの強みが開発のどこにあるかを特定し、それらの能力がエンジニアリングチームにうまく役立つ理由を説明してください。

18
Ampt

インターンシップアドバイザーにご相談ください

これまでに見てきた答えはすべて、雇用主に焦点を当てているようです。これは重要です。

ただし、このインターンシップは、学校のプログラムまたはオフィスを通じて設定されている必要があります。あなたがこのような状況に遭遇した最初の学生になるとは思えません。彼らはあなたを特定の方向に導くことができるはずです。

彼らが今あなたを助けることができない場合でも(私は信じがたいと思います)、あなたはこの状況で彼または彼女自身を見つけた次の学生を助けるでしょう、それは過小評価できないものです。

13
Wonko the Sane

そんなインターンシップを2回受け、とても楽しかったです。あなたが見逃しているように見える重要な明るい面があります:

  • 現時点では、プログラマーの大規模なチームで作業するプログラマーが夢見ることのできる、一種の創造的な自由を楽しんでいます。言語の選択から、ソース管理、エディター、ソフトウェアアーキテクチャまで、すべては完全にあなた次第です。私を信じて、あなたはそれがなくなったときにそれを逃します。
  • ソフトウェアについてあまり知らない人と協力することは、ソフトウェア開発プロセスの重要な部分です。学校は、ソフトウェア開発を教える多くの経験を持つ人々からの明確な割り当てを期待するように条件付けます。プログラマーのチームでさえ、あなたの割り当てはそれほど明確ではありません。今それを扱うことを学ぶことはあなたにエッジを与えます。
  • メンターの利益なしにドメイン知識を獲得することは、ソフトウェア開発プロセスの重要な部分です。毎年1〜2年に1回、「Xテクノロジーに関する主題の専門家になる」のような割り当てを受けます。 誰かは、企業で新しいテクノロジーを学ぶ最初の人でなければなりません。あなたがその人があなたであり得ることを示すことができれば、あなたはより興味深い課題を得るでしょう。
  • あなたの観点からは、それは多くのプレッシャーのように感じられますが、あなたの期待が本当に非常に低いことを知っておくべきです。彼らは適切なメンターがいなければあなたにとってそれがより難しいことを知っています。最善を尽くすだけで大丈夫です。

そうは言っても、最初の大規模なプロジェクトに取り組むのは大変なことです。以下が役立ちます:

  • プロジェクト全体を一度に考えないようにしてください。あなたが今何をする必要があるかを考えてください。
  • 実行する必要のある機能のリストを取得し、それらに優先順位を付けてもらいます。そうすれば、アプリ全体を完成させなくても、最も重要な機能はそのまま残ります。
  • 最初の機能をより小さなタスクに分解し、1〜2日で完了することができるタスクに取り掛かります。愚かにシンプルに聞こえるようにすることを恐れないでください。新しいプロジェクトでの最初の仕事は、常にhello worldを機能させ、ソース管理にチェックインすることです。特に、新しい言語、またはしばらく使用していない言語の場合、ビルド環境とツールが適切に設定されていることがわかります。
  • 進捗状況を頻繁に確認してください。夏の終わりにそれらの上に完成品を捨てようとしないでください。少なくとも週に1回、これまでの状況を示します。
  • ニーズを満たすことができる既存のプロジェクトとコンポーネントを探すために、前もって少し努力してください。既存のシステムをカスタマイズする方が、ゼロから行うよりもはるかに簡単です。多くの企業が同様の種類の内部アプリを必要としています。これは私が知っていたかったものです。私のインターンシッププロジェクトの1つは、基本的に(不十分な)a [〜#〜] crm [〜#〜] を再発明しました。

したがって、ソフトウェアに関するものであろうとなかろうと、リラックスして、最善を尽くして、できるだけ多くのことを学んでください。

10
Karl Bielefeldt

ここでの他の答えは非常に良いです。何度も何度も読んで、実際に理解してみてください。そうすれば、平均以上の努力で、インターンシップの反対側で「生きている」のを見つけることができます。あなたの状況を考えると、それはあなたが予想したよりも厳しいでしょうが、それだけの価値があります。

これは非常に重要です。なぜなら、あなたが別の会社にポジションを申請するとき、1、重要な質問の1つは次のとおりです。

X社でインターンシップをされたそうですね。どうでしたか?どうして行ってしまったの ?

プロの方法で困難な状況に対処したことを彼らに示すことができれば、これはカウントされますA LOT、雇用主は通常、このようなものに非常に感銘を受けています。

たとえそれがひどいものであったとしても、あなたはそれをあなたがあなたのクラスメートが決してしないであろうものを学ぶ機会があるあなたに価値ある経験にすることができます...

1 =私はあなたがそうすることを望みます、なぜならそこにとどまることはキャリアの自殺になるでしょう(遅かれ早かれ...多分もっと早く)

6
Radu Murzea

私は昨年同様の立場でしたが、すべてをゼロから開発する必要があり、開発経験のある人は他にいませんでした。私は彼らがくれたプロジェクトを完了しましたが、それを洗練されたアプリケーションや保守可能なアプリケーションとさえ呼べませんでした(それがどのように機能するかを知っている唯一の人は私であり、会社の誰もコードを見ていないためです)。

ここに私がやったことがいくつかあり、私がそのような状況にあった場合に行うでしょう。これらのいくつかは以前の回答ですでに言及されています

見つけ出す:

  • 製品に何をしてほしいのか(入力と出力、最小限
  • あなたの制限は何ですか? (つまり、どのプログラムを使用できますか/使用できませんか?)

これにより、製品がどのように見えるかについて、頭の中に画像が表示されます。 これを引き出すを紙に書き、上司/監督者に見せます。彼らがそれについて言うことを見てください。彼らが気に入らない場合は、何を変更したいか尋ねて、変更してプロセスを繰り返します。彼らが気に入った場合は、最小限のコーディングを行い、簡単なデモを作成してください。

デモを表示(これが彼らの考えていることかどうかを尋ねます)、これは彼らにあなたの進捗状況を示し、彼らが何を望んでいるかを理解するのに役立ちます。

コーディングのヘルプが必要なときはいつでも、マニュアル/チュートリアル、Google検索を読んで、最後にスタックオーバーフローに投稿してヘルプを求めてください。

細かいことにこだわらないでください。これを行うと、多くの時間を無駄にします。

小さなチャンクのコード、各チャンクはアプリケーションの主要な機能です。

コードをコメントしてください。彼らがこれを別のインターンまたは従業員に渡すことを計画している場合、それは彼らにとって大きな助けになります。

プロジェクトとプロジェクトの進捗状況について、マネージャー/監督者と連絡を取り合います。

プロジェクトを完了できなくても心配はいりません。あなたはインターンであり、最善を尽くしました。彼らは、そのようなプロジェクトの経験が浅い人を雇うのは誤りです。

TL; DR

  • ステップごとに上司と連絡を取ります

  • 主要な機能をコード化する

  • Googleとスタック交換から助けを得る

  • 完了できない場合でも心配しないでください

5
stackErr
  1. インターンシップの目標について明確化を求めてください。なぜそんなに多くのプロジェクトを割り当てられたのですか?
  2. 割り当てられた時間内に、要求されたプロジェクトを完了できないことを経営陣に明確化する
  3. 時間を最大限に活用する方法の分析を準備します。たとえば、1つのプロジェクトだけに取り組み、他のプロジェクトは削除することを提案します。

あなたが1つの小さなプロジェクトに専念した場合、あなたの時間はあなたの会社を助けるのに最も良いでしょう。十分に文書化しておいてください。アーキテクチャ、プロジェクトの目標、プロジェクトの進捗状況、およびソースコードの有用なドキュメントの作成に焦点を当てます。

1
KyleM