Bu gün stajyer developer vəzifəsi üçün texniki şərtlərə baxmaq istərdim. Bir vaxtlar bunu yazmışdım: Bu mövzuda öz fikirlərimi bölüşmək istəyirəm.İş taparkən gələcəkdə onları nələrin gözlədiyi barədə fikir sahibi olmaq yeni başlayanlar üçün faydalı olacaq.
Vakansiya aşağıdakı kimidir: Təcrübəçi PostgreSQL developeri 30.000 rubldan. fərdi gəlir vergisi tutulmazdan əvvəl Business Technologies MMC Sankt-Peterburq, Kolomyazhsky Prospekt, 33k2 Biznes Texnologiyaları Tələb olunan iş təcrübəsi: tələb olunmur
İş kodu ilə Ideone ilə əlaqə: BURADA Tapşırıq uğurla başa çatdı, bundan sonra məni müsahibəyə dəvət etdilər, burada müsahibə əvəzinə başqa bir oxşar tapşırıqlar toplusunu mənə atdılar və mənə qələm verdilər və iki saat qaldılar. 2 ədəd A4 kağızı. Onlar yarpaqlara baxmadan götürüb, zəng edəcəklərini dedilər. Belə bir əyləncədən aldığım həzz senzuralı sözlərlə ifadə edilə bilməz. Ancaq, ən azı, bu, bir çoxlarının səyahətlərinin əvvəlində qarşılaşacağı sərt reallıqdır.
Sizə səmimi qəlbdən maraqlı və konstruktiv müsahibələr arzulayıram. İşəgötürəninizi ağıllı seçin. Hər vaxtınız xeyir!) P.S.: 2018-ci ilin aprel ayı üçün (Sankt-Peterburq) işə götürən şirkətlərlə bağlı icmalıma BURADAN baxa bilərsiniz
- Tam iş günü, tam iş günü
- Tərtibatçının rəhbərliyi altında aşağı mürəkkəblikli tapşırıqların yerinə yetirilməsi
- Kvalifikasiyaların daimi artımı
- Strukturlaşdırılmış proqramlaşdırmanın prinsiplərini və əlaqəli verilənlər bazaları nəzəriyyəsini başa düşmək.
- Məsuliyyət, müstəqillik, təşəbbüskarlıq
- Ünsiyyət bacarığı, komandada işləmək bacarığı və istəyi
- Yüksək öyrənmə qabiliyyəti
- Bilik
- Sql;
- Pl\sql;
- Pl\pgSql;
- C++, java, paskal.
- Stabil, dinamik inkişaf edən şirkətdə işləmək
- Rahat iş şəraiti
- Formalizm və bürokratiyanın olmaması
- Peşəkar və karyera yüksəlişi üçün geniş imkanlar
- Əmək haqqı müsahibənin nəticələrinə görə
- Əmək Məcəlləsinə uyğun qeydiyyat, əmək qanunvericiliyinə uyğun olaraq ödənişli məzuniyyət.
- Məktubun başlığında iş kodunu göstərin: Project04
- Sol kənardan girinti yuva səviyyəsini göstərir.
- Döngülər while, for, repeat və şərti konstruksiyalar Paskalda olduğu kimi eyni məna daşıyır.
- “--” simvolu şərhi göstərir
- “:=” simvolu tapşırığı bildirir
- Başqa cür göstərilmədiyi təqdirdə dəyişənlər prosedur üçün lokaldır
- Massiv indeksi kvadrat mötərizədə yazılır, A[i] konstruksiyası A massivindəki i elementini bildirir.
-
Bir neçə sahədən ibarət olan və ya bir neçə atributlu obyektlərdən istifadə etmək mümkündür; sahənin dəyərləri FieldName[ObjectName] kimi yazılır.
Məsələn, A massivinin uzunluğu Length[A] kimi yazılır; kvadrat mötərizələrin nə demək istədiyi kontekstlə müəyyən edilir (massivi bildirən dəyişən və ya obyekt onun tərkib məlumatlarına göstəricidir). İstənilən f sahəsi üçün y:=x təyin edildikdən sonra f[y]=f[x] bərabərliyi təmin ediləcək; Atributun funksiya, dəyişən və ya başqa bir şey olub-olmadığını müəyyən etmək kontekstlə həyata keçirilir.
- Göstərici heç bir obyektə işarə etməyən NIL xüsusi dəyərinə malik ola bilər.
- Parametrlər qiymətə görə ötürülür: çağırılan prosedur parametrlərin öz nüsxəsini alır; prosedur daxilindəki parametrlərdə edilən dəyişikliklər xaricdən görünmür. Obyektləri ötürərkən həmin obyektə uyğun olan verilənlərin göstəricisi kopyalanır.
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