JavaRush /Java Blog /Random-KO /개발자 위치에 대한 일반적인 테스트 작업 분석
Uniges
레벨 35
Санкт-Петербург

개발자 위치에 대한 일반적인 테스트 작업 분석

Random-KO 그룹에 게시되었습니다
오늘은 인턴개발자 포지션에 대한 참고사항에 대해 살펴보고자 합니다. 옛날 옛적에 제가 쓴 글입니다: 이 문제에 대한 내 생각을 공유하고 싶습니다. 초보자가 일자리를 찾을 때 앞으로 무엇이 기다리고 있는지에 대한 아이디어를 갖는 것이 유용할 것입니다.
개발자 위치에 대한 일반적인 테스트 작업 분석 - 1
공석은 다음과 같습니다: RUB 30,000의 PostgreSQL 개발자 연수생 . 개인 소득세 공제 전 LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies 필수 업무 경험: 필요하지 않음
  • 풀타임, 풀타임
책임:
  • 개발자의 지도에 따라 복잡도가 낮은 작업 구현
  • 자격의 지속적인 성장
요구사항:
  • 구조적 프로그래밍의 원리와 관계형 데이터베이스의 이론을 이해합니다.
  • 책임감, 독립성, 주도성
  • 의사소통 능력, 팀에서 일하려는 능력 및 열망
  • 높은 학습능력
바람직한:
  • 지식
  • SQL;
  • Pl\sql;
  • Pl\pgSql;
  • C++, 자바, 파스칼.
정황:
  • 안정적이고 역동적으로 발전하는 회사에서 근무
  • 편안한 근무 조건
  • 형식주의와 관료주의의 부족
  • 전문적 및 경력 성장을 위한 광범위한 기회
  • 면접 결과에 따른 급여
  • 노동법에 따른 등록, 노동법에 따른 유급 휴가.
  • 편지 헤더에 직업 코드를 표시하십시오: Project04
테스트 작업 설명: 테스트는 지원자가 인터뷰에 시간을 할애할 가치가 있는지 스스로 결정할 수 있도록 자기 통제를 위한 것입니다. 의사코드 이 의사코드는 알고리즘을 설명하는 데 사용됩니다.
  1. 왼쪽 여백의 들여쓰기는 중첩 수준을 나타냅니다.
  2. 루프 while, for, 반복 및 조건 구문은 파스칼과 동일한 의미를 갖습니다.
  3. "--" 기호는 설명을 나타냅니다.
  4. ":=" 기호는 할당을 나타냅니다.
  5. 달리 명시되지 않는 한 변수는 프로시저에 대해 로컬입니다.
  6. 배열 인덱스는 대괄호로 작성되며 A[i] 구성은 배열 A의 i 요소를 의미합니다.
  7. 여러 필드로 구성되거나 여러 속성을 갖는 객체를 사용할 수 있으며, 필드 값은 FieldName[객체 이름]으로 작성됩니다.

    예를 들어, 배열 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 병합(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에 대한 작업 코드 연결: HERE 작업이 성공적으로 완료된 후 인터뷰에 초대되었습니다. 인터뷰 대신 그들은 나에게 비슷한 작업을 또 다른 배치로 던지고 2 시간 동안 나에게 펜과 펜을주었습니다. A4용지 2장. 그들은 나뭇잎을 보지 않고 가져가더니 다시 전화하겠다고 말했습니다. 그러한 오락에서 얻는 즐거움은 검열된 말로는 설명할 수 없습니다. 그러나 최소한 이것은 많은 사람들이 여행을 시작할 때 직면해야 할 가혹한 현실입니다.
Разбор типичного тестового задания на позицию разработчика - 4
흥미롭고 건설적인 인터뷰가 되기를 진심으로 바랍니다. 고용주를 현명하게 선택하십시오. 최선을 다하세요!) 추신: 2018년 4월(상트페테르부르크) 고용 회사에 대한 내 리뷰는 여기에서 볼 수 있습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION