Pull to refresh
  • by relevance
  • by date
  • by rating

Программирование как искусство

Programming *
Мой приятель, директор крупной компании, жалуется: «Представляешь, не могу найти программиста поддерживать работающую систему. Приглашаю, показываю. Если переписывать с нуля — соглашаются за половину зарплаты. Если поддерживать — не соглашаются за две».

Это очень показательная ситуация. В России программисты считают программирование искусством. И никому не удается их в этом разубедить. Маркетологи не считают, что их работа это искусство, так же не считают директора, продавцы, бухгалтера, архитекторы и многие другие специалисты — спокойно относятся к своему призванию. Но не путают творчество в работе и отношение к работе как к искусству в ущерб целям и задачам этой работы.
Читать дальше →
Total votes 162: ↑154 and ↓8 +146
Views 2.3K
Comments 236

Введение в SuperCollider

Sound
Sandbox
В этой небольшой статье вкратце расскажу о том, что такое SuperCollider и продемонстрирую примеры его использования. SuperCollider — это open-source кроссплотформенное клиент-серверное приложение, среда разработки и язык программирования для аудиосинтеза в реальном (и не только) времени. Первый релиз увидел свет в 1996 году под авторством James McCartney, это был open-source продолжение его предыдущих изысканий в программном аудиосинтезе. Со временем к проекту присоединилось еще несколько человек.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 5.4K
Comments 25

Эволюция понимания ООП

Website development *
Sandbox
Почти все программисты считают, что знают ООП. Я тоже так считал. Оглядевшись немного, я понял, что эволюция моего понимания ООП была немалой. Начиналось все с простого, что есть классы, у них есть методы. И если один класс представляет какое-то понятие реального мира, то вот оно — ООП. Фактически, это не статья, а просто мысли, представление того, как менялось мое понимание ООП и отношение к нему. Кстати, я не уверен, что через пару месяцев оно вновь не претерпит некоторых изменений.

Читать дальше →
Total votes 90: ↑62 and ↓28 +34
Views 15K
Comments 106

Главный принцип хорошего кода

Website development *Programming *Designing and refactoring *
За двадцать лет разнообразного программирования я сформулировал, убежден, главнейший принцип хорошего кода. Опираясь на него, мне и моим коллегам удавалось приводить в порядок самый страшный код, объединять в команде малосовместимых программистов и годами поддерживать системы без лишнего нытья.

Прочтение этой статьи: 15 минут
Осмысление методики: 10 минут
Ощутимые результаты: 30 минут

Итак,
Total votes 168: ↑120 and ↓48 +72
Views 85K
Comments 174

Программисты старой школы: преклоняться или бояться?

«Лаборатория Касперского» corporate blog
Translation
Это перевод поста, опубликованного в англоязычном блоге «Лаборатории Касперского».
Он не столько о вирусах, сколько о демосцене и лучших произведениях в этом жанре искусства.

Недавно Евгений Касперский опубликовал в своем блоге запись «Призраки вирус-оперы, или Ситхи Ассемблера», посвященную сверхкомпактным и мощным вредоносным приложениям, обнаруженным недавно, но написанным в стиле 15-летней давности. Мой возраст позволяет помнить этих парней и их блестящую работу – речь ведь не обязательно о создателях вирусов, они были лишь частью программистского сообщества, специализировавшегося на «ручном» написании кода и программировании на ассемблере. Это похоже на Джедаев и Ситхов из мира «Звездных войн» – существ, чье оружие, лазерные мечи, было крайне специфическим и, несмотря на это, воспринималось всеми остальными героями как одно из самых мощных (кроме шуток, спросите Йоду). Увы, похоже, людей, которые помнят этих мастеров-программистов, осталось трое (я, Касперский и Билл Гейтс). А если серьезно – в сегодняшнем мире, где драйвер мышки занимает 50 мегабайт, довольно трудно вообразить, на что способен хакер старой школы при совсем небольшом количестве выделенных ресурсов. Поэтому я решил показать, о чем говорит Евгений, на несколько ином примере – а вы уж решайте, насколько плохи новости об «олдскульных» авторах заразы.
Читать дальше →
Total votes 46: ↑34 and ↓12 +22
Views 50K
Comments 32

Конкурс «Признайся в любви или напиши поэму на Ruby on Rails»

#tceh corporate blog Ruby on Rails *
Привет!

В ближайшее время произойдёт сразу два события: 14 сентября в #tceh стартует образовательный курс «Врубаемся в Ruby» для тех, кто хочет научиться кодить с нуля, а 26 сентября все, кто уже знает и любит Ruby соберутся на главной российской RoR конференции RailsClub.

Чтобы это счастье подогреть, #tceh совместно с RailsClub предлагает поучаствовать в конкурсе. Цель — показать дивную красоту Ruby-кода. От участника требуется соединить своё поэтическое и кодерское «Я» — написать на Ruby признание в любви или поэму, воспевающую женскую красоту.

image

Победитель получит билеты на конференцию и бесплатное участие в образовательном курсе!

Читать дальше →
Total votes 25: ↑17 and ↓8 +9
Views 5.6K
Comments 17

Персона. Создатель С++ Бьярне Страуструп, который «никогда не любил» языки программирования

Development Management *Community management *IT career


У создателя С++ было очень мало шансов «выйти в люди»: бедная семья, худшая школа в городе, отсутствие якро выраженных склонностей к чему-либо. Он даже не был «гениален».

Это человек, которого можно назвать self-made. Его главной целью было добиться настоящего успеха в чем бы то ни было.

Возможно, всем нам повезло, что его «занесло» в программирование. Потому что сейчас очень трудно представить современную ИТ-индустрию без наследия С++.
Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Views 34K
Comments 13

Отчет и презентации с Moscow JS в офисе Superjob

SuperJob corporate blog JavaScript *Node.JS *WebGL *ReactJS *
В офисе Superjob состоялась встреча JavaScript-разработчиков MoscowJS. Рассказываем, что обсуждали участники, и делимся презентациями.



Александр Савин, Superjob

Трудно переоценить важность тестирования в процессе разработки. Тестирование интерфейсов скриншотами — один из подходов, который не только вовремя сигнализирует о регрессии в CSS, но и позволяет проводить рефакторинг шаблонов и стилей, не меняя тесты, упрощает процесс ревью.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Views 4.9K
Comments 1

How to: Правильно называем методы-свойства класса

ABBYY corporate blog Programming *

  • Как вы называете парные методы Get/Set? Допускается ли делать их несимметричными? А если для свойства используется глагол Is? А если какой-нибудь модальный глагол вроде Can?
  • Допускается ли вместо Get/Set использовать пары Is/Set?
  • И если есть ограничения, то это ваш сознательный выбор или корпоративный стандарт?
Читать дальше →
Total votes 18: ↑11 and ↓7 +4
Views 14K
Comments 31

К вопросу о буферах (кольцевых)

Programming *Programming microcontrollers *

«Если затраты на разработку архитектуры кажутся Вам чрезмерными, подумайте, во сколько Вам может обойтись неправильная архитектура»


— не могу точно вспомнить источник

Когда то, «давным-давно, в одной далекой галактике», я приобрел замечательную книгу Чарльза Уэзерелла «Этюды для программистов», в предисловии к которой автор обосновывал необходимость изучения учебных примеров и задач перед тем, как начать самостоятельное программирование. Настоятельно рекомендую данную книгу найти, предисловие прочитать (и не останавливаясь на этом, прочитать оставшуюся часть и решить приведенные в ней задачи), поскольку лучше автора обосновать необходимость подобной практики я не смогу. Даже если Вы последуете моей рекомендации, и получите множество знаний и практических навыков при чтении упомянутой книги, можно будет вернуться и дочитать данный пост, поскольку он посвящен несколько иным вопросам. А если Вы моим рекомендациям не последуете, то тем более следует войти под кат.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Views 11K
Comments 27

Как придумывать содержательные имена для вашего кода

Plarium corporate blog Programming *Perfect code *
Translation
Перед вами перевод статьи из блога Better Programming на сайте Medium. В ней программист Daan делится простыми правилами, следуя которым вы сможете давать хорошие имена функциям и переменным.



Будучи разработчиком, вы наверняка тратите много времени на создание переменных и придумывание их имен. Имена повсюду: они нужны для файлов, классов, методов и тех самых переменных.

Так как мы проводим столько времени присваивая имена, очень важно делать это качественно. В данной статье я расскажу вам о нескольких простых правилах, следуя которым вы сможете создавать хорошие имена. Ведь это целое искусство!
Читать дальше →
Total votes 35: ↑24 and ↓11 +13
Views 12K
Comments 19

Храним числа экономно

Abnormal programming *
Недавно в одном из проектов встала задача: есть набор множеств (Set), которые надо достаточно эффективно хранить в оперативной памяти. Потому что множеств много, а памяти мало. И с этим надо что-то делать.

Так как язык, на котором всё это написано — C#, то есть нюансы. А именно, что стандартный HashSet<int> на хранение одного числа тратит 16 байт, также влияет филл фактор. Есть более эффективные реализации (когда-нибудь и про них напишу), но с другой стороны, можно же тупо хранить в массивах, по 4 байта на число (требуется хранить инты), что достаточно эффективно. Но можно ли уменьшить ещё?

Сразу скажу, у меня нет ответа, как лучше сделать, возможно его не существует, ибо есть множество факторов, связанных с особенностями распределения конкретных данных. Но есть идеи, которыми я поделюсь: какие варианты экономии памяти существуют. Также рекомендую до прочтения поста подумать самостоятельно, всё-таки это неплохая разминка для ума. Для определённости сформулирую задачу следующим образом:

Есть набор неотрицательных уникальных интов (32 бита). Требуется хранить их эффективно в оперативной памяти, из операций — создание набора и получение всех элементов. Не нужно получать элементы по индексу, добавлять новые или удалять.

В статье будет много букв и цифр и ни одной картинки (кроме упакованного котика на КДПВ).
Что можно с этим сделать?
Total votes 25: ↑23 and ↓2 +21
Views 10K
Comments 60