JavaRush /Java блогу /Random-KY /Иштеп чыгуучу позициясы үчүн типтүү тест тапшырмасын талд...
Uniges
Деңгээл
Санкт-Петербург

Иштеп чыгуучу позициясы үчүн типтүү тест тапшырмасын талдоо

Группада жарыяланган
Бүгүн мен стажер-иштеп чыгуучу кызматына техникалык тапшырмаларды карагым келет. Бир жолу мен аны жазганмын: Мен бул маселе боюнча өз оюм менен бөлүшкүм келет.Бул жаңы баштагандарга жумуш табууда келечекте аларды эмне күтүп тургандыгы жөнүндө түшүнүккө ээ болуу пайдалуу болот.
Иштеп чыгуучу позициясы үчүн типтүү тесттик тапшырманы талдоо - 1
Вакансия төмөнкүчө: PostgreSQL иштеп чыгуучу стажери 30 000 рубльдан. жеке киреше салыгын чегерүүгө чейин Бизнес Технологиялар ООО Санкт-Петербург, Коломяжский проспекти, 33k2 Бизнес технологиялар Талап кылынган иш тажрыйбасы: талап кылынbyte
  • Толук убакыт, толук убакыт
Жоопкерчorктери:
  • Иштеп чыгуучунун жетекчorги астында татаалдыгы аз тапшырмаларды аткаруу
  • Квалификациянын тынымсыз өсүшү
Талаптар:
  • Структураланган программалоонун принциптерин жана реляциялык маалымат базаларынын теориясын түшүнүү.
  • Жоопкерчorк, ез алдынчалык, демилгелуулук
  • Коммуникация жөндөмү, жөндөмү жана командада иштөө каалоосу
  • Жогорку окуу жөндөмдүүлүгү
Каалоочу:
  • Бorм
  • Sql;
  • Pl\sql;
  • Pl\pgSql;
  • C++, Java, Паскаль.
Шарттары:
  • Туруктуу, динамикалуу өнүгүп жаткан компанияда иштеңиз
  • Ыңгайлуу иштөө шарттары
  • Формализмдин жана бюрократизмдин жоктугу
  • Кесиптик жана карьералык өсүү үчүн кеңири мүмкүнчүлүктөр
  • Интервьюнун жыйынтыгы боюнча эмгек акы
  • Эмгек codeексине ылайык каттоо, эмгек мыйзамдарына ылайык акы төлөнүүчү өргүү.
  • Каттын баш жагында жумуш codeун көрсөтүңүз: Project04
Тесттик тапшырманын сүрөттөлүшү: Абитуриент интервьюга убактысын коротуунун кереги барбы же жокпу өзү аныктоо үчүн тест өзүн-өзү көзөмөлдөө үчүн арналган. Псевдоcode Бул псевдоcode алгоритмдерди сүрөттөө үчүн колдонулат.
  1. Сол четинен чегинүү уянын деңгээлин көрсөтөт.
  2. Циклдердин while, for, кайталоо жана шарттуу конструкциялары Паскальдагыдай эле мааниге ээ.
  3. "--" белгиси комментарийди билдирет
  4. “:=” белгиси тапшырманы билдирет
  5. Эгерде башкасы көрсөтүлбөсө, өзгөрмөлөр proceduresа үчүн жергorктүү болуп саналат
  6. Массивдин индекси чарчы кашаанын ичинде жазылат, A[i] конструкциясы А массивиндеги i элементин билдирет
  7. Бир нече талаалардан турган же бир нече атрибуттарга ээ an objectтерди колдонсо болот, талаанын маанилери FieldName[ObjectName] катары жазылат.

    Мисалы, А массивинин узундугу Length[A] катары жазылат; чарчы кашаалар эмнени билдирери контекст менен аныкталат (массивди билдирген өзгөрмө же an object анын түзүүчү маалыматтарынын көрсөткүчү). y:=x каалаган f талаасына ыйгарылгандан кийин f[y]=f[x] теңдиги аткарылат; Атрибут функция, өзгөрмө же башка нерсе экендигин аныктоо контекст боюнча жүргүзүлөт.

  8. Көрсөткүч эч кандай an objectти көрсөтпөгөн NIL өзгөчө мааниге ээ болушу мүмкүн.
  9. Параметрлер маани боюнча өткөрүлөт: чакырылган proceduresа параметрлердин өзүнүн көчүрмөсүн алат, proceduresанын ичиндеги параметрлердеги өзгөртүүлөр сырттан көрүнбөйт. Объекттерди өткөрүүдө ошол an objectке тиешелүү маалыматтарга көрсөткүч көчүрүлөт.
Маселе А элементтеринин массивдерин сорттоочу функция: Сорттоо(A,p,r) 1, эгерде p < r 2 болсо, анда 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) Ишке ашыруу мисалы: Сорт(A,1) ,length[A ]) Талап кылынган: Бириктирүү(A,p,q,r) функциясынын алгоритмин сизге ыңгайлуу тилде, кошумча эстутум менен же колдонбостон, кайсынысын ишке ашыруу үчүн тезирээк же ыңгайлуураак болсо, ошого жараша иштеп чыгуу . Эгер ийгorктүү болсоңуз, биз сизди кошумча тестирлөөдөн өтүүгө кубанычтабыз. Менин жообум: Pseudocode мисалында сүрөттөлгөн алгоритм Бириктирүү сорттоо алгоритми. Функциябыздын негизги милдети иретсиз сандардын массивдерин иреттөө: мисалы, өсүү тартибинде. Маселе көмөкчү тапшырмаларга бөлүнөт: массив бир мааниге ээ болгонго чейин массивден келген сандардын ырааттуулугу кичирээк массивдерге бөлүнөт, массивдердин элементтери салыштырылат, алар алмаштырылат (кичинекей чоңураак, индекс боюнча) жана бириктирилет.
Иштеп чыгуучунун позициясы үчүн типтүү тесттик тапшырманы талдоо - 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
Иш codeу менен Ideone менен байланышуу: БУЛ жерде тапшырма ийгorктүү аяктады, андан кийин мени интервьюга чакырышты, анда алар интервьюнун ордуна мага окшош тапшырмалардын дагы бир партиясын ыргытып, эки саатка кетип калышты. 2 даана А4 кагаз. Жалбырактарды карап туруп алып, кайра чалабыз дешти. Мындай эрмектен ырахат алганымды цензуралык сөз менен айтып жеткирүү мүмкүн эмес. Бирок, жок дегенде, бул көптөгөн адамдар сапарынын башында туш боло турган катаал чындык.
Разбор типичного тестового задания на позицию разработчика - 4
Кызыктуу жана конструктивдүү маектерди чын жүрөктөн каалайм. Жумуш берүүчүңүздү акылдуулук менен тандаңыз. Баары жакшы!) P.S.: 2018-жылдын апрель айындагы (Санкт-Петербург) жумуш берүүчү компаниялар тууралуу менин баяндамамды бул жерден көрсөңүз болот.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION