Hôm nay tôi muốn xem xét các điều khoản tham chiếu cho vị trí nhà phát triển thực tập sinh. Ngày xửa ngày xưa tôi đã viết nó: Tôi muốn chia sẻ suy nghĩ của mình về vấn đề này. Sẽ rất hữu ích cho những người mới bắt đầu có ý tưởng về những gì đang chờ đợi họ trong tương lai khi tìm việc làm.
Vị trí tuyển dụng như sau: Thực tập sinh nhà phát triển PostgreSQL với mức lương 30.000 RUB. trước khi khấu trừ thuế thu nhập cá nhân LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies Yêu cầu kinh nghiệm làm việc: không bắt buộc
Liên kết với mã làm việc với Ideone: TẠI ĐÂY Nhiệm vụ đã được hoàn thành xuất sắc, sau đó tôi được mời đến một cuộc phỏng vấn, thay vì một cuộc phỏng vấn, họ ném một loạt nhiệm vụ tương tự khác cho tôi và rời đi trong hai giờ, đưa cho tôi một cây bút và 2 tờ giấy A4. Họ cầm lá mà không thèm nhìn và nói sẽ gọi lại. Niềm vui của tôi từ trò tiêu khiển như vậy không thể diễn tả bằng những từ ngữ bị kiểm duyệt. Tuy nhiên, ở mức tối thiểu, đây là thực tế khắc nghiệt mà nhiều người sẽ phải đối mặt khi bắt đầu cuộc hành trình của mình.
Tôi chân thành chúc bạn có những cuộc phỏng vấn thú vị và mang tính xây dựng. Hãy chọn người sử dụng lao động của bạn một cách khôn ngoan. Chúc mọi điều tốt đẹp nhất!) P.S.: bạn có thể tìm thấy bài đánh giá của tôi về các công ty tuyển dụng trong tháng 4 năm 2018 (St. Petersburg) TẠI ĐÂY
- Toàn thời gian, toàn thời gian
- Thực hiện các nhiệm vụ có độ phức tạp thấp dưới sự hướng dẫn của nhà phát triển
- Sự phát triển liên tục của trình độ
- Hiểu biết về các nguyên tắc lập trình có cấu trúc và lý thuyết về cơ sở dữ liệu quan hệ.
- Trách nhiệm, độc lập, chủ động
- Kỹ năng giao tiếp, khả năng và mong muốn làm việc theo nhóm
- Khả năng học tập cao
- Kiến thức
- SQL;
- Làm ơn\sql;
- Xin vui lòng\pgSql;
- C++, java, pascal.
- Làm việc tại công ty ổn định, năng động phát triển
- Điều kiện làm việc thoải mái
- Thiếu chủ nghĩa hình thức và quan liêu
- Cơ hội mở rộng để phát triển nghề nghiệp và nghề nghiệp
- Lương theo kết quả phỏng vấn
- Đăng ký theo Bộ luật Lao động, nghỉ phép có hưởng lương theo pháp luật lao động.
- Vui lòng ghi rõ mã công việc ở tiêu đề thư: Project04
- Thụt lề từ lề trái cho biết mức độ lồng nhau.
- Các vòng lặp while, for, lặp lại và các cấu trúc điều kiện có cùng ý nghĩa như trong Pascal.
- Ký hiệu “--” biểu thị nhận xét
- Ký hiệu “:=” biểu thị sự phân công
- Các biến là cục bộ của thủ tục trừ khi có quy định khác
- Chỉ số mảng được viết trong ngoặc vuông, cấu trúc A[i] có nghĩa là phần tử thứ i trong mảng A
-
Có thể sử dụng các đối tượng bao gồm một số trường hoặc có một số thuộc tính; các giá trị trường được viết dưới dạng FieldName[ObjectName].
Ví dụ: độ dài của mảng A được viết là length[A]; ý nghĩa của dấu ngoặc vuông được xác định bởi ngữ cảnh (một biến biểu thị một mảng hoặc một đối tượng là một con trỏ tới dữ liệu cấu thành của nó). Sau khi gán y:=x cho bất kỳ trường f nào, đẳng thức f[y]=f[x] sẽ được thỏa mãn; Việc xác định xem một thuộc tính là hàm, biến hay bất kỳ thứ gì khác đều được thực hiện theo ngữ cảnh.
- Một con trỏ có thể có giá trị đặc biệt NIL, giá trị này không trỏ đến bất kỳ đối tượng nào.
- Các tham số được truyền theo giá trị: thủ tục được gọi nhận bản sao tham số của chính nó; những thay đổi đối với các tham số bên trong thủ tục không thể nhìn thấy được từ bên ngoài. Khi truyền đối tượng, một con trỏ tới dữ liệu tương ứng với đối tượng đó sẽ được sao chép.
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