JavaRush /จาวาบล็อก /Random-TH /การวิเคราะห์งานทดสอบทั่วไปสำหรับตำแหน่งนักพัฒนา
Uniges
ระดับ
Санкт-Петербург

การวิเคราะห์งานทดสอบทั่วไปสำหรับตำแหน่งนักพัฒนา

เผยแพร่ในกลุ่ม
วันนี้ผมจะมาดูเงื่อนไขการอ้างอิงสำหรับตำแหน่ง Intern Developer ครับ กาลครั้งหนึ่งฉันเขียนไว้: ฉันต้องการแบ่งปันความคิดของฉันในเรื่องนี้ มันจะเป็นประโยชน์สำหรับผู้เริ่มต้นที่จะมีความคิดว่าสิ่งที่รอพวกเขาอยู่ในอนาคตเมื่อหางาน
การวิเคราะห์งานทดสอบทั่วไปสำหรับตำแหน่งนักพัฒนา - 1
ตำแหน่งงานว่างมีดังนี้: Trainee PostgreSQL นักพัฒนา จาก RUB 30,000 ก่อนหักภาษีเงินได้บุคคลธรรมดา LLC เทคโนโลยีธุรกิจเซนต์ปีเตอร์สเบิร์ก, Kolomyazhsky Prospekt, 33k2 เทคโนโลยีธุรกิจ ประสบการณ์การทำงานที่จำเป็น:ไม่จำเป็น
  • เต็มเวลาเต็มเวลา
ความรับผิดชอบ:
  • การดำเนินงานที่มีความซับซ้อนต่ำภายใต้คำแนะนำของนักพัฒนา
  • การเติบโตของคุณวุฒิอย่างต่อเนื่อง
ความต้องการ:
  • ความเข้าใจหลักการของการเขียนโปรแกรมเชิงโครงสร้าง ทฤษฎีฐานข้อมูลเชิงสัมพันธ์
  • ความรับผิดชอบ ความเป็นอิสระ ความคิดริเริ่ม
  • ทักษะการสื่อสาร ความสามารถ และความปรารถนาที่จะทำงานเป็นทีม
  • ความสามารถในการเรียนรู้สูง
เป็นที่น่าพอใจ:
  • ความรู้
  • ตรรกกะ;
  • กรุณา\sql;
  • กรุณา\pgSql;
  • C++, จาวา, ปาสคาล
เงื่อนไข:
  • ทำงานในบริษัทที่มั่นคงและมีการพัฒนาแบบไดนามิก
  • สภาพการทำงานที่สะดวกสบาย
  • ขาดความเป็นทางการและระบบราชการ
  • โอกาสมากมายสำหรับการเติบโตทางอาชีพและอาชีพ
  • เงินเดือนขึ้นอยู่กับผลการสัมภาษณ์
  • จดทะเบียนตามประมวลกฎหมายแรงงาน ลาพักร้อน ตามกฎหมายแรงงาน
  • โปรดระบุรหัสงานในส่วนหัวของตัวอักษร: Project04
คำอธิบายของงานทดสอบ: การทดสอบนี้มีวัตถุประสงค์เพื่อการควบคุมตนเองเพื่อให้ผู้สมัครตัดสินใจด้วยตัวเองว่าคุ้มค่าที่จะใช้เวลาสัมภาษณ์หรือไม่ Pseudocode Pseudocode นี้ใช้เพื่ออธิบายอัลกอริทึม
  1. การเยื้องจากระยะขอบด้านซ้ายบ่งบอกถึงระดับของการซ้อน
  2. การสร้างลูป while, for, Repeat และ Conditional มีความหมายเหมือนกับในภาษา Pascal
  3. สัญลักษณ์ “--” แสดงถึงความคิดเห็น
  4. สัญลักษณ์ “:=” หมายถึงการมอบหมายงาน
  5. ตัวแปรอยู่ภายในกระบวนการ เว้นแต่จะระบุไว้เป็นอย่างอื่น
  6. ดัชนีอาร์เรย์เขียนในวงเล็บเหลี่ยม โครงสร้าง A[i] หมายถึงองค์ประกอบ i ในอาร์เรย์ A
  7. คุณสามารถใช้ออบเจ็กต์ที่ประกอบด้วยหลายฟิลด์หรือมีแอตทริบิวต์หลายรายการได้ โดยค่าของฟิลด์จะเขียนเป็น FieldName[ObjectName]

    ตัวอย่างเช่น ความยาวของอาร์เรย์ A เขียนเป็นความยาว[A]; ความหมายของวงเล็บเหลี่ยมถูกกำหนดโดยบริบท (ตัวแปรที่แสดงถึงอาร์เรย์ หรือวัตถุคือตัวชี้ไปยังข้อมูลที่เป็นส่วนประกอบ) หลังจากกำหนด y:=x สำหรับฟิลด์ f ใดๆ ความเท่าเทียมกัน f[y]=f[x] จะเป็นที่น่าพอใจ การพิจารณาว่าแอตทริบิวต์เป็นฟังก์ชัน ตัวแปร หรือสิ่งอื่นใดจะกระทำตามบริบท

  8. ตัวชี้สามารถมีค่าพิเศษ NIL ซึ่งไม่ได้ชี้ไปที่วัตถุใดๆ
  9. พารามิเตอร์ถูกส่งผ่านตามค่า: ขั้นตอนที่เรียกจะได้รับสำเนาของพารามิเตอร์ของตัวเอง การเปลี่ยนแปลงพารามิเตอร์ภายในขั้นตอนไม่สามารถมองเห็นได้จากภายนอก เมื่อส่งวัตถุ ตัวชี้ไปยังข้อมูลที่สอดคล้องกับวัตถุนั้นจะถูกคัดลอก
