7 августа 2010 г.

Как стать (Delphi) программистом

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

Я извиняюсь, если вы ожидали увидеть здесь краткий и простой ответ, но это будет длительное обсуждение с подробной "инструкцией". Этот материал будет нацелен на самоучек - т.е. обучение программированию с нуля самостоятельно (с минимальной внешней помощью). Если же вы не хотите читать большой и занудный текст, я предлагаю вам закрыть эту страничку и почитать вместо неё Научитесь программировать за десять лет - краткое описание в немного шуточной форме (впрочем, текст по ссылке полезно прочитать в любом случае).

Для начала, хорошо бы понять/определиться, хотите ли вы вообще становиться программистом. Вы действительно этого хотите, или это просто дань моде или каким-то иллюзиям?

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

Давайте, идите почитайте. Я подожду.

Итак, если вы ещё с нами, то вы твёрдо решили стать программистом :)

Тогда далее я попробую дать ответ на этот вопрос, отвечая на более частные вопросы, как-бы ведя диалог с воображаемым новичком. Вопросы и ответы даются в том порядке, в котором они возникали у людей, которые общались по этой теме со мной. Ответ на каждый вопрос даётся в двух вариантах: кратко и развёрнуто. Кратко - это для тех, кому всё и сразу, дай готовое решение, укажи: делай то, потом это. А подробный ответ - это попытка описать "а почему это так", либо же просто более детально описать выбор альтернатив. Кстати, если вы читали ссылки выше, то уже должны были понять, что быть программистом - это не в меньшей мере ментальное состояние. Когда вы докапываетесь до сути вещей, разбираете всё подробно и занудно и ищете ответ на вопрос "почему". Если подробный ответ кажется вам сложным, запутанным и непонятным - для начала воспользуйтесь кратким.

Выбор языка

Окей, первый вопрос, который задают и который наверняка у вас возникнет: какой язык выбрать для изучения?

Краткий ответ:

В общем, я не думаю, что выбор языка играет здесь хоть какую-то существенную роль (если, конечно, вы не собираетесь выбрать нечто совершенно нетипичное или вы являетесь полным новичком в программировании). Мне кажется, выбор того же языка, который преподают у вас в школе или университете (если вы ещё учитесь), будет неплохим выбором для начала. Быть может, этот язык останется для вас основным на долгое время, а, быть может, вы смените его на какой-то другой. Или, быть может, у вас не будет любимого языка, и вы будете равно владеть несколькими. Но если вы не хотите выбирать свой первый язык "по течению", то можете попробовать сделать это самостоятельно, оценив перспективы каждого.

Подробный ответ:

Прежде всего, я замечу, что если вы - вообще полный новичок в программировании, то вам однозначно нужно начинать с самых азов. Я думаю, что выбор языка Паскаль (Pascal) будет являться оптимальным. Да, именно Паскаль, а не Delphi и не C/C++. И вот почему. "Позвольте, а почему бы не использовать C# или Java - спросите вы, - ведь это тоже очень простые языки". Да, простые. Проблема в том, что они слишком простые (и не разрабатывались для обучения программированию). Может быть, это отличные языки для работы, но сегодня речь не об этом. Проблема в том, что они скрывают и упрощают слишком много вещей. Паскаль же, с одной стороны достаточно прост, чтобы на нём можно было обучаться программированию с нуля, но с другой стороны достаточно гибок, чтобы достучаться до уровня машины (аппаратного обеспечения) и работать с понятием указателя.

Итак, с языком мы определились: Паскаль. В качестве среды проще всего использовать PascalABC.NET (как бы не ругали эту среду, но для начального обучения она видится наилучшим вариантом) - ключевым моментом здесь является простота. У этой среды нулевой порог вхождения, вы можете очень просто установить среду (скачать - около 100 Мб) и тут же начать программировать. Среда бесплатна, разработана специально и только для обучения, язык - Паскаль, причём совместимый с Delphi. В комплекте обучающие примеры и уроки (устанавливаются на диск вместе со средой). Для неё есть задачник. Более того, вы можете даже не устанавливать среду, а запустить её прямо из браузера. Чего ещё желать для обучения? Книгу? Да, есть: Песни о Паскале (зеркало) - отличная книга, говорящая про Паскаль для полных начинающих. В комплекте также есть задания с ответами. Кстати, пригодна не только для PascalABC.NET.

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

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

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

Или, если вы хотите сравнить Delphi с C++ (ну, с ним обычно чаще всего сравнивают), то можете почитать вот это.

Во-вторых, откройте газету объявлений, сайт с предложениями о работе или аналогичный источник - для вашего города или города, где вы собираетесь работать (например: Москвы ;) ). Посмотрите, сколько есть предложений по выбранному вами языку. Посмотрите зарплаты. Посмотрите тип работы (или это лишь поддержка старой системы когда-то написанной на этом языке, потому что предыдущий программист ушёл, или же это новый проект, который требует разработки и новых вливаний). Сравнивайте, оценивайте, думайте и делайте выводы. Замечу только, что если вы собираетесь работать самостоятельно, не "на дядю", то для заказчика выбор языка обычно не имеет ни малейшего значения. Ему главное, чтоб ему программу дали, он с ней работать будет.

Ещё один способ - посмотреть рейтинг TIOBE, который показывает рейтинг языков программирования по частоте упоминания языка в поисковых запросах (в качестве ключевого слова).

Так вот, поскольку я всё же "Delphi-программист", то поэтому дальше я буду продолжать разговор на тему "Как стать Delphi программистом" (как бы ни коряво звучало это понятие), полагая, что вы выбрали Delphi как свой первый язык программирования.

Извините, что потратил ваше время, если вы выбрали другой язык. Если вы всё ещё колеблетесь, между выбором Delphi или язык C-семейства, можете почитать вот это. Впрочем, даже если вы выбрали другой язык, вы всё равно можете дочитать до конца - просто пропустите обсуждение Delphi и специфичной литературы для неё - а остальное (типа, выбора факультета, чем заниматься, где набираться опыта и т.п.) будет в силе.

