오늘은 인턴개발자 포지션에 대한 참고사항에 대해 살펴보고자 합니다. 옛날 옛적에 제가 쓴 글입니다: 이 문제에 대한 내 생각을 공유하고 싶습니다. 초보자가 일자리를 찾을 때 앞으로 무엇이 기다리고 있는지에 대한 아이디어를 갖는 것이 유용할 것입니다.
공석은 다음과 같습니다: RUB 30,000의 PostgreSQL 개발자 연수생 . 개인 소득세 공제 전 LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies 필수 업무 경험: 필요하지 않음
Ideone에 대한 작업 코드 연결: HERE 작업이 성공적으로 완료된 후 인터뷰에 초대되었습니다. 인터뷰 대신 그들은 나에게 비슷한 작업을 또 다른 배치로 던지고 2 시간 동안 나에게 펜과 펜을주었습니다. A4용지 2장. 그들은 나뭇잎을 보지 않고 가져가더니 다시 전화하겠다고 말했습니다. 그러한 오락에서 얻는 즐거움은 검열된 말로는 설명할 수 없습니다. 그러나 최소한 이것은 많은 사람들이 여행을 시작할 때 직면해야 할 가혹한 현실입니다.
흥미롭고 건설적인 인터뷰가 되기를 진심으로 바랍니다. 고용주를 현명하게 선택하십시오. 최선을 다하세요!) 추신: 2018년 4월(상트페테르부르크) 고용 회사에 대한 내 리뷰는 여기에서 볼 수 있습니다.
- 풀타임, 풀타임
- 개발자의 지도에 따라 복잡도가 낮은 작업 구현
- 자격의 지속적인 성장
- 구조적 프로그래밍의 원리와 관계형 데이터베이스의 이론을 이해합니다.
- 책임감, 독립성, 주도성
- 의사소통 능력, 팀에서 일하려는 능력 및 열망
- 높은 학습능력
- 지식
- SQL;
- Pl\sql;
- Pl\pgSql;
- C++, 자바, 파스칼.
- 안정적이고 역동적으로 발전하는 회사에서 근무
- 편안한 근무 조건
- 형식주의와 관료주의의 부족
- 전문적 및 경력 성장을 위한 광범위한 기회
- 면접 결과에 따른 급여
- 노동법에 따른 등록, 노동법에 따른 유급 휴가.
- 편지 헤더에 직업 코드를 표시하십시오: Project04
- 왼쪽 여백의 들여쓰기는 중첩 수준을 나타냅니다.
- 루프 while, for, 반복 및 조건 구문은 파스칼과 동일한 의미를 갖습니다.
- "--" 기호는 설명을 나타냅니다.
- ":=" 기호는 할당을 나타냅니다.
- 달리 명시되지 않는 한 변수는 프로시저에 대해 로컬입니다.
- 배열 인덱스는 대괄호로 작성되며 A[i] 구성은 배열 A의 i 요소를 의미합니다.
-
여러 필드로 구성되거나 여러 속성을 갖는 객체를 사용할 수 있으며, 필드 값은 FieldName[객체 이름]으로 작성됩니다.
예를 들어, 배열 A의 길이는 Length[A]로 작성됩니다. 대괄호의 의미는 컨텍스트(배열을 나타내는 변수 또는 객체가 해당 구성 데이터에 대한 포인터임)에 따라 결정됩니다. 임의의 필드 f에 대해 y:=x를 할당하면 f[y]=f[x] 등식이 충족됩니다. 속성이 함수인지, 변수인지, 아니면 다른 어떤 것인지 결정하는 것은 컨텍스트에 따라 수행됩니다.
- 포인터는 어떤 객체도 가리키지 않는 특별한 값 NIL을 가질 수 있습니다.
- 매개변수는 값으로 전달됩니다. 호출된 프로시저는 매개변수의 자체 복사본을 받습니다. 프로시저 내부 매개변수에 대한 변경 사항은 외부에서 볼 수 없습니다. 객체를 전달할 때 해당 객체에 해당하는 데이터에 대한 포인터가 복사됩니다.
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;
}
}
GO TO FULL VERSION