今天我想看一下实习开发人员职位的职权范围。曾几何时我写过:我想分享一下我对这件事的看法,对于初学者在找工作时了解未来等待着他们的是什么会有帮助。
职位空缺如下: 见习 PostgreSQL 开发人员 ,起薪 30,000 卢布。扣除个人所得税前 LLC Business Technologies St. Petersburg, Kolomyazhsky Prospekt, 33k2 Business Technologies 所需工作经验:不需要
与 Ideone 的工作代码链接:这里 任务成功完成,之后我被邀请参加面试,他们没有接受面试,而是向我扔了另一批类似的任务,然后离开了两个小时,给了我一支笔和2张A4纸。他们看也不看叶子就接过叶子,说等会再打电话。我从这种消遣中获得的乐趣无法用经过审查的言语来形容。但至少,这是许多人在旅程开始时必须面对的严酷现实。
我真诚地祝愿您的采访有趣且有建设性。明智地选择你的雇主。祝一切顺利!) P.S.:我对 2018 年 4 月(圣彼得堡)用人公司的评论可以 在这里找到
- 全日制,全日制
- 在开发人员的指导下实施低复杂度任务
- 资质持续增长
- 了解结构化编程原理、关系数据库理论。
- 责任、独立、主动
- 沟通技巧、团队合作的能力和愿望
- 高学习能力
- 知识
- sql;
- pl\sql;
- pl\pgSql;
- C++、Java、帕斯卡。
- 在稳定、动态发展的公司工作
- 舒适的工作条件
- 杜绝形式主义、官僚主义
- 广泛的专业和职业发展机会
- 薪资根据面试结果而定
- 根据劳动法登记,根据劳动法带薪休假。
- 请在信头注明职位代码:Project04
- 左边距的缩进表示嵌套的级别。
- 循环 while、for、repeat 和条件结构与 Pascal 中的含义相同。
- 符号“--”表示注释
- 符号“:=”表示赋值
- 除非另有说明,变量对于过程来说是局部的
- 数组索引写在方括号中,结构A[i]表示数组A中的第i个元素
-
可以使用由多个字段组成或具有多个属性的对象;字段值写为 FieldName[ObjectName]。
例如数组A的长度写为Length[A];方括号的含义由上下文决定(表示数组的变量,或对象是指向其组成数据的指针)。为任何字段 f 分配 y:=x 后,将满足等式 f[y]=f[x];确定属性是函数、变量还是其他任何东西是通过上下文来完成的。
- 指针可以具有特殊值 NIL,它不指向任何对象。
- 参数按值传递:被调用的过程接收其自己的参数副本;过程内部参数的更改从外部不可见。传递对象时,会复制指向与该对象对应的数据的指针。
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