Кто такой «хороший программист»? / Habr
Я уже не первый раз замечаю, что сам не знаю, чем закончится начатая мною статья. Вот, например, совсем недавно меня попросили написать небольшую заметку в корпоративную газету о .NET направлении. Я выбрал направление, начал его развивать, в результате чего получилась статья, в которой .NET-а не оказалось вовсе. Так что в этот раз мы продолжим философскую тему, но если в прошлый раз речь шла о хорошей архитектуре, то на этот раз речь пойдет о том, кто такой хороший программист и какие вопросы стоит задавать себе время от времени, чтобы двигаться в правильном направлении.Что отличает хорошего программиста от посредственного? И как самому стать хорошим программистом и заслужить среди друзей и коллег «почет и уважение»?
Честно говоря, не знаю. Зачастую даже сложно сказать, что понимается под этой фразой «хороший программист». С одной стороны, мы привыкли думать, что «хороший» программист – это обязательно гик в очках и растянутом свитере, победитель олимпиады по программированию, который в уме может умножать шестизначные цифры и читать машинный код прямо в двоичном формате. С другой стороны, на собеседованиях мы тоже пытаемся найти «хороших» программистов и там у нас есть другие критерии отбора: поскольку победителей олимпиад не так и много, а вакансий «ведущих» и «главных» пруд пруди, то эта планка опускается до более приземленного уровня. Так на собеседованиях мы задаем (или нам задают) вопросы попроще: что-нибудь о конкретных языках или технологиях, в результате чего проверяется скорее память кандидата, а не его умение думать головой.
Думать головой? Ну что ж, это очень даже неплохая отличительная черта хорошего программиста. Как ни крути, но именно серое (или какое оно там) вещество, расположенное в нашей голове, привело нас в эту профессию; и именно «думанием» профессиональный программист зарабатывает себе на жизнь, занимаясь этим большую часть своего времени. А раз так, то почему бы не подумать о том, как стать, если не хорошим программистом в общепринятом понимании, то хотя бы немного лучше по сравнению с тем, кем был вчера.
Многие из нас после очередной итерации в разработке своего любимого проекта проводят ретроспективы. Довольно часто ретроспективы – это унылое собрание, где поднимается минимум острых вопросов и еще меньше из них затем решается. Но иногда они заставляют некоторых членов команды по-новому взглянуть на решаемые задачи и что-либо изменить в ежедневной работе. В общем, это работает. Не всегда, но работает. А раз это работает, то почему бы не попробовать применить этот же самый подход, но не только для улучшения процесса разработки, а для улучшения себя, как программиста? Почему бы не задать несколько вопросов самому себе, ответы на которые помогли бы понять, в каком направлении двигаемся мы сами?
Вот, например, как часто вы задаете себе подобные вопросы: «Чем отличается ваш код сегодня от вашего кода полугодичной давности? Становится ли он лучше или, быть может, он уже давно достиг совершенства? Как изменились ваши взгляды на разработку ПО за это время? Что нового вы узнали из этой безграничной области? Когда в последний раз вы написали что-либо ради интереса, а не ради «производственной необходимости»? Когда в последний раз вы помогли кому-то с техническим вопросом?»
Конечно, ответы на эти вопросы не скажут, хороший вы программист или нет. Смысл их в том, чтобы понять, становитесь вы «лучше» или топчетесь на месте. Хороший программист – это не гениальный подросток, а простой толковый парень или девушка, любящие свое дело. Человек, в котором сочетается прагматизм и стремление к совершенству, любовь к новому и глубокие знания настоящего, стремление к обучению и желание учить кого-то еще. Большинство хороших программистов прекрасно понимают, что они знают очень мало и находят в себе желание и стремление это исправлять. У каждого из нас свой путь к получению новых знаний и здесь, как и в программировании, тоже не стоит искать «серебряную пулю».
Так что, учите, читайте, узнавайте что-то новое, пишите и рассказывайте об этом. И вообще, не думайте о том, хороший вы программист или нет, глупости все это. Ведь самое интересное в этом деле – это путь, а не результат!
Программист — это… Что такое Программист?
Программи́ст — специалист, занимающийся написанием и корректировкой программ для ЭВМ[1], то есть программированием.
Место программирования в обществе
Программирование как род занятий может являться основной профессиональной деятельностью специалиста, либо использоваться в качестве вспомогательной деятельности для решения иных профессиональных задач, либо же использоваться в непрофессиональной сфере (как инструмент решения задач или ради получения удовольствия от процесса программирования). Термин «программист» не обязательно подразумевает профессиональное образование или профессиональную деятельность.
Образование
Как основная профессиональная деятельность программирование используется в технической и в научной областях.
В технике выделяются средняя техническая квалификация техник-программист (ранее «программист-лаборант») и высшая техническая квалификация инженер-программист. Предметом деятельности специалистов с соответствующей квалификацией (техников и инженеров) является проектирование, разработка и производство программного обеспечения, как промышленной продукции, удовлетворяющей заданным функциональным, конструктивным и технологическим требованиям (результатом деятельности является программное обеспечение). В России подготовка инженеров-программистов ведётся по профилю подготовки «Программное обеспечение вычислительной техники и автоматизированных систем» направления «Информатика и вычислительная техника»
Существует подготовка математиков-программистов по направлению «Математическое обеспечение и администрирование информационных систем»[3].
В конце 2000-х в России появилось новое направление подготовки программистов «Программная инженерия»[4]. Областью профессиональной деятельности выпускников по этому направлению является индустриальное производство программного обеспечения. Данное направление подготовки отличается от подготовки инженеров-программистов по профилю «Программное обеспечение вычислительной техники и автоматизированных систем» тем, что общеинженерные дисциплины заменены дисциплинами из новой области знания инженерия программного обеспечения. Объектами профессиональной деятельности инженеров по производству программного обеспечения являются не программы и программные комплексы, а методы и инструменты разработки программного продукта, а также процессы жизненного цикла программного продукта.
Предметом деятельности программистов в науке является решение задач с применением методов прикладной математики и реализацией на ЭВМ (результатом деятельности является полученное при помощи программы решение задачи). В России ведётся подготовка специалистов по специальностям 010200 «Прикладная математика и информатика» и 073000 «Прикладная математика».
Как вспомогательная деятельность программирование в настоящее время используется в широчайшем круге профессий.
Самообразование
В связи со значительным распространением в современном обществе вычислительной техники и, соответственно, программирования как рода деятельности в настоящее время потребность в профессиональных программистах в развитых странах (в том числе в России) значительно превосходит возможности высшего образования по подготовке на соответствующих специальностях, при этом предъявляемые квалификационные требования в бизнесе в большинстве случаев значительно у́же, чем подготовка по специальности в вузе (см. напр.
Словоупотребление
Как указано выше, с точки зрения корректной терминологии человек может иметь (например) род занятий «программист», квалификацию «инженер-программист», специальность «программное обеспечение вычислительной техники и автоматизированных систем» и должность «ведущий специалист». В разговорной речи, однако, слово «программист» нередко употребляется применительно ко всем этим понятиям.
По ошибке программистами порой называют системных администраторов и других специалистов ИТ.
Прикладные и системные программисты
В прошлом широко применялась классификация программистов на прикладных и системных. Прикладным называется программист, программы которого предназначены для решения прикладной задачи, удовлетворяющей потребности конечного пользователя и, по замыслу классификации, лежащей вне компьютерной сферы. Системным называется программист, программы которого предназначены для обеспечения работы компьютера и используются другими компьютерными специалистами.
В настоящее время данная классификация в значительной степени утратила актуальность, так как эксплуатация компьютеров вышла за пределы круга специалистов, обеспечение работы компьютера превратилось в одну из основных потребностей его пользователей и, таким образом, содержательная граница между системным и прикладным программированием во многом стёрлась.
Команда программистов
Данный раздел имеет чрезмерный объём или содержит маловажные подробности. Если вы не согласны с этим, пожалуйста, покажите в тексте существенность излагаемого материала. В противном случае раздел может быть удалён. Подробности могут быть на странице обсуждения. |
В профессии программиста важные и сложные проекты выполняются в команде. Существуют следующие типы команд :
История
Возникновение программирования как рода занятий и, особенно, как профессиональной деятельности трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарльз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
Профессиональный праздник
В 2009 году в России официально утвержден день программиста, который ежегодно празднуется 13 сентября (в високосный год — 12 сентября) — то есть празднование Дня Программиста приходится на 256 день года. Эта цифра не случайная: она получается от возведения двойки в восьмую степень. Именно такое количество чисел можно выразить с помощью одного восьмиразрядного байта.[6]
Интересные факты
- Про программистов и хакеров есть много анекдотов, в которых высмеивается их оторванность от жизненных реалий и склонность следовать алгоритмам и в жизни.
- На ежегодно проводимом международном чемпионате по программированию ACM ICPC команды, представляющие российские и украинские вузы, традиционно занимают призовые места, а чемпионами становились в общей сложности больше шести раз[7][8][9].
Примечания
Литература
Программист — это… Что такое Программист?
Программи́ст — специалист, занимающийся написанием и корректировкой программ для ЭВМ[1], то есть программированием.
Место программирования в обществе
Программирование как род занятий может являться основной профессиональной деятельностью специалиста, либо использоваться в качестве вспомогательной деятельности для решения иных профессиональных задач, либо же использоваться в непрофессиональной сфере (как инструмент решения задач или ради получения удовольствия от процесса программирования). Термин «программист» не обязательно подразумевает профессиональное образование или профессиональную деятельность.
Образование
Как основная профессиональная деятельность программирование используется в технической и в научной областях.
В технике выделяются средняя техническая квалификация техник-программист (ранее «программист-лаборант») и высшая техническая квалификация инженер-программист. Предметом деятельности специалистов с соответствующей квалификацией (техников и инженеров) является проектирование, разработка и производство программного обеспечения, как промышленной продукции, удовлетворяющей заданным функциональным, конструктивным и технологическим требованиям (результатом деятельности является программное обеспечение). В России подготовка инженеров-программистов ведётся по профилю подготовки «Программное обеспечение вычислительной техники и автоматизированных систем» направления «Информатика и вычислительная техника» [2].
Существует подготовка математиков-программистов по направлению «Математическое обеспечение и администрирование информационных систем»[3].
В конце 2000-х в России появилось новое направление подготовки программистов «Программная инженерия»[4]. Областью профессиональной деятельности выпускников по этому направлению является индустриальное производство программного обеспечения. Данное направление подготовки отличается от подготовки инженеров-программистов по профилю «Программное обеспечение вычислительной техники и автоматизированных систем» тем, что общеинженерные дисциплины заменены дисциплинами из новой области знания инженерия программного обеспечения. Объектами профессиональной деятельности инженеров по производству программного обеспечения являются не программы и программные комплексы, а
Предметом деятельности программистов в науке является решение задач с применением методов прикладной математики и реализацией на ЭВМ (результатом деятельности является полученное при помощи программы решение задачи). В России ведётся подготовка специалистов по специальностям 010200 «Прикладная математика и информатика» и 073000 «Прикладная математика».
Как вспомогательная деятельность программирование в настоящее время используется в широчайшем круге профессий.
Самообразование
В связи со значительным распространением в современном обществе вычислительной техники и, соответственно, программирования как рода деятельности в настоящее время потребность в профессиональных программистах в развитых странах (в том числе в России) значительно превосходит возможности высшего образования по подготовке на соответствующих специальностях, при этом предъявляемые квалификационные требования в бизнесе в большинстве случаев значительно у́же, чем подготовка по специальности в вузе (см. напр.[5]). В связи с этим, очень широко распространено самообразование программистов и профессиональная деятельность в области программирования без получения формального образования по соответствующей специальности.
Словоупотребление
Как указано выше, с точки зрения корректной терминологии человек может иметь (например) род занятий «программист», квалификацию «инженер-программист», специальность «программное обеспечение вычислительной техники и автоматизированных систем» и должность «ведущий специалист». В разговорной речи, однако, слово «программист» нередко употребляется применительно ко всем этим понятиям.
По ошибке программистами порой называют системных администраторов и других специалистов ИТ.
Прикладные и системные программисты
В прошлом широко применялась классификация программистов на прикладных и системных. Прикладным называется программист, программы которого предназначены для решения прикладной задачи, удовлетворяющей потребности конечного пользователя и, по замыслу классификации, лежащей вне компьютерной сферы. Системным называется программист, программы которого предназначены для обеспечения работы компьютера и используются другими компьютерными специалистами.
В настоящее время данная классификация в значительной степени утратила актуальность, так как эксплуатация компьютеров вышла за пределы круга специалистов, обеспечение работы компьютера превратилось в одну из основных потребностей его пользователей и, таким образом, содержательная граница между системным и прикладным программированием во многом стёрлась.[источник не указан 292 дня]
Команда программистов
Данный раздел имеет чрезмерный объём или содержит маловажные подробности. Если вы не согласны с этим, пожалуйста, покажите в тексте существенность излагаемого материала. В противном случае раздел может быть удалён. Подробности могут быть на странице обсуждения. |
В профессии программиста важные и сложные проекты выполняются в команде. Существуют следующие типы команд :
История
Возникновение программирования как рода занятий и, особенно, как профессиональной деятельности трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарльз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
Профессиональный праздник
В 2009 году в России официально утвержден день программиста, который ежегодно празднуется 13 сентября (в високосный год — 12 сентября) — то есть празднование Дня Программиста приходится на 256 день года. Эта цифра не случайная: она получается от возведения двойки в восьмую степень. Именно такое количество чисел можно выразить с помощью одного восьмиразрядного байта.[6]
Интересные факты
- Про программистов и хакеров есть много анекдотов, в которых высмеивается их оторванность от жизненных реалий и склонность следовать алгоритмам и в жизни.
- На ежегодно проводимом международном чемпионате по программированию ACM ICPC команды, представляющие российские и украинские вузы, традиционно занимают призовые места, а чемпионами становились в общей сложности больше шести раз[7][8][9].
Примечания
Литература
Программист — это… Что такое Программист?
Программи́ст — специалист, занимающийся написанием и корректировкой программ для ЭВМ[1], то есть программированием.
Место программирования в обществе
Программирование как род занятий может являться основной профессиональной деятельностью специалиста, либо использоваться в качестве вспомогательной деятельности для решения иных профессиональных задач, либо же использоваться в непрофессиональной сфере (как инструмент решения задач или ради получения удовольствия от процесса программирования). Термин «программист» не обязательно подразумевает профессиональное образование или профессиональную деятельность.
Образование
Как основная профессиональная деятельность программирование используется в технической и в научной областях.
В технике выделяются средняя техническая квалификация техник-программист (ранее «программист-лаборант») и высшая техническая квалификация инженер-программист. Предметом деятельности специалистов с соответствующей квалификацией (техников и инженеров) является проектирование, разработка и производство программного обеспечения, как промышленной продукции, удовлетворяющей заданным функциональным, конструктивным и технологическим требованиям (результатом деятельности является программное обеспечение). В России подготовка инженеров-программистов ведётся по профилю подготовки «Программное обеспечение вычислительной техники и автоматизированных систем» направления «Информатика и вычислительная техника»[2].
Существует подготовка математиков-программистов по направлению «Математическое обеспечение и администрирование информационных систем»[3].
В конце 2000-х в России появилось новое направление подготовки программистов «Программная инженерия»[4]. Областью профессиональной деятельности выпускников по этому направлению является индустриальное производство программного обеспечения. Данное направление подготовки отличается от подготовки инженеров-программистов по профилю «Программное обеспечение вычислительной техники и автоматизированных систем» тем, что общеинженерные дисциплины заменены дисциплинами из новой области знания инженерия программного обеспечения. Объектами профессиональной деятельности инженеров по производству программного обеспечения являются не программы и программные комплексы, а методы и инструменты разработки программного продукта, а также процессы жизненного цикла программного продукта.
Предметом деятельности программистов в науке является решение задач с применением методов прикладной математики и реализацией на ЭВМ (результатом деятельности является полученное при помощи программы решение задачи). В России ведётся подготовка специалистов по специальностям 010200 «Прикладная математика и информатика» и 073000 «Прикладная математика».
Как вспомогательная деятельность программирование в настоящее время используется в широчайшем круге профессий.
Самообразование
В связи со значительным распространением в современном обществе вычислительной техники и, соответственно, программирования как рода деятельности в настоящее время потребность в профессиональных программистах в развитых странах (в том числе в России) значительно превосходит возможности высшего образования по подготовке на соответствующих специальностях, при этом предъявляемые квалификационные требования в бизнесе в большинстве случаев значительно у́же, чем подготовка по специальности в вузе (см. напр.[5]). В связи с этим, очень широко распространено самообразование программистов и профессиональная деятельность в области программирования без получения формального образования по соответствующей специальности.
Словоупотребление
Как указано выше, с точки зрения корректной терминологии человек может иметь (например) род занятий «программист», квалификацию «инженер-программист», специальность «программное обеспечение вычислительной техники и автоматизированных систем» и должность «ведущий специалист». В разговорной речи, однако, слово «программист» нередко употребляется применительно ко всем этим понятиям.
По ошибке программистами порой называют системных администраторов и других специалистов ИТ.
Прикладные и системные программисты
В прошлом широко применялась классификация программистов на прикладных и системных. Прикладным называется программист, программы которого предназначены для решения прикладной задачи, удовлетворяющей потребности конечного пользователя и, по замыслу классификации, лежащей вне компьютерной сферы. Системным называется программист, программы которого предназначены для обеспечения работы компьютера и используются другими компьютерными специалистами.
В настоящее время данная классификация в значительной степени утратила актуальность, так как эксплуатация компьютеров вышла за пределы круга специалистов, обеспечение работы компьютера превратилось в одну из основных потребностей его пользователей и, таким образом, содержательная граница между системным и прикладным программированием во многом стёрлась.[источник не указан 292 дня]
Команда программистов
Данный раздел имеет чрезмерный объём или содержит маловажные подробности. Если вы не согласны с этим, пожалуйста, покажите в тексте существенность излагаемого материала. В противном случае раздел может быть удалён. Подробности могут быть на странице обсуждения. |
В профессии программиста важные и сложные проекты выполняются в команде. Существуют следующие типы команд :
История
Возникновение программирования как рода занятий и, особенно, как профессиональной деятельности трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарльз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
Профессиональный праздник
В 2009 году в России официально утвержден день программиста, который ежегодно празднуется 13 сентября (в високосный год — 12 сентября) — то есть празднование Дня Программиста приходится на 256 день года. Эта цифра не случайная: она получается от возведения двойки в восьмую степень. Именно такое количество чисел можно выразить с помощью одного восьмиразрядного байта.[6]
Интересные факты
- Про программистов и хакеров есть много анекдотов, в которых высмеивается их оторванность от жизненных реалий и склонность следовать алгоритмам и в жизни.
- На ежегодно проводимом международном чемпионате по программированию ACM ICPC команды, представляющие российские и украинские вузы, традиционно занимают призовые места, а чемпионами становились в общей сложности больше шести раз[7][8][9].
Примечания
Литература
Как не стать программистом или… тебе здесь не место / Habr
ПРОЛОГ
Это статья для того, кто решил стать
Статья не рекомендована к прочтению опытными программерами. Ведь как ни крути, но взгляды на программинг могут расходиться.
Посему прошу сильно не минусовать. Если у опытных программистов есть что сказать новичкам — пишите тоже свою статью.
Ну а если ты в процессе самоопределения по данной профессии — you are welcome!
ТЕРМИНОЛОГИЯ
Согласно учебникам, программирование — это всего лишь процесс написания инструкций на каком-либо языке программирования (ЯП).
Но так ли это просто — взять и написать программу?
Неужели написать программу, это просто перечислить набор указаний (инструкций) компилятору и все готово?
Всего-то заучить команды и штампуй себе проги, да греби бабло!?
Программирование — это сугубо исследовательский творческий, а не технический процесс.
Программирование — это умение абстрагировать, мыслить объектами, функциональными зависимостями, виртуальными образами.
Программирование — это процесс полета креативной мысли, часто выходящий за рамки рабочего дня и даже образа жизни.
Важно понимать, что программа — это не просто набор строк текста.
Это не последовательность, выписанных из книжки, кусков кода. Это сложный многоуровневый продукт. Это десятки и сотни объектов различной структуры с разным поведением, общающиеся друг с другом. И программист должен понимать и ощущать все тонкие связи между этими объектами.
Когда программист работает над программой, она словно живет в его голове.
Необходимо понять, что программа пишется путем погружения в код. Это когда исходный код текущего модуля словно подгружается в мозг и там отрабатывается (ака отлаживается).
Т.о., уже запуская программу на исполнение, «правильный» программист прекрасно знает, как она выполнится, потому что до этого она словно «проиграла как музыка» в его голове.
Я к тому, что знаю много таких программистов, которые писали какой-либо код и чтобы проверить как он работает, запускали его на выполнение и сильно удивлялись, когда он выпадал с ошибкой в каком-нибудь месте. Они не могли выполнить код в голове, и значит, не понимали, как этот самый код работает. Ну и программы у них были никакие соответствующие.
Самое главное умение в программировании, это научиться воспроизводить (исполнять) код в уме.
Мозг программиста должен уметь запускать участки кода в уме. Вы прокручиваете цикл, вычисляете переменные и представляете, примерно, что будет на выходе.
Ощущение того, что вы чувствуете программу — очень важный этап в становлении программиста.
Кстати, хороший программист отличается от плохого тем, что тратит 90% времени на разработку, исследование и дизайн, а плохой тратит эти 90% времени на отладку случайно сгенерированного кода.
ВЫВОД. Программист должен уметь выполнять код в голове, до того как скормит его компилятору.
ГОРЬКАЯ ПРАВДА
Как правило, на программиста нельзя выучиться в учебном заведении.
Большая часть программистов — самоучки. Образование способно лишь заложить фундамент инженерных знаний. Остальное — это умственные способности и предрасположенности, помноженные на усердие и труд в квадрате, а то и в факториале(!).
Я проводил на работе много собеседований с программистами, имеющими диплом программиста. В процессе собеседования выяснялось, что программу за всю жизнь они написали только одну, и то, это был диплом, написанный другим человеком. Я вопрошал к такому претенденту, а может ли поэт называть себя поэтом, если не написал еще ни одного стиха? Обычно ведь выходит сборник стихов и потом уже поэт получает признание и сам статус поэта. Ответом было тупое молчание и недопонимание.
СТАНОВЛЕНИЕ
Наши дела обстоят так. Ты читаешь про алгоритмы, учишь любой язык, пишешь десятки различных мелких программ. Любых программ — для себя, для друга, просто чтобы разобраться с технологией и пр. И уделяешь этому МНОГО времени. Я еще раз уточню – МНОГО времени. И вот у тебя все успешно получается?! Ты въезжаешь, ты понимаешь, тебе нравится и ты получаешь от этого кайф, внутренний душевный подъем! Когда программа работает как запланировано, ты чувствуешь прилив счастья, эндорфины так и плещут в твоем мозгу. Вот оно! Отлично!
Только после этого, ты становишься кем-то похожим на программиста. И только уже потом, немытая голова старый свитер и борода…
Смех смехом, но по длине бороды одного нашего программера, мы узнаем на какой стадии проекта он находится.
ВЫВОД. Программист — это человек, который не только пишет программы, но и у которого они работают.
О ЯЗЫКАХ.
Существует много языков программирования, но особняком в это списке всегда стоял С++.
Почему С++?
С++ — это минималистичный язык, возникший как набор макросов от ассемблеристов. Вернее сначала возник С. Но не в этом суть, я не историк.
Почему рядовой программист должен знать С++?
Это примерно как священник, не знающий Библию. Как маркетолог, не знающий о правиле 4П. Как фотомодель без макияжа. Так и С++ — это тот самый необходимый багаж, который должен просто хотя бы лежать в голове на одной из полок.
Ты можешь не использовать С++ в действии, но ты должен знать его как канон, как основу всех основ. Но тем не менее, С++ весьма опасен при использовании, ведь, например, при манипулировании указателями, если программист до конца не понимает их основ, можно улететь на исполнение кода в участок данных (из-за этого, кстати, в JAVA, указатели отменили). А еще можно «выстрелить себе в ногу»)) так считал автор языка С++, господин Страуструп. Потому что таким инструментом, как С++, нужно очень грамотно владеть, чтобы пользоваться им виртуозно.
Также учтите, что часть современных языков взяла С++ за базу — Java, PHP, Perl, Ruby etc.
Все известные программы написаны исключительно на С++ (или С) — ОС Windows, ОС Linux, MacOS, iOS, Firefox, Kaspersky, Chrome etc. Более того, многие из известных программ, имеют открытые исходники и по ним можно учиться программированию.
На данный момент, только С++ дает самый быстрый и оптимизированный код под нативную родную платформу.
ПОЧЕМУ DELPHI НЕ ВАРИАНТ?
Здесь я приму отчаянную попытку отговорить начинающих от программирования на Delphi.
Pascal (IDE Delphi) — это программирование в рамках (ИМХО). Pascal — это язык, придуманный ученым Н. Виртом в 1970-ом году, в ходе разработки другого языка Модула-2. Pascal широко использовался для изучения основ программирования, но коммерческое использование он получил только в 80-90-е годы.
За десятилетия правления Борланда и InPrise он превратился в монстра, заимствовав (украв) часть синтаксиса из С++. Сейчас компания Embarcadero продолжает выращивать этого монстра, в чреве которого вы будете компилировать гигантского размера программы. Кстати и для Андроида тоже.
Я в свое время немало людей перетащил с болота Delphi на C++, чему они сами были впоследствии несказанно рады. Будучи С++-программерами, они с ужасом вспоминали про Паскаль и больше не имели желания на нем программировать.
Также, я слышал немало баек от программистов, пытавшихся переучить дельфистов на Java и потерпевших полный фиаско. Теперь многие ставят крест на дельфистах. Якобы, непереобучаемые.
Возможно это вызов и вам, господа дельфисты! Попробуйте написать прогу на С++. Через 2 месяца Delphi (Pascal) покажется вам детским садом и вы перейдете на следующий уровень развития (в среднюю школу). А там уже и Python не за горами.
Развивайтесь! А вам слабо?
Сразу попрошу не разводить холивор по поводу кто круче — Дельфи или С. Если Вы пишете на Дельфи хорошие коммерческие программы и ваши юзеры довольны продуктом, то значит все отлично. Пишите и дальше. Вы нашли свою нишу.
ИСПОЛЬЗОВАНИЕ ЯП
Теперь посмотрим на мировую статистику за 2015 год, так на чем все-таки пишут программы?
C (C++,C#,ObjC) — 28.5% (это нормальные пацаны)
Java — 21.5% (это Android, серверные и мобильные приложения )
Basic (+.NET) — 4.1% (это США с их обожаемым Visual Basic)
Python — 3.8% (это кулхацкеры, линуксоиды и гики)
Delphi (Pascal) — 2.9% (это Россия и Восточная Европа)
PHP — 2.7% (Web-программирование)
Javascript — 2.5% (Web-программирование)
Ruby — 2.0%
ШАГИ ПО СТАНОВЛЕНИЮ ПРОГРАММИСТА
С чего же начнется твое обучение программированию?
1. Ознакомление с алгоритмизацией
Тут для начала все таки хорош Pascal. Он неплохо развивает блочное мышление. Вводит в предметную область программирования. Не отпугивает так, как С++.
2. Переменные и типы данных
3. Базовые элементы языка
Структуры, классы
Циклы, ветвления, выбор, переходы, функции
4. Ознакомление с ООП
ООП — это именно тот функционал, который делает из программы
Это то, от чего едет крыша у начинающих. Это то, от чего бегут недалекие программисты.
Тут начинается абстракция.
Требуется понять только одно — ООП является костяком любой хорошо спроектированной программы.
Без ООПа порой сложно выстроить между собой логическое и интуитивно-понятное взаимодействие модулей программы.
5. Знакомство с технологиями — работа с файлами, потоками, графикой, сокетами, СУБД, Web, XML
6. Углубление — работа над своими проектами 6-9 месяцев. Тут важно не дергать готовые компоненты, а писать чистый С++ код.
Важно просто набить руку.
ФРЕЙМВОРК И КОМПИЛЯТОР(IDE)
Фреймворк — это программная платформа, облегчающая разработку и объединение разных компонентов большого программного проекта.
Компилятор — это программа, которая превращает вашу писанину в исполняемый код.
IDE — это графическая оболочка-редактор, которая облегчает работу над созданием визуальных форм и редактирования кода.
Проблема современного программирования — излишнее многообразие фреймворков, сред и ЯПов.
Нельзя выучить все из них. Многое определяет заказчик или компания-работодатель.
Можно начать изучение с Visual C++ (среда от Microsoft), Builder C++ (Embarcadero) и Qt.
Visual C++ — это классика. Если нужно много удобных визуальных компонентов, если нужен навороченный интерфейс — берите Builder C++. Нужна кроссплатформенность — берите Qt C++.
Я начинал программировать на С++ в DOS. Тогда (в 90-х) больше и не было ничего (unix не в счет)!
Сейчас у нас есть C#.NET, Qt, wxWidgets, C++Builder, C++ VisualStudio под Windows. И не менее жирные вариации под Linux.
А если еще посмотреть в сторону Java, Android… то просто слюнки текут от возможностей.
Готовьте голову к обширному вливанию документации. Как говорят программисты — RTFM.
Учите один язык и одну среду. Учеными доказано, что программист с 3-летним опытом программирования на одном языке работает в 3 раза продуктивнее программиста с таким же опытом, но на другом языке.
ХОРОШИЕ ПРАВИЛА ПРОГРАММИРОВАНИЯ
1. Написал первую версию программы!? Выкинь и начните писать вторую версию.
2. Проектирование программы начинайте на бумаге — блоки, связи, морфология, схемы (UML)
3. Переменные самодокументируемые — bPersonNameValidity
4. 60% кода — обработка ошибок и исключительных ситуаций.
5. Разбивайте код на мелкие модули. Хорошая практика — один класс-один модуль.
КАКИЕ ОНИ БЫВАЮТ?
Разделение на системных(С) и прикладных(П) программистов.
С — знают устройство операционной системы, основы API, как работает ОС (потоки, процессы, прерывания, хуки), стараются весь код писать сами без привлечения сторонних компонент. Часто сторонники VisualStudio. Не любят создавать ПО с большими графическими интерфейсами.
П — пишут программу, использую сторонние модули и компоненты. Не вдаются в устройство ОС. Любят Delphi и Builder.
Embedding — самый профессиональный уровень. Программирование под железки — hardware. Требует знаний электроники и ассемблера. Самый высокооплачиваемый сегмент программирования.
Web-программисты — пишут код для динамических сайтов. Чаще на PHP. Дополнительно нужно знать HTML, CSS, JS и пр.
ЭПИЛОГ
Наивно предполагать, что можно выучиться на программиста, меньше чем за год.
Язык программирования — это как музыкальный инструмент. Основные навыки игры ты, возможно, схватишь быстро, но на оттачивание мастерства уйдут годы.
Программирование должно нравиться, должно увлекать, как любой любимый процесс.
Рекомендую снести все игры на компе. Трать время на полезное.
Развивай аналитическое мышление.
По С++. Читаем Страуструпа. Держите его книгу под рукой.
И еще. Учи английский язык. Программисты должны уметь свободно читать на английском.
99% документации по программированию на английском. Перевода не ждите.
Названия переменных тоже называем английскими словами, заодно это комментирует код.
Если при изучении языка программирования, ты чувствуешь что продираешься через джунгли, что твои мозги вязнут в этой мути, что языковые конструкции ужасны и труднопонимаемы, и ты чувствуешь нарастающее раздражение, то вполне возможно, что это не твое. Бросай!
Программирование — это не профессия, это диагноз.
Главное, что ты — пытался, но возможно что твое призвание в другом.
P.S.
Немного из опыта других
Программирование — это не развлекательная вечеринка, а кропотливая работа, требующая много знаний и определенный склад ума.
Изучить язык != научиться программировать.
25 самых популярных мифов о программировании и программистах
Обзор мифов о программировании, пугающих, вводящих в заблуждение и мешающих развиваться новичкам и опытным разработчикам.
Сфера информационных технологий для непосвященного кажется загадочной и непостижимой. Любая тайна рано или поздно начинает обрастать стереотипами и мифическими образами, не избежало этой участи и программирование. В Волшебной Стране IT, где всегда тепло, а деньги растут прямо на деревьях, появились новые герои и артефакты: Всесильный Хакер, Идеальный Язык и Загадочная Женщина-Программист, подобная коту Шредингера.
Тру-программист, какой он
Существует множество мифов о программировании, которые приоткрывают завесу тайны над таинственным образом Настоящего Программиста. Этот герой предстает в разных обличьях, но его сверхспособности не подвергаются сомнению.
Настоящий Программист – это супермен, способный одним щелчком пальцев разобраться со злыми вирусами, с помощью рентгеновского зрения поставить диагноз заболевшему компьютеру и тут же на месте починить его силой мысли.
Настоящий Программист в миру – это бородатый человек в толстом свитере с кофейными пятнами. В ночи он крадется к компьютеру, чтобы немного покодить в тишине, а днем прячется от людей по темным углам.
Миф 1. Программисты не любят общаться
Основной сюжет большинства мифов о программировании – герой-социофоб, замкнутый в себе и неохотно идущий на контакт с внешним миром. Действительно, специфика разработки ПО такова, что специалист много времени проводит один на один с компьютером, сосредоточенно создавая код.
Однако это не мешает программисту тесно общаться со своими коллегами, обсуждать рабочие вопросы, посещать разнообразные конференции и просто тусоваться с друзьями. В этой сфере очень ценится теплая атмосфера и сплоченность коллектива. Считается, что чем комфортнее человеку работать, тем лучший продукт он способен создать.
Миф 2. У программистов скучная жизнь
По распространенному мнению, программисты не имеют хобби, не занимаются творчеством, все свое время проводят за монитором компьютера, питаясь полуфабрикатами быстрого приготовления. Вступая на тропу программирования, насмотревшийся стереотипных фильмов новичок опасается, не станет ли он таким же.
На самом деле программисты, как и люди любой другой профессии, разные. У каждого свои увлечения: танцы, рисование, экстремальный спорт, путешествия. Есть у них только одна общая беда – нехватка времени на все эти радости.
Миф 3. Хороший программист может все
В десятках мифов о программировании главный герой самоотверженно решает проблемы, прямо или косвенно связанные с компьютером.
Основные суперсилы тру-программиста:
Конечно же, это не так. В сфере информационных технологий существует огромное количество направлений деятельности, не связанных напрямую друг с другом: кто-то работает с «железом», кто-то – с программами, кто-то – с сетями. Не станем же мы требовать от высококлассного педагога младшей школы провести ребенку операцию по удалению гланд только потому, что объект манипуляций тот же самый?
Миф 4. Программисты умеют только писать код
Создатели подобных мифов о программировании несомненно очень далеки от этой сферы и не представляют, как происходит процесс разработки.
Проблемы, решаемые компьютерными программами, далеко выходят за область информационных технологий. Взять хотя бы инструменты для бухгалтерского учета: чтобы создать качественный продукт, программист должен в общих чертах разбираться в этой предметной области.
Идеальным представляется вариант сотрудничества профессионального бухгалтера, который знает, чего он хочет, и кодера, который разбирается в программировании и знает, как объяснить машине, что нужно делать. Увы, так это не работает.
Бухгалтер в большинстве случаев слишком далек от компьютерных наук и просто не способен в деталях объяснить, чего он ждет от продукта. Вот и приходится программисту самостоятельно вникать в экономические понятия и схемы.
Миф 5. Тру-программист все пишет с нуля
Получив новую задачу, хороший специалист садится за компьютер и создает всю архитектуру на пустом месте. Классный программист не нуждается в чужой помощи. Он абсолютно уверен в каждом элементе своей программы и может поручиться за его бесперебойную работу.
В этом случае не появилось бы 90% всех существующих программных продуктов, работа которых основана на других программах, библиотеках и фреймворках. В программировании господствует идеология разделения труда и переиспользования уже готовых компонентов системы, модульность. Это позволяет в разы упростить и ускорить разработку, повышая ее качество.
Как стать тру-программистом
Дорога к вершинам профессионального мастерства настолько таинственна и неопределенна, что народное творчество предлагает сразу несколько мифов о программировании с противоположными вариантами развития событий.
Миф 6. Долгий тернистый путь
Чтобы считаться программистом, следует получить профильное академическое образование, разве не так? Без вузовского диплома невозможно найти хорошую работу.
В программировании уже давно преобладают самоучки. Все больше профессионалов вырастает из людей, которые никогда не посещали лекций по процедурам языка Паскаль.
К сожалению, университет, каким бы хорошим он ни был, не в состоянии сделать из незаинтересованного студента мотивированного работника. А заинтересованный человек и без вуза найдет, где и чему научиться. В сфере информационных технологий работодатели прекрасно об этом осведомлены.
Это, однако, не отрицает пользы академического образования в области программирования. Глубокое понимание базовых концепций, большой опыт решения задач – великолепный фундамент для будущей работы.
Миф 7. Легкий приятный путь
Стать программистом можно за 30 минут в день. Достаточно пройти какие-нибудь курсы или посмотреть пару видеоуроков. Это очень просто, почему все люди еще не начали писать код?
Мы уже перестали верить в то, что можно за неделю выучить иностранный язык. В программировании ситуация ничуть не радужнее. Знания + реальный опыт – это единственно возможный рецепт успеха. Набираясь опыта по 30 минут в день, придется потратить долгие годы.
Путь к профессиональным высотам никогда не заканчивается. Отучившись в университете, окончив курсы, прочитав кучу учебников, нельзя останавливаться. Хороший программист учится всю жизнь.
Миф 8. Все курсы одинаковые / Идеальный курс
На просторах мировой сети и на полках книжных магазинов можно найти сотни самых разнообразных учебников, курсов, шпаргалок по программированию. Конечно же, они отличаются друг от друга. Как минимум, у них разные авторы со своей манерой изложения, подачей и выбором материала. И это замечательно, потому что все люди учатся по-разному.
Нет суперкурса, который подошел бы каждому ученику. В поисках идеального по всем параметрам материала можно прошерстить много неподходящих, это совершенно нормально.
Поэтому большинство курсов предлагают слушателям короткий бесплатный пробный период, и этой возможностью нужно пользоваться.
Миф 9. Начинать следует со сложных языков и концепций
Неизвестно откуда взялся этот нелогичный миф, однако он довольно распространен среди новичков в программировании.
Как в любом другом деле, начинающему следует развиваться от простого к сложному. Это не только облегчит понимание многих вещей, но и позволит сохранить мотивацию для дальнейшего обучения.
Миф 10. Для начала нужно досконально изучить синтаксис языка
Пока не вызубришь наизусть все 999 операторов, классов и методов, переходить на следующий этап нельзя.
На самом деле, это пустая трата времени. Сколько ни читай про функцию со всеми ее аргументами и перезагрузками, пока не начнешь использовать – не запомнишь. Практика в программировании – прежде всего. Вооружившись базовыми навыками, нужно с головой нырять в омут практики, пополняя багаж знаний уже по ходу.
Миф 11. Я выучил HTML и CSS, значит, я уже программист
Несмотря на то что язык гипертекстовой разметки и каскадные таблицы стилей — два гигантских кита, на которых стоит интернет, они не являются языками программирования. Знать их полезно, но недостаточно.
7 страшных мифов о программировании
Великая и ужасная IT-наука недоступна простым смертным, как утверждают популярные мифы. Чтобы стать программистом, адепт должен пройти огонь, воду и ряд других испытаний. Но если у него нет уникального IT-гена, ничего не получится.
Миф 12. Надо быть очень умным / иметь особый талант
Впервые увидевшие программный код новички часто испытывают глубокие сомнения в том, смогут ли они когда-нибудь понять его. А уж о том, чтобы написать самостоятельно, и речь не идет.
Все не так страшно, как кажется. Хороший программист — это не гений с феноменальной памятью, не талантище, который рождается раз в сто лет под счастливой звездой. Хороший программист – обычный человек, который любит учиться, готов узнавать новое и применять свои знания. Как говорится, 99% успеха – это труд, и только 1% приходится на врожденные способности.
Миф 13. Надо много запоминать
Тру-программист знает все алгоритмы, помнит все классы, методы и синтаксические правила языка.
На самом деле для успешной работы достаточно обладать необходимым минимумом знаний, который очень быстро закрепляется в памяти при постоянном использовании. То, что требуется по ходу проекта, легко «загуглить», а современные инструменты разработчика предоставляют удобные «умные подсказки».
Умение находить информацию ценится в IT-сфере гораздо выше, чем хорошая память.
Миф 14. Нужно хорошо знать математику
Несколько очень страшных мифов о программировании рассказывают, что программист каждый день имеет дело с вычислением логарифмов, транспонированием матриц и доказательством теоремы Ферма, поэтому без фундаментальных знаний математики делать в этой сфере нечего.
Единственный раздел математики, в котором программист действительно должен разбираться – это логика.
В специфических областях, конечно, могут потребоваться особые знания. Так, создателю игр точно пригодится тригонометрия. Однако, практически для любой задачи можно найти уже готовые инструменты. Для тех же игр разработаны десятки движков, которые берут на себя все математические вычисления.
Миф 15. Нужен крутой компьютер
И десяток мониторов в придачу. Без этого программисту никак нельзя. Такие гипотетические затраты сразу отбивают у новичков желание погружаться в эту сферу глубже.
Компиляторы языков программирования не требуют больших мощностей или нескольких мониторов. Работать можно и на обычном ПК.
Миф 16. Все в программировании уже сделано до меня
Этот стереотип идет в паре с убеждением новичков в том, что они никогда не догонят опытных программистов.
IT-сфера – самая динамично развивающаяся индустрия в мире. Каждый день появляются новые технологии и инструменты. Чтобы оставаться конкурентоспособным, нужно все время учиться и развиваться. Знания устаревают крайне быстро.
Отсутствие опыта может стать для молодого программиста преимуществом, так как позволяет не держаться за старое. Свежий взгляд всегда найдет новые возможности.
Миф 17. Я слишком стар / слишком молод
Что бы ни твердили создатели мифов о программировании, ему, как и любви, «покорны все буквально возраста». Дверь в IT-мир не закрывается в 30 лет.
Особенно полезны эти навыки для детей. Да-да, уже с 7-8 лет ребенок вполне способен понять базовые концепции и алгоритмы. Для детей даже существуют специальные языки и среды разработки, например, Scratch. Подобные занятия развивают логику, память, аналитическое мышление.
Миф 18. Женщины не могут быть хорошими программистами
Рождение этого стереотипа кажется особенно странным, если вспомнить, сколько талантливых женщин-программистов знает история.
Дело в том, что представительницы прекрасного пола реже мужчин выбирают такой профессиональный путь, поэтому их в принципе меньше в этой сфере. Но объективных факторов для того, чтобы заинтересованная женщина не добилась успеха на стезе программирования, не существует.
Языки программирования
Когда преодолены страхи, пройден начальный этап обучения, и адепт уже решительно готов стать тру-программистом, на его пути встают новые стереотипы.
Миф 19. Все языки одинаковые / разные
Языки программирования похожи между собой, но одинаковыми их никак нельзя назвать.
Сходство объясняется базовыми концепциями, логикой, которая лежит в основе всего. Но каждый язык был создан для собственной цели: обучения, веб-разработки, повышенной производительности, работы с конкретной операционной системой. Это определяет особенности синтаксиса и семантики, а также дополнения, отличающие один язык от другого.
В большинстве случаев программист, освоивший один язык, достаточно легко может разобраться в программе, написанной на другом. Впрочем, для детального понимания ему наверняка потребуется справочник.
Конечно, существуют низкоуровневые, высокоуровневые и другие специфические языки, непохожие ни на кого, но их мало + они узконаправленные.
Миф 20. Идеальный язык
Новички, приходя в программирование, первым делом задаются вопросом, какой из всего многообразия существующих языков самый лучший, удобный, полезный – идеальный! Какой язык учить?
Программисты, как верные своим болотам кулики, очень любят те языки, на которых преимущественно пишут, и беззастенчиво их нахваливают. Однако таинственный Идеальный Язык по-прежнему не найден.
Не нужно искать Святой Грааль программирования: его не существует. Новичку следует просто выбрать себе понравившийся язык и познавать его возможности.
Миф 21. Веб-программирование – это несерьезно
Долгое время язык PHP среди разработчиков считался, мягко говоря, несерьезным. Сделанный на коленке, он просто не мог стать основой чего-то большого и сложного. Сейчас мнение изменилось, PHP занял свою нишу в IT-сфере.
JavaScript всегда был игрушечным языком, пригодным только для простенькой анимации веб-страниц. Сейчас этот язык усердно борется за звание самого универсального, успешно осваивая серверную сторону разработки.
Веб-программирование – большая и активно развивающаяся сфера. Сейчас это очень серьезно.
Миф 22. Программирование – это скучно
Одно из самых упоительных чувств, испытываемых программистом – чувство творца. Благодаря ему из небытия возникают программы, которые могут приносить людям пользу и радость.
Навыки программирования применимы во всех сферах жизни: от сельского хозяйства до авиастроения и космической промышленности. Программисты пишут игры, социальные сети, мобильные приложения – разве это скучно?
Волшебная Страна IT
Окутанная туманом стереотипов и мифов о программировании, Волшебная Страна IT завлекает молодых адептов иллюзиями и обещаниями.
Миф 23. Программист = миллионер
Есть мнение, что программисты прилично зарабатывают. Действительно, зарплаты многих работников имеют весьма приятные размеры. Многих, но не всех.
Спрос на IT-специалистов на рынке труда высок, но работодатели ищут работников с опытом, поэтому первое время придется довольствоваться небольшими зарплатами и нарабатывать портфолио.
Чтобы достичь профессиональных высот нужно много работать, либо придумать и создать по-настоящему крутой продукт.
Миф 24. Новички никому не нужны
Противоположный миф утверждает, что новичку в программировании невозможно устроиться в компанию и начать зарабатывать, пока он не набьет руку и не сформирует портфолио.
На самом деле на рынке есть много вакансий стажеров и юниоров, где соискатель сможет набраться опыта на реальных проектах и даже получать небольшую зарплату. В будущем возможно полное трудоустройство в эту же компанию. Кроме того, существуют фриланс-биржи, где можно найти задания, соответствующие уровню исполнителя.
Миф 25. Навыки программирования нужны только программистам
Программирование – умение специфическое, и оно нужно лишь тем, кто занимается им непосредственно? Это не так.
Компьютеры сейчас доступны и удобны, с их помощью можно существенно упростить себе жизнь и повысить собственную эффективность. Умные машины могут выполнять за человека рутинные повторяющиеся долгие операции, например, составлять отчеты, считать статистику, форматировать тексты, обрабатывать видео. Но для этого их нужно запрограммировать.
Основы компьютерной грамотности должны стать таким же естественным знанием, как умение умножать числа.
Обсуждение:Программист — Википедия
Известные представители[править код]
ИМХО, это будет лишним — лишь резня, кто же известнее :). —A.I. 05:27, 11 мая 2006 (UTC)
- Как кто? — Билл Гейтс! Он не раз рассказывал о том как собственноручно написал Basic (правда пингивноводы в это не верят, но ведь пингивна у меня нет :-). А так можно вспомнить Аду, в честь которой названя язык програмирования (Idot 01:39, 26 апреля 2008 (UTC))
- Это приведёт только к большим спорам, так как нужны объективные критерии отнесения к этой категории. Например, Билл Гейтс хотя и программировал в начале создания Microsoft, но знаменит именно как экономист и стратег, а не автор кода. Ава хоть и была первой программисткой, но тут можно вспомнить, что кода-то она написала мало. Потом, стоит считать программиста известным по отношению к нему общества или профессионалов? В итоге это приводит лишь к спорам. —A.I. 07:40, 26 апреля 2008 (UTC)
- Обычно известный программист прославляется за счёт вклада в развитие каких-то теорий, алгоритмов, систем, языков (опять же программирования). Само программирование становится как-бы естественным сопутствующим занятием. Билл Гейтс больше бизнесмен, прославился именно этим. Страуструп, Керниган, Ритчи и Вирт — создатели языков программирования. Сами много программировали, но опять же прославились созданием языков. Кнут и Дейкстра известны как создатели алгоритмов. Если вы пробежитесь по ссылкам, то почти обо всех написано: учёный или компьютерный специалист. И так далее можно продолжать. Обычно когда речь идёт об известных программистах, вспоминают разве что Аду Лавлейс. Если мы всё-таки хотим выдать какой-то список, стоит сначала устроить здесь моозговой штурм: перечислить возможные критерии и конкретных персоналий-кандидатов. Просто посмотрим во что выльется обсуждение. В какой-то момент либо идея оформится, либо будет с очевидностью показана её несостоятельность. 91.77.188.158 21:37, 12 октября 2013 (UTC)
- Это приведёт только к большим спорам, так как нужны объективные критерии отнесения к этой категории. Например, Билл Гейтс хотя и программировал в начале создания Microsoft, но знаменит именно как экономист и стратег, а не автор кода. Ава хоть и была первой программисткой, но тут можно вспомнить, что кода-то она написала мало. Потом, стоит считать программиста известным по отношению к нему общества или профессионалов? В итоге это приводит лишь к спорам. —A.I. 07:40, 26 апреля 2008 (UTC)
А что такое «программист-кодировщик»? 😉 Первый раз слышу… —A.I. 07:13, 15 февраля 2006 (UTC)
- У американцев 91.202.253.3 14:02, 5 апреля 2011 (UTC) есть разделение процесса на инжененров, проектирующих структуру, ставящих задачи, и шлифующих код, и низкоквалифицированных кодеров, которые по полностью составленному инженерами алгоритму тупо набивают тривиальный код. MaxSemtalk 07:20, 15 февраля 2006 (UTC)
- Надо бы это в отдельные блок, а то предложение про кодера в начале непонятно… —A.I. 15:11, 15 февраля 2006 (UTC)
- Это не низкая и высокая квалификация. Это принципиально разный вид деятельности. Пилот не менее «квалифицирован», чем авиадиспетчер или начальник аэроопорта. Sergej Qkowlew 00:40, 26 апреля 2008 (UTC)
- Читайте профессиональные стандарты. Они — рулез. В России кодировщик — это программист низшей квалификации. Программист, который ставит задачи другим программистам(кодировщикам), называется старший или ведущий программист.
- В России приписывание кому-то роли кодировщика обычно служит обоснованием, чтобы не платить нормальные зарплаты 🙂 Кстати, есть ещё архитекторы, дизайнеры ПО, кволити ашуранс инженеры и целый зверинец разных других персонажей. Обидеть никого не хотел если что. 91.77.188.158 21:41, 12 октября 2013 (UTC)
- Читайте профессиональные стандарты. Они — рулез. В России кодировщик — это программист низшей квалификации. Программист, который ставит задачи другим программистам(кодировщикам), называется старший или ведущий программист.
Программист = системный администратор[править код]
Все-таки, сисадминов у нас никто программистами не считает. «Айтишниками» — да, но не программистами. —Дмитрий Бречалов 11:39, 16 августа 2006 (UTC)
- Согласн с мнением предыдущего оратора. Это утверждение я бы поставил под сомнение Bff7755a 10:53, 28 февраля 2008 (UTC)
Неподготовленный пользователь на крупном предприятии считает программистом всех, кто имеет отношение к обслуживанию ПК (от слова программа). Тем более, там может и отсутствовать и сисадмин, и специалист по техподдержке Александр Мясников alexanderwdark
- точно подмечено, добавлю что сисадмин нередко имеет диплом програмиста (Idot 00:32, 26 апреля 2008 (UTC))
- и что, Википедия является источником информации и должны ссылаться на АИ, а не на того, кто там чего на предприятии считает. LomonosovSergey90 (обс.) 11:50, 25 февраля 2018 (UTC)
- Диплома «программиста» не бывает. Может быть «инженер-программист», «техник-программист», «математик-программист» или масса других конкретных вариантов. Vadim Rumyantsev 00:12, 26 января 2010 (UTC). Например, вот конкретная выписка из диплома о высшем образовании (НГТУ): «Присуждена квалификация инженер по специальности «Программное обеспечение вычислительной техники и автоматизированных систем.»»—90.189.167.248 01:40, 13 сентября 2011 (UTC)
- Существуют направления подготовки:
- Диплома «программиста» не бывает. Может быть «инженер-программист», «техник-программист», «математик-программист» или масса других конкретных вариантов. Vadim Rumyantsev 00:12, 26 января 2010 (UTC). Например, вот конкретная выписка из диплома о высшем образовании (НГТУ): «Присуждена квалификация инженер по специальности «Программное обеспечение вычислительной техники и автоматизированных систем.»»—90.189.167.248 01:40, 13 сентября 2011 (UTC)
- 01.03.02 Прикладная математика и информатика;
- 02.03.02 Фундаментальная информатика и информационные технологии;
- 09.03.01 Информатика и вычислительная техника;
- 09.03.02 Информационные системы и технологии;
- 09.03.03 Прикладная информатика;
- 09.03.04 Программная инженерия;
- 10.03.01 Информационная безопасность;
- 11.03.02 Инфокоммуникационные технологии и системы связи;
- 10.05.02 Информационная безопасность телекоммуникационных систем;
…. Что, они все программисты? Вы ошибаетесь: 1. Выпускники этих специальностей, как прописано в ФГОС, не программисты, такой квалификации, как программист (диплом программиста), вообще не существует, а то, что вы перечислили, это должности. 2. Программисты программируют на разных уровнях и в разных сферах деятельности. На низком уровне программируются микроконтроллеры, на языках низкого уровня, выше идут программисты верхнего уровня, которые программируют под операционные системы, выше программисты системные, сетевые и прочие, в том числе которые проектируют базы данных, описывают запросы к БД, абстрагированно от ОС. Поэтому говорить о том, что «программист — это специалист, занимающийся непосредственной разработкой программного обеспечения для различного рода вычислительно-операционных систем.», неверно. LomonosovSergey90 (обс.) 11:47, 25 февраля 2018 (UTC) В 90% не-программистских контор «программистом» будут называть кого угодно, имеющего отношение к IT. Ещё есть плохо понятные и многозначные ярлыки «айтишник» и «эникейщик». Там в статье напиасно, что по ошибке могут кого угодно называть программистом. На мой взгляд, скорее не по ошибке, а из-за невежества. Но смысла развивать тему нет. Это и так понятно. 91.77.188.158 21:46, 12 октября 2013 (UTC)
Я слышал такое мнение что в английском языке нет слова «Программист» вместо него используется слово «Developer» или «Software Developer». 85.90.216.229 09:02, 27 ноября 2008 (UTC)
- Почитайте, что сами англоговорящие пишут: en:Programmer. infovarius 10:00, 27 ноября 2008 (UTC)
- Да по-разному они говорят. И programmer, и software engineer, и software developer. И даже software designer. Обычно нюансы очень незначительные, то есть это почти синонимы. Употребление того или иного варианта закрепляется в корпоративной культуре той или иной компании. Если software designer по смыслу ближе к архитектору программного обеспечения, обычно подразумевается, что есть ещё кодировщики, скурпулёзно кодирующие то, что придумал дизайнер. А вот developer или engineer может означать широкий круг обязанностей. 91.77.188.158 21:17, 12 октября 2013 (UTC)
Специализация программистов[править код]
Всё-таки это скорее классификация инструментов программистов, а не самих профессионалов. Разумеется, программисты нередко используют лишь один язык, но всё-таки … Я бы предложил другой подход: математические вычисления, системы управления, интернет-серверы, диалоговые системы и т.п. Shaman 13:53, 27 июня 2009 (UTC)
- Совершенно верно. Более того, всё давно проклассифицировано умными людьми в классификаторе специальностей, именно по такому принципу, как Вы упомянули. Vadim Rumyantsev 00:11, 26 января 2010 (UTC)
Программное обеспечение вычислительной техники и автоматизированных систем и Математическое обеспечение и администрирование информа[править код]
С новыми стандартами образования специальность «Программное обеспечение вычислительной техники и автоматизированных систем» стала профилем подготовки направления «Информатика и вычислительная техника», а специальность «Математическое обеспечение и администрирование информационных систем» стала направлением без разделения на профили подготовки. Стоит отметить, что называть выпускников направления «Математическое обеспечение и администрирование информационных систем» иженерами некорректно, так как образовательный стандарт этого направления не включает в себя инженерную подготовку. Данные специалисты являются математиками-программистами, а не инженерами-программистами. Анатолий Лютин 10:03, 26 сентября 2011 (UTC) Браткив Б. 14:52, 14 октября 2012 (UTC)
Прикладные и системные программисты[править код]
Довольно мутно об этом написано. Надо привести более внятное определение и уточнить, что деление весьма условное из-за множетсва пограничных ситуаций. 91.77.188.158 21:09, 12 октября 2013 (UTC)
«В английском сленге существует слово «Сongrammer» — недобросовестный программист, который не интересуется документацией по проектам, вследствие чего часто делает ошибки в исходном коде.» — я бы добавил, что в русском языке аналогом можно назвать слово «погромист». 188.162.39.57 06:23, 1 августа 2014 (UTC)
Указание феминитива в преамбуле[править код]
u:NachtReisender, правила нет, но есть сложившаяся практика — в других статьях о профессиях феминитив, особенно образующийся тривиальным систематическим образом, не указывается. Я спросил, нужно ли его указывать, в чате участников Википедии в Discord, и участники u:Iluvatar, u:192749н47, u:DanielloFlorenco, u:Sigwald и u:Deltahead также высказали мнение, что данный фрагмент в статье не нужен, потому что Википедия — не словарь. MBH 16:08, 8 марта 2019 (UTC)
Как выше сказано, Википедия — не словарь. В Википедии не указываются формы слов, такие как склонения по родам, падежам и т.п. Для подобных целей предназначен Викисловарь (статью в котором можно связать со статьёй в ВП). Здесь же подобное может быть только в случае, если авторитетные источники о понятии (не о слове!) особо выделяют эту тему и анализируют её. Могут быть ещё случаи, когда имеется некая нетривиальность и необходимость наличия в статье информации лингвистического толка всем очевидна (например, как в статье Оперативно-разыскная деятельность).—Iluvatar обс 16:32, 8 марта 2019 (UTC)