Настя, однако, делает первые шаги. Отпускается где-нибудь недалеко и делает пару шагов до цели: игрушки, кресла, стула или нас.
Пытаемся поймать на видео. Пока никак.
Настя, однако, делает первые шаги. Отпускается где-нибудь недалеко и делает пару шагов до цели: игрушки, кресла, стула или нас.
Пытаемся поймать на видео. Пока никак.
По моему твердому убеждению, лучше всего подбирать в команду умных и инициативных сотрудников. Это крайне положительно влияет на качество продукта, а так же сильно облегчает жизнь менеджера, т.к. такая команда требует значительно меньших усилий в управлении, чем команда состоящая из людей, каждый шаг которых нужно контролировать.
Практически неизбежное «зло» в такой команде — появление сотрудников с амбициями карьерного роста. Часть руководителей воспринимает таких сотрудников как угрозу их спокойной жизни и своему личному положению. А также начинает выдавливать и/или принижать их достоинства всеми правдами и неправдами.
На мой взгляд, это страшная ошибка. И для самого начальника и для компании. Компания имеет шанс либо потерять совсем, либо не рассмотреть и, вовремя, не продвинуть хорошего сотрудника. А менеджер рискует здоровьем команды и своей репутацией.
Значительно правильнее понять желания твоего сотрудника и постараться осуществить его мечты. Начать можно с предоставления ему большей свободы. Например, можно выделить ему какой-то достаточно независимый кусок работы и дать себя проявить. Можно организовать микрокоманду, с ним во главе. Можно делегировать ему часть своих обязанностей. Можно много чего еще придумать и, конечно, необходимо искать для такого сотрудника возможности для профессионального и карьерного роста во всей компании. И, главное, радоваться его успехам, как своим. Ведь в них есть и доля твоей работы, как менеджера.
В итоге есть все шансы получить отличного профессионала, довольного жизнью, пашушего с удовольствием и в полную силу. И, что тоже важно, уважающего и ценящего тебя лично.
А IT рынок маленький, кто знает где еще придется встретиться 🙂
А конкуренция? Не нужно её бояться, нужно самому развиваться и расти. У тебя ведь тоже есть амбиции и ты не собираешься сидеть на этом месте до пенсии 🙂
Закончился полугодовой период работы в Лаборатории Модульной Автоматизации. Что-то было хорошо, что-то не очень. Познакомился с хорошими людьми. Потренировал свои умения общаться с заказчиком, которые в Intel практически спали. Умения оказались в приличной форме, заказчик остался полностью удовлетворён и даже предложил конторе расширить количество работ 🙂
Остались недоделанные дела. Основное — это необходимость поставить в компании процесс разработки программного обеспечения на промышленные рельсы. Начать с багтрака и комментов в svn, без которых жить вообще нельзя. Ввести code review, чтобы провести ревизию кода, улучшить его и, самое главное, потренировать разработчиков видеть свои и чужие ошибки, а также возможности оптимизировать код. И так далее. Толкать я в эту сторону начал, но закончить не успел.
Всем остающимся в ЛМА удачи и успехов!
Следующим местом моей работы будет компания Sun Microsystems. Команда релиз инжиниринга J2ME проектов. В России я буду единственным членом команды, остальные в Штатах, включая менеджера (work from home! 🙂 ).
Это, фактически, возвращение в родные пенаты, т.к. я проработал на эту компанию более 5 лет и многих там знаю. Кроме того, это компания с которой мы конкурировали в проекте Apache Harmony.
Труба зовёт! И впереди меня ждут новые люди, новая работа и новый опыт.
Удачи и успехов мне! 🙂
P.S. Теперь опять придется говорить про Sun исключительно в рамках корпоративной этики 🙂
Сегодня с удивлением обнаружил первую пару человек зашедших на этот сайт с Google. Естественно полез смотреть что и как.
Вскрытие показало, что по запросу «сортировка массива» мой блог находится всего на второй странице результатов. По запросу «построение команды» на первой. И, самое удивительное, по запросу «hibernate» на третей!
И все это при том, что тут ещё практически ничего нет, Google не может найти ни одной ссылки сюда и никаких действий для раскрутки не предпринималось. Забавно 🙂
При этом Яндекс про мой сайт вообще не в курсе. И добавить его не удается, вываливается следующая ошибка: «Сервер недоступен, либо возвращает код статуса http, отличный от 200». При этом сам сервер спокойно работает...
Поизучать чтоли как поисковики работают...
Кстати, что нет, ни одной ссылки — странно, т.к., как минимум, известны ссылки c people.apache.org, linkedin.com и пары форумов, где у меня адрес в профиле. Может я что-то не так делаю? Искать пробовал запросом вида «link:caphome.com»
Задачка классическая и очень простая. Посему имеет смысл ее использовать только для совсем уж начинающих программистов.
Хотя меня как-то недавно тоже попросили ее решить 🙂
Развернуть строку символов. Как вариант, можно попросить развернуть массив.
Решений опять же много. Предлагаю все решения, где для разворота массива понадобился еще один массив считать незачётом. Можно это требование внести в условие, но, ИМХО, лучше посмотреть не предложит ли вдруг кандидат подобного решения и уже потом ввести это дополнительное ограничение. Единственным оправданием можно считать вопрос о том необходимо ли сохранить исходную строчку. Но это замечание не относится к Java, т.к. там придется выносить символы из строки в массив. И этот массив, очевидно, беречь нам ни к чему.
Краше всего на C/C++, где строчки — те же самые массивы. Будем использовать такую милую любому настоящему программисту на C арифметику указателей.
void reverseString(char *str)
{
int i = 0;
int len = strlen(str)-1;
for (; i <= len/2; i++)
{
char c = *(str+i);
*(str+i) = *(str+len-i);
*(str+len-i) = c;
}
}
На Java, как я говорил, выглядит менее элегантно, т.к. со строкой нельзя работать, как с массивом. И получатеся нечто вроде:
String reverseString(String s) {
char []str = s.toCharArray();
int len = str.length-1;
for (int i = 0; i <= len/2; i++) {
char c = str[i];
str[i] = str[len-i];
str[len-i] = c;
}
return new String(str);
}
Эта задачка применялась, как минимум, на собеседованиях в Sun Microsystems. Задачка миленькая, несложная, на сообразительность.
Отсортировать массив, состоящий только из единиц и двоек.
Решений, как у большинства задачек много. Приведем некоторые.
В третьем варианте что-то вроде:
public void sort12(int []array) {
int i = 0;
int j = array.length-1;
for (; i<j; i++) {
// Сортируем по возрастанию
if (array[i] == 2) {
for (; array[j] == 2; j--);
array[i] = 1;
array[j] = 2;
j--;
}
}
}
Первый вариант представляется самым оптимальным, с точки зрения производительности: сравнений нет, все действия с массивом последовательные. В нём как раз проявляется сообразительность 🙂
Второй вариант похуже, но тоже ничего.
Третий вариант видится близким ко второму, на достаточно небольших массивах (влезающих в кэш) и похуже на больших массивах.
Вот я не понимаю!
Почему подавляющее большинство HR'ов или нанимающих менеджеров не звонит и не пишет проинтервьюированному кандидату об отказе, если он не подошел?!
Что это? Гипертрофированное чувство собственной важности, корона на мозг давит или просто разгильдяйство?
Это ведь так просто! Сделал шаблон вида: «Здравствуйте. <бла-бла-бла> К сожалению, Вы нам не подошли. <бла-бла-бла>. С уважением, я» и отправляешь его. Отправка занимает секунд 10, приблизительно. Зато, если что-то изменится вы сможете спокойно к этому человеку подъехать снова и он не расскажет своим друзьям, что в компании XXX работают одни YYY. А вдруг у него друзья — мегакрутые специалисты, которые вам край как нужны?
Добрее надо быть к людям и они к вам потянутся!
Работа с людьми, создание и поддержание имиджа — это вообще кропотливая работа, состоящая из мелочей. И «сохранив» сегодня минуту, поправляя корону и не отправив человеку вежливый отказ, никогда не знаешь чем такая «экономия» аукнется завтра.
Hibernate — достаточно популярный пакет для упрощения работы с базой данных. Упрощение достигается путем автоматизации мапинга объектов в базу данных. Таким образом программисту не надо писать SQL запросы, а можно напрямую сохранять и загружать экземпляры классов.
Но, как обычно, в каждой бочке мёда найдётся своя ложка дёгтя. Суть одной из проблем в том, как хранятся и представляются связи между объектами.
Есть две таблицы — People и Events. Между ними установлена связь «Многие ко многим», т.е. один человек может пойти на много событий и на одно событие пойдет много людей.
В Java, с использованием Hibernate, это будет реализовано следующим образом:
public class Man {
private String name;
private Vector events;
}
public class Event {
private String name;
private Vector people;
}
Проверяем задумывается ли человек к чему ведут его действия на более низком уровне. И как у него это получается.