JavaRush /בלוג Java /Random-HE /ניתוח משימת בדיקה טיפוסית לתפקיד מפתח
Uniges
רָמָה
Санкт-Петербург

ניתוח משימת בדיקה טיפוסית לתפקיד מפתח

פורסם בקבוצה
היום ברצוני להסתכל על תנאי ההתייחסות לתפקיד מפתח מתמחה. פעם כתבתי את זה: אני רוצה לחלוק את המחשבות שלי בעניין הזה. זה יעזור למתחילים לקבל מושג מה מצפה להם בעתיד במציאת עבודה.
ניתוח משימת בדיקה טיפוסית לתפקיד מפתח - 1
המשרה הפנויה היא כדלקמן: מתאמן מפתח PostgreSQL מ- RUB 30,000. לפני ניכוי מס הכנסה אישי LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies ניסיון עבודה נדרש: לא חובה
  • משרה מלאה, משרה מלאה
אחריות:
  • ביצוע משימות ברמת מורכבות נמוכה בהנחיית מפתח
  • צמיחה מתמדת של כישורים
דרישות:
  • הבנת עקרונות התכנות המובנה והתיאוריה של מסדי נתונים יחסיים.
  • אחריות, עצמאות, יוזמה
  • כישורי תקשורת, יכולת ורצון לעבוד בצוות
  • יכולת למידה גבוהה
רצוי:
  • יֶדַע
  • SQL;
  • Pl\sql;
  • Pl\pgSql;
  • C++, Java, Pascal.
תנאים:
  • עבודה בחברה יציבה ומתפתחת בצורה דינמית
  • תנאי עבודה נוחים
  • חוסר פורמליזם ובירוקרטיה
  • הזדמנויות נרחבות לצמיחה מקצועית וקריירה
  • שכר לפי תוצאות הראיון
  • רישום לפי קוד העבודה, חופשה בתשלום בהתאם לחקיקת העבודה.
  • נא לציין את קוד המשרה בכותרת המכתב: Project04
תיאור משימת המבחן: המבחן מיועד לשליטה עצמית על מנת שהמועמד יקבע בעצמו האם כדאי להשקיע את זמנו בראיון. פסאודוקוד פסאודוקוד זה משמש לתיאור אלגוריתמים.
  1. הזחה מהשוליים השמאליים מעידה על רמת הקינון.
  2. ללולאות בעוד, עבור, מבנים חוזרים ותנאיים יש את אותה משמעות כמו בפסקל.
  3. הסמל "--" מציין הערה
  4. הסמל ":=" מציין הקצאה
  5. המשתנים הם מקומיים לנוהל אלא אם צוין אחרת
  6. אינדקס המערך כתוב בסוגריים מרובעים, הבנייה A[i] פירושה אלמנט i במערך A
  7. ניתן להשתמש באובייקטים המורכבים ממספר שדות או בעלי מספר תכונות; ערכי השדות נכתבים בשם FieldName[ObjectName].

    לדוגמה, אורך מערך A נכתב כ- Length[A]; המשמעות של הסוגריים המרובעים נקבעת על ידי ההקשר (משתנה המציין מערך, או אובייקט הוא מצביע לנתונים המרכיבים אותו). לאחר הקצאת y:=x לכל שדה f יגיע השוויון f[y]=f[x]; קביעה אם תכונה היא פונקציה, משתנה או כל דבר אחר נעשית לפי הקשר.

  8. מצביע יכול להיות בעל הערך המיוחד NIL, שאינו מצביע על אף אובייקט.
  9. פרמטרים מועברים לפי ערך: הפרוצדורה הנקראת מקבלת עותק משלו של הפרמטרים; שינויים בפרמטרים בתוך הפרוצדורה אינם נראים מבחוץ. בעת העברת אובייקטים, מועתק מצביע לנתונים התואמים לאותו אובייקט.
בעיה פונקציה שממיינת מערך של אלמנטים A: Sort(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 Merge(A,p,q,r) דוגמה למערך: A = (5,2,4,6,1,3,2,6) דוגמה להפעלה: Sort(A,1 ,length[A ]) נדרש: פתח אלגוריתם לפונקציית Merge(A,p,q,r) בכל שפה הנוחה לך, עם או בלי שימוש בזיכרון נוסף, המהיר או נוח לך יותר ליישום. . אם תצליח, נשמח לארח אותך לבדיקות נוספות. תשובתי: האלגוריתם המתואר בדוגמה של Pseudocode הוא אלגוריתם המיון של Merge. המשימה העיקרית של הפונקציה שלנו היא למיין מערך של מספרים לא מסודרים: למשל, בסדר עולה. הבעיה מחולקת לתת-משימות: רצף המספרים מהמערך מחולק למערכים קטנים יותר עד שהמערך הופך ליחיד-ערכי, מרכיבי המערכים מושווים, הם מוחלפים (קטנים יותר בגדולים, לפי אינדקס), ומתמזגים.
ניתוח משימת בדיקה טיפוסית לתפקיד מפתח - 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
קישור עם קוד עבודה ל-Ideone: כאן המשימה הושלמה בהצלחה, ולאחר מכן הוזמנתי לראיון, שבו במקום ראיון זרקו עלי עוד קבוצה של משימות דומות ועזבו לשעתיים, נתנו לי עט ו 2 פיסות נייר A4. הם לקחו את העלים בלי להסתכל עליהם ואמרו שיתקשרו בחזרה. אי אפשר לתאר את ההנאה שלי מבילוי כזה במילים מצונזרות. אבל, לכל הפחות, זו המציאות הקשה שרבים יצטרכו להתמודד איתה בתחילת דרכם.
Разбор типичного тестового задания на позицию разработчика - 4
אני מאחל לך מכל הלב ראיונות מעניינים ובונים. בחר את המעסיק שלך בחוכמה. כל הכבוד!) נ.ב.: את הביקורת שלי על חברות מעסיקות לאפריל 2018 (סנט פטרסבורג) ניתן למצוא כאן
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION