Ngayon gusto kong tingnan ang mga tuntunin ng sanggunian para sa posisyon ng intern developer. Noong unang panahon, isinulat ko ito: Gusto kong ibahagi ang aking mga saloobin sa bagay na ito. Magiging kapaki-pakinabang para sa mga baguhan na magkaroon ng ideya kung ano ang naghihintay sa kanila sa hinaharap kapag naghahanap ng trabaho.
Ang bakante ay ang sumusunod: Trainee PostgreSQL developer mula RUB 30,000. bago bawas sa personal income tax LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies Kinakailangang karanasan sa trabaho: hindi kinakailangan
Ссылка с рабочим codeом на Ideone: ТУТ Задача была успешно сдана, после чего пригласor на интервью, где, instead of собеседования, в меня кинули очередную порцию подобных задач и удалorсь на два часа, выдав ручку и 2 листочка А4. Забрали листочки, не посмотрев в них, и сказали, что перезвонят. Мое удовольствие от подобного времяпрепровождения не описать цензурными словами. Но, How минимум, это та суровая реальность, с которой многим придется столкнуться в начале своего пути.
Искренне желаю Вам интересных и конструктивных собеседований. С умом выбирайте работодателя. Всем добра!) П.С.: мой обзор компаний-работодателей за апрель 2018 (Санкт-Петербург) можно посмотреть ТУТ
- Buong oras, buong oras
- Pagpapatupad ng mga gawaing mababa ang kumplikado sa ilalim ng gabay ng isang developer
- Patuloy na paglaki ng mga kwalipikasyon
- Pag-unawa sa mga prinsipyo ng structured programming at ang teorya ng relational database.
- Responsibilidad, kalayaan, inisyatiba
- Mga kasanayan sa komunikasyon, kakayahan at pagnanais na magtrabaho sa isang pangkat
- Mataas na kakayahan sa pag-aaral
- Kaalaman
- Sql;
- Pl\sql;
- Pl\pgSql;
- C++, java, pascal.
- Magtrabaho sa isang matatag, dynamic na umuunlad na kumpanya
- Kumportableng kondisyon sa pagtatrabaho
- Kakulangan ng pormalismo at burukrasya
- Malawak na pagkakataon para sa propesyonal at paglago ng karera
- Ang suweldo batay sa mga resulta ng panayam
- Pagpaparehistro ayon sa Labor Code, bayad na bakasyon alinsunod sa batas sa paggawa.
- Pakisaad ang job code sa header ng sulat: Project04
- Ang indentation mula sa kaliwang margin ay nagpapahiwatig ng antas ng nesting.
- Ang mga loop habang, para sa, umuulit at may kondisyong mga konstruksyon ay may parehong kahulugan tulad ng sa Pascal.
- Ang simbolo na "--" ay nagpapahiwatig ng komento
- Ang simbolo na ":=" ay nagpapahiwatig ng pagtatalaga
- Ang mga variable ay lokal sa pamamaraan maliban kung iba ang nakasaad
- Ang array index ay nakasulat sa square bracket, ang construction A[i] ay nangangahulugang ang i element sa array A
-
Posibleng gumamit ng mga bagay na binubuo ng ilang mga patlang o pagkakaroon ng ilang mga katangian; ang mga halaga ng patlang ay nakasulat bilang FieldName[ObjectName].
Halimbawa, ang haba ng array A ay isinusulat bilang Haba[A]; kung ano ang ibig sabihin ng mga square bracket ay tinutukoy ng konteksto (isang variable na nagsasaad ng array, o isang object ay isang pointer sa constituent data nito). Pagkatapos magtalaga ng y:=x para sa anumang field f ang pagkakapantay-pantay f[y]=f[x] ay masisiyahan; Ang pagtukoy kung ang isang katangian ay isang function, isang variable, o anumang bagay ay ginagawa sa pamamagitan ng konteksto.
- Ang isang pointer ay maaaring magkaroon ng espesyal na halaga na NIL, na hindi tumuturo sa anumang bagay.
- Ang mga parameter ay ipinasa ayon sa halaga: ang tinatawag na pamamaraan ay tumatanggap ng sarili nitong kopya ng mga parameter; ang mga pagbabago sa mga parameter sa loob ng pamamaraan ay hindi nakikita mula sa labas. Kapag nagpapasa ng mga bagay, ang isang pointer sa data na naaayon sa bagay na iyon ay kinokopya.
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