Чтобы оценить Delphi с этой стороны, вы также можете посмотреть примеры успешных приложений, которые были написаны на Delphi. Или, если вас интересует лично моё мнение:
  • (+) Delphi - это развитие Pascal, который изначально создавался именно для обучения программированию.
  • (+) Язык Delphi прост и прозрачен и не имеет многих подводных камней, свойственных более навороченным языкам (камень в огород C++). С другой стороны, он достаточно гибок, чтобы успешно решать любые практические задачи (иначе продержался бы он всё это время).
  • (+) Сообщество Delphi очень сильно в России, поэтому вы без труда найдёте помощь или место для общения.
  • (+) Delphi вообще очень популярна в России, поэтому часто становится первым языком начинающих программистов, и её (или Паскаль) часто преподают в школах и университетах.
  • (+) Delphi - это среда быстрой разработки для native-кода. В своём роде уникальное явление.
  • (-) Delphi имеет и проблемы.
  • (-) У Delphi нет специальной версии для обучения. Т.е. если в вашем учебном заведении нет учебных лицензий, то использовать Delphi вы сможете только купив её полную версию (примечание: вместо Delphi для обучения можно использовать среду PascalABC.NET)
  • (+/-) Версия Delphi для энтузиастов не бесплатна, хотя стоит и намного дешевле более взрослых версий. Для обучения и домашнего "любительского" применения есть Delphi Starter Edition ценой в $150 (по сравнению с $900 за Professional). Примечание: вместо бесплатной Delphi "для энтузиастов" можно использовать систему Lazarus.
А вот мнение других программистов, почему они используют Delphi. И очень подробный обзор плюсов и минусов Паскаль и Delphi.

В общем, смотрите, оценивайте, решайте.

Примечание: дополнение к этому посту, по поводу вакансий и актуальности Delphi.

Какую выбрать версию Delphi?

Если вы определились, что вы берёте Delphi, то следующий вопрос, который возникает у всех новичков: какую версию Delphi выбрать?

Краткий ответ:

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

Подробный ответ:

Если брать вопрос в сферическом вакууме, то для обучения версия Delphi не имеет никакого значения. Берите любую.

Но с практической точки зрения (ну с учётом, что вы собираетесь писать реальные программы), у вас на сегодня есть выбор из трёх вариантов: Delphi 7, Delphi 2007 и Delphi XE.
  • Delphi 7. Известна тем, что очень известна :) Последняя и самая популярная версия классической линейки Delphi. Однако, если только вы не сидели ранее за Delphi (т.е. нет привычки) и вам не нужно поддерживать старые и уже написанные проекты, то смысла новому человеку в Delphi использовать Delphi 7 нет никакого.
  • Delphi 2007. Известна тем, что это последняя ANSI-версия Delphi. Поясню: в языках программирования есть тип данных "строка". Строка содержит текст. Так вот, формат хранения текста в строках был неизменен во всех Delphi до 2007. Его изменили в Delphi 2009 (Delphi 2008 не существует). Поэтому, если у вас на руках есть книжка по Delphi (или материал в интернете), то скорее всего эта книжка говорит про ситуацию, как она была в Delphi 2007 и ниже (если, конечно, книжка не совсем уж новая). Соответственно, если вы возьмёте версию Delphi повыше и попробуете на ней некоторые примеры из книжки, то они не будут работать! Так вот, чтобы такого конфуза не было при обучении (а он здорово может застопорить начинающего) - поэтому начинающему и стоит взять в качестве первой версии Delphi именно эту версию, а не более поздние.
  • Delphi XE. Известна тем, что это последняя версия Delphi ;) (на момент написания заметки) Это был бы наилучший вариант, если бы не вопрос с изменением формата строк между версиями Delphi. Если у вас на руках есть учебные материалы по Delphi 2009, Delphi 2010 или Delphi XE (или вы собираетесь учиться вообще без книг) - берите её однозначно. Если нет, то имеет смысл начать с Delphi 2007, а потом, когда поднаберётесь опыта, переползти на Delphi XE, освоив момент в разнице строк.
Суммируя кратко ("краткое изложение подробного ответа!"): берите Delphi 2007, а потом переезжайте на Delphi XE.

Если смотреть шире Delphi, то для начального обучения отлично смотрится PascalABC.NET. Эта система позволяет писать консольные программы на Паскале (совместимым с Delphi, так что вам не придётся переучиваться), но она была специально создана для обучения. К примеру, в комплект среды входит задачник. Более того, вам даже не обязательно устанавливать среду на свой компьютер - вы можете программировать прямо в браузере, используя online версию системы.

Примечание: на всякий случай - вот история выпусков Delphi (основная линейка, не считая Kylix и Delphi Prism):
НазваниеГод выпускаПоддерживаемые платформыКто выпустил
Delphi199516-bit Windows 3.1Borland
Delphi 2199632-bit WindowsBorland
Delphi 3199732-bit WindowsBorland
Delphi 4199832-bit WindowsInprise
Delphi 5199932-bit WindowsInprise
Delphi 6200232-bit Windows, LinuxBorland
Delphi 7200232-bit Windows, LinuxBorland
Delphi 82003.NETBorland
Delphi 2005 (Delphi 9)200532-bit Windows, .NETBorland
Delphi 2006 (Delphi 10)200532-bit Windows, .NETBorland
Delphi 2007 (Delphi 11)200732-bit Windows NT, .NETCodeGear
Delphi 2009 (Delphi 12)200832-bit Windows NTEmbarcadero
Delphi 2010 (Delphi 14)200932-bit Windows NTEmbarcadero
Delphi XE (Delphi 15)201032-bit Windows NTEmbarcadero

С чего начать?

Начать следует с книжки. Большой вопрос: с какой книжки?

Краткий ответ:

Берите учебник Фаронова для Delphi (не обязательно конкретно эту, а почти любую от Фаронова по Delphi для начинающих), Песни о Паскале (зеркало) для FreePascal (также пригодна и для Delphi и PascalABC.NET), Самоучитель по программированию на Free Pascal и Lazarus (скачать) или книгу, которая доступна в вашей школе или университете. Нормальный учитель информатики в школе почти наверняка держит на своей полке адекватную книгу по Delphi (или что там стоит в учебном заведении), которую он будет только рад отдать ученику, проявившему интерес. Он же поможет с затыками. Аналогичное справедливо и для университета, с той лишь разницей, что там к вашим услугам библиотека (окей, в школе тоже есть библиотека, но встретить там книжку по Delphi, имхо, нереально).

В дополнение к любой книге отлично смотрится это введение в Delphi.

Подробный ответ:

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

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

В остальном, что требуется от книги, если вы выбираете её, придя в книжный магазин? Это должна быть книжка для начинающих. Т.е. начинаться она должна с примитивных вещей типа запустили мы Delphi и что мы перед собой видим? Вот это называется так-то и используется затем-то. Чтобы создать программку, делаем так-то или сяк-то. Тут пишем код. Как писать? Вот так. И т.д. В книге как минимум обязательно должны быть (достаточно легко проверить эти вещи по оглавлению):
  • Обзор среды Delphi, её окон, кнопок, инструментов.
  • Подробное описание языка Delphi (включая более-менее строгое определение синтаксиса).
  • Обзор стандартных модулей, процедур и функций.
  • Основы визуального программирования - что такое компонент, как создаются визуальные программы.
  • Обзор стандартных компонент и их свойств.
  • Введение в ООП - классы и объекты.
  • Обзор стандартных классов.
  • Примеры программ.
Всё остальное - опционально, но, в принципе, желательно. Например, частные вопросы типа консольных программ, DLL, работы с графикой, интерфейсов и т.п. Чем больше - тем лучше, только учтите, что многотомный труд для начинающего тоже не нужен. Лучше взять одну книжку для вступления, а потом вторую конкретно по графике (или что там вам понравится) или для углублённого изучения.

В связи с этим моментом сразу предупрежу вас о типичной ошибке: часто новичок пытается выбрать книгу типа "библия Delphi", "Самое полное руководство" и т.п. - т.е. максимально толстую книгу, где будет ВСЁ. Не делайте этого! Ведь очевидно, что справочник-руководство - это не учебник. Справочник не предназначен для начального обучения. Он уже предполагает некоторое знакомство с предметом, которое вы должны получить, читая книгу для начинающих/обучения. Подобного рода книга "всё-всё-всё" - конечно, нужная вещь, но только как вторая или третья книга на полке, но никак не первая.

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

Далее смотрите на стиль автора, нормально вы его воспринимаете или нет.

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

Почему я говорю о книге в магазине? Почему не электронная книга? Ну, смотрите сами. Физическая (не обязательно бумажная) книга - это удобно. Вы можете взять её с собой в школу/универ. Вы можете завалиться почитать её на диван. Вы можете держать её на столе рядом с монитором, набирая примеры программ. Окей, если у вас ноутбук, то вы можете таскать его с собой или лежать с ним на кровати. А книжка на столе вполне нормально заменяется двумя мониторами. Но либо ноутбук, либо два монитора. В общем, книжка в руках удобнее. Что насчёт планшетов или электронных книг? По личному опыту могу сказать, что если электронная книга имеет достаточно большой экран для удобного отображения книги и предоставляет возможности легко листать на произвольные страницы и ставить закладки (а вы будете делать это часто), то электронная книга удобнее, потому что меньше весит и имеет меньшие габариты. Однако... цена устройства и поиск книг в электронном виде. Я не думаю, что книги по Delphi сейчас у нас продаются в электронном виде, как это имеет место быть за бугром. Поэтому только если вам повезёт или... ну, понятно, использовать ворованную версию.

Иными словами, для начала - лучше выделить 600 рублей (или сколько там будет стоить книжка) и купить книгу в магазине. Только надо понимать, что одной книгой вы не обойдётесь, и придётся покупать ещё немало. Но об этом потом.

Что насчёт версии Delphi? Имеет ли смысл мучаться и искать книгу и Delphi, чтобы они соответствовали друг другу? Ответ: для начинающих - никакого. Вы можете использовать книгу по Delphi 3 и использовать Delphi 2007. Почему? Потому что в книгах для начинающих освещаются основные моменты. Это фундамент, который неизменен. Конечно, будут мелкие несоответствия, но они, как мне кажется, не критичны.

Персональная заметка: лично я начинал с этой книги и её практического дополнения. По-правде сказать, я уж сейчас не помню: может до них у меня была и другая книжка (скорее всего, так и было), но в памяти осталась только эти. Книги просто отличные. Некоторые могут сказать, что обучение Delphi нужно начинать с Паскаля - мол, будет изучение основ, не засоряя визуальными хрюшечками. Ну не знаю, не уверен насколько это так. Почему-то все забывают про воспитывание Паскалем процедурного подхода, от которого тоже потом придётся избавляться (там, там есть объекты, но в какой книжке по Паскалю вам дадут ООП как основной подход?). А вот, кстати, моя первая книга по Delphi (аналогично, скорее всего, до неё была другая, но я забыл, а в памяти осталась только эта).

Курсы или обучение?

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

Краткий ответ:

Курсы - нет. Факультет берите математический.

Подробный ответ:

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

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

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

Почему вообще математика? Потому что программист: а). точен. б). зануден (я не шучу). Математика отлично подходит на роль воспитателя в себе этих качеств. На этапе обучения в ВУЗе вам важно сформировать образ мышления. МатФак поможет вам в этом. А знания "программистского уклона" вы узнаете и сами. Вы достаточно свободно сможете узнать у соседней группы студентов её программу обучения.

Возможно, не менее полезными окажутся начальные знания физики и электроники.

Насколько сильно поможет вам ВУЗ зависит только от вас самих - если вы будете валять дурака, лишь бы сдать, лишь бы получить "корочку", то вы просто зря потратите 4-6 лет своей жизни.

Ещё источники?

Что можно ещё использовать помимо книг и выбора обучения (которое когда там ещё начнётся и когда ещё закончится)?

Краткий ответ:

Собственный опыт, FAQ и общение.

Подробный ответ:

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

Идеи для программы? Вот список программ, которые "должен написать каждый начинающий программист Delphi":
  • Поиск файлов на дисках
  • Снималка экрана
  • Текстовый редактор
  • Калькулятор
  • Текстовый редактор с подсветкой синтаксиса
  • Просмотрщик процессов или окон, ну и вообще инфы о системе
  • Редактор изображений
  • Хранитель экрана
  • Файловый менеджер
  • Плеер (на готовых движках, разумеется)
  • Браузер (на готовых движках, разумеется)
  • Плагины к чему-либо
  • Примитивные вирусы или программы-шутки
Вовсе не обязательно делать из каждой программы законченный продукт - доводите до того момента, как сами посчитаете нужным. Ничего страшного, что в начале вы почти всё будете бросать незаконченным. В конце концов, это просто эксперименты, проба идей, обучение.

Эти программы призваны набить вам шишки на типичных проблемах и операциях. Чтобы успешно решать эти проблемы - вам понадобится какой-нибудь список часто задаваемых вопросов (FAQ). Например, Delphi Russian Knowledge Base.

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

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

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

Где и как набираться опыта?


Краткий ответ:

Во-первых: писать программы. Любые. Во-вторых: устроиться на работу. Можно за бесплатно или символическую плату. В-третьих: читать код опытных программистов.

Подробный ответ:

Как я уже сказал чуть выше, ключевой момент - это практика. Чтобы набраться опыта надо писать программы. Любые. Для начала чем разнообразнее - тем лучше. Только не пытайтесь съесть слона за раз: ешьте его по частям. Не нужно сразу хвататься за "я напишу свою ОС!". Попробуйте хотя бы написать поисковик файлов. Потом оформите его в виде DLL. Таких мелких задач будет вполне достаточно. Окей, что делать если идеи закончились, да и вообще: искусственно придумывать проблемы для решения - не чревато ли это?

Что ж, если вы без проблем пишите простые программы (или хотя бы имеете представление, как их писать), то, возможно, настало время устроиться на работу по специальности. Не стоит затевать это раньше второго курса университета. А может не стоит и на третьем. Думаю, что два года до окончания университета - это хороший срок. Почему не стоит раньше? Потому что работа отключит вас от учебного процесса. Не полностью, но, тем не менее, значительно. На первых курсах, когда вы ещё "необстреленная зелёнка", гордая от самостоятельного поступления в ВУЗ, - это грозит отчислением.

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

Окей, что же с этой работой? Где её взять и какую? В общем, вам нужна работа программистом (хотя... для остроты ощущений и богатства опыта можно даже и тестером или техсаппортом на полгодика) в месте, где вас готовы взять ещё учащегося и без опыта работы. Можно искать по объявлениям, но наиболее реально - пройтись по организациям, которые систематически нанимают студентов на подработку. Часто это бывает гос. контора. Можете спросить у знакомых про такие места в вашем городе и наведаться в их отдел кадров. Для вас главное только чтобы на этой работе вы писали код.

Будьте готовы к тому, что вы будете работать фактически за бесплатно. Я не буду называть конкретных цифр, ведь это зависит от вас, города, конторы и удачи. Но надо понимать, что вы идёте к ним набираться опыта, а не за зарплатой, а они используют вас как дешёвую рабочую силу и не намерены платить реальные деньги человеку, который ещё ничего не умеет. Вам будут давать простые задания, которые просто нельзя запороть, но тратить на эти задачи время опытных (и более высоко оплачиваемых) специалистов - глупо (есть же студенты!).

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

Сколько это займёт времени?

Когда я озвучиваю хотя бы примерный план (подробно он расписан выше), то некоторые спрашивают: а сколько это займёт времени? Видимо, им хочется всё быстро и сразу. Сегодня легли простым человеком, а завтра встали программистом (и стали грести деньги лопатой :) ). Видимо, они вдохновлены книгами серии "что-то там за 10 занятий/месяц/24 часа".

Краткий ответ:

Минимум несколько лет.

Подробный ответ:

Я думаю вы уже видите, что даже первые шаги займут у вас достаточно времени (и это ещё не всё: смотрите ниже продолжение разговора). Надо понимать, что прочитав книгу класса "что-то там за неделю" вы узнаете про что-то там. К примеру, "Научиться Delphi за 31 урок". Да, вы "научитесь Delphi". Но что под этим понимается? Что вы будете знать, как запустить Delphi, как создавать там новый проект, кидать компоненты, куда писать код, как делать какие-то простые программы, возможно начальные знания отладчика - и всё. Опыта нет, понимания нет, знания мало - и те хаотичны и не разложены по полочкам. Невозможно впихнуть в вас огромный багаж знаний программиста за короткое время.

Но знания - это не главное. Более того, знания - лишь малая толика того, что необходимо программисту. Опыт? Да, это очень важно. Как видите, у вас уйдёт несколько лет на его набор. Что ещё? Мышление программиста. Чтобы ни скрывалось под этим названием, это, вероятно, наиболее важный компонент, который вам придётся долго и упорно в себе взращивать. Я напомню очередную общеизвестную истину: мастерство - это на 95% упорство и труд, и лишь на 5% - талант.

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

Более подробно я рассказал об этом в отдельном посте: программирование - это искусство.

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

Что читать/чему учиться дальше?

Те, кто только начал или даже уже прошёл первый этап: первая книга, несколько программ, применение кода из FAQ, неизменно задают вопрос: а что дальше?

Краткий ответ:

Видимо, не существует. Если только "не останавливаться на достигнутом".

Подробный ответ:

Да, не останавливаться на достигнутом. У вас есть минимум три направления для расширения своих знаний (если это можно так назвать): а). "В глубину". Сейчас, как новичок, вы поверхностно изучили Delphi, язык и некоторые приёмы программирования. Вы можете написать небольшую программу и, быть может, даже разобраться с простой проблемой. Самая пора спустится на уровень ниже (*). Направления: книги по компонентам, изучение исходных кодов Delphi (можно не просто так, "на ночь почитать", а при написании программ - чтоб уж и цель была). Купите книжку по ассемблеру. Любую. Напишите две-три простые программки - этого будет более чем достаточно. б). "В высоту". Я совсем недавно говорил об этом. Книжки для начинающих говорят про среду программирования и про то, как начать писать программы. Но они ничего не говорят про то, как их писать. Как писать правильно, а как - неправильно. Купите себе такую книжку, а лучше и не одну. В отличие от предыдущего пункта ("прочитать на один раз"), эти книги нужно сделать настольной библией. в). "В соседние миры". Ближайший жизненно необходимый вам мир - это языки C и C++. Возьмите любую книжку по C/C++ или любое "введение в C/C++ для Delphi-стов". Вам не нужно хорошо знать язык - достаточно немного на нём читать. После прочтения книжки можете убрать её на полку.

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

Окей, давайте-ка я вам авторов книжек набросаю: Есть много других отличных авторов и книжек, но они уже по направлениям. Где низкоуровневое программирование, где алгоритмы, где графика и D3D, где компиляторы, где прикладные технологии, где искуственный интеллект, где ещё что-то. Но указанные выше книги - это минимум для любого Delphi-программиста под Windows. Конечно, они тоже делятся на направления по тематике: теория, Delphi, низкий уровень, Windows и т.п., но, тем не менее, они являются обязательным чтением. Некоторые из них вы будете зачитывать до дыр. Некоторые вы прочтёте раз или два. Некоторые будете читать время от времени. Но они все важны для вашего развития как программиста. Даже если вы прочитаете их всего один раз.

И, да, прежде чем вы спросите, я прочитал это всё и ещё кучу всего, что здесь не указано. Это я к тому, чтобы не говорили, что я рекомендую читать то, что сам "поленился читать" или что-то такое.

Чем можно заниматься полезным, кроме чтения умных книг, написания программ и сидения на форумах? Изучите английский. Да, я знаю, что вам лениво. Да, я знаю, что вам не охота. Да, я знаю, что вы думаете, что вы сумеете обойтись без него. Да, я знаю, что вы сейчас думаете, что я неправ. Поверьте мне: вы не сможете стать нормальным программистом без знания английского. Вам не нужно свободное владение (если только вы не планируете работать в Microsoft или Google), вам не требуется воспринимать речь и уметь говорить (если только вы не хотите выступать на международных конференциях), вам желательно уметь писать на английском (чтобы общаться письменно с международным сообществом - на форумах или ещё где), но самое минимально обязательное - вы должны свободно читать технический английский. Заметьте, я не призываю вас к, скажем, чтению книг в оригинале (хотя иногда это полезно). Читайте переводы на русском - это нормально. Английский вам нужен как минимум для чтения документации и обсуждений.

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

Я перечислю несколько блогов, которые вам стоит читать:
  • delphifeeds.com - агрегатор блогов Delphi-тематики. Вы также можете подписываться на блоги выборочно. На английском.
  • delphifeeds.ru - наш аналог забугорного delphifeeds. К сожалению, пока он выглядит весьма бледно в сравнении, но проект относительно молодой, и мне очень хочется, чтобы он вытянул уровень своего зарубежного оригинала. На русском.
  • blogs.msdn.com - блоги разработчиков из Microsoft. Вероятно, имеет смысл выбрать только интересные вам направления. На английском.
  • ...и вообще у меня в блоге тут есть раздел со ссылочками по Delphi.
Разрешите мне не перечислять единичные блоги, которые не входят в списки выше. Их много и мне лень. Просто начните читать - а дальше увидите в блогах ссылки на другие блоги. Следуйте по ним, если интересно - читайте.

Ну и, конечно, читайте меня и мои переводы ;) (как нетрудно догадаться, это была бесстыжая реклама)

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

В заключение позвольте мне дать ссылку на пример, который демонстрирует, как все эти способности, которые вы приобретёте, помогут вам решать простые проблемы (они, несомненно, помогут вам решать и сложные проблемы, но этот пример - про простую).

Читать далее:
(*) Джоэль Спольски отлично сказал про причины этого. И вот ещё. И немного ещё тут.

Disclaimer

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

41 комментарий:

  1. Мне нравится Delphi, это очень хороший язык, я более 10 лет программирую на нем, но сейчас ситуация вокруг него складывается не очень благоприятная.
    Delphi действительно хорошо подходит для обучения программированию с нуля (и для написания серьёзных программ тоже). Но, к сожалению, дальше нужно будет изучать другой, более "стандартный" язык, чтобы не быть привязанным к проприетарным технологиям одной конкретной фирмы, чтобы был более широкий выбор при поиске работы, чтобы иметь возможность использовать кучу готовых библиотек кода и утилит разработки.
    Turbo Explorer закрыли; срок студенческих лицензий рано или поздно заканчивается; каждый год выходит новая версия - плати или сиди со старыми багами, а пиратствовать не хочется. Новичок-самоучка явно не потянет такую сумму.
    Боюсь, что через некоторое время для Delphi-программистов останется только работа по поддержке старого, давно написанного кода.
    Так если есть столько минусов, зачем новичкам тратить время на Delphi? Да, у других языков порог вхождения выше, но зато не придётся жалеть потерянное время (как я) и деньги, зато больше доступной информации, коммьюнити и возможностей применения.

    ОтветитьУдалить
  2. Фундаментальные алгоритмы и структуры данных в Delphi Джулиана Бакнелла - тоже очень недурная литература. Это в дополнение к списку выше.

    >> Только надо понимать, что одной книгой вы не обойдётесь, и придётся покупать ещё немало.

    Точно, денег на книги уходит много. Но как говорил кто-то там, вложение средств в свои знания - самый выгодный вид капиталовложений.

    Альберт, намекаете на Java ? )

    ОтветитьУдалить
  3. Признаться, я читал какую-то книгу вида "алгоритмы и типы данных в Delphi". Я не помню название и автора, но подобны книг не так уж много.

    В общем, та книга мне не понравилось - в книге было много ошибок. Не опечаток, именно фактических. Особенно заметно в некоторых местах лез 16-ти разрядный код, который, видимо, забыли обновить (потому что в других местах его явно обновляли).

    Поэтому для себя я решил, что лучше книга по алгоритмам вообще, чем по алгоритмам в Delphi. Название как-бы намекает, на что сделан упор: на Delphi, а не на алгоритмы.

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

    Ещё в "интернетах" говорят про отстойное качество образования в наших учебных заведениях: мол, профессионалы туда не идут. Вероятно, что это сильно зависит от удалённости ВУЗа или города от "денежных центров". Выглядит убедительно, но судить я могу только по своему опыту. А по своему опыту мне в ВУЗе с преподавателями повезло. Отличные были. Не все конечно, да и ладно. Несмотря на зарплату, работали они на результат. За что им огромное спасибо. Пусть и не получилось из меня того, кого они во мне видели.

    ОтветитьУдалить
  5. а мне больше эта статья понравилась - http://www.kalinin.ru/programming/abstract/15_02_02.shtml

    старенкая, но написано хорошо и доступно

    ОтветитьУдалить
  6. Хах. Напомнило этот комикс: http://abstrusegoose.com/249

    ОтветитьУдалить
  7. >>> а мне больше эта статья понравилась

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

    >>> Напомнило этот комикс

    Спасибо за ссылку. Видел комикс и раньше, но тут он очень в тему, да. Надо срочно издать книжку "Научитесь программировать всего за десять лет"!

    ОтветитьУдалить
  8. Я не дочитал до конца (потом дочитаю), но по выбору версии дельфи могу сказать одно.

    Д2007 брать точно не надо.
    Самый главный баг - преждевременная прокрутка текста по горизотали, если в строке есть кириллица. Это не исправлено так в д2007. Это ужасно. Я работаю на ней (привык). К тому же даренному коню в зубы не смотрят. В общем - выбора у меня пока нет - жду стабильную версию.

    Насчет документации. В дельфи после Д7 нет хорошей доки. В Д2007 70% доки выглядит так:

    MyMethod
    This is member of Class MyClass

    и все.

    Шо угодно, только не д2007.

    ОтветитьУдалить
  9. С хэлпом - да, косяк. Совсем про него забыл.

    ОтветитьУдалить
  10. Сань, спасибо за статью! Своим ученикам дам прочесть. Как раз в сентябре начну им в голову вбивать знания :D

    P.S. А математика мега-нужна программисту. в этом на 100% согласен.

    ОтветитьУдалить
  11. лучше никогда не становиться делфи программистом

    ОтветитьУдалить
  12. Все эти разговоры о том, нужна ли математика в программиоровании смахивают на нужна ли математика в математике :D Хотя, признаться с математикой я на Вы.

    ОтветитьУдалить
  13. >> лучше никогда не становиться делфи программистом

    Лучше никогда не писать говно-комменты ;)

    ОтветитьУдалить
  14. Что на счёт Lazarus?

    Я как раз из начинающих... И сижу именно на нём. Да там есть косяки, да есть неточности, да..., да..., да... :) Но для начала более чем достаточно. Когда я ищу как мне решить свою задачу, то в 95% случаев код от дельфи почти тот же что и в freepascal. У меня нет пока проблем с выбором. Но вот уже на горизонте маячит выбор...и пока не ясно в каком лагере остаться (я про язык). Ибо плати большие суммы не вижу смысла за IDE.

    Думаю для начинающих Lazarus не самый "левый" выход. Он бесплатен и это удобно...

    ОтветитьУдалить
  15. Я просто не очень с ним знаком.

    Что насчёт книжек по Lazarus? Достаточно ли он похож на Delphi, чтобы использовать вместе с ним книжку от Delphi? Там ведь есть отличия, которые могут застопорить новичка. Как новичок вообще про него узнает? В книгах по Delphi про Lazarus не пишут.

    В остальном - да, бесплатность - это плюс.

    ОтветитьУдалить
  16. Книги есть. Но очень мало. Я видел только электронные и то года так 2005. Я купил пару книг по дельфи и учусь по ним. Много информации ципляю с интернета. Пока особых проблем не встретил. Но конечно есть проблема с самой оболочкой. Пару раз писал в багрепорт. Достаточно быстро ремонтировали. Но это конечно иногда может раздражать.

    А узнал про него случайно. Решил попробовать и вот уже год на нём сижу. В начале читал книжу Turbo Pascal 7.0. Самоучитель для начинающих (http://www.ozon.ru/context/detail/id/88430/) и все примеры писал на freepascal. Конечно были косяки, но терпимо (например по работе со звуком). Теперь уже с Lazarus'сом работаю. Но консольные по прежнему пишу не в SciTE.

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

    ОтветитьУдалить
  17. Спасибо! Мне очень понравилась Ваша статья!
    Пытаюсь чему небудь научиться!
    Меня немного смущает то что вы рекомендуете Delphi 2007, а книгу (учебник Фаронова) по Delphi 7. Они стыкуются нормально?

    ОтветитьУдалить
  18. Как я сказал в статье, я считаю, что разница между версиями не существенна для начинающих, поэтому книгу и версию Delphi можно брать несоответствующие друг другу.

    По поводу рекомендаций D2007 - мне в комментариях совершенно справедливо указали, что я забыл про справку. В Delphi 7 она лучше.

    Поэтому, я думаю, что выбор Delphi 7 для обучения - оптимален.

    ОтветитьУдалить
  19. А я бы добавил ко всему прочему один очень важный пункт: изучайте чужой код. Это даст представления о лучших практиках и, возможно, намного быстрее чем при набивании шишек самому.
    Изучайте исходники стандартных и сторонних библиотек, особенно от хорошо зарекомендовавших себя авторов.
    Если нет идей по написанию своих программ, можно брать исходники open source проектов и дорабатывать их для себя.

    Да, это сложнее чем писать свой. Можно самому совершать ошибки и исправлять, но на чужих лучше.
    Да, в интернете полно говнокода! Но, имхо, говнокод чаще встречается в статьях типа "как сделать то-то и сё-то", чем в действительно серьёзных проектах.
    Да, в некоторых проектах может быть сложно разобраться. Как пример, я недавно изучал сорцы генератора документации для Delphi - DelphiCodeToDoc и понял, что мне срочно нужно перечитать книгу о паттернах банды четырёх. Но даже помимо этого, я открыл для себя чудесный способ организации юнит-тестов.
    Изучение чужих исходников способно дать тот опыт, которого не найдёшь ни в одном учебнике.

    ОтветитьУдалить
  20. лень регистрироваться, отпишусь анонимусом :)

    А я как раз являюсь представителем тех людей, которые учились, потом поняли, что профи из них не выйдет, и ушли из большого, "взрослого" программирования.
    чуть подробнее:
    Сейчас мне 27. Когда-то, еще во времена первого пентиума (мне было лет 15 тогда) попалась мне под руки Книжка "Delphi для чайников", и сами дэльфы, 2 или 3 версия. Учился, было интересно. Стопорнулся на моменте "азы уже не интересны, а серьезного делать нечего". Учиться тому, что неинтересно терпеть не могу, потому было точь-в-точь, как тут описано "если вы сдаете предметы только, чтобы сдать - то вам институт и не нужен". Впрочем, закончил. математику-физику-алгоритмы как не знал, так и не узнал.
    Так потихоньку страдал всякой мелкой ерундой на Дэльфах, чтобы не забывать, несколько лет. Админил потихоньку. Потом так получилось, что я подобрал проект, брошенный автором по причине отсутствия времени (как программист он не особо силен, но вот в структурировании - имел талант, да). Взял проект на "подправить кой-чего". Подправил то, подправил это, дописал там, исправил тут. И так потихоньку засел за доделку проекта. И вот это действительно интересно - живой большой проект, с тестерами в наличии, с большими алгоритмами, сложными вещами - это и есть то, чего нехватало раньше. Приходится изучать то, куда я даже примерно не совался раньше - asm\disasm, алгоритмы типа red-white trees, написание кода на c++ с линковкой к дельфийскому проекту и прочее-прочее. При всем при этом я понимаю, что мой уровень программиста слаб именно в части алгоритмов, сравнивая со знакомыми программистами, который свой уровень откровенно оценивают как "средний" - то, на что у них уходит день, у меня уходит неделя. если вообще справлюсь. Имхо, как раз это и есть врожденная особенность действительно хороших программистов, которой не научишься.
    Так что так и буду вести проект для собственного удовольствия в свободное время, коего у меня достаточно много.


    Так что бывает и такой тип программистов - тех, кто честно признает, что профессионалов из них не получится :)

    Сумбурно вышло, но все же как есть - никогда не умел писать статьи.

    ОтветитьУдалить
  21. Мне кажется "убогость" вузов связана с тем, что инструмент пытаются изучить современный, а примеры рассматривают с прошлого тысячелетия, поэтому сейчас процветает литература из пункта "С чего начать?". Лично я начал понимать что есть Delphi и современное программирование (как процесс), когда стал читать из "Что читать/чему учиться дальше?", а пару лет пущенных на "С чего начать?" считаю прожитыми зря.
    Если хочется изучать основы, ну возьмите эмулятор того же ZXSpectrum-а, там и basic (несколько разных диалектов) и asm и изучайте процедурное программирование и архитектуру компьютера (по современным меркам, на очень простой модели). Если учите Delphi не тратьте время на чтение всякой хер..ни.

    ОтветитьУдалить
  22. Мне кажется, что вы ошибаетесь.

    Что поймёт в "Совершенном коде" человек, который не знает слова "компилятор"? Не знает, что программы пишутся на языках программирования, что там есть константы, переменные, операторы цикла, условий?

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

    ОтветитьУдалить
  24. Для обучения (да и для работы, думаю) можно использовать TurboDelphi Explorer, выпущена в 2006 году и является бесплатной и легальной для любого использования, в том числе коммерческого.

    ОтветитьУдалить
  25. Угу, а в каком месте она является легальной для нового пользователя?

    Как бы этот пример показывает, где вы её взяли - утянули с торрентов (видимо, тяга к торрентам настолько сильна, что русский человек даже бесплатную IDE тащит с них, нежели качает с официального сайта). И ключик вы взяли там же, а не получали у Borland/CodeGear/Embarcadero.

    Turbo Delphi Explorer - это вариация Delphi 2006. И ставится она обычным образом: вы вводите лицензионный ключ и среда ставит подходящую для ключа редакцию.

    Ключ для Turbo Delphi Explorer раздавался в своё время абсолютно бесплатно любым желающим. Вот и получается бесплатная среда: потому что ключ для неё давали бесплатно. Только вот получается, чтобы легально использовать среду, вам нужен легальный ключ.

    Легальный ключ - это ключ, который вы получили от Borland/CodeGear/Embarcadero, а не который вы взяли в пиратке. Потому что ключ выдаётся на человека, он привязан к вашему CDN-аккаунту. Передача ключа другому лицу или использование его несколькими людьми запрещены - это обычные правила для ключей.

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

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

    ОтветитьУдалить
  26. "GunSmoker комментирует...
    Угу, а в каком месте она является легальной для нового пользователя?"

    ***
    Is there anything I can do to help promote the new Turbo products?

    Everything. Go to places where non-programmers hang out. Write articles or blogs about programming for beginners, kids, teenagers, scientists, etc. Spread the word to colleges, professors, high school computer teachers. Build your own viral videos and put them up on YouTube and other video sites. Burn CDs containing the Explorer download and take them to your local users groups.

    То же на русском:

    Есть ли что-то, чем я могу помочь в продвижении новых Turbo продуктов?

    Все что угодно. Отправляйтесь в места, где собираются не профессиональные программисты. Пишите статьи или заметки в блогах о программировании для начинающих, детей, подростков, ученых и т.д. Распространяйте информацию среди студентов, профессоров, учителей компьютерных школ. Создавайте собственные видеоролики и распространяйте их на YouTube и других видеосайтах. Нарезайте CD с Explorer версиями и распространяйте их среди знакомых. (Выделено мною).
    ***

    Скопировал из сообщения Snowy, модератора Дельфи сайта Винград. (тема http://forum.vingrad.ru/forum/topic-113838/hl/turbo/index.html).

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

    ОтветитьУдалить
  28. "Песни о Паскале" - специально для школьников и начинающих программистов.
    Скачивать здесь:
    http://oleg-derevenets.narod.ru

    ОтветитьУдалить
  29. >>> Скопировал из сообщения Snowy

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

    Что непонятно во фразе "ключ выдаётся персонально человеку и его нельзя передавать ещё кому-то"?

    ОтветитьУдалить
  30. Очень полезная статья, для себя твёрдо решил стать программистом, сейчас мне 15 лет, и я прочитав статью(я давно искал и ищу себе учителя, Делфи начал изучать год назад, но продвинулся слабо)решил,что пока не найду наставника, буду заниматься дома сам. У меня Delphi7 и пока он меня устраивает. Спасибо Автору!!!

    ОтветитьУдалить
  31. Анонимный21 июня 2012 г., 2:15

    А сейчас вот Delphi XE2 вышла - она лучше XE или нет?

    ОтветитьУдалить
  32. В XE2 много нововведений - FireMonkey, стили VCL, Win64, MacOS, iOS. Соответственно, получилось это всё пока сырым. И если XE - вылизанный 2010, то XE2 - заметно другая среда.

    Итого, если интересуют конкретно возможности XE2 (кроссплатформенность, 64-битность, векторный 2D/3D UI и т.п.) - то используйте её, нет - то лучше будет всё же XE, как существенно более стабильная.

    ОтветитьУдалить
  33. Анонимный6 июля 2012 г., 12:56

    Все это замечательно, но разница в количестве вакансий просто ужасна. Вот данные по вакансиям в Новосибирске:
    Delphi - 6, си - 42, с# - 45, 1c - 156.
    Так что при выборе языка приходится руководствоваться другими критериями, кроме его фунциональности, если не хочешь быть безработным.

    ОтветитьУдалить
  34. Анонимный13 июля 2012 г., 18:09

    Delphi это как старый городишко из того же мультфильма "Тачки", сейчас уже построено слишком много автомагистралей, по которым и едет масса, фуры и прочее. Понятно, что язык не пропадет как и тот городок, но факт будет фактом - время delphi прошло. Сложно представить что строительная корпорация Embarcadero сможет что-либо изменить (делать надо это было тогда, когда строили шоссе и объездные дороги, вероятно, решением было бы превратить городок в городище), но определенно не даст пропасть и позволит подстраиваться под нынешнее время. И всегда будут "тачки" заезжающие на время поглядеть, осевшие там по разным причинам, всякие романтики и бог его знает сколько еще и по каким причинам.
    А кто его знает мб случится и такое, что кто-то принесет дикую славу, мб тогда романтики уйдут, а массы придут...
    Жизнь тем и привлекательна, что есть выбор. И да жизнь не стоит на месте - поэтому поживем увидим, превратится ли городишко с былой славой некоего обязательного пункта от одной стороны в другую в мегаполис или скатится до пристанища романтиков да любителей тишины, старины - черт его знает, увидимс.

    Метафоры лучше использовать ширше и глубже)..

    ОтветитьУдалить
  35. " Вы можете попросить помощи у окружающих, либо задать вопрос на форумах.".
    Неделю сижу над проблемой. Задал вопрос на трех форумах. На двух этот вопрос набрал уже сотни просмотров без единого информативного поста, на третьем откликнулся уважаемый Александр... И вместо того, чтоб нормально помочь и разъяснить, Вы начали палемику "ты балбес" и "тут всё просто сам разбирайся", хотя достаточными знаниями на перечисленных Вами форумах обладаете только Вы... Я понимаю, что прочитаете это не скоро, и очень надеюсь, что дождусь реальной помощи с объяснениями малопонятных мне пока, и малоописываемых в инетах вещей...
    Этот "крик души" не для того, чтоб Вас пристыдить, а для того, чтоб напомнить, что плохо, когда слова расходятся с делом...

    Johnson.

    ОтветитьУдалить
  36. Правильный ответ на "как съесть слона" - по частям. У тебя катастрофически не хватает знаний для задачи такого уровня. А у меня нет возможности быть твоим учителем. Чем смог - помог. И только из-за того, что был приаттачен пример.

    ОтветитьУдалить
  37. Актуален ли Delphi по сей день? о5 же TIOBE говорит о том,что Pascal и Delphi теряют в позициях и всюду по интернетам рекомендуют С и Java т.к потратив ~2-5 лет на изучение паскаль и Delphi ты в конце осознаешь,что со знанием этих языков ты никому не нужен. На паскале серьезных программ не напишешь,а Delphi сильно теряет популярность и становится не нужными программисты на делфях.
    Тогда уж не начать ли мне с С по которому в следствии популярности очень много медиаконтента и обучалок,чтобы потом выучить Java из-за схожести синтаксиса?

    ОтветитьУдалить
  38. Отличная книга Рубенкинга "Delphi для чайников": очень много примеров, программы буквально на 5-10 строк. Не знаю, осилит ли новичок, я читал её уже опытным программистом и радовался.
    Александр

    ОтветитьУдалить
  39. Delphi программистом не надо становиться. Мелкомягкие практически убили эту среду разработки тем, что переманили к себе ключевого спеца, создававшего Delphi. И теперь вместо Delphi - мелкомягкая Visual Studio и набор классов .NET.

    Поэтому лучше начинать программить на Java, C#, PHP, Python и других популярных языках.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и (опционально) ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.