Pull to refresh
6
0.2

Разработчик

Send message

Управленческие инструменты: Как невольно затроллить собеседника и получить минус в карму

Reading time2 min
Views49K
В предыдущей статье по управленческим инструментам мы разбирали алгоритм, как конструктивно решать проблемы с людьми. Настала очередь поговорить о неконструктивных приемах. И начну с истории.

В 2004 году наш коллектив, мирно делающий проекты для Sun Microsystems, решила приобрести корпорация, мировой лидер по производству микропроцессоров. Прилетел вице-президент корпорации и начал раздавать оферы.

На тот момент я руководил командой тестирования Java на мобильных устройствах. Соответственно мне был выдан офер на позицию менеджера с приятными цифрами. В душе немедленно наступила весна, я вырос на пол-метра и начал думать, что именно мы с супругой приобретем. (Пишу, не чтобы мне начали завидовать — задаю контекст ситуации).

И вот иду я по коридору со счастливой улыбкой на лице. Навстречу — директор одного из Sun'овских подразделений, назовем его Сергей. У нас были такие приятельские отношения, поэтому ничто не предвещало беды.

Что было дальше?

Как отойти после выгорания на работе

Reading time8 min
Views31K
Утро 11 июля две тысячи энго года было для меня запоминающимся: когда прозвенел будильник, я привычно попытался встать с кровати: скинул одну ногу, за ней другую, приняв сидячее положение. Затем попытался встать, но потерпел неудачу – мое тело, словно мешок с песком, упало на ковер. Помню первую мысль, которая пришла мне тогда в голову: «на стендап же опоздаю». Страха, что тело может вот так просто ни с того ни с сего упасть, не было. Отжавшись на руках, я вновь взобрался на постель и вновь попытался встать – тело плохо слушалось и сделав два шага, я вновь рухнул на пол. В голове было туманно и мысли путались, но все-таки я додумался написать своему менеджеру, что на работу опоздаю, а может даже и не приду, а приду завтра. Вместо одного дня, на работу я вернулся через три недели: две недели я тупо лежал на диване, было сложно ходить, даже опираясь о стену, мысли меня не слушались (насколько это применимо к мыслям), есть и вовсе не хотелось, но я заставлял себя это делать, потому что знал, что так надо.
Уверен, что вы догадались, почему так произошло – я «сгорел» на работе. За те «первые» две недели, что я валялся в кровати мне пришлось кое-что переосмыслить и придумать алгоритм, решающий задачу полного восстановления (в кратчайшие сроки) после «выгорания» на работе.
Читать дальше →

Вопросы и задания для русскоязычной книги Thinking in Java (Философия Java) Брюса Эккеля

Reading time11 min
Views178K


На вопрос «С какой книги начать изучение Java?» очень часто отвечают: Thinking in Java Брюса Эккеля.
Но вот беда — эта книга (4-е издание) не содержит в конце каждой из глав вопросы и практикум…

Именно того, что способствует наиболее эффективному изучению языка!

Обучаясь по этой книги, я делал небольшие заметки по поводу моментов, которые были для меня новыми или интересными. Причем оформлял их в виде коротких вопросов. После прочтения каждой главы пробегался по этому списку и придумывал себе задачки, аналогичные коду, приведенному в главе.

Почему бы не поделиться этими заметками-вопросами с Вами?

Приведен список составленных на данный момент вопросов.
Вопросы типа «Что такое внутренний класс?» отсутствуют. Такие определения, на мой взгляд, четко формируются по мере чтения главы и не требуют скучного и банального вопроса для подкрепления.

А также отсутствуют вопросы, наподобие «что такое stack? каковы особенности его работы?». Они являются базовыми для многих языков и для всего программирования в целом. Поэтому старался их избегать.

В целом, я старался формулировать вопросы о различных интересных тонкостях и нюансах, которые требуют периодического повторения.

В конце вопросника приведен сделанный мной перевод некоторых упражнений-заданий, опубликованных в англоязычном оригинале книги. Указаны страницы, на которых эти упражнения напечатаны.

Вас приятно удивит, что к большинству ответов на вопросы добавлены номера страниц русского издания. На этих страницах также напечатаны ответы на сформулированные вопросы.

Читать дальше →

Как я начал работать на Odesk и Elance

Reading time5 min
Views247K
Как-то полтора года назад я сидел в кафе на Арбате и думал о своем будущем. На тот момент работал программистом на полставки и учился в одном техническом ВУЗе. Все было стабильно, но хотелось чего-то большего – и я решил посмотреть, сколько зарабатывают хорошие программисты на фрилансе. Опыт «фрилансерства» у меня к тому моменту уже был, но впечатление осталось не самое лучшее — деньги маленькие, заказчики не всегда адекватные, один раз даже меня «кинули» с оплатой.

Я зашел на сайт всем известной российской фриланс-биржи и увидел, что за год моего отсутствия там ничего не изменилось: платят — мало, просят — много и так далее. Так у меня родилась идея посмотреть, что происходит на западе. Я нашел на Хабре статьи про иностранные биржи Odesk и Elance, почитал, подумал, как все сложно, и благополучно забыл про эту затею.
Что было дальше?

Архитектура карьерного роста

Reading time9 min
Views232K

С понедельничком (говорят — самым депрессивным в году), хабровчане!
После публикации этой статьи, многие заметили, что я шустрый карьерист, и у меня начали просить совета на тему: как обеспечить карьерный рост в IT-индустрии. Во избежание повторения одних и тех же советов разным людям в личных сообщениях я и пишу эту статью, делясь в ней историей своего собственного карьерного роста и основными наблюдениями, которые я сделал за 13 лет опыта работы в больших и не очень компаниях.
Сразу предупрежу, что не претендую на изложение универсальной теории карьерного роста сферического коня в вакууме, и большинство замечаний искривлено призмой моего восприятия. То, что неоднократно работало в моем случае, необязательно сработает в вашем.

Читать дальше →

10 потенциальных SQL ошибок, которые делают программисты

Reading time6 min
Views234K
Оригинал статьи носит название «10 SQL ошибок, которые делают Java разработчики», но, по большому счёту, приведённые в ней принципы можно отнести к любому языку.



Java программисты мешают объектно-ориентированное и императивное мышление в зависимости от их уровня:
— мастерства (каждый может программировать императивно)
— догмы (шаблон для применения шаблонов где-либо и их именование)
— настроения (применять истинный объектный подход немного сложнее чем императивный)

Но всё меняется, когда Java разработчики пишут SQL код.
Читать дальше →

Монолог инкогнито с одной айтишной конференции

Reading time7 min
Views130K
Disclaimer. Монолог ниже является стенограммой выступления одного из докладчиков на одной из айтишных конференций. Автор поста всего лишь публикует его здесь с разрешения докладчика.

Всем привет!

В программе мероприятий вам обещали инкогнито долларового миллионера. Увы, он отбыл на воды в Баден-Баден лечить переговорную печень и пришлось затыкать дыру кем попало.

Меня зовут Сергей. Чтобы сказать про себя «я плохой докладчик», нужно хотя бы им, докладчиком, быть. Я вообще не оно. Свою первую и одну из последних презентаций я провел в 18 лет в Испании, перед аудиторией человек в 100. Мой весьма средний на тот момент английский синхронно переводили на испанский, народ зевал и почесывал репы, ожидая когда ЭТО недоразумение закончит блеять и объявится кофебрейк.

Сказать что мне было стыдно — это ничего не сказать, красный как рак, я свалил вторым выходом, забился в свой номер и боялся показаться на глаза. Всякие public professionals типа Карнеги сказали бы «позор!» и «never again!». Для себя я решил — все что угодно, хоть жигулевское пиво по пятницам, только не публичные экзекуции

К чему это я? Многие, глядя на ИТшников, путают скромность со стеснительностью. Да и фиг с ними. Главное — чтобы мы сами не путали. Я — стеснительный, поэтому буду смотреть в пол и читать по бумажке. Я бы выпил, конечно, для смелости, граммчиков сто (а лучше сто пятьдесят), но организаторы запретили. Ну что, пусть фигово, зато честно!

Я владелец компании П, в которой мы уже лет 13 или 14 занимаемся разработкой всякой фигни, про которую никто не слышал. Не имея таланта делать что-то красивое и эстетичное, мы довольствуемся подводной частью айсберга: софт-свитчи и клиенты для IP-телефонии, аппаратно-программные решения для высоконагруженных систем обработки контента, системы имперсонализации web и e-mail для виртуального присутствия, облачное видеонаблюдение, несколько справочных и торговых интернет-порталов, ну и еще пара проектов в стадии стартапа, говорить о которых рано, потому что стыдно

Все о чем собираюсь сказать, основано исключительно на личном опыте, относится к маленьким компаниям и совершенно не обязано работать в больших, хотя иногда бывает. За 25 лет, отданных айти-бизнесу, я умудрился побывать в разных шкурах, от техника, подносящего кофе джуниор девелоперам, до владельца компаний, которому не надо вставать в 8. Посредине между этими сомнительными гранями было, наверное, два главных увлечения — язык Си и темное ирландское пиво. Увы, и то и другое со временем пришлось сильно урезать.
Читать дальше →

Подарок от Skype на новый год

Reading time1 min
Views785K
image

Вероятно, в качестве рождественского и новогоднего подарков, Microsoft запустила акцию Skype Collaboration Project, в рамках которой Skype дарит пользователям возможность на весь следующий год возможность пользоваться функциями групповой работы (видеочат и разделение экрана), а также отключить отображение рекламы. Еще вы получаете годовой абонемент на обмен картинками рабочего стола в групповых звонках, полным отсутствием рекламы и бесплатную техническую поддержку на период прохождения акции.

Для участия в акции переходим по этой ссылке и вводим туда почту на которую придет письмо с кодом (Вводить почту на которую зарегистрирован аккаунт скайпа не обязательно).
Читать дальше →

Задачи на собеседованиях в Яндексе

Reading time15 min
Views361K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

Однако стоит оговориться, что статья все же про подбор разработчиков. Т.е. собственно тех восьмидесяти процентов сотрудников, на которых держится массовая разработка. Часто мы нанимаем людей на специальные вакансии: например, разработчиков систем компьютерного зрения, лингвистов, экспертов по машинному обучению. В этом случае формат собеседования может заметно отличаться.

image
Читать дальше →

Управленческие инструменты: Как играть в нелинейные шахматы

Reading time7 min
Views68K
Менеджмент, на мой взгляд, сильно похож на шахматы. Ты изучаешь методологии, ходишь на тренинги (то есть, изучаешь дебюты, принципы миттельшпиля и эндшпиля), готовишься, рисуешь план и… начинаешь игру!

Разворачиваешь свои войска: пешки двинулись вперед, кони подтягиваются, слоны занимают диагонали. И тут к тебе подходит ферзь (тим лид) и говорит “Знаешь, старик, я, наверное, буду увольняться… Чего-то совсем меня все достало.” И через две недели сходит с доски.

Нападает небольшая растерянность: а че делать? В дебютах не писали про внезапное увольнение ферзей…

Идем к начальству. Там нас ждет знакомая песня: “Сейчас бюджета нет, ты давай там как-то коней помотивируй…“ А ты понимаешь, что мотивированный конь — это не совсем ферзь. Он продолжает действовать как конь, только у него глаза начинают гореть.

Или: “Мы тебе можем нанять три пешки, ты их там поментори и через шесть ходов они вполне могут стать ферзями.” А ты понимаешь, что через 6 ходов тебя уже закопают вместе с проектом.

Нелинейные шахматы. Причем со всей этой бандой ты как менеджер должен выдавать какие-то ожидаемые результаты…

К сожалению (и к счастью) у людей появляется интерес и пропадает интерес, рождаются дети, случаются разводы — и это все неминуемо сказывается на мотивации человека, и как следствие, его производительности.

Можем ли мы как менеджеры повлиять на нелинейность человека, про которую так много писал Алистер Коберн в своей программной статье [1]? На что-то можем, на что-то нет. Но мы абсолютно точно можем отслеживать состояние человека, используя ряд инструментов. Об одном из них сегодня и поговорим.

Вы сможете использовать этот инструмент как для оценки собственной мотивации, так и для оценки состояния своих сотрудников (а это вещи связанные, об этом мы тоже поговорим). Итак, поехали!

Читать дальше →

Runtime-генерирование .Net-кода для тех, кому некогда

Reading time8 min
Views35K
Инфраструктура .Net содержит встроенные средства генерирования кода (On-the-Fly Code Generation). Это позволяет .Net-программе в момент своего исполнения самостоятельно (без участия программиста) скомпилировать текст, написанный на каком-либо языке программирования и исполнить получившийся код. Логично было бы ожидать, что для осуществления этих действий в стандартной .Net-библиотеке предусмотрен простейший метод соответствующего класса. Но к сожалению это не так. Microsoft, проделав огромный путь по встраиванию в среду .Net средств генерирования кода, не сделала самый последний шаг навстречу простейшим потребностям программистов. Значит, придётся сделать этот шаг самостоятельно.

Самое простое средство предлагаемое Microsoft для решения описанной задачи — это класс CSharpCodeProvider, который входит в стандартную библиотеку .Net. Использование этого класса — не очень сложная задача, но тем не менее было бы полезно иметь инструмент, превращающий использование сгенерированного на лету кода в задачу тривиальную.
Вот что получилось в результате

Файл, который нужно закоммитить перед уходом с работы

Reading time2 min
Views113K
Немножко пятничного настроения в субботу. Я думаю, все видели этот код:

image

Но Aras Pranckevičius пошел еще дальше. Как написать код, который не так просто обнаружить?
И если вначале идут простые примеры, то дальше начинается…
Осторожно, чистое зло

PHP: фрактал плохого дизайна

Reading time32 min
Views208K

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →

Посты-рекордсмены. Продолжение

Reading time5 min
Views30K
Судя по реакции на предыдущий пост, тема парсинга Хабра и альтернативных топов интересна не только мне, поэтому продолжу.
Спасибо всем, кто голосовал и комментировал и отдельно тем, кто присылал идеи новых рейтингов и исследований.

В предыдущем посте (Посты-рекордсмены / Хабрахабр), я пробовал различные варианты сортировки постов Хабра, отличные от обычного рейтинга. В этом я буду сортировать по рейтингу, но не все посты, а отобранные по определённым критериям.
Читать дальше →

Оценка сложности алгоритмов

Reading time6 min
Views638K
Не так давно мне предложили вести курс основ теории алгоритмов в одном московском лицее. Я, конечно, с удовольствием согласился. В понедельник была первая лекция на которой я постарался объяснить ребятам методы оценки сложности алгоритмов. Я думаю, что некоторым читателям Хабра эта информация тоже может оказаться полезной, или по крайней мере интересной.
Читать дальше →

Много бесплатных книг по программированию

Reading time7 min
Views347K
Читать дальше →

Ключ к счастью, или Качество включенó. Крик души программиста

Reading time6 min
Views25K
В этот раз речь пойдет о модульных тестах и инспекциях кода. Когда мы в нашей команде начали использовать две эти практики в своих проектах, драйва и радости от работы прибавилось на порядок. Упомянутым темам посвящено огромное количество теоретических и практических трудов, но сегодня речь пойдет именно о личной выгоде разработчика.
Читать дальше →

Знай сложности алгоритмов

Reading time2 min
Views1.1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →

BitTorrent Tracker на C#

Reading time6 min
Views26K
Долгое время я искал в сети пример простейшего tracker-а на C#, но, к сожалению, мои поиски успехом не увенчались. Поэтому я решил попробовать себя в написании tracker-а на C#, а получив более-менее рабочую версию — поделиться опытом ее создания со всеми. А заодно и получить как можно больше советов по ее усовершенствованию.

Но давайте начнем с начала…
Читать дальше →

Чему я научился за 8 месяцев в Microsoft

Reading time4 min
Views170K
image

Моя стажировка в Microsoft Windows Azure началась ровно два года назад, сразу после колледжа, и проходила она в той же команде, с которой я проработал последние восемь месяцев.

Недавно мне в голову пришла мысль подвести определенный итог и рассказать о некоторых принципах, которым я научился за эти восемь месяцев. Читателю может показаться, что они делают работу не самой приятной — но нет, это не так. Я-то уже понял, что ровно те же самые проблемы есть во всех больших компаниях, и большая часть замеченного мною касается не только Microsoft — вдобавок, у каждой компании есть еще и свои собственные проблемы.

Не могу сказать, чтобы я был несчастлив, и не хочу ни на что жаловаться… но в колледже об этих вещах меня никто не предупреждал.

Итак, поехали.
Читать дальше →

Information

Rating
2,775-th
Location
Cary, North Carolina, США
Registered
Activity