ปัญหา ฟังก์ชันที่เรียงลำดับอาร์เรย์ขององค์ประกอบ A: Sort(A,p,r) 1 ถ้า p < r 2 แล้ว 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) ในภาษาใดๆ ที่คุณสะดวก ไม่ว่าจะใช้หน่วยความจำเพิ่มเติมหรือไม่ก็ตาม ขึ้นอยู่กับว่าวิธีใดจะเร็วกว่าหรือสะดวกกว่าสำหรับคุณในการใช้งาน . หากคุณทำสำเร็จ เรายินดีที่จะต้อนรับคุณสำหรับการทดสอบเพิ่มเติม คำตอบของฉัน: อัลกอริทึมที่อธิบายไว้ในตัวอย่าง Pseudocode คืออัลกอริทึมการเรียงลำดับแบบผสาน หน้าที่หลักของฟังก์ชันของเราคือการจัดเรียงอาร์เรย์ของตัวเลขที่ไม่เรียงลำดับ เช่น เรียงลำดับจากน้อยไปหามาก ปัญหาถูกแบ่งออกเป็นงานย่อย: ลำดับของตัวเลขจากอาร์เรย์จะถูกแบ่งออกเป็นอาร์เรย์ที่มีขนาดเล็กลงจนกระทั่งอาร์เรย์กลายเป็นค่าเดียว องค์ประกอบของอาร์เรย์จะถูกเปรียบเทียบ และจะถูกแทนที่ (เล็กลงตามขนาดใหญ่ ตามดัชนี) และผสานเข้าด้วยกัน
การวิเคราะห์งานทดสอบทั่วไปสำหรับตำแหน่งนักพัฒนา - 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: ที่นี่ งานเสร็จสมบูรณ์หลังจากนั้นฉันได้รับเชิญให้ไปสัมภาษณ์โดยที่แทนที่จะสัมภาษณ์พวกเขาโยนงานที่คล้ายกันอีกชุดมาที่ฉันและทิ้งไว้สองชั่วโมงโดยให้ปากกาแก่ฉันและ กระดาษ A4 จำนวน 2 แผ่น พวกเขารับใบไม้โดยไม่มองและบอกว่าจะโทรกลับ ความสุขของฉันจากงานอดิเรกดังกล่าวไม่สามารถอธิบายเป็นคำพูดที่ถูกเซ็นเซอร์ได้ แต่อย่างน้อยที่สุด นี่คือความจริงอันโหดร้ายที่หลายคนต้องเผชิญเมื่อเริ่มต้นการเดินทาง
Разбор типичного тестового задания на позицию разработчика - 4
ฉันขอให้คุณสัมภาษณ์ที่น่าสนใจและสร้างสรรค์อย่างจริงใจ เลือกนายจ้างของคุณอย่างชาญฉลาด ขอให้โชคดี!) ป.ล.: ดูรีวิวบริษัทจ้างงานของฉันในเดือนเมษายน 2018 (เซนต์ปีเตอร์สเบิร์ก) ได้ที่ นี่
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION