Последние две недели были особенно плодотворны темами, посвящёнными изучению IT в школе, в университете и самостоятельно. Интересен разброс мнений: от «обязательно идите в вуз, впитывайте знания, получайте корочку» до «ничему вас там не научат, лучше идите в индустрию и учитесь у старших коллег». Как действующий университетский преподаватель я, конечно, буду ратовать за вузовское образование, но с большими дополнениями и оговорками. Именно этим дополнениям и оговоркам хочется посвятить отдельную статью, надеюсь, небесполезную для интересующихся школьников и студентов, и способствующую целостному взгляду на образовательный процесс в нашей любимой области.
Сергей @wapmorgan
Пользователь
Coder vs. Developer vs. Engineer — а какой Job Title у тебя, %username%?
12 мин
70KComputer Scientist, Software Engineer и Coder заходят в бар.
— О, а вот и программисты! — окликает их бармен...
Я знаю людей, которые программируют уже не один десяток лет, но обижаются, когда их называют "программистами". А по запросу Coder vs Developer vs Software Engineer в гугле находится 113 000 000 ссылок: 1 2 3 4 5 6 7 8 9 … 113 000 000. Что интересно, можно найти совершенно противоположные мнения об одном и том же. С чем-то я согласен, а с чем-то в корне нет.
Последние же несколько лет так вообще постоянно подливают масло в огонь, появляются какие-то совсем странные программисты, которые называют себя Creative Technologist, Creative Coder и Interactive Developer.
Давайте же попробуем разобраться.
— О, а вот и программисты! — окликает их бармен...
Я знаю людей, которые программируют уже не один десяток лет, но обижаются, когда их называют "программистами". А по запросу Coder vs Developer vs Software Engineer в гугле находится 113 000 000 ссылок: 1 2 3 4 5 6 7 8 9 … 113 000 000. Что интересно, можно найти совершенно противоположные мнения об одном и том же. С чем-то я согласен, а с чем-то в корне нет.
Последние же несколько лет так вообще постоянно подливают масло в огонь, появляются какие-то совсем странные программисты, которые называют себя Creative Technologist, Creative Coder и Interactive Developer.
Давайте же попробуем разобраться.
+116
Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО
3 мин
380KНе так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:
Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?
Тема перевода зарубежной профессиональной IT-литературы стоит достаточно остро, многие любят читать книги в оригинале по различным причинам, таким так время выхода русского перевода с запозданием на годы, недостаточный профессионализм переводчика и соответствующая потеря тонкостей и авторского стиля и т.д.
Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?
Тема перевода зарубежной профессиональной IT-литературы стоит достаточно остро, многие любят читать книги в оригинале по различным причинам, таким так время выхода русского перевода с запозданием на годы, недостаточный профессионализм переводчика и соответствующая потеря тонкостей и авторского стиля и т.д.
Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
+202
Взгляд изнутри: Flash-память и RAM
8 мин
159K![](https://habrastorage.org/getpro/habr/post_images/ae5/ac9/da6/ae5ac9da619868e4f80b4606ec3e3aed.jpg)
Предисловие
Новый Год – приятный, светлый праздник, в который мы все подводим итоги год ушедшего, смотрим с надеждой в будущее и дарим подарки. В этой связи мне хотелось бы поблагодарить всех хабра-жителей за поддержку, помощь и интерес, проявленный к моим статьям (1, 2, 3, 4). Если бы Вы когда-то не поддержали первую, не было и последующих (уже 5 статей)! Спасибо! И, конечно же, я хочу сделать подарок в виде научно-популярно-познавательной статьи о том, как можно весело, интересно и с пользой (как личной, так и общественной) применять довольно суровое на первый взгляд аналитическое оборудование. Сегодня под Новый Год на праздничном операционном столе лежат: USB-Flash накопитель от A-Data и модуль SO-DIMM SDRAM от Samsung.
+58
Сети для самых маленьких. Часть нулевая. Планирование
7 мин
2.1MТуториал
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.
Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.
![Схема сети](https://habrastorage.org/getpro/habr/post_images/0ad/458/8a3/0ad4588a332ae1d0b7ac27ba86c75e6a.png)
Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.
Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.
![Схема сети](https://habrastorage.org/getpro/habr/post_images/0ad/458/8a3/0ad4588a332ae1d0b7ac27ba86c75e6a.png)
Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
+96
Почему программисты работают по ночам
3 мин
108KПеревод
![Мозг шимпанзе в лондонском музее науки Мозг шимпанзе в лондонском музее науки](https://habrastorage.org/storage2/c88/6bf/392/c886bf392f5938505a04bbb9a315710e.jpg)
Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.
Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?
Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.
+240
Тёмная сторона ContentProvider'ов
2 мин
13KContentProvider — класс Android для обмена данными между приложениями. Именно так и написано в явадоках: A content provider is only required if you need to share data between multiple applications. Но кто же читает документацию, пока всё работает? Очевидно, только тот, кто набил достаточно шишек, наступая на всевозможные грабли.
Итак, в этой заметке я хотел бы поделиться своим негативным опытом использования ContentProvider'ов в качестве источника данных внутри приложения. Почему же собственно их использование для доступа к данным внутри программы неоправданно?
Итак, в этой заметке я хотел бы поделиться своим негативным опытом использования ContentProvider'ов в качестве источника данных внутри приложения. Почему же собственно их использование для доступа к данным внутри программы неоправданно?
+2
Channel.me → совместный просмотр сайтов
2 мин
5.2K![](https://habrastorage.org/storage1/be0e7d8b/f20a6609/b120f31c/a73826f8.png)
Кидать ссылки друг другу или шарить один из рабочих столов я посчитал неэффективным. Но нашёлся революционный сервис, который похож на Google Docs, но только для совместного посещения сайтов — Channel.me.
Ближе к делу: демо-канал для хабрапользователей | демо-канал №2
Комментарий от создателей по поводу хабра-эффекта в демо-канале:
The demo-channel is a bit crowded… Looks more like a stress test :-)
Our virtual server is running at 160% and with 20Mb/s traffic… cool!
+70
Битовые операции в PHP на примерах
3 мин
88K![](https://habrastorage.org/storage1/e947719a/6908d866/68c9a913/4102e406.png)
Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
илиif(in_array($error['type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR)) {…}
В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
+164
CINEMA 3D — технологические особенности и возможности применения
5 мин
86KПривет всем!
Сегодня мы расскажем вам, друзья, про передовую технологию от LG Electronics – CINEMA 3D. Наши разработчики – LG Display – называют ее «пассивной» 3D-технологией. Почему?
Читайте дальше.
![image](http://www.habrastorage.com/images/1bqb.png)
Сегодня мы расскажем вам, друзья, про передовую технологию от LG Electronics – CINEMA 3D. Наши разработчики – LG Display – называют ее «пассивной» 3D-технологией. Почему?
Читайте дальше.
![image](http://www.habrastorage.com/images/1bqb.png)
+5
По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?
10 мин
175KПеревод
![](https://habrastorage.org/storage1/1de512eb/fd4ccc8c/34f3fcc0/17ca7d15.png)
Добрый день, Хабр!
Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.
+182
Зачем программисту читать художественную литературу
1 мин
10KМеня искренне удивляют высказывания многих моих друзей о том, что чтение художественной литературы является пустой и бесполезной тратой времени. Они считают, что лучше изучить новую технологию, чем провести вечер с хорошей книгой.
+128
Система настроек и смена версий программ: эволюция жизнеспособных форм
20 мин
3.7KКонстантно-переменный дуализм.
Настройки у программ существуют давно, от самых древних ассемблерных программ, имеющих в своём коде константы в качестве настроек. Обновление таких программ происходило с полной заменой кода, поэтому изменение системы настроек не влекло отрицательных последствий. В худшем случае, приходилось переучиваться пользованию интерфейсом. Положение стало меняться при преемственности типов данных и настроек программ. В своё время Microsoft уделяла огромное внимание совместимости программ и данных в операционных системах, в чём была их сильная сторона. Да и сейчас поддержка режима XP Mode — это продолжение политики совместимости. Применительно к веб, пользователям часто встречаются ситуации, когда данные и настройки у них остаются от прежних версий (в куках, в сторонних базах данных), а версия программы — на сервере или скрипт на клиенте — изменяется. Возникает проблема совместимости версий программ и данных и необходимость выработки некоторой политики поддержки совместимости. Новая версия может не устроить по совместимости с браузерами (из-за багов или неполной поддержки), тогда откат к прежней на время исправления багов не должен сопровождаться потерей или искажением настроек, при том, что количество их может меняться с изменением версии.
Требуется подход не просто к настройкам и их организации, а к проблемам смены версий и преемственности настроек. Программы в вебе развиваются мелкими шагами, смена версий происходит часто. Такой же подход к работе с настройками относится и к другим программам, не связанным с вебом, но имеющим частую смену версий. Аналогичные рассуждения можно отнести к форматам всех данных в программах, не только к форматам хранения настроек.
![](https://habrastorage.org/getpro/habr/post_images/7b2/560/46f/7b256046f02915290a49d0fdac319184.jpg)
Требуется подход не просто к настройкам и их организации, а к проблемам смены версий и преемственности настроек. Программы в вебе развиваются мелкими шагами, смена версий происходит часто. Такой же подход к работе с настройками относится и к другим программам, не связанным с вебом, но имеющим частую смену версий. Аналогичные рассуждения можно отнести к форматам всех данных в программах, не только к форматам хранения настроек.
+29
Семантическое управление версиями 1.0.0-rc.1
6 мин
17KПеревод
В мире разработки программного обеспечения, существует страшное место, называемое «ад зависимостей». Чем больше ваша система, тем больше шанс, что в один из дней вы попадете в эту ловушку.
В системе с большим количеством зависимостей, выпуск новых пакетов может быстро превратиться в кошмар. Если зависимости слишком прочные, вы не можете обновить пакет, не обновив при этом версии всех зависимых пакетов. Если зависимости слишком свободные, у вас возникнут проблемы с распущенностью версий. «Ад зависимостей», это когда слишком прочные, или наоборот, слишком свободные зависимости не дают вам легко и безопасно развивать ваш проект.
В системе с большим количеством зависимостей, выпуск новых пакетов может быстро превратиться в кошмар. Если зависимости слишком прочные, вы не можете обновить пакет, не обновив при этом версии всех зависимых пакетов. Если зависимости слишком свободные, у вас возникнут проблемы с распущенностью версий. «Ад зависимостей», это когда слишком прочные, или наоборот, слишком свободные зависимости не дают вам легко и безопасно развивать ваш проект.
+37
Как распоряжаться своими идеями
4 мин
913![Благодарю Сергиец Дмитрия за рисунок это КДПВ](https://habrastorage.org/storage1/b820874e/3a786c20/79736475/ed355658.jpg)
Статья в первую очередь будет интересна тем, кто представил себя на месте этого, ещё молодого человека, и во-вторую очередь тем, кто с улыбкой прочитал небольшую зарисовку.
Я хочу поделиться накопленным опытом, который осмыслил и представлю в виде коротких умозаключений. Так сказать, лаконичность в сестры таланту! Я уверен, что тут вы не найдете абсолютной истины, поэтому буду искренне рад вашим мнениям, как буду рад, если читатель останется благодарным за топик.
+15
Слава 1809 — как разбираются наручные часы и из чего состоят
1 мин
40K![image](https://habrastorage.org/getpro/habr/post_images/fca/ae1/3d2/fcaae13d248b939b1cb5a4e81080d572.jpg)
На канале GTV дебютируют новые устройства — наручные часы. Сегодня предлагаем посмотреть: как разбираются и из чего устроен механизм наручных часов — Слава 1809.
+33
Канал GTV: Документальный фильм про Стива Джобса и NEXT. 1986г. (русский перевод)
1 мин
9.6KДокументальный фильм про Стива Джобса и его стартап, компанию NEXT, которую он основал после ухода из Apple. Фильм снят в 1986 году. Перевод на русский язык — канал GTV.
![image](http://img-fotki.yandex.ru/get/5822/123838762.1/0_70e9e_6f30384b_M.jpg)
![image](http://img-fotki.yandex.ru/get/5823/123838762.1/0_70e9d_64ef8389_M.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/477/9e5/159/4779e515914bcece1670c803fe4a306a.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/ad6/f17/974/ad6f179745816b4826d072662572c613.jpg)
Приятного всем просмотра!
![image](http://img-fotki.yandex.ru/get/5822/123838762.1/0_70e9e_6f30384b_M.jpg)
![image](http://img-fotki.yandex.ru/get/5823/123838762.1/0_70e9d_64ef8389_M.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/477/9e5/159/4779e515914bcece1670c803fe4a306a.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/ad6/f17/974/ad6f179745816b4826d072662572c613.jpg)
Приятного всем просмотра!
+114
Оптимизация запросов MySQL с использованием пользовательских переменных
14 мин
66KВведение. В современном мире существует большое количество задач, в рамках которых приходится обрабатывать большие массивы однотипных данных. Яркими примерами являются системы для анализа биржевых котировок, погодных условий, статистики сетевого трафика. Многие из этих систем используют различные реляционные базы данных, в таблицах которых содержатся такие объемы данных, что правильное составление и оптимизация запросов к этим таблицам становится просто необходимым для нормального функционирования системы. В этой статье описаны методы решения ( и сравнительные временные характеристики используемых методов ) нескольких задач по получению данных из таблиц СУБД MySQL, содержащих статистику о проходящем через маршрутизаторы одного из крупных российских сетевых провайдеров сетевом трафике. Интенсивность потока данных, поступающего с главного маршрутизатора такова, что ежесуточно в таблицы базы данных используемой системы мониторинга сетевого трафика поступает в среднем от 400 миллионов до миллиарда записей, содержащих информацию о транзакциях TCP/IP (рассматриваемый маршрутизатор экспортирует данные по протоколу netflow). В качестве СУБД для системы мониторинга используется MySQL.
+66
PHP: Расширенный текучий интерфейс
5 мин
3.7KУверен, что многим из вас, кто читает этот текст, знакомо понятие Текучий интерфейс. И даже если вы про него не слышали, уверен, что вы им пользовались и не раз. Это действительно удобно. Так о чем же идет речь?
Вот небольшой пример. Мы можем в строчку, последовательно, производить действия. Этот же принцип лежит в основе популярной библиотеки jQuery. Да что тут говорить, все современные фреймворки изобилуют подобными конструкциями. А вот что если использовать подобный механизм для построения всего сайта?
<?php
class Images {
public $width;
public $height;
public function SetWidth($value) {
$this->width = $with;
return $this;
}
public function SetHeight($value) {
$this->height = $value;
return $this;
}
}
$images = new Images();
$images->SetWidth(100)->SetHeight(100);
?>
Вот небольшой пример. Мы можем в строчку, последовательно, производить действия. Этот же принцип лежит в основе популярной библиотеки jQuery. Да что тут говорить, все современные фреймворки изобилуют подобными конструкциями. А вот что если использовать подобный механизм для построения всего сайта?
+23
Курс философии для студентов ИТ-специальностей: каким он должен быть?
3 мин
13KНе так давно на хабре появились две весьма интересные дискуссии по проблемам подготовки ИТ-специалистов в современных российских вузах(1 и 2). Участники этих дискуссий критикуют отечественную систему высшего образования, так как она (1) очень сильно оторвана от реальной практики и (2) перегружена общеобразовательными предметами.
Очень многие негативно высказываются о существующей в отечественных вузах практике преподавания философии. Как человек, философию преподававший и проработавший на соответствующей кафедре почти 10 лет, не могу не признать, что столь резкая критика вполне обоснована и справедлива. Во многих российских вузах преподавание философии далеко не соответствует требованиям сегодняшнего дня. Ниже я попытаюсь предложить конструктивное решение проблемы и изложить свои соображения по поводу того, как сделать курс философии интересным для технарей вообще и ИТ-специалистов в частности.
Очень многие негативно высказываются о существующей в отечественных вузах практике преподавания философии. Как человек, философию преподававший и проработавший на соответствующей кафедре почти 10 лет, не могу не признать, что столь резкая критика вполне обоснована и справедлива. Во многих российских вузах преподавание философии далеко не соответствует требованиям сегодняшнего дня. Ниже я попытаюсь предложить конструктивное решение проблемы и изложить свои соображения по поводу того, как сделать курс философии интересным для технарей вообще и ИТ-специалистов в частности.
+45
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность