10 особенностей С++, о которых знают лишь опытные программисты

Оглавление (нажмите, чтобы открыть):

10 стереотипов о программистах

«В глазах рядового обывателя программист — это либо человек с другой планеты (потому что я разбираюсь в том, в чем не разбираетесь вы), либо стереотипный собирательный образ: лохматость, небритость, очки и свитер. Еще обязательно мешки под глазами. Мы часто слышим просьбы починить чайник, микроволновку, запаять микросхему. Сами программисты ко всем этим предубеждениям относятся с юмором, иногда подыгрывают» — рассказывает Андрей Вариков, директор центра разработки ПО Модульбанка.

Поговорим о том, какими еще стереотипами обросла специальность программиста.

И разработчик, и сисадмин — все «компьютерщики»

«Чаще всего люди не делают отличий между профессией разработчика и другими специальностями в сфере информационных технологий. Если сказать, что работаешь программистом, можно в ответ услышать „О, ты компьютерщик! Слушай, а не глянешь, у меня тут телефон глючит“. В этом случае лучше всего помогает аналогия с медициной: „и стоматолог, и проктолог — врачи, но ты ведь различаешь их специализацию“» — делится Кирилл Громов, ведущий разработчик баз данных «Лестэр ИТ».

«Часто люди не готовы понять, что у программиста может быть какая-то специализация. С чем-то похожим сталкиваются врачи. Но всё-таки не каждому приходит в голову попросить хирурга посмотреть, что не так с глазом. А с программистами похожие ситуации возникают гораздо чаще.

Люди путают их с системными администраторами, думают, что программист должен понимать всё в компьютере. Если ты попал в гости и рассказал, что ты программист — 70% хозяев попросят посмотреть свой компьютер, на котором „что-то не так“. Хотя далеко не все программисты разбираются в железе» — делится Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

Иногда доходит до комичного: «Директор долгое время был свято уверен, что программист может выполнять вёрстку корпоративных буклетов вместо удалённых дизайнеров, а и также настраивать 1С: Предприятие и вносить правки по сайту (он у нас на Битриксе). Логика железобетонная: эти действия ведь производятся в программах, соответственно программист обязан в этом разбираться» — говорит Виктория Чеботарева, программист-эникейщик в «Гидроланс».

Разработчики всегда крайние

«Если получился кривой или неудобный сайт, программа, то виноват всегда программист. А то, что у нас есть разделение профессий и зон ответственности, во внимание не принимается» — рассказывает Андрей Вариков, директор центра разработки ПО Модульбанка.

«Тыжпрограммист» всемогущ

«Если попытаться обобщить все мифы о программистах, то станет понятно, что „тыжпрограммист“ — это такой зверёк, который может починить телефон, ноутбук и вообще любую технику, написать сайт, мобильное приложение, AI для робота и вообще любую программу, по фотографии вылечить вирус, по телефону определить, почему ничего не работает, на расстоянии заправить принтер» — говорит Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

Плохая физическая форма

«Программист представляется неким аморфным существом с тоненькими ручками и ножками и в очках в роговой оправе с толстенными линзами. Когда я в тренажерном зале говорю, кто я по профессии, люди удивляются и откровенно не верят» — рассказывает Кирилл Громов, ведущий разработчик баз данных «Лестэр ИТ».

Отшельнический образ жизни

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

Например, один из моих знакомых программистов, внешне очень мирного вида, на самом деле является „боевой машиной“, экспертом по единоборствам. Другой товарищ — активный участник бодибилдерских соревнований. А среди программистов „ТрастВерса“ есть двое людей, всерьез увлеченных электронной музыкой, с концертами и гастрольной деятельностью» — говорит Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

«Когда я говорю о своей работе: „я начальник программистов“, незнакомые люди обычно делают круглые глаза и замирают с открытым ртом. И отвечают, что совсем не так представляли себе программистов. Обычно формулируют так: „айтишники все угрюмые, бородатые и в свитерах“.

Ну, бороды и свитера — это уже давно опционально. А вот на счет угрюмости подтвержу — чем молчаливей программист, тем обычно он профессиональней» — делится Юлия Котенко, председатель правления Ассоциации интернет–разработчиков «ВебАльянс».

Программист = крэкер

«Стоит отметить прямое сравнение программистов и хакеров. Конечно, оба направления являются звеньями одной цепи, но постоянные вопросы друзей о том, смогу я или нет взломать какой-нибудь сайт, мне уже немножко поднадоели» — сетует Юрий Пановский, разработчик в компании «Биплан».

Среди программистов больше всего стартаперов

«Любой программист рано или поздно попробует запустить свой стартап. Возможно, он делает это прямо сейчас, пока вы читаете этот текст. Думаю, что стартаперов среди программистов не больше, чем среди представителей других „диджитал-профессий“» — говорит Андрей Вариков, директор центра разработки ПО Модульбанка.

Три правдивых стереотипа

Некоторые из предрассудков, всё-таки, правдивы:

«„Guys in sandals“ — действительно чуть ли не половина матерых программистов ходит по офису в тапках/шлепанцах/сланцах…
„В IT нет ничего невозможного!“ — возможно практически все, но очень часто у заказчика может не хватить денег на невозможное.
„Избалованные засранцы с высокими зарплатами!“ — да, получение результата интеллектуального труда требует особого подхода, поэтому программисты избалованы условиями, в том числе компенсацией за труд, но не они заставили делать эти условия, окружающий мир постарался» — подтверждает Всеволод Андронов, заместитель Технического директора ООО «Стрим».

А с какими стереотипами сталкивались вы?

Обучаем без стереотипов: профессия «Веб-разработчик» от GeekBrains.

«В глазах рядового обывателя программист — это либо человек с другой планеты (потому что я разбираюсь в том, в чем не разбираетесь вы), либо стереотипный собирательный образ: лохматость, небритость, очки и свитер. Еще обязательно мешки под глазами. Мы часто слышим просьбы починить чайник, микроволновку, запаять микросхему. Сами программисты ко всем этим предубеждениям относятся с юмором, иногда подыгрывают» — рассказывает Андрей Вариков, директор центра разработки ПО Модульбанка.

Поговорим о том, какими еще стереотипами обросла специальность программиста.

И разработчик, и сисадмин — все «компьютерщики»

«Чаще всего люди не делают отличий между профессией разработчика и другими специальностями в сфере информационных технологий. Если сказать, что работаешь программистом, можно в ответ услышать „О, ты компьютерщик! Слушай, а не глянешь, у меня тут телефон глючит“. В этом случае лучше всего помогает аналогия с медициной: „и стоматолог, и проктолог — врачи, но ты ведь различаешь их специализацию“» — делится Кирилл Громов, ведущий разработчик баз данных «Лестэр ИТ».

«Часто люди не готовы понять, что у программиста может быть какая-то специализация. С чем-то похожим сталкиваются врачи. Но всё-таки не каждому приходит в голову попросить хирурга посмотреть, что не так с глазом. А с программистами похожие ситуации возникают гораздо чаще.

Люди путают их с системными администраторами, думают, что программист должен понимать всё в компьютере. Если ты попал в гости и рассказал, что ты программист — 70% хозяев попросят посмотреть свой компьютер, на котором „что-то не так“. Хотя далеко не все программисты разбираются в железе» — делится Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

Иногда доходит до комичного: «Директор долгое время был свято уверен, что программист может выполнять вёрстку корпоративных буклетов вместо удалённых дизайнеров, а и также настраивать 1С: Предприятие и вносить правки по сайту (он у нас на Битриксе). Логика железобетонная: эти действия ведь производятся в программах, соответственно программист обязан в этом разбираться» — говорит Виктория Чеботарева, программист-эникейщик в «Гидроланс».

Разработчики всегда крайние

«Если получился кривой или неудобный сайт, программа, то виноват всегда программист. А то, что у нас есть разделение профессий и зон ответственности, во внимание не принимается» — рассказывает Андрей Вариков, директор центра разработки ПО Модульбанка.

«Тыжпрограммист» всемогущ

«Если попытаться обобщить все мифы о программистах, то станет понятно, что „тыжпрограммист“ — это такой зверёк, который может починить телефон, ноутбук и вообще любую технику, написать сайт, мобильное приложение, AI для робота и вообще любую программу, по фотографии вылечить вирус, по телефону определить, почему ничего не работает, на расстоянии заправить принтер» — говорит Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

Плохая физическая форма

«Программист представляется неким аморфным существом с тоненькими ручками и ножками и в очках в роговой оправе с толстенными линзами. Когда я в тренажерном зале говорю, кто я по профессии, люди удивляются и откровенно не верят» — рассказывает Кирилл Громов, ведущий разработчик баз данных «Лестэр ИТ».

Отшельнический образ жизни

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

Например, один из моих знакомых программистов, внешне очень мирного вида, на самом деле является „боевой машиной“, экспертом по единоборствам. Другой товарищ — активный участник бодибилдерских соревнований. А среди программистов „ТрастВерса“ есть двое людей, всерьез увлеченных электронной музыкой, с концертами и гастрольной деятельностью» — говорит Даниял Гулиев, архитектор отдела разработки компании «ТрастВерс».

«Когда я говорю о своей работе: „я начальник программистов“, незнакомые люди обычно делают круглые глаза и замирают с открытым ртом. И отвечают, что совсем не так представляли себе программистов. Обычно формулируют так: „айтишники все угрюмые, бородатые и в свитерах“.

Ну, бороды и свитера — это уже давно опционально. А вот на счет угрюмости подтвержу — чем молчаливей программист, тем обычно он профессиональней» — делится Юлия Котенко, председатель правления Ассоциации интернет–разработчиков «ВебАльянс».

Программист = крэкер

«Стоит отметить прямое сравнение программистов и хакеров. Конечно, оба направления являются звеньями одной цепи, но постоянные вопросы друзей о том, смогу я или нет взломать какой-нибудь сайт, мне уже немножко поднадоели» — сетует Юрий Пановский, разработчик в компании «Биплан».

Среди программистов больше всего стартаперов

«Любой программист рано или поздно попробует запустить свой стартап. Возможно, он делает это прямо сейчас, пока вы читаете этот текст. Думаю, что стартаперов среди программистов не больше, чем среди представителей других „диджитал-профессий“» — говорит Андрей Вариков, директор центра разработки ПО Модульбанка.

Три правдивых стереотипа

Некоторые из предрассудков, всё-таки, правдивы:

«„Guys in sandals“ — действительно чуть ли не половина матерых программистов ходит по офису в тапках/шлепанцах/сланцах…
„В IT нет ничего невозможного!“ — возможно практически все, но очень часто у заказчика может не хватить денег на невозможное.
„Избалованные засранцы с высокими зарплатами!“ — да, получение результата интеллектуального труда требует особого подхода, поэтому программисты избалованы условиями, в том числе компенсацией за труд, но не они заставили делать эти условия, окружающий мир постарался» — подтверждает Всеволод Андронов, заместитель Технического директора ООО «Стрим».

А с какими стереотипами сталкивались вы?

Обучаем без стереотипов: профессия «Веб-разработчик» от GeekBrains.

Рейтинг языков программирования в 2020 году

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

Например, в середине в 80-х стал очень популярен язык Prolog, но потом его популярность резко снизилась. И сейчас на нем практически никто не пишет. А место популярного новичка занял Python.

Как же узнать рейтинг языков программирования? Общего рейтинга не существует, так как нет простого способа собрать подобную статистику. Но существуют разные способы оценки популярности языков программирования. Рассмотрим самые популярные рейтинги.

1. Рейтинг Черной утки

Самым крупным сайтом, посвященным программам с открытым исходным кодом является сайт Black Duck (Черная утка) blackducksoftware.com

Одним из проектов Черной утки является каталог open source. В этом каталоге представлено около 500 000 проектов. Так как у всех проектов код открыт, то легко определить, на каком языке эти проекты написаны. На январь 2020 года рейтинг выглядит так.

Как видно, здесь практически половина программ (46%) написано на C. Это понятно, потому что С — это язык общения программистов. Это единственный язык, компилятор которого есть на всех платформах: от встроенных систем до суперкомпьютеров.

2. Рейтинг Wappalyzer для веб-приложений

Сервис Wappalyzer использует различные методы для идентификации веб-технологий. Рейтинг языков программирования для разработки сайтов на январь 2020 выглядит так.

В веб-программировании однозначно лидирует язык PHP, более 80% сайтов написано на этом языке.

3. Рейтинг TIOBE Index

Рейтинг TIOBE Index построен на оценке результатов поисковых запросов, содержащих название языка. Логика этого индекса очень проста: «Если язык ищут в поисковых системах, то он популярен». Конечно же, это заявление спорное, потому что программисты-профессионалы крайне редко будут искать в поисковике именно название языка программирования. Они чаще ищут решение конкретной задачи. Но громадный плюс этого рейтинга в том, что он достаточно объективно показывает интерес к тому или иному языку.

Индекс TIOBE показывает самые популярные языки программирования, информации о которых искали на 25-ти самых популярных поисковых системах, то есть запросы вида: «+» programming». Индекс подсчитывается каждый месяц.

Индекс TIOBE на январь 2020 года выглядит так:

В этом индексе однозначным лидером является Java.

На графике изменений индекса хорошо видны как менялась популярность языков программирования. Но при этом первое-второе место постоянно делят два языка Java и C. Хотя Java активно продвигается компанией Oracle, а язык C никто не продвигает.

И еще интересно то, что C++ ни разу не смог превысить по популярности C.

4. Рейтинг IEEE Spectrum

Ежегодный рейтинг IEEE Spectrum Top Programming Languages использует 11 метрик из 9-ти источников, включая поисковые запросы, упоминания в твиттере и даже упоминания в вакансиях на работу программиста. С одной стороны этот рейтинг использует больше данных, но с другой стороны во многих источниках данные имеют связанный характер. Чем больше публикуются вакансий на некоторый язык программирования, тем больше запросов будет в поисковых системах. То есть у новых языков больше шансов попасть на вершину рейтинга.

Рейтинг IEEE на 2020 год выглядит так:

Важностью особенностью рейтинга IEEE является то, что рейтинг интерактивный и можно поиграть с параметрами. В этом рейтинге лидирует Python.

5. Рейтинг Stack Overflow

Сайт Stack Overflow — это площадка, на которой разработчики могут задавать и отвечать на вопросы по программированию. Этот сайт имеет около 40 миллионов посещений в месяц. Есть русскоязычная версия сайта: ru.stackoverflow.com

Этот рейтинг рассчитывается на основе опроса разработчиков. В январе 2020 года было опрошено более 100 000 разработчиков и составлен рейтинг языков программирования. Скорее это рейтинг языков, которые вызывают вопросы. В этом рейтинге лидером стал JavaScript.

Такая популярность вполне объяснима, сейчас JavaScript бурно развивается и каждая новая возможность вызывает массу вопросов, поэтому программисты идут на сайт Stack Overflow, чтобы задать вопросы.

Любопытно, что C не попал даже в первую десятку.

6. Вакансии на Head Hunter

Можно подойти к рейтингу языков программирования с другой стороны и посмотреть, какие языки указываются в вакансиях и сколько собираются платить. Одна из самых популярных площадок для поиска работы в IT-сфере — это сайт HeadHunter. Там есть отдельный раздел — вакансии для программистов.

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

Здесь видно, что программист, знающий Pascal (среда Delphi), все еще востребован.

7. Google Books Ngram Viewer

И в конце рассмотрим чрезвычайно полезный сервис Гугл, на котором можно смотреть использование ключевых слов в публикациях.Поэтому можно смотреть популярность не только языков программирования, а любых технологий.

В начале этой статьи приведены графики использования слов Prolog и Python. А теперь введем JavaScript, Python и PHP.

Видно как в 1992 году появляется интерес к JavaScript и он быстро обгоняет Python и PHP.

Похожие записи:

Комментарии 18

Совсем мелкая ошибка в предпоследнем предложении. Вы написали «В начале этой статьи приведены графики использования слов Prolog и Pascal», а там были Prolog и Phyton.

«Для оценки перспективности своих усилий каждый программист должен регулярно смотреть рейтинг языков программирования.» — совет неоднозначный. Профессионал обычно хорошо знает 1-2 языка и специализируется на них довольно долго. Изучение другого языка происходит обычно по причине старта какого-нибудь проекта, или тупика в карьере с текущими знаниями.

Здравствуйте! Спасибо за статью!
Хотел бы узнать Ваше мнение насчет языка программирования Prolog. Дело в том, что язык программирования Prolog используется в разработке программ для искусственного интеллекта.Так как технологии искусственного интеллекта развиваются все интенсивнее, не станет ли язык программирования Prolog популярным, ну или востребованным?

Здравствуйте! Язык Prolog стал популярен в 1980-х годах в связи с японской программой создания программы искусственного интеллекта. Но эту программа кончилась грандиозным провалом. В результате все наработки были розданы бесплатно и никаких полезных программ так и не было создано. Поэтому сейчас Prolog полностью морально устарел и не используется. Даже если и будет новый прорыв в разработке искусственного интеллекта, то, скорее всего, он будет связан с другой технологией и другим языком программирования.

В девяностом году шеф мой взял аспиранта себе на написание САПР, типа Симулинк в Матлабе. Тогда ещё XT-шки были в диковинку. И был в то время бум создания «Искусственного интеллекта». Ходили шутки, что это нужно, когда своего интеллекта не хватает. Ну и аспирант этот решил создавать этот САПР на языке Пролог. Тогда ещё книг, типа Братко не было. В ДОСе работали. Ну и он разобрался в языке этом глубоко так. Ему понравилось в нём лазить по деревьям и делать откаты. В других языках это геморройно было, а в Прологе это вшито как аксиома (исходные кирпичики языка). То есть если программа заходит в тупик, то как-то самореализуется всё там, что она, делая откаты назад сама ищет выход из этого тупика. И аспиранту это нравилось в ней. Написал он в ней САПР свой, «Гаммой» назвал его, была куча публикаций. Но потом бросил заниматься этим и диссертации не защитил. Его пригласили в СберБанк программистом работать, а там зарплаты уже со стипендией аспиранта не сравнить. Так всё это и забросилось. Отчёт в семи томах кода сохранился с той поры и валяется где-то. У меня на даче очень много книг по Прологу на чердаке стопками лежит не тронутых, а Братко, по моему, аж десять экземпляров. В то время хлеб стоил сто рублей, а книги эти по рублю продавались. На растопку жалко их рвать…

Мастер Йода рекомендует:  Как увеличить поисковый трафик

Интересный обзор! А что вы можете сказать про Rust в контексте перспективы дальнейшего развития?

Ломаем стереотипы: 46 мифов о программировании

За время своего существования технологическая индустрия буквально обросла стереотипами. Сфера информационных технологий не осталась в стороне: программирование “стало” исключительно мужским занятием, причем отсутствие навыков взлома аккаунтов социальных сетей стало поводом для насмешек со стороны людей, далеких от IT. Новички окружены стереотипами и из-за этого им бывает сложно начать карьеру в сфере информационных технологий и, в частности, в области создания ПО. Чтобы им было легче, мы собрали самые распространенные мифы о программировании, мешающие развиваться в правильном направлении. Попробуем разобраться: где правда, а где ложь.

Оглавление

  1. Общие мифы о программировании (15).
  2. Мифы об обучении программированию (12).
  3. Мифы об ограничениях (3).
  4. Мифы о возможностях программистов (2).
  5. Мифы об инструментах разработчика (8).
  6. Мифы о карьере программиста (6).

Общие мифы о программировании

1. Надо быть очень умным

Это самый распространенный миф, который удерживает новичков от написания своих программ. Многие люди считают себя недостаточно умными, чтобы стать программистами. Да и самих программистов нередко наделяют способностями не то роботов, не то гениев. Однако, научиться программировать не так сложно, как кажется на первый взгляд. А программисты — это обычные люди, которые испытывают страсть к созданию компьютерных программ, игр и приложений. Чтобы писать код не нужно быть гением: достаточно иметь мотивацию, интерес и дисциплину. Если вы открыты для нового и готовы применять приобретенные навыки на практике, то программирование станет для вас не только полезным опытом, но и приятным времяпровождением. Конечно, есть по-настоящему сложные задачи, которые способны решить только люди с очень большим опытом, но это скорее исключение, а не правило.

2. Нужно хорошо знать математику

Распространенное заблуждение, что для программирования нужно хорошо знать математику. На самом деле, успех в программировании не зависит напрямую от математических способностей, а на начальных порах хватит и школьных знаний алгебры. Формально, программирование — это написание подробных инструкций компьютеру для выполнения определенных задач. Это как создание рецепта для приготовления торта. Нужно уметь взвешивать, считать калории, отличать круглую форму от прямоугольной, описывать последовательность действий. Никакой высшей математики, никаких интегралов и сложных формул!

С другой стороны, есть области, в которых математика играет большую роль. Например, для создания игр нужно владеть тригонометрией, уметь решать дифференциальные уравнения и работать с матрицами. Но опять же: лишь фундаментальные знания. Более того, для решения многих задач можно использовать сторонние библиотеки и плагины. Если вам понадобится дополнительные знания по математике или физике, вы сможете пройти дополнительное обучение, почитать книги или найти интересующую информацию в Сети.

3. Программирование не для творческих людей

Хотя многие люди не подозревают об этом, программирование — это своего рода искусство. Программисты погружаются в создание сайтов, игр и приложений, как писатели погружаются в написание романов, эссе и рассказов. Программирование позволяет выразить свою творческую идею, мысль, акцентировать внимание на интересных вам вещах, подобно живописи или музыке. К тому же, технические навыки позволяют творческим людям расширить собственные возможности. Так, профессиональный дизайнер Антон Любушкин, уставший от несовершенства Photoshop, создал для него линейку расширений на языке JavaScript, которые сделали его работу более эффективной. В общем, программирование — творческая деятельность, способная значительно расширить возможности человека практически в любой сфере его деятельности.

4. Программирование для “ботаников”

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

Многие люди опасаются, что станут такими же, если начнут программировать. Особенно этот страх распространен среди женщин, которым трудно найти образец для подражания в технических областях. Однако, мужчина-“ботаник” — это стереотип. Программисты не обязательно ведут затворнический образ жизни: они бывают общительны и часто имеют увлечения, не связанные с программированием. Среди них есть музыканты, танцоры и спортсмены, так что нет оснований полагать, что программисты чем-то отличаются от работников других профессий.

Программист Вячеслав Бахмутов после занятий тайским боксом. Разработчик в Dropbox. Ранее работал в Яндексе.

5. Нужно иметь особый талант

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

6. Программирование – это скучно

Впечатление от занятия чем-либо зависит от отношения к делу. Люди, увлеченные программированием не считают его скучным, иначе зачем бы они им занимались? Это касается любого занятия: человек сам определяет, что ему скучно, а что интересно. В свою очередь сфера создания программного обеспечения дает человеку выбор области, в которой он хочет работать: программист может писать мобильные приложения, создавать сайты и веб-приложения, а может писать ПО для космических машин, самолетов и автомобилей. Навыки программирования позволяют работать в самых разнообразных отраслях: от сельского хозяйства до ракетостроения. Пользователями ваших программ может быть как узкий круг специалистов, так и многомиллионная аудитория людей по всему миру. Разве это может быть скучно?

7. Вы перестанете общаться с людьми

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

8. Нужно много запоминать

К счастью, язык программирования не иностранный язык, в котором для понимания базовых вещей нужно помнить минимум 2000 слов. Большинство языков программирования имеют похожий синтаксис, содержащий около 50 управляющих конструкций, которые при частой практике не требуют целенаправленного заучивания. То, что вы не можете запомнить, вы всегда можете найти в Сети или в официальных руководствах. Помнить все не только не обязательно, но и не рационально: некоторые знания будут забываться или искажаться в памяти. Даже известные программисты признаются в том, что не всегда могут вспомнить простейший алгоритм. Кроме того, современные интегрированные среды разработки имеют всплывающие подсказки, помогающие вспомнить те или иные инструкции.

Подсказки в IDE PyCharm от JetBrains

9. Нужно знать все алгоритмы

Алгоритмы — основа программирования. Некоторые из них простые, другие для понимания требуют особых знаний. Тем не менее вы не должны знать их наизусть. Когда я учился программированию, я мог записать алгоритм сортировки 5-6 способами и указать различия, преимущества и недостатки каждого. Сегодня я вспомню от силы 2-3 названия алгоритмов сортировки, не говоря уже о реализации, но это не значит, что я стал хуже программировать: без практики материал быстро забывается.

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

10. Мне не хватит усидчивости, чтобы писать столько кода

Профессиональные программы содержат десятки тысяч строк кода, что пугает начинающих программистов. Тем не менее для написания программ разработчики используют одни и те же языковые конструкции. Это как в иностранном языке: для понимания 80% происходящего, достаточно знать 2000 слов (а не 50 000, которые есть в языке). Комбинируя различные слова и фразы, вы сможете разговаривать с любым человеком. В программировании похожий принцип, поэтому программы, будучи составленными из одного множества управляющих конструкций, могут решать широкий класс задач.

Конечно, на первых порах написать большую программу, работающую как часы, будет задачей невыполнимой, однако развивая свои навыки, вы можете добиться эффективности в несколько сотен строк кода в день, потом в час и т.д. Как только вы освоите на практике основные инструкции и приемы, 10 000 строк кода покажутся детской игрой. Хотя, с другой стороны, умение решить задачу минимальным числом инструкций никогда не было лишним.

11. Программирование – это не серьезно

«Программирование это несерьезно», — сказала мне одногруппница, узнав, что я буду разработчиком. Ее муж работал шахтером, рисковал жизнью, а я хотел посвятить жизнь компьютерам. Тем не менее карьера программиста может завести вас очень далеко, даже к шахтам: программисты, создающие программы для добывающих машин, помогают сделать процесс добычи более эффективным и безопасным. Куда уж серьезней?

12. Мне нужен мощный компьютер

Многие новички считают, что для программирования нужен мощный компьютер и 5 мониторов. Это не так. Получить начальные навыки программирования можно и на обычном компьютере, которым вы располагаете, а если на нем можно запустить игры, то и для программирования он подойдет. Компьютерные игры или браузер требует больше ресурсов, чем программы для запуска исходного кода, такие как компилятор и интерпретатор. Они так же не требуют большого экранного пространства, поэтому N мониторов вам ни к чему.

Гилфойл и его 7 мониторов. Комедийный сериал «Кремниевая долина».

13. Компьютерный код слишком сложный для понимания

На первый взгляд, компьютерные программы кажутся слишком сложными и непонятными. Ок, тогда взгляните на китайские иероглифы. Неподготовленный человек увидит в них лишь набор каракуль, тем не менее, около 1,3 млрд жителей планеты могут спокойно читать, писать и понимать китайское письмо. Компьютерный код гораздо проще иероглифов или других естественных языков. Его не нужно произносить или понимать на слух, а набор базовых инструкций составляет 50-100 для одного языка программирования.

14. Я создал веб-сайт, значит, я программист

На самом деле, нет. Создание сайтов зачастую не требует знания ни HTML и CSS, ни основ программирования вообще. Профессиональные веб-разработчики владеют множеством технологий и языков программирования. Вопреки слоганам веб-курсов, получить такие знания не удастся за один месяц, не говоря уже о прочих мифических сроках. HTML, CSS, PHP, JavaScript, клиентская оптимизация, базы данных, клиент-серверная технология, SQL, Apache, системы контроля версий — это лишь небольшая часть технологий, с которыми веб-разработчики сталкиваются ежедневно. Однако, не нужно пугаться: стоит только приложить к этому усилия. Свой первый сайт я создал в 2002 году на HTML и CSS, когда учился в 11 классе. И это было захватывающе. Если и вы имеете азарт к созданию красивых и удобных веб-сайтов, то статья о цвете в веб-разработке поможет сделать это занятие более интересным.

15. Программисты все пишут с нуля

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

Мифы об обучении программированию

16. Обучение заканчивается после прохождения курсов

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

17. Чтобы стать программистом, нужно закончить университет или техникум

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

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

18. Сначала нужно выучить весь синтаксис

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

19. Я смогу научиться программированию, посмотрев несколько уроков

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

20. Стать программистом легко

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

21. Это слишком долго

Написать первую программу вы сможете уже через 2-3 дня после начала обучения. Конечно, эта программа будет иметь мало пользы, и вы не сможете на ней заработать, но, возможно, она решит какую-то вашу простейшую проблему. Это уже что-то. Очевидно, писать осмысленные программы вы начнете не сразу, но это время исчисляется месяцами, а не годами. Если уделять программированию много времени и сил, то можно начать зарабатывать гораздо раньше чем через 5 лет, как это принято в вузах.

22. Я никогда не догоню крутых программистов

Новички часто задают вопрос: «Как можно сравняться с людьми, которые программируют много лет?» Не так сложно. IT-индустрия постоянно растет, и знания опытных программистов быстро устаревают. Им приходится постоянно учиться и совершенствоваться, чтобы быть конкурентоспособными. Поэтому после того, как вы освоите базовые навыки, вы будете примерно на одном уровне с опытным разработчиками. Более того, вы будете даже в более выгодном положении, особенно если дело касается новых технологий. Программисты будут до конца держаться за проверенные временем и знакомые им технологии, пока она полностью не изживет себя. Вы же можете освоить любую область, которая только набирает популярность. Используйте отсутствие опыта как преимущество.

23. Есть лучший курс или сайт для обучения программированию

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

24. Я научусь программированию, быстро сделаю приложение и разбогатею

Стать миллионером — отличная цель. И программирование сможет помочь, но не стоит обольщаться. Билл Гейтс, Марк Цукерберг, Павел Дуров или Сергей Брин — все они не стали миллиардерами за один день. Им потребовались годы учебы и упорного труда. Если вы ожидаете через 2 недели обучения написать свою MMORPG, крутой сайт и мобильное приложение, то вынужден вас разочаровать: так это не работает. Программирование не место для быстрых и легких денег. Тем не менее программирование открывает огромные возможности как для карьерного роста, так и в создании собственного бизнеса.

25. Начинать лучше со сложных языков

Когда вы приходите в первый класс, никому в голову не придет сразу начинать с интегралов, даже умножение вы изучите только во втором классе. Так же и с программированием: хотите сохранить мотивацию и быстрей получить результат — начинайте с простых языков, как Python. Как только вы освоите основы программирования, вы легко перейдете на более сложные технологии и языки программирования вроде C++ или Objective-C.

26. Все курсы по программированию одинаковы, можно выбрать любой

Нет, все курсы разные. Их ведут разные преподаватели, которые используют различные методики обучения и имеют свою собственную манеру объяснять материал. Нет худших или лучших курсов: вам нужно выбрать те, которые подходят именно вам. В большинстве случаев есть тестовые периоды или возможность вернуть деньги, поэтому попробуйте несколько вариантов, прежде чем остановиться на чем-то одном.

27. Чтобы стать программистом, необходимо тратить 30 минут в день

К сожалению, этого недостаточно. Даже занимаясь по два часа в день, вы освоите лишь базовые навыки программирования, которых хватит на небольшие программы «для себя». Но если вы хотите выйти за пределы хобби и стать профессиональным разработчиком, то вам нужно полностью погрузиться в программирование.

«На пике своего обучения я проводил за компьютером по 16 часов в день. Для этого приходилось прогуливать институт и на время забросить спорт. Но это того стоило», — Никита Шультайс

Мифы об ограничениях

28. Я слишком стар для программирования

Нельзя быть слишком старым (или молодым), чтобы учиться программированию. И не только программированию. К счастью, желание преуспеть не ограничивается возрастом. Желание учиться, и готовность применить полученные знания на практике позволят вам добиться хороших результатов вне зависимости от возраста. Поэтому научиться программировать можно в любом возрасте, так же как в любом возрасте можно выучить иностранный язык.

29. Он слишком молод для программирования

Часто родители используют возраст ребенка как сдерживающий фактор для начала обучения программированию. Конечно, существует разница в модели обучения детей и взрослых, но сам по себе возраст не должен быть помехой для начала занятий программированием, как он не является помехой, чтобы отдать своего ребенка на хоккей или гимнастику. Уже с 8-9 лет дети отлично понимают базовые концепции программирования и создают свои первые программы, например на языке Scratch. Кстати, о языках и средах программирования для детей вы можете узнать здесь поподробнее.

Школа детского программирования на Scratch

30. Женщинам не место в программировании

Конечно, мужчин-разработчиков гораздо больше, чем женщин, но это не означает, что женщины не могут или не должны программировать, особенно при наличии интереса. Есть много успешных женщин-разработчиков. Интересный факт: первым программистом в мире была как раз женщина — Ада Лавлейс. А Марисса Майер одной из первых присоединилась к команде программистов Google. Однако, многих женщин не привлекает программирование, как мужчин не привлекает парфюмерная промышленность. Тем не менее это связно не со сложностью профессии, а, скорее, с социально-экономическим давлением и личными интересами женщин. Нет никаких объективных причин женщине не становиться программистом. У мужчин и женщин варианты и пути развития карьеры одинаковы.

Мифы о возможностях программистов

31. Все программисты — хакеры

Иногда программистов сравнивают с хакерами, причем в негативном значении этого слова. Хакеры-нарушители пытаются получить несанкционированный доступ к ресурсам, в то время как рядовые программисты выступают за сохранность данных. Само по себе занятие программированием не делает вас хакером в смысле “специалиста по взлому”.

32. Все программисты обязаны уметь чинить технику

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

Мифы об инструментах разработчика

33. Один язык лучше, чем другие

Программисты любят хвалить язык, на котором программируют. Часто можно услышать о том, что тот или иной язык лучше остальных. Но правда в том, что каждый язык служит определенной цели, и нельзя однозначно сказать, что один язык лучше другого. Это все равно что спросить какой язык лучше: итальянский или французский? Зависит от страны, в которой вы находитесь. Тем не менее есть языки, которые лучше подходят для начинающих — например Python. Но вы можете начать и с Java, C# или даже C++. Некоторые языки лучше подходят для математических расчетов, для управления ресурсами компьютера. Исходя из этого, пользу конкретного языка программирования можно определить лишь в рамках определенной задачи. И часто задачи требуют знания нескольких языков. Поэтому языки работают вместе, а не друг против друга.

34. Все языки программирования одинаковые

Часто считают, что все языки программирования — это лишь вариации решения одной и той же задачи. Но это не всегда так. Разные языки программирования используются для решения разных задач. Python хорош для обучения, создания сайтов и обработки данных, JavaScript используется для создания динамических веб-сайтов, на C++ пишут сложный софт, для которого важна производительность, PHP — самый популярный язык для разработки сайтов, на Swift создают приложения под iPhone. Как видите, разные языки подходят для решения разных задач, и профессиональные программисты часто владеют сразу несколькими из них.

Мастер Йода рекомендует:  Как подключить на сайт прием криптовалют Обзор сервиса PayKassa.pro

35. Крутые инструменты тормозят процесс обучения

Программисты пишут классные и полезные программы не только для других, но и для себя. Одной из таких программ может являться конкретная IDE, интегрированная среда разработки, которая предоставляет пользователю (программисту) удобный интерфейс для работы с кодом. Они сами завершают синтаксические конструкции, а также помогают отслеживать ошибки и опечатки. Может сложиться впечатление, что эти программы пишут код за вас, но это не так. То, что вы управляете автомобилем с усилителем руля, не означает, что автомобиль сам поворачивает. Так и с редактором кода: он лишь помогает, а основную работу делает программист. Иногда профессиональные программисты будут пытаться склонить вас к использованию “жестких” редакторов, вроде блокнота или даже Vim. Однако, использование блокнота или Vim не сделает из вас хорошего разработчика, так же как и использование IDE не сделает из вас плохого программиста.

36. Нужно изучать молодые языки

Python появился в 1991 году, а С++ в 1983, но это не значит, что они устарели, и нужно изучать новые или модные языки. Языки программирования постоянно обновляются, в них добавляют новые синтаксические конструкции, расширяются библиотеки. Это как автомобили: первый Mercedes создали более 100 лет назад, но новые модели выпускают каждый год. Изучайте тот язык, который будет решать поставленные задачи. Хотите начать программировать, то посмотрите на Python; хотите делать сайты — то PHP или JavaScript; интересует мобильная разработка — Swift (iPhone) или Java (Android).

37. Настоящие программисты пишут на C++

А настоящие водители пользуются только механикой и раз в неделю перебирают двигатель автомобиля в гараже. «Элитные» программисты считают некоторые языки программирования отстойными. Например, долгое время так относились к PHP, а сейчас то же самое говорят JavaScript при попытке использовать его на стороне сервера. Тем не менее PHP мощный и популярный язык, на котором был написан Facebook, Вконтакте и миллионы других сайтов. Нет крутых или отстойных языков, есть языки, которые решают конкретные задачи. Всё остальное — это вкусовщина и предубеждения. Выбор языка программирования не должен навешивать на программиста ярлык “недокодера” или какой-либо другой.

38. Я программист, так как освоил HTML И СSS

К сожалению, HTML и CSS это не языки программирования. Этот факт не может оспорить ни их важность в веб-разработке, ни широкое распространение. Но знать HTML и CSS абсолютно необходимо всем веб-разработчикам, и зачастую именно с этого нужно начинать свою карьеру. HTML и CSS желательно так же знать тем, кто хоть как-то связан с интернетом.

39. Веб-программист не напишет ничего серьезного

Посмотрите на Facebook, Вконтакте и тысячи других сайтов. Их создали веб-разработчики.

Веб-разработчик и предприниматель Марк Цукерберг. Создал самую популярную в мире социальную сеть.

40. Чтобы стать профессионалом, достаточно освоить один язык

Профессиональные программисты владеют несколькими языками и множеством вспомогательных технологий. Ведь программирование это не только написание программ (кодирование), это и социальные навыки, и умение писать документацию и тесты, и навык разделения крупной задачи на мелкие, и многое другое. Даже чтобы разработать небольшой сайт, необходимо знать HTML, CSS, JavaScript, PHP или другой серверный язык. С одной стороны, огорчает, что профессионалу мало знать один язык. С другой стороны, после освоение одного языка другие языки изучаются значительно быстрее.

Мифы о карьере программистов

41. Я быстро смогу заработать много денег

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

42. Я еще не скоро начну зарабатывать

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

43. Я быстро найду работу, так как на программистов большой спрос

На рынке действительно очень большой спрос на программистов, но не на начинающих. Большинство компаний ищет разработчиков с опытом в 2-3 года. Поэтому один из лучших вариантов — пройти стажировку в средней или крупной компании, или устроиться юниором в небольшую фирму. Компании обращают внимание на портфолио, и, если вы окончили курсы и ничего не напрограммировали, даже для себя, то вы не будете интересны.

44. Работодатель сам меня найдет

Многие выпускники вузов и курсов считают, что раз на программистов большой спрос, то работодатели сами их найдут и предложат лучшие условия, поэтому они сидят сложа руки и ждут. И пока они ждут, другие разработчики активно рекламируют себя, отправляют резюме в интересующие их компании, создают личные сайты, заполняют профиль с социальных сетях, подключаются к проектам на GitHub. GitHub — это социальная сеть для программистов, где каждый разработчик может опубликовать свой исходный код, чтобы его видели другие люди. Вы можете присоединиться в любому проекту и улучшить его. Работодатели очень ценят такую работу.
Не важно, какой крутой ВУЗ или курсы вы закончили, нужно быть очень активным в поиске работы.

45. Все программы уже написаны

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

46. Навыки программирования нужны только программистам

Навыки программирования полезны не только разработчикам программ, но и специалистам в других областях: биологам, политологам, экономистам, статистам, физикам. Освоив основы программирования и несколько популярных библиотек, они могут расширить свои возможности в обработке информации и автоматизации рутинных задач. Так, известный SEO-специалист Алексей Трудов освоил основы PHP и JQuery и начал писать небольшие скрипты для автоматизации своей работы.

9 интересных фактов, которые знают только программисты

Факт 1. Под капотом самых критичных программ, которые вы используете на ежедневной основе (Mac OS X или Facebook) содержится ужасное количество хаков и костылей, которые с трудом уживаются друг с другом. Это как если бы вы разобрали Боинг 747 и увидели, что топливопровод держится вешалкой для одежды, а шасси смотаны изолентой.

Код программ таков, что даже если сайт или программа прекрасно работают и отлично выглядят, то за кулисами всё, что заставляет его работать, состоит из ошибок, ляпов и костылей. Он работает едва-едва и иногда вообще непонятно, почему.
Факт 2. 25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.
Занимает это на деле больше или меньше процентов времени, но каждый раз нам действительно необходимо подумать – а что пользователь может тут сломать. Куда нажмёт, что введёт, и как можно понять то, что мы пытаемся сделать, неправильно. Если бы мы рассчитывали только на себя, у программ было бы слишком много проблем –
ведь мы знаем, как программа работает, а пользователь не знает.
Факт 3. Программист – это не специалист по ремонту компьютеров
Программист работает с алгоритмами и принципами разработки, а не чинит компьютеры. Мы можем понимать, как компьютер работает и как исполняется код. Но это не значит, что мы умеем чинить железо. Мы не знаем, какая проблема в Chrome роняет его на вашем компьютере, или почему ваш компьютер перегревается. Программисты программируют компьютеры, а не чинят их.
Факт 4. Программирование – это размышление, а не печатание
По большей части мы программируем, когда спим, гуляем, смотрим в окно, или делаем что-то ещё, что позволяет нам расслабиться и думать. Расслабление – один из важных аспектов программирования. Нельзя просто сесть и написать тысячу строк кода и вставить их в программу. Нам необходимо посидеть, походить, подумать. Придумать концепцию, исправить её недостатки, решить, как она будет работать… Расслабление – единственный способ, которым мы можем пользоваться для исправления проблем.
Факт 5. Отсчёт начинается с нуля
Это важно. Подсчёт идёт с нуля – ваш 1 это мой 0, ваш 10 это мой 9. Всё из-за необходимости делать вещи эффективно, когда даже небольшая прибавка к эффективности может в масштабе увеличить производительность.
Факт 6. Программировать лучше всего в потоке – в таком состоянии сознания, когда вы сфокусированы на задаче и всё кажется простым. Это состояние знакомо также атлетам и музыкантам.
Программисты любят работать по ночам потому, что это позволяет нам входить поток, сфокусироваться на чём-то одном и не волноваться о том, что нас могут отвлечь. Все остальные просто спят. Это такое время дня, когда никого нет рядом, никто не звонит и не пытается с нами поговорить. Прекрасное время, чтобы думать и программировать.
Факт 7. Иногда полезно отложить проблему до утра
Иногда программистам действительно полезно, встретив сложную задачу, поспать «с ней». Множество раз я встречался с тем, что мне часами не удавалось решить что-то, но после всего лишь 20-минутного сна (или любого другого сна) по пробуждению решение приходило само.
Факт 8. «Родитель» может убить своих «детей», если их задача выполнена
Не та фраза, которую бы хотелось услышать от кого-либо. Но для программистов она звучит не так страшно. Программы часто имеют иерархическую структуру, где родительский процесс контролирует его дочерние процессы, запущенные на уровне ниже.
Когда родительскому процессу больше не нужен дочерний, он его убивает – когда программе больше ничего не надо делать, её выполнение заканчивают.
Факт 9. Вы не впечатляетесь тем, как много мы знаем о компьютерах. Мы не впечатляемся тем, как мало вы знаете о них.
Серьёзно. Хватит уже. Нам неважно, как вы горды тем, что не желаете обучаться новым вещам. Понятно, если вы говорите «я мало знаю о компьютерах» или «мне не интересно программировать» — но когда вы хвалитесь тем, как много вы об этом не знаете, это просто раздражает.
загрузка.

14 качеств хорошего программиста

Дарья Гайна, руководитель отдела веб-разработок в компании JMA SRL, рассказала Tipler о том, какими качествами должны обладать эффективные программисты.

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

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

Я выделил 14 качеств, которые помогут отобрать правильного претендента.

1. Хорошие технические навыки

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

Например, при интервью Вы можете спросить: опишите свой опыт работы с другими системами управления.

2. Готовность учиться

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

Например, при интервью Вы можете спросить: что Вы делали и делаете, чтобы сохранить актуальность своих навыков программирования?

3. Устранение ошибок

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

Например, при интервью Вы можете спросить: как Вы отслеживаете и исправляете ошибки в своем коде?

4. Идеальная рабочая среда

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

Можно спросить: Опишите Вашу идеальную рабочую среду.

5. Умение решать проблемы

Для тех, кто никогда не пытался создать приложение с нуля, программирование лучше всего сравнить с решением чрезвычайно сложного математического уравнения. Хороший программист преуспевает в поиске способов заставить что-то работать, несмотря на все трудности и сложные условия. В противном случае Вы можете услышать фразу «Это не может быть сделано» каждый раз, когда Вы предлагаете инновационный новый проект.

Хороший вопрос при интервью: как бы Вы создали (можно предложить разобрать очень комплексный проект с использованием новых технологий)?

6. Страсть к работе

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

Хороший вопрос для интервью: Чем Вы увлекаетесь?

7. Стрессоустойчивость

Программирование, может быть, чрезвычайно напряженной профессией. Когда “горят” сроки, и ничто, кажется, не работает, можно получить сильный стресс. Идеальный кандидат на вакансию программиста сможет спокойно справляться с самыми стрессовыми ситуациями и, самое главное, иметь возможность продолжать работать в таких условиях.

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

8. Коммуникационные навыки

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

Пример для интервью: Объясните, как работает Ваше любимое приложение так, чтобы непрофессионал смог бы быстро вникнуть в процесс.

9. Бизнес видение

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

Пример вопроса на собеседовании: Вам когда-нибудь приходилось делать предложение об улучшении бизнес-процессов?

10. Способность планировать

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

Пример для интервью: Объясните свой подход к новому проекту. Что Вы делаете в первую очередь?

11. Терпение к ошибкам

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

Пример вопроса для собеседования: Вам приходилось когда-нибудь проводить много часов за кодом и прийти к выводу, что Вы их потратили в пустую? Что Вы делали в этой ситуации?

12. Навыки командной работы

Программист редко работает в одиночку, даже если он единственный разработчик в компании. Программисту важно уметь работать с дизайнерами, менеджерами, специалистами по маркетингу и продажам, а также с другими программистами.

Пример вопроса для интервью: Поделитесь впечатляющим опытом команды.

13. Готовность к исследованию

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

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

14. Уважение сроков

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

Пример вопроса: Опишите тот случай, когда Вам нужно было выполнить проект в сжатые сроки.

Способности, склонности и странности программистов

13 сентября, на 256 день года, в России празднуется День программиста – профессиональный праздник тех, кто зарабатывает на жизнь написанием программ для компьютеров. Официально этот праздник был утвержден в России только в 2009 году. Однако во всем мире День программиста отмечают уже давно. Празднуется он 13 сентября, а если год високосный – то 12 сентября. 256 (два в восьмой степени) день был выбран потому, что это количество целых чисел, которое можно выразить с помощью восьмиразрядного байта.

Несмотря на то, что этот праздник появился относительно недавно, профессия программиста, как ни странно, гораздо старше. А убежденные в том, что программист – это исключительно мужская профессия, вынуждены столкнуться с еще одним противоречием. Дело в том, что именно женщина считается первым в истории человеком с такой профессией. Ее имя Ада Августа Байрон Кинг, графиня Лавлейс. В первой половине XIX века дочка великого английского поэта Джорджа Байрона написала первую в мире программу для аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. Правда, ни одна из написанных Адой Лавлейс программ так и не была никогда запущена. Но среди программистов имя ее увековечено – универсальный язык программирования называется «Ада».

Сегодня профессия программиста связана не только с ЭВМ. Практически каждое электронное устройство – от пульта дистанционного управления до мощных промышленных станков – побывало в руках специалистов по программированию. Умение и навыки программистов используются практически во всех сферах нашей жизни.

Учитывая личные качества, каждого программиста можно отнести к одной из четырех групп: выполняют работу быстро и хорошо; быстро и плохо; медленно и хорошо; медленно и плохо. Программисты из первой группы быстро достигают высот и становятся руководителями, а программисты из последней – чаще всего не вырастают выше стажера. Самая распространенная группа программистов – вторая. Но качественнее всего делают свою работу программисты третьей группы.

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

По мнению самих программистов, – это не профессия, а призвание. Даже чтобы заинтересоваться программированием, нужно быть, в некоторым смысле, «повернутым» человеком. Необходимы также большое терпение и дотошность, чтобы изучить основы, алгоритмы, которых великое множество.

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

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

Для того чтобы хоть немного понять, как мыслит человек, разбирающийся в нюансах компьютерного дела, можно прочитать несколько известных афоризмов программистов: «О том, над чем мы работаем сегодня, другие подумают только завтра»; «Помните: 60 кг нераспечатанных листиков сберегают одно дерево»; «Мозг человека обычно загружен лишь на 10% своей мощности; остальное – резерв для операционной системы»; «Пользователь не узнает, чего он хочет, пока не увидит то, что он получил»; «Не говори «OK», пока не перепишешь»; «Старый глюк лучше новых двух»; «Софт пишут – диски летят».

Благодаря своему необычному мышлению и поведению программисты уже давно стали объектами множества шуток и анекдотов. Шутить любят над их чутким отношением к «железу», оторванностью от жизни, неудачами в отношениях с противоположным полом и т.д. Вот несколько примеров:

Жена сисадмина спрашивает мужа:
– Почему ты никогда не рассказываешь, как у тебя дела на работе?
– Да чего тебе рассказывать? Вот, вчера блок питания сгорел.
– Бедненький! Ну ты хоть с собой бутерброды бери.

Объявление: «Серьезная организация возьмет на высокооплачиваемую должность опытного хакера. Резюме просим размещать на главной странице сайта www.microsoft.com».

Едут два программиста на троллейбусе, доезжают до конечной. Водитель открывает переднюю дверь и начинает проверять билеты. Первый программист:
– Первый раз слышу, что драйвер может работать контроллером!

Материал подготовлен на основе информации открытых источников

14 качеств хорошего программиста

Дарья Гайна, руководитель отдела веб-разработок в компании JMA SRL, рассказала Tipler о том, какими качествами должны обладать эффективные программисты.

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

Мастер Йода рекомендует:  Как избежать выгорания

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

Я выделил 14 качеств, которые помогут отобрать правильного претендента.

1. Хорошие технические навыки

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

Например, при интервью Вы можете спросить: опишите свой опыт работы с другими системами управления.

2. Готовность учиться

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

Например, при интервью Вы можете спросить: что Вы делали и делаете, чтобы сохранить актуальность своих навыков программирования?

3. Устранение ошибок

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

Например, при интервью Вы можете спросить: как Вы отслеживаете и исправляете ошибки в своем коде?

4. Идеальная рабочая среда

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

Можно спросить: Опишите Вашу идеальную рабочую среду.

5. Умение решать проблемы

Для тех, кто никогда не пытался создать приложение с нуля, программирование лучше всего сравнить с решением чрезвычайно сложного математического уравнения. Хороший программист преуспевает в поиске способов заставить что-то работать, несмотря на все трудности и сложные условия. В противном случае Вы можете услышать фразу «Это не может быть сделано» каждый раз, когда Вы предлагаете инновационный новый проект.

Хороший вопрос при интервью: как бы Вы создали (можно предложить разобрать очень комплексный проект с использованием новых технологий)?

6. Страсть к работе

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

Хороший вопрос для интервью: Чем Вы увлекаетесь?

7. Стрессоустойчивость

Программирование, может быть, чрезвычайно напряженной профессией. Когда “горят” сроки, и ничто, кажется, не работает, можно получить сильный стресс. Идеальный кандидат на вакансию программиста сможет спокойно справляться с самыми стрессовыми ситуациями и, самое главное, иметь возможность продолжать работать в таких условиях.

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

8. Коммуникационные навыки

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

Пример для интервью: Объясните, как работает Ваше любимое приложение так, чтобы непрофессионал смог бы быстро вникнуть в процесс.

9. Бизнес видение

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

Пример вопроса на собеседовании: Вам когда-нибудь приходилось делать предложение об улучшении бизнес-процессов?

10. Способность планировать

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

Пример для интервью: Объясните свой подход к новому проекту. Что Вы делаете в первую очередь?

11. Терпение к ошибкам

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

Пример вопроса для собеседования: Вам приходилось когда-нибудь проводить много часов за кодом и прийти к выводу, что Вы их потратили в пустую? Что Вы делали в этой ситуации?

12. Навыки командной работы

Программист редко работает в одиночку, даже если он единственный разработчик в компании. Программисту важно уметь работать с дизайнерами, менеджерами, специалистами по маркетингу и продажам, а также с другими программистами.

Пример вопроса для интервью: Поделитесь впечатляющим опытом команды.

13. Готовность к исследованию

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

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

14. Уважение сроков

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

Пример вопроса: Опишите тот случай, когда Вам нужно было выполнить проект в сжатые сроки.

Способности, склонности и странности программистов

13 сентября, на 256 день года, в России празднуется День программиста – профессиональный праздник тех, кто зарабатывает на жизнь написанием программ для компьютеров. Официально этот праздник был утвержден в России только в 2009 году. Однако во всем мире День программиста отмечают уже давно. Празднуется он 13 сентября, а если год високосный – то 12 сентября. 256 (два в восьмой степени) день был выбран потому, что это количество целых чисел, которое можно выразить с помощью восьмиразрядного байта.

Несмотря на то, что этот праздник появился относительно недавно, профессия программиста, как ни странно, гораздо старше. А убежденные в том, что программист – это исключительно мужская профессия, вынуждены столкнуться с еще одним противоречием. Дело в том, что именно женщина считается первым в истории человеком с такой профессией. Ее имя Ада Августа Байрон Кинг, графиня Лавлейс. В первой половине XIX века дочка великого английского поэта Джорджа Байрона написала первую в мире программу для аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. Правда, ни одна из написанных Адой Лавлейс программ так и не была никогда запущена. Но среди программистов имя ее увековечено – универсальный язык программирования называется «Ада».

Сегодня профессия программиста связана не только с ЭВМ. Практически каждое электронное устройство – от пульта дистанционного управления до мощных промышленных станков – побывало в руках специалистов по программированию. Умение и навыки программистов используются практически во всех сферах нашей жизни.

Учитывая личные качества, каждого программиста можно отнести к одной из четырех групп: выполняют работу быстро и хорошо; быстро и плохо; медленно и хорошо; медленно и плохо. Программисты из первой группы быстро достигают высот и становятся руководителями, а программисты из последней – чаще всего не вырастают выше стажера. Самая распространенная группа программистов – вторая. Но качественнее всего делают свою работу программисты третьей группы.

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

По мнению самих программистов, – это не профессия, а призвание. Даже чтобы заинтересоваться программированием, нужно быть, в некоторым смысле, «повернутым» человеком. Необходимы также большое терпение и дотошность, чтобы изучить основы, алгоритмы, которых великое множество.

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

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

Для того чтобы хоть немного понять, как мыслит человек, разбирающийся в нюансах компьютерного дела, можно прочитать несколько известных афоризмов программистов: «О том, над чем мы работаем сегодня, другие подумают только завтра»; «Помните: 60 кг нераспечатанных листиков сберегают одно дерево»; «Мозг человека обычно загружен лишь на 10% своей мощности; остальное – резерв для операционной системы»; «Пользователь не узнает, чего он хочет, пока не увидит то, что он получил»; «Не говори «OK», пока не перепишешь»; «Старый глюк лучше новых двух»; «Софт пишут – диски летят».

Благодаря своему необычному мышлению и поведению программисты уже давно стали объектами множества шуток и анекдотов. Шутить любят над их чутким отношением к «железу», оторванностью от жизни, неудачами в отношениях с противоположным полом и т.д. Вот несколько примеров:

Жена сисадмина спрашивает мужа:
– Почему ты никогда не рассказываешь, как у тебя дела на работе?
– Да чего тебе рассказывать? Вот, вчера блок питания сгорел.
– Бедненький! Ну ты хоть с собой бутерброды бери.

Объявление: «Серьезная организация возьмет на высокооплачиваемую должность опытного хакера. Резюме просим размещать на главной странице сайта www.microsoft.com».

Едут два программиста на троллейбусе, доезжают до конечной. Водитель открывает переднюю дверь и начинает проверять билеты. Первый программист:
– Первый раз слышу, что драйвер может работать контроллером!

Материал подготовлен на основе информации открытых источников

20 самых рекомендуемых книг для программистов на русском языке

Авторы проекта Dev-Books проанализировали миллионы вопросов и ответов в крупнейшем сообществе программистов Stack Overflow. Всё для того, чтобы найти книги, на которые чаще всего ссылаются разработчики.

В общий список вошло 5 720 книг. Ниже вы найдёте 20 самых упоминаемых из них, которые когда-либо выходили на русском.

По просьбе Лайфхакера своими мнениями насчёт некоторых изданий поделились отечественные эксперты.

1. «Эффективная работа с унаследованным кодом», Майкл К. Физерс

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

2. «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма и другие

Классика для программиста. Первая книга, посвящённая именно шаблонам.

Леонид Выговский, системный архитектор IT-компании LiveTex

— Издание уже 20 лет переиздаётся в изначальном виде. В этом, конечно, главный недостаток книги: некоторые шаблоны уже неактуальны. Думаю, её полезно читать уже после других, более современных, книг по паттернам проектирования. Тем более что она написана сухим академическим языком. Для понимания паттернов эта книга не must read, но её прочтение добавляет крутости в глазах коллег-программистов. 🙂 Начинать я советую с «Паттернов проектирования» (Head First Design Patterns).

3. «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин

Интересная, но во многом спорная книга о том, как писать понятный и поддерживаемый код.

Леонид Выговский, системный архитектор IT-компании LiveTex

— Почему спорная? Книг про написание кода уже огромное количество, и часть приёмов являются общепризнанными. Но каждый автор добавляет что-то своё. Лично для меня мнение Боба Мартина кажется иногда странным и противоречащим другим источникам. Не must read, но прочитать всё же стоит. Качество кода после прочтения становится лучше.

4. «Предметно-ориентированное проектирование», Эрик Эванс

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

Леонид Выговский, системный архитектор IT-компании LiveTex

— Из этой книги выросли концепции СQRS, BDD, onion-architecture и много других интересных идей. Единственный недостаток: книга насквозь теоретическая. Практическую пользу она приобрела только с выходом книги Вона Вернона «Реализация методов предметно-ориентированного проектирования» (Implementing Domain Driven Design). Поэтому читать их надо последовательно, сразу друг за другом.

5. «JavaScript: сильные стороны», Дуглас Крокфорд

Обязательная книга для веб-разработчиков. В ней Дуглас Крокфорд рассказывает о преимуществах языка JavaScript и учит грамотно их применять для создания эффективного кода.

6. «Шаблоны корпоративных приложений», Мартин Фаулер и другие

Книга описывает базовые принципы проектирования ПО для корпоративных платформ.

7. «Совершенный код. Мастер-класс», Стив Макконнелл

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

Михаил Осотов, директор по производству «Центра высоких технологий»

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

8. «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие

Из серии книг по написанию понятного и качественного кода, «Рефакторинг» — лучшая.

Леонид Выговский, системный архитектор IT-компании LiveTex

Выговский: «Она не только показывает хороший код, но и на примере плохого объясняет, чем именно он плох. Эта книга — must read для всех. Причём чем раньше вы её прочтёте, тем лучше. Качество кода после прочтения сильно вырастет».

Если книгу Фаулера вы уже прочли, обратите внимание на «Рефакторинг с использованием шаблонов» (Refactoring to Patterns) Джошуа Кериевски, которую рекомендует Михаил Осотов.

«Рефакторинг с использованием шаблонов» Кериевски — отличная книга для тех, кто каждый день сталкивается с проблемой легаси-кода и технического долга в своих проектах.

Михаил Осотов, директор по производству «Центра высоких технологий»

— Эта книга поможет сохранить свои нервы, подружиться с рефакторингом и сделать код лучше.

9. «Паттерны проектирования», Эрик Фримен, Элизабет Фримен и другие

Серия Head First, на мой взгляд, идеально подходит для новичков в области разработки ПО.

Михаил Осотов, директор по производству «Центра высоких технологий»

— Все книги написаны разными авторами, но в каждой виден общий подход, который выражается в простой подаче материала, интересных и простых примерах.

10. «Язык программирования C», Брайан У. Керниган, Деннис М. Ритчи

Классическое учебное пособие по языку C, написанное его же создателями. Однако начинающим эта книга может показаться сложной, поскольку требует от читателя знания основ программирования.

11. «Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ», Скотт Майерс

Книга содержит советы по проектированию программ, работе с шаблонами и управлению ресурсами, а также другие рекомендации по созданию качественного ПО на языке С++.

12. «Экстремальное программирование: разработка через тестирование», Кент Бек

Автор на примерах описывает методику разработки ПО, которая предполагает тестирование программ ещё до написания их кода.

13. «Алгоритмы. Построение и анализ», Томас Х. Кормен и другие

Эту книгу называют библией алгоритмов. Она зарекомендовала себя как отличное научное пособие для студентов технических вузов и всех, кто интересуется информатикой. Книга доступным языком знакомит с алгоритмами разных типов и описывает их особенности.

14. «Регулярные выражения», Джеффри Фридл

Издание об эффективной работе с текстом в Perl, PHP, Java, Python, Ruby и других языках программирования.

15. «CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#», Джеффри Рихтер

Классический учебник по разработке приложений для платформы Microsoft, в том числе с помощью Silverlight, Windows Presentation Foundation, ASP.NET и прочих технологий компании.

16. «Современное проектирование на C++», Андрей Александреску

Книга для опытных программистов на C++. Автор предлагает новый подход к разработке, сочетающий метапрограммирование шаблонов, обобщённое программирование и объектно-ориентированное программирование на этом языке.

17. «Microsoft ASP.NET 2.0. Базовый курс», Дино Эспозито

Детальное руководство для опытных специалистов по ASP.NET 2.0. Книга учит создавать мощные, надёжные и масштабируемые сайты на этой платформе.

18. «Шаблоны тестирования xUnit. Рефакторинг кода тестов», Джерард Месарош

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

19. «Компиляторы. Принципы, технологии и инструментарий», Альфред В. Ахо и другие

Книга описывает базовые принципы разработки компиляторов и делает особый акцент на оптимизации кода. В помощь читателю — большое количество примеров из практики.

20. «Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET», Кржиштоф Цвалина, Брэд Абрамс

Издание содержит лучшие приёмы разработки библиотек для платформы Microsoft .NET Framework. Книга должна упростить работу любого .NET-специалиста, который пишет код для других разработчиков.

Полный рейтинг англоязычных книг доступен на сайте Dev-Books. Там же можно просмотреть списки самых популярных книг на определённые темы, будь то Java, Database Design или CSS.

10 лучших программистов мира: легендарные личности в IT

Программист – профессия в наше время очень уважаемая. Что и не удивительно, ведь цифровые технологии окружают нас повсюду. В сфере IT работают миллионы людей – от системных администраторов и рядовых «кодеров» до ведущих разработчиков крупнейших проектов. И конечно, есть в этой отрасли свои легендарные личности, без которых мир был бы немного другим.

Кого же ценят и уважают в среде самих программистов? Кто считается лучшими из лучших? Однозначных рейтингов в этом вопросе не существует. Но есть личности, имена которых упоминаются практически всегда, так как их вклад в IT – бесценен. Давайте с ними познакомимся.

Линус Торвальдс

Финно-американский программист, создатель операционной системы Linux, на которой работают дата-центры и множество компьютеров во всем мире.

Благодаря Торвальдсу, убежденному стороннику freeware (свободно распространяемого софта), в индустрии, где крутятся огромные деньги и все пропитано коммерцией и паранойей, появилась полностью бесплатная операционная система с открытым кодом. Сегодня в разработке и обновлениях Линукс участвуют тысячи программистов.

В профессиональной среде Линус Торвальдс известен как человек, который не стремится нравиться людям и не стесняется в выражениях. Среди программистов о нем ходят шутки того же плана, что и о Чак Норисе в обывательской среде. Например, утверждают, что он может делить на ноль или играть в 3D игры в уме при помощи чтения исходного кода.

Дональд Кнут

Автор уникальной монографии «Искусство программирования», которая стала учебником и настольной книгой программистов во всем мире. Почетный профессор в Стенфорде.

Академические работы Кнута – это огромный труд, охватывающий практически все направления в программировании, начиная от структур данных и заканчивая анализом алгоритмов. Последнее направление Крут создал лично. Кроме теории в монографии содержится множество примеров на языке Ассемблер.

Ведущие разработчики Google, Facebook других крупных проектов не единожды выражали благодарность Дональду Кнуту за уникальный учебник. О Кнуте говорил и Билл Гейтс: «Если вы называете себя программистом, попробуйте прочесть Кнута И если сумеете прочитать эту книгу полностью, отправьте мне свое резюме».

Работа над этим монументальным трудом ведется с 1962 года. На сегодняшний день вышло 4 тома. К 2020 году профессор обещает публикацию пятого. Кроме того, Дональд Кнут известен как создатель системы компьютерной верстки TeX и языка METAFONT для работы с векторными шрифтами.

Сэр Тим Бернерс-Ли

Автор HTTP протокола, на котором основана работа Интернет. Единственный программист, возведенный в звание рыцаря.

Сегодня он возглавляет общественную организацию «Альянс за доступный интернет», основная цель которой – доступный и быстрый интернет для всех. Организация пользуется поддержкой крупных корпораций – Google, Microsoft, Facebook.

Джеймс Гослинг

Автор объектно-ориентированного языка Java.

Еще одна крупная разработка — NEWS, система распределения вычислений в компьютерных сетях. Перечень проектов, над которыми он работал, обширен. Здесь и системы анализа результатов спутниковой телеметрии, и редактор текстов Emacs, и многое другое. Некоторое время Гослинг принимал участие в разработке алгоритмов Google, в последнее время занимается разработкой программного обеспечения для подводных исследований.

Андерс Хейлсберг

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

Первая версия компилятора была написана под DOS. Позже компилятор был встроен в среду Turbo Pascal. Благодаря компилятору Хейлсберга продуктивность работы в сфере IT выросла в несколько раз.

Позже Хейлсберг возглавил команду, разработавшую Borland Delphi. И здесь также особое внимание было уделено быстродействию. Сегодня Delphi – один из самых популярных языков.

Марк Цукерберг

Американский программист, разработчик социальной сети Facebook.

Это имя широко известно за пределами профессиональной среды. Цукерберг – фигура публичная. С его социальной сетью в последнее время связано множество скандалов. Тем не менее, проект продолжает успешно развиваться.

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

Брэм Коэн

Автор протокола BitTorrent, благодаря которому стала возможной супербыстрая загрузка файлов из сети.

Торрент популярен во всем мире. Число пользователей BitTorrent оценивается в 250 млн человек. Через торренты скачиваются огромные объемы информации. К сожалению, возможности торрентов активно используют «пираты».

Брендан Айк

Разработчик JavaScript. Этот язык считается одним из стандартов в WEB-программировании.

Принимал участие в создании компании Mozilla и браузера Firefox. Занимал пост СЕО. Уволился после скандала, связанного с его позицией по вопросам гей-браков (Брендан – активный участник движения за их запрет в Калифорнии).

Бьерн Страуструп

Создатель языка C++ (улучшенной версии C).

Сегодня язык программирования C++ изучают студенты практически в любом ВУЗе, он давно стал одним из базовых прикладных языков. Синтаксис языка C используется в PHP и других современных языках программирования. Доработки от Бьерна Страуструпа оказались настолько хороши, что сегодня, когда говорят «Си», о базовой версии языка даже не вспоминают.

В наше время программист читает лекции в нескольких ВУЗах, сотрудничает с Morgan Stanley.

Джон Кармак

Один из основателей компании id Software. Известность получил как автор легендарной компьютерной игры Doom.

Идея создания Doom пришла в голову Джона во время корпоративной партии D&D. В то время в компании подобные партии проводили регулярно. И часто на них Джон выполнял роль гейм-мастера.

При создании Doom Джон Кармак первым реализовал оригинальные 3D-трюки, которые применяют в компьютерных играх до сих пор.

Добавить комментарий