JavaRush /Java Blog /Random-ID /Analisis tugas tes tipikal untuk posisi pengembang
Uniges
Level 35
Санкт-Петербург

Analisis tugas tes tipikal untuk posisi pengembang

Dipublikasikan di grup Random-ID
Hari ini saya ingin melihat kerangka acuan untuk posisi pengembang magang. Suatu ketika saya menulisnya: Saya ingin berbagi pemikiran saya tentang hal ini, akan berguna bagi para pemula untuk memiliki gambaran tentang apa yang menanti mereka di masa depan ketika mencari pekerjaan.
Analisis tugas tes tipikal untuk posisi pengembang - 1
Lowongannya adalah sebagai berikut: Trainee pengembang PostgreSQL mulai RUB 30.000. sebelum dipotong pajak penghasilan pribadi LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies Pengalaman kerja yang diperlukan: tidak diperlukan
  • Penuh waktu, penuh waktu
Tanggung jawab:
  • Implementasi tugas dengan kompleksitas rendah di bawah bimbingan pengembang
  • Pertumbuhan kualifikasi yang konstan
Persyaratan:
  • Pemahaman tentang prinsip pemrograman terstruktur dan teori database relasional.
  • Tanggung jawab, kemandirian, inisiatif
  • Keterampilan komunikasi, kemampuan dan keinginan untuk bekerja dalam tim
  • Kemampuan belajar yang tinggi
Diinginkan:
  • Pengetahuan
  • persegi;
  • Tolong\sql;
  • Tolong\pgSql;
  • C++, java, pascal.
Kondisi:
  • Bekerja di perusahaan yang stabil dan berkembang secara dinamis
  • Kondisi kerja yang nyaman
  • Kurangnya formalisme dan birokrasi
  • Peluang luas untuk pertumbuhan profesional dan karir
  • Gaji berdasarkan hasil wawancara
  • Pendaftaran sesuai dengan Kode Ketenagakerjaan, cuti berbayar sesuai dengan undang-undang ketenagakerjaan.
  • Harap cantumkan kode pekerjaan di header surat: Project04
Deskripsi tugas tes: Tes ini dimaksudkan untuk pengendalian diri agar pelamar dapat menentukan sendiri apakah layak menghabiskan waktunya untuk wawancara. Pseudocode Pseudocode ini digunakan untuk menjelaskan algoritma.
  1. Lekukan dari margin kiri menunjukkan tingkat penyarangan.
  2. Konstruksi loop while, for, repeat dan conditional memiliki arti yang sama seperti dalam Pascal.
  3. Simbol “--” menunjukkan komentar
  4. Simbol “:=” menunjukkan tugas
  5. Variabel bersifat lokal pada prosedur kecuali dinyatakan lain
  6. Indeks array ditulis dalam tanda kurung siku, konstruksi A[i] berarti elemen i dalam array A
  7. Dimungkinkan untuk menggunakan objek yang terdiri dari beberapa bidang atau memiliki beberapa atribut, nilai bidang ditulis sebagai Nama Bidang[NamaObjek].

    Misalnya, panjang array A ditulis sebagai Panjang[A]; arti tanda kurung siku ditentukan oleh konteksnya (variabel yang menunjukkan array, atau objek adalah penunjuk ke data penyusunnya). Setelah menetapkan y:=x untuk bidang apa pun f, persamaan f[y]=f[x] akan terpenuhi; Menentukan apakah suatu atribut merupakan fungsi, variabel, atau apa pun dilakukan berdasarkan konteks.

  8. Sebuah pointer dapat memiliki nilai khusus NIL, yang tidak menunjuk ke objek apa pun.
  9. Parameter diteruskan berdasarkan nilai: prosedur yang dipanggil menerima salinan parameternya sendiri; perubahan pada parameter di dalam prosedur tidak terlihat dari luar. Saat meneruskan objek, penunjuk ke data yang terkait dengan objek tersebut disalin.
Soal Fungsi yang mengurutkan array elemen A: Sort(A,p,r) 1 jika p < r 2 maka q := round_half_down((p+r)/2) 3 Sort(A,p,q) 4 Sortir (A,q +1,r) 5 Gabung(A,p,q,r) Contoh array: A = (5,2,4,6,1,3,2,6) Contoh jalankan: Sortir(A,1 ,length[A ]) Diperlukan: Mengembangkan algoritma untuk fungsi Merge(A,p,q,r) dalam bahasa apa pun yang nyaman bagi Anda, dengan atau tanpa menggunakan memori tambahan, mana saja yang lebih cepat atau lebih nyaman untuk Anda implementasikan . Jika Anda berhasil, kami akan dengan senang hati menyambut Anda untuk pengujian tambahan. Jawaban saya: Algoritma yang dijelaskan dalam contoh Pseudocode adalah algoritma Merge sort. Tugas utama fungsi kita adalah mengurutkan array angka yang tidak berurutan: misalnya, dalam urutan menaik. Masalahnya dibagi menjadi beberapa subtugas: urutan angka dari array dibagi menjadi array yang lebih kecil hingga array menjadi bernilai tunggal, elemen array dibandingkan, diganti (lebih kecil dengan lebih besar, berdasarkan indeks), dan digabungkan.
Analisis tugas tes tipikal untuk posisi pengembang - 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;
    }
}
Analisis tugas tes tipikal untuk posisi pengembang - 3
Tautan dengan kode kerja ke Ideone: DI SINI Tugas berhasil diselesaikan, setelah itu saya diundang ke wawancara, di mana, alih-alih wawancara, mereka melemparkan tugas serupa kepada saya dan pergi selama dua jam, memberi saya pena dan 2 lembar kertas A4. Mereka mengambil daun itu tanpa melihatnya dan berkata bahwa mereka akan menelepon kembali. Kesenangan saya dari hiburan seperti itu tidak dapat dijelaskan dengan kata-kata yang disensor. Namun, setidaknya ini adalah kenyataan pahit yang harus dihadapi banyak orang di awal perjalanan mereka.
Analisis tugas tes tipikal untuk posisi pengembang - 4
Saya dengan tulus berharap Anda mendapatkan wawancara yang menarik dan konstruktif. Pilih majikan Anda dengan bijak. Semoga sukses!) P.S.: ulasan saya tentang perusahaan pemberi kerja untuk April 2018 (St. Petersburg) dapat dilihat DI SINI
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION