JavaRush /Java Blog /Random-JA /開発者職の典型的なテストタスクの分析
Uniges
レベル 35
Санкт-Петербург

開発者職の典型的なテストタスクの分析

Random-JA グループに公開済み
今日はインターン開発者のポジションに関する委託条件について見ていきたいと思います。かつて私は次のように書きました:この件について私の考えを共有したいと思います。初心者が仕事を見つけるときに将来何が待っているかについてのアイデアを得るのに役立ちます。
開発者職の典型的なテスト タスクの分析 - 1
求人は次のとおりです: PostgreSQL 開発者の研修生 、30,000 ルーブルから。個人所得税控除前 LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies 必要な実務経験:不要
  • フルタイム、フルタイム
責任:
  • 開発者の指導の下、複雑さの低いタスクを実装する
  • 資格の継続的な増加
要件:
  • 構造化プログラミングの原理とリレーショナル データベースの理論を理解する。
  • 責任感、自主性、主体性
  • コミュニケーションスキル、能力、チームで働く意欲
  • 高い学習能力
望ましい:
  • 知識
  • SQL;
  • Pl\sql;
  • Pl\pgSql;
  • C++、Java、パスカル。
条件:
  • 安定したダイナミックな発展を遂げる企業で働く
  • 快適な労働条件
  • 形式主義と官僚主義の欠如
  • 専門的およびキャリアの成長のための幅広い機会
  • 給与は面接結果により決定
  • 労働法に基づく登録、労働法に基づく有給休暇。
  • レターのヘッダーに職種コードを明記してください: Project04
テスト課題の説明: このテストは、応募者が面接に時間を費やす価値があるかどうかを自分で判断するための自制心を目的としています。 擬似コード この擬似コードはアルゴリズムを記述するために使用されます。
  1. 左マージンからのインデントは、ネストのレベルを示します。
  2. ループ while、for、repeat、および条件構造は Pascal と同じ意味を持ちます。
  3. 「--」はコメントを表します
  4. 記号「:=」は代入を表します
  5. 特に明記されていない限り、変数はプロシージャに対してローカルです。
  6. 配列インデックスは角括弧内に記述され、構成 A[i] は配列 A の i 要素を意味します。
  7. 複数のフィールドで構成されるオブジェクト、または複数の属性を持つオブジェクトを使用することができます。フィールド値は FieldName[ObjectName] として記述されます。

    たとえば、配列 A の長さは Length[A] と記述されます。角括弧が何を意味するかは、コンテキスト (配列を表す変数、またはオブジェクトを構成するデータへのポインター) によって決まります。任意のフィールド f に y:=x を代入すると、等式 f[y]=f[x] が満たされます。属性が関数、変数、またはその他のものであるかどうかは、コンテキストによって判断されます。

  8. ポインタは、オブジェクトを指さない特別な値 NIL を持つことができます。
  9. パラメータは値によって渡されます。呼び出されたプロシージャはパラメータの独自のコピーを受け取ります。プロシージャ内のパラメータへの変更は外部からは見えません。オブジェクトを渡すと、そのオブジェクトに対応するデータへのポインタがコピーされます。
問題 要素 の配列をソートする関数 A: Sort(A,p,r) 1 if p < r 2 then q :=round_half_down((p+r)/2) 3 Sort(A,p,q) 4 Sort (A,q +1,r) 5 Merge(A,p,q,r) 配列の例: A = (5,2,4,6,1,3,2,6) 実行例: Sort(A,1 ,length[A ]) 必須: Merge(A,p,q,r) 関数のアルゴリズムを、追加のメモリを使用するかどうかに関係なく、高速または実装に便利な任意の言語で開発します。 。成功した場合は、追加のテストを喜んで歓迎いたします。 私の答え: 疑似コードの例で説明されているアルゴリズムは、マージ ソート アルゴリズムです。この関数の主なタスクは、順序のない数値の配列を昇順などに並べ替えることです。問題はサブタスクに分割されます。配列の数値シーケンスが、配列が単一値になるまで小さな配列に分割され、配列の要素が比較され、(小さい方から大きい方へ、インデックスによって) 置換され、マージされます。
開発者職の典型的なテスト タスクの分析 - 2
public class Main {
    public static void main(String[] args) {
        int[] massif = {13, 3, 8, 1, 15, 2, 3, 7, 4};
        System.out.print("Массив до сортировки: ");
        for (int i = 0; i < massif.length; i++)
            System.out.print(massif[i] + " ");
        System.out.println("");
        massif = sort(massif);
        System.out.print("Массив после сортировки: ");
        for (int i = 0; i < massif.length; i++)
            System.out.print(massif[i] + " ");
    }

    public static int[] sort(int x[]) {
        if (x.length == 1) //Рекурсия идет до тех пор, пока массив делится
            return x;
        else {
            int half = (int) Math.floor(x.length / 2); //Разбиваем массив на 2 части
            int halfFirst[] = new int[half]; //1 часть, пустой массив
            int halfSecond[] = new int[x.length - half]; //2 часть, пустой массив
            for (int i = 0; i < x.length; i++) { //Заполняем новосозданные массивы значениями
                if (i < half)
                    halfFirst[i] = x[i];
                else
                    halfSecond[i - half] = x[i];
            }
            halfFirst = sort(halfFirst); //Рекурсия
            halfSecond = sort(halfSecond); //Рекурсия
            x = sortNext(halfFirst, halfSecond); //Отправляем заполненные значениями массивы в следующий метод
            return x;
        }
    }

    public static int[] sortNext(int x[], int y[]) {
        int c[] = new int [x.length + y.length]; //Создаем результирующий массив из суммы длин массивов из аргументов метода
        int a = 0, b = 0;
        for (int i = 0; i < x.length + y.length; i++) { //Сравниваем массивы, меняем местами элементы, заполняем новосозданный массив
            if (a == x.length) {
                c[i] = y[b];
                b++;
            }
            else if (b == y.length) {
                c[i] = x[a];
                a++;
            }
            else if (x[a] > y[b]) {
                c[i] = y[b];
                b++;
            }
            else {
                c[i] = x[a];
                a++;
            }
        }
        return c;
    }
}
開発者職の典型的なテスト タスクの分析 - 3
Ideone への作業コードへのリンク:ここ タスクは正常に完了しました。その後、私は面接に招待されました。そこで、面接の代わりに、別の同様のタスクが私に投げつけられ、2 時間放置され、私にペンとペンを渡されました。 A4の紙2枚。彼らは葉っぱを見ずに受け取り、折り返し電話すると言いました。このような娯楽から得た私の喜びは、検閲された言葉では説明できません。しかし、少なくとも、これは多くの人が旅の初めに直面しなければならない厳しい現実です。
開発者職の典型的なテスト タスクの分析 - 4
面白くて建設的なインタビューを心から願っています。雇用主は賢明に選びましょう。ご多幸をお祈りします!) 追伸: 2018 年 4 月の雇用企業に関する私のレビュー (サンクトペテルブルク) はここでご覧いただけます
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION