войти зарегистрироваться

Human ResourcesЯ хочу работать в Google! Телефонное интервью (часть 2)

Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.

C++Я не знаю Си

Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.

Учебный процесс в ITМой отчет о семестровом преподавании в ВУЗе

О чем эта статья


Всем привет! С Новым Годом! :)

Лично я никогда не думал, что один день буду в амплуа преподавателя. Но мы живем в таком динамичном мире, что не всегда можешь с уверенностью сказать, что будет через год, через месяц или даже завтра. И вот, будучи студентом 4го курса я не мог не пойти навстречу руководству кафедры в ознакомлении молодых студентов первокурсников с основами программирования на языке Си.
Что из этого получилось — читайте под катом.

История ИТИстория языка Си из песочницы

Сейчас, наверно, невозможно найти в мире специалиста в IT-области, который бы не слышал о языке Си. Этот язык приобрёл огромную популярность во всём мире и оказал значительное влияние на многие другие языки программирования. Именно он является предшественником таких языков, как C++, C#, Java; менее известных (например J#). Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Что ни говори, но язык Си серьезно изменил жизнь программистов прошлого века и стал де-факто в области низкоуровневого программирования, оставив ассемблеру только те места, где производительность имела критическое значение.

Многие помнят имена создателей языка — Кена Томпсона и Дениса Ритчи, но я решил копнуть глубже и вспомнить историю создания и развития языка. Всем кому интересна эта тема — добро пожаловать под кат.

Ненормальное программированиеTry-catch на Си

Предисловие


После прочтения этой статьи, я решил подробнее изучить стандартную библиотеку Си, а вернее заголовочные файлы <signal.h> и <setjmp.h>. После непродолжительного ознакомления был написан набор макросов, позволяющий использовать некоторое подобие конструкции try-catch из других языков.

Подробности о реализации под хабракатом.

ПрограммированиеУмер Деннис Ритчи, один из создателей UNIX и языка Си

imageВ США в возрасте 70 лет скончался Деннис Ритчи (Dennis Ritchie), создатель языка программирования Си и один из разработчиков операционной системы UNIX.

О смерти Ритчи сообщил на своей странице в социальной сети Google+ его коллега Роберт Пайк (Robert Pike). Он указал, что программист умер у себя дома после продолжительной болезни. Портал CrazyEngineers в качестве даты смерти Ритчи называет 8 октября.

Ненормальное программированиеКак писать квайны

Введение

Многие программисты считают написание квайнов (программ, выводящих свой исходный код) непосильной задачей. И действительно — все эти цепные квайны и квайны различного порядка, при взгляде на которые можно потеряться в казалось бы бессмысленном наборе символов…

Однако на самом деле написать квайн на каком-либо языке не так сложно, как кажется. Сейчас я расскажу, как сделать это на различных языках программирования. Более того, мы не будем использовать «хаки» интерпретеруемых языков вроде операции вывода исходного кода и функций типа eval, а также напишем квайны на интерпретируемых и компилируемых языках.

DIY или Сделай СамЦветомузыка или визуализации музыки из песочницы

Все началось с одного очень заинтересовавшего меня поста о создании лазерного шоу. Это было как раз под новый год и нужно было что-то придумать для надвигающейся новогодней вечеринке. А лазерное шоу, управляемое музыкой, было тем, что доктор прописал! Китайские указки горели одна за одной, да и яркость их была весьма посредственной. Как раз где-то нашел статью как сделать лазерную указку из DVD-привода. Новый год уже давно прошел, LPT порт сгорел, но зато пришел заказанный мной ATTiny2313 и куча других электронных компонентов. Много времени прошло за паяльником, много переделанных плат, собранных граблей… В конце концов я решил заказать мощный RGB светодиод на 3W. Тогда уже лазерное шоу работало на зеленом лазере 30mW с помощью плагина визуализации Winamp через COM порт. В общем, светодиод произвел на меня огромное впечатление, и я решил добавить к лазерному шоу еще и цветомузыку.

Ревизия кодаРазработчики Intel тоже говнокодят

PVS-Studio vs IEC SDK
В последнее время, рассказывая о проверке очередного проекта, я всё время повторял, что это очень качественный код и ошибок в нём практически не найдено. Примером может служить анализ таких проектов, как Apache, MySQL, Chromium. Почему мы выбираем такие приложения, я думаю понятно. Про них всех знают и никому не интересно, какие ужасы можно найти в дипломной работе студента Васи. Однако иногда мы поверяем и те проекты, которые просто случайно попали под руку. Некоторые такие проекты оставляют тяжёлые впечатления в моей тонкой и ранимой душе. В этот раз мы проверили Intel® Energy Checker SDK (IEC SDK).

Ненормальное программированиеПередача файла сигналами

Добрый день, хабражители. Наверняка все знают что такое сигналы в Linux и для чего они нужны. Но сегодня, я хотел бы рассказать о, как мне кажется, нетрадиционном их применении.

Задача очень надуманная и направленна на тренировку своих навыков работы с сигналами и, немножко, побитовыми операциями. В общем, задача:
Программа должна порождать процесс, который посредством только сигналов передавал родителю файл, указанный в качестве аргумента командной строки. Родитель выводит полученный файл в stdout.