Windows system >> Windowsの知識 >  >> Windowsチュートリアル合成 >> Windowsのスキル >> プログラミングを学ぶ人々は助けになることはできません良い記事を見ることはスキルを経験する

プログラミングを学ぶ人々は助けになることはできません良い記事を見ることはスキルを経験する

  
Technologeeko         

先輩として、私はたくさんの部署にインタビューをしましたが、成功と失敗がありますが、私にとっては、特に私の下では失敗はすべてある意味で成功です。この記事を書いている時点で私は南京のソフトウェア会社に署名しましたが、今年2月21日に蘇州台湾の99v会社にインタビューした経験は、私たちが現在プログラミングを学んでいるという事実に関連していると思います。今回のインタビューで失敗を深く理解できただけでなく、多くのことが得られたと思います。私が言いたいことは3つの部分に分けられるでしょう、

1.それは私のインタビューの特定の経験です2.インタビューによって考えられます3.私は今それをするべきです。もちろん、これらの言葉は主に私の個人的な意見であり、私は全員の承認を得ることができないので、意見によっては、友人が私と大きな違いがあると感じる場合は気にしないでください。私がそれを言わなかった丁度、これらの問題を議論するために私に連絡することを歓迎します!私のEメール:[email protected]

1.インタビューの後、約2年前に台湾Ruiqi Suzhou Companyからインタビューの通知を受け、2月21日にSuzhou Industrial Parkにインタビューをしてインタビューを受けることを伝えました。これから数日のうちに、私はいくつかのプロコースを特に見直しました、そして、大学時代のために、私はこれらの面に特化していました、そして上級プログラマーの試験を通して、私はほぼおなじみのアルゴリズムに達しました。胸の部分では、そのときの気持ちは、私がこれらの質問をしても問題ないことです!21日には、4:30に面接を受ける予定だったので、技術者から別の面接を受けて質問をしました。簡単な質問の後、彼は私にプログラミングの話題を与えましたタイトルはこれです:1)パラメータがnであるときに値1-2 + 3-4 + 5-6 + 7を計算する関数を書きます。 + n哼、私の心はこっそりとした!私はそれがそれほど単純であるとは思っていませんでした、私は少し緊張していてリラックスしました!だからすぐに私は私の解決策を与えた:longfnforreturntemp;}それを入手!私が期待の表情でインタビュアーを見たとき、彼は微笑んで、そして実装の結果は間違いなく問題ないと私に言った!しかし、nが非常に大きい場合、プログラムの実行効率は非常に低くなりますが、開発上、プログラムの実行効率は非常に重要ですので、1命令を少なくすることをお勧めします。プログラムを最適化するための場所!これらの言葉を聞いた後、私の気分は少し重く変化したので、彼の要求がそれほど厳しくなるとは思っていませんでした。前のプログラムと比較して、私のアルゴリズムが最適であるとは保証できませんが、乗算命令を含むすべてのステートメントを加算命令を実行するように変更しました。これは問題の要件を満たすだけでなく、演算時間も短縮しました。たくさん!価格は単に整数変数を追加することです。インタビュアーに疑わしいと思いますが、彼はまだ微笑んで私に言いました:「はい、このプログラムは効率の大幅な向上をもたらしました!」私は心から本当に幸せです!しかし彼は続けて、このプログラムはまだ彼の要求を満たすことができないと言っています、そして私はより良い解決策を与えたいです!神よ!最適化があります!当時私は本当に倒れましたが、しばらく考えた後、私は彼に彼の計画を立てるよう頼みました!それから彼は彼のプログラムをとてもスッキリとしました! Longfnifreturn; elsereturn + n;}おかしなことに、私は彼がこれを意味するとは思っていませんでした、私は本当にそのような単純なコードを書くことができないと思っていませんでした。 nが非常に大きい場合、3つのプログラムの実行時間の違いは違いの世界です。私が何かを言いたいとき、彼は最初に話しました:「CPUが速いと思いません、そして、すべての問題をそれに押し付けます。プログラマーはコードを最適化し、それを最適化するべきです。我々はそれを自分ですることができます。 CPUはユーザーのためのものであり、私たちのプログラマーのためのものではないので、決してCPUにさせないでください。なんて素晴らしい言語でしょう。もう何も言いたくないのです。次に2番目の質問があります。2)彼は、2つの関数の関数を次のような関数で実装するための扱いにくいプログラミング方法を使用するように私に依頼しました。fn1 = n /2!+ n /3!+ n /4 !+ n /5!+ n /6!fn2 = n /5!+ n /6!+ n /7!+ n /8!+ n /9!flagが0のとき、関数fnを使う。フラグが1の場合は、fn1関数を実装し、fn2関数を実装します。彼の要求は効率、効率、そして効率です。正直なところ、もし私が気分が良ければ、もっと良いアルゴリズムを与えることができるはずですが、当時は本当に考えたことはありませんでした。率直に言って、彼は彼に彼に答えを与えるように頼むように言った!インタビュアーは、自分の考えでは何も言いませんでした:[2!、3!、4!、5!、6!}に格納されているfloatの2次元配列を定義し、最後に計算値を入手してください。ああ、時間アルゴリズムのための典型的なスペース!合計50分かかりましたが、10分のうちに気軽に彼と話をし、プログラミングや人生の問題について話しましたが、インタビューの結果が1つしかないことがわかったので、とてもリラックスしました。 :失敗しました。 5:30に、インタビュアーは私に通知を待つように頼んだので、私は彼らの会社を辞めました。これがインタビューの全プロセスです。;

Copyright © Windowsの知識 All Rights Reserved