interface


uses

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

private

14 лет назад, я устроился на работу инженером-конструктором. Кроме прямых обязанностей, мне приходилось делать заявки на приобретение материалов (металл, комплектующие) для того, что я проектировал. Были пустые бланки в Excel, которые распечатывались и заполнялись руками в двух экземплярах, для службы снабжения и склада.

Позже, через 3 года, я введу для себя понятие «рациональная лень». Это когда делаешь всё, для того чтобы меньше уделять времени задаче, а результат от этого не страдает.

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

procedure

Hello, world! Теперь мне нужно научиться хранить данные. Поставщики, материалы, количество, единицы измерения. «Ну, можно по-разному, можешь в Registry хранить» – отмахнулись от меня старшие товарищи. Так появилась моя первая программа с базой данных основанной на регистрах. Улыбнулись? Form1.Print – так я распечатывал свои заявки, которые теперь хранились на компьютере, а их составление было одним удовольствием, по сравнению с заполнением руками. Потом добавил в программу конвертор единиц металла. Следует отметить, что интернета тогда у нас не было.

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

Двигаясь по карьерной лестнице и развиваясь профессионально, я развивал и своё детище. У меня новые обязанности – у программы новые функции. Когда понимал, что в рамки уже не влезаю, то начинал всё заново. New project – и я использую возможность сделать что-то лучше, чем было.



Я изучил основы SQL, и три года назад программа переехала с расшаренных папок на полноценный MySQL. Два года назад программа научилась залазить в базы 1С. Год назад подружилась с Android приложениями, которые шлют ей различные данные из цеха. И много, много чего ещё. Я делал и делаю это всё один. Кто же я теперь? Ответ — на сегодня моя программа затрагивает все сферы деятельности моего предприятия. В ней есть всё.



end

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

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

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

Кто же он, настоящий программист?

UPD: Мне не платят за программирование, это не моя деятельность, я не жалуюсь на тяжёлую судьбу современных кодеров (понятия не имею про что это). Всё это — побочное увлечение, которое помогло мне подняться выше, стать профессиональнее, сделать моё предприятие сильным и самое главное доказать себе, что человек может всё.
Поделиться с друзьями
-->

Комментарии (140)


  1. JekaMas
    31.03.2017 13:15
    +5

    На мой взгляд все просто. Зарабатываешь программированием? Если да, то «профессиональный программист». Иначе «программист любитель». Ничего нового.


    1. R0V3R
      31.03.2017 13:58

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


      1. JekaMas
        31.03.2017 14:57
        +1

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


      1. Comlan
        31.03.2017 16:35

        могли не платить

        не платили, не заставляли


    1. 32bit_me
      31.03.2017 14:25
      +1

      Причём к уровню квалификации это не имеет прямого отношения.


    1. HandleX
      01.04.2017 06:12

      В точку! «Многим нравится заниматься сексом, но немногие решаются заниматься им профессионально!» ;)


  1. Evgeny42
    31.03.2017 13:32
    +8

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


    1. fastwit
      31.03.2017 15:52
      +6

      Если вы прочли этот пост, заглавие которого довольно точно отражает содержание, то вам не чужд вопрос самоидентификации. Значит пишется это для вас, в том числе. А практическая польза — вещь субъективная и если нет конструктивной критики, то эмоциональная оценка никому не поможет. Софтостроительная отрасль молодая и развилась настолько стремительно, что самоидентификация отдельных личностей, так и вообще идентификация профессий внтутри нее подотстали. Такие крайние случаи дают повод задуматься о том, как относиться к менее заметным ситуациям. Я работал с компанией, в которой разработчики под мобильные приложения назывались конфигураторами, как специалисты по 1С. Так как модуль предоставляющий расчеты писался отдельной основной командой программистов (для бэкенда). А потом уже его использование обрастало UI и конфигурацией под конкретные мобильные платформы. И в какой-то момент они тоже стали задаваться вопросами самоидентификации.
      А задаются люди подобными вопросам не от праздной жизни. В отрасли много технологического «расизма». Людей высмеивают и возносят за используемые технологии. Есть сообщества специалистов по определенной технологии, но кроме Хабра (в России) нет сообществ для тех, кто делает результаты. Из-за этого трудно самоидентифицироваться. Это плохо потому, что создается окружение, в котором возносится сложность, когда нужно просто делать свое дело.


      1. comerc
        31.03.2017 16:36

        Браво! С удивлением наблюдал зашкалившую виральность собственной корявенькой заметки по теме https://habrahabr.ru/post/323460/


        Кажется я понимаю, почему Минаев продал столько экземпляров повести о ненастоящее человеке.


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


    1. Comlan
      31.03.2017 16:37
      +2

      пожалели

      нет
      похвалили

      нет
      сказали что он очень умный и красивый

      нет

      просто было очень интересно мнение профессиональных программистов


      1. khim
        31.03.2017 17:53

        На самом деле всё просто. Программисты — они ведь разные. У Гугла, скажем, есть две похожие вакансии: software engineer (основаная задача: дизайн, разработка и создание программ) и application engineer (основная задача: работа с аналитиками для того, чтобы превратить требования бизнеса в технические решения).

        Так вот на software engineer'а — вы и близко не тяните. На application engineer'а — вполне.


        1. MacIn
          31.03.2017 19:05

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


      1. Woit
        01.04.2017 12:43

        Формально, если не зарабатываете этим ремеслом, то программист-любитель. Если зарабатываете — программист-профессионал. Если решили посвятить этому жизнь — Программист.


        1. Comlan
          01.04.2017 16:15

          А если косвенно зарабатываю этим? И не только деньги, но и уважение. Я операционно управляю предприятием оринтируясь на свою программу. А вот последний предложенный вами вариант мне понравился.


          1. Comlan
            01.04.2017 16:16

            ориентируясь


          1. Woit
            01.04.2017 16:20

            >>А если косвенно зарабатываю этим?
            Значит вы программист, инфа 146%


  1. daiver19
    31.03.2017 13:48
    +8

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


    1. comerc
      31.03.2017 16:46

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


      1. terrier
        31.03.2017 17:04

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


        1. comerc
          31.03.2017 17:16
          -1

          Для меня это было откровением. Из серии "вам шашечки или ехать".


      1. MacIn
        31.03.2017 19:07

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


        1. mayorovp
          01.04.2017 12:11

          Этот GC появился там скорее как эталон для сравнения, а не для реального использования.


          1. Comlan
            01.04.2017 16:19
            -1

            Вот например. Не понимаю о чем вы пишите сейчас. Сейчас посмотрю, что такое GC и JVM. Любознательность — признак программиста?


            1. mayorovp
              04.04.2017 08:38

              А я, например, не понимаю почему вы у меня это спрашиваете...


              1. Comlan
                04.04.2017 08:42

                Комментарии читают все. Этот вопрос не столько к вам, сколько ко всем и к себе в первую очередь.


                1. mayorovp
                  04.04.2017 08:47

                  Да, но что-то же побудило вас написать свой комментарий именно под моим? Я вот так и не понял связи.


            1. MacIn
              04.04.2017 23:26
              +1

              Потому что это относительно узкоспециальные термины из мира программирования Java. Ну, в NET тоже есть такое. Оно никак не показывает/не отрицает «программистость» человека.


          1. MacIn
            04.04.2017 23:24

            Разумеется, это очень специфичное применение, о чем я и написал. Но тем не менее, такое чудо есть.


  1. Gexon
    31.03.2017 13:55
    +1

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


    1. Elsedar
      31.03.2017 14:15
      +2

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

      Что-то в духе

      Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно — он-то и делает открытие.


      1. CrazyNiger
        31.03.2017 14:25
        -1

        Как старый анекдот про большой алмаз и профессиональных ювелиров.


        1. comerc
          31.03.2017 16:49

          Не слышал.


          1. NeonMercury
            31.03.2017 16:56
            +7

            Достался в наследство одному мужику от жутко богатой умершей тётки большой алмаз. Ну, что с ним делать? Решил пойти к ювелиру. Тот внимательно осмотрел и воскликнул:

            — Это — уникальный камень! Он стоит бешенных денег! А вдруг я что-то не так сделаю, вдруг ошибусь! Нет, не возьмусь я его делать, и не уговаривайте!

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

            — Моня, мальчик мой, сделай-ка вот этот камушек!

            Мужик, с испугом:

            — Послушайте, как вы можете доверять вашему юному подручному?! Разве вы не знаете, что это за алмаз?! Его отказались обрабатывать самые опытные ювелиры!
            — Ша, ша, любезный! Вы знаете, шо у вас за алмаз и сколько он стоит. Я знаю, шо у вас за алмаз и сколько он стоит. А Моня не знает, и он таки сделает!


            1. comerc
              31.03.2017 17:00
              -2

              Я сам уговорил инвестора не тратить 15 млн. долларов на стартап, в котором был техлидом. :)


      1. shkluar
        31.03.2017 19:10
        +4

        image


  1. AlexMal
    31.03.2017 13:57
    +2

    Желание расти и двигаться вперед. Желание постигать новое и утверждаться в уже достигнутом. Стремление решать нестандартные задачи и мыслить логически. Желание получать опыт и делиться им с другими. Желание творить… Вот признаки настоящего программиста.


    1. Comlan
      31.03.2017 19:09

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


      1. cl0ne
        03.04.2017 07:07

        Не постесняюсь спросить, а почему это привязано к полу? Т.е. любая девушка/женщина, стремящаяся к самореализации уже не имеет этих признаков?


        1. Comlan
          03.04.2017 07:11
          -1

          Нет, я так не считаю, но это совсем другая история.

          Думаю «Остальные» — все же мужчины.


  1. smallplushbear
    31.03.2017 13:57
    +2

    >>Могу ли я, хотя бы частично отнести себя к программистам?

    Да. Не частично.

    И не поверишь, но таких больше 50%.
    А наличие диплома и владение терминологией не делает человека программистом.


  1. tehSLy
    31.03.2017 13:58
    +4

    "У меня есть фотоаппарат, я делаю снимки, которые нравятся людям, но я не знаю, как работает фотоаппарат, сколько лепестков в диафрагме моего объектива и почему из байонета виднеется зеркальце (Что такое байонет??) — могу ли я называться фотографом?"
    Суть аналогии очевидна,- если ты делаешь продукт, который устраивает конечного пользователя, и при этом даже получаешь за это деньги, то КМК, ты можешь назвать себя программистом, трубочистом, кем угодно, лишь бы продукт был качественный (Правда, это понятие сильно размазано и не имеет четких границ, но думаю, мы в той или иной мере можем объективно оценить качество своего продукта).


    1. DnV
      31.03.2017 20:43

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


  1. aslepov78
    31.03.2017 13:58
    +2

    Но ведь я тоже создал программу, даже целую IT вселенную в рамках своего предприятия

    ох, как же мы любим себя хвалить на хабре ).
    Кто же он, настоящий программист?

    Да никто, нет его.


    1. comerc
      31.03.2017 16:53
      -1

      Мне ближе определение "кодер". Можно еще "разработчик". Скромность украшает.


  1. echi
    31.03.2017 14:03
    +3

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

    Наблюдатель скажет — я не могу понять, кто это сделал. Предположим, что рынок домиков рухнул. В таком случае любитель не может прыгнуть на ступеньку выше, проектировать небоскребы. Архитектор-профессионал доучится, освежит знания и начнет зарабатывать на проектах небоскребов. Мало того, он сможет в команде разрабатывать санузлы, парковки, внешнюю оболочку, что угодно.

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

    Профессионал существует в рамках рынка, если ваш рынок — это единственное предприятие, то вы профессионал в решении своих задач.


  1. PapaBubaDiop
    31.03.2017 14:12
    -13

    Программист — который свои проекты в GitHub выкладывает. Остальные — жлобы.


    1. MacIn
      31.03.2017 19:08

      А если я листинги распечатываю и на забор клею, но вот гитхаба нет — это считается?


      1. PapaBubaDiop
        31.03.2017 19:14
        -5

        Нет. В этом случае Вы — типограф и маляр. Я, кстати, жлоб, как и большинство)


        1. MacIn
          31.03.2017 20:10

          Не, ну это прикладное. А так-то текстами со всем миром поделился.


    1. JekaMas
      31.03.2017 19:16

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


      1. PapaBubaDiop
        31.03.2017 19:38
        +1

        На Хабре серьезные пацаны, иронию не любят в пятницу 31. 31 — 13 в польской нотации)


  1. sbnur
    31.03.2017 14:17
    +1

    Перефразируя Пруткова — Хочешь быть программистом — будь им


  1. Mafftor
    31.03.2017 14:29
    +2

    Если ты сам себя таким считаешь, так оно и есть.


  1. alligator_one
    31.03.2017 14:49
    -3

    Интересно, сможет ли автор пройти собеседование на должность программиста на открытом рынке труда? имхо это и есть ответ на поставленный в заголовке вопрос.


    1. tentakle
      31.03.2017 14:56

      Уж что что, а оценка HRом подходит или не подходит человек на должность — одна из самых субъективных оценок.


      1. Dreyk
        31.03.2017 15:03
        -1

        почему HRом? как на счет непосредственного начальника? или вы думаете, что во всех конторах исключительно от HRa зависит, возьмут человека на работу или нет


        1. tentakle
          31.03.2017 15:37

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


        1. Woit
          01.04.2017 12:50
          +1

          HR:
          — Не-не, вы не знаете и 10% процентов от того, что должен знать программист, вы нам не подходите. Сортировать пузырьком не умеете, переменные местами поменять — тоже. Досвидос.

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


    1. nckma
      31.03.2017 15:24
      +9

      Я вот 25 лет работаю программистом C/C++ и не уверен пройду ли я собеседование хоть на какую-то должность программиста и смогу ли порешать их тестовые задачи. Вот даже тесты http://www.quizful.net/test для junior иногда не могу пройти.


      1. Comlan
        31.03.2017 16:43
        -1

        Посетители клуба «Рыбаки», знают друг друга по клубу «Анонимные алкоголики» )
        Значит всё таки есть такие как мы.


    1. ripandtear
      31.03.2017 16:20

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


    1. Comlan
      31.03.2017 16:33

      сможет ли автор пройти собеседование на должность программиста на открытом рынке труда?


      нет
      почему? уже объяснил в своей заметке
      умение составить запрос с LEFT JOIN мне не поможет


  1. fastwit
    31.03.2017 16:03
    +1

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


    1. Comlan
      31.03.2017 16:31

      а может все-таки вы хотели бы быть хорошим программистом и заниматься именно этим?

      нет

      теперь я могу нанять себе людей, которые хотят быть хорошими программистами и заниматься этим


      1. 16tomatotonns
        31.03.2017 23:42

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


  1. romanegunkov
    31.03.2017 16:06

    Умение пользоваться толковым словарем, навык не обязательный, но полезный.


    pro·gram·mer\?pro-?gra-m?r, -gr?-\
    noun
    : a person who creates computer programs
    Full Definition
    : one that programs: as
    a: a person who prepares and tests programs for devices (as computers)
    b: one that programs a mechanism
    c: one that prepares an instructional program
    d: a person who plans or prepares entertainment programs Variants: less commonly pro·gram·er
    First use: circa 1889


  1. kumaxim
    31.03.2017 16:20
    +2

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

    Программа автора решает задачу компании, на сколько я смог понять.
    Если автору что-то нужно будет дописать, я уверен что он это сможет сделать.

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

    Можно ли ее дальше расширять? Сможет ли ее поддерживать другой программист? Сможет ли эта программа использоваться за пределами компании автора? Ответить на все это сможет только сам автор.


    1. Comlan
      31.03.2017 16:29
      +2

      Можно ли ее дальше расширять?

      да
      Сможет ли ее поддерживать другой программист?

      да
      Сможет ли эта программа использоваться за пределами компании автора?

      в таком виде нет


  1. ssz84
    31.03.2017 16:20

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


    1. romanegunkov
      31.03.2017 16:40
      +2

      Не самый печальный случай.
      image


  1. basili4
    31.03.2017 16:42

    Есть отличное слово «Говнокодер» Некоторые не далекие личности обижаются когда их так называют.
    По моему тут ничего обидного нет. Когда человек делает что бы работало, но при этом кроме него в его коде разобраться не кто не может. Что бы, что то изменить нужно жмакать «new Project» то он Говнокодер.


    1. Comlan
      31.03.2017 16:46

      Да, знаком с вашим сленгом. Не знаю, сможет ли кто-нибудь разобраться в моём коде или нет. Но, на самом деле это не очень важно для меня.


    1. DnV
      31.03.2017 21:17

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


    1. gFanis
      03.04.2017 07:11
      +1

      И Вы тоже не обижайтесь…
      По поводу самоидентификации — Вы перечитайте все свои комменты в хабре (их 36, если не ошибаюсь), там нехорошо пахнет (вроде shit, однако)


    1. user4000
      03.04.2017 07:12

      Нельзя с вами согласиться.
      У любого программного продукта есть конкретные граничные условия эксплуатации и определённая степень гибкости и при желании можно выставить такие требования, что не останется ничего другого, как жмакнуть «New Project».


  1. degs
    31.03.2017 16:54

    Я тоже не знаю зачем в коде строка implementation, однако я — программист. Наверное и вы тоже тогда? Успокойтесь и пишите код, самоидентификация отдельно а программирование отдельно.


    1. Comlan
      31.03.2017 16:55

      Я и не волнуюсь особо по этому поводу.


    1. basili4
      31.03.2017 17:48
      +1

      >Я тоже не знаю зачем в коде строка implementation, однако я — программист
      Как мила Ваша наивность.

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


      1. SamVimes
        31.03.2017 18:17

        Ну, слушайте, я вот знаю, допустим, несколько языков программирования, и ни в одном из них нет ключевого слова implementation (если, конечно, автор не перепутал с implements). Хотя я безусловно догадался бы что это значит, если бы увидел =)


        1. Comlan
          31.03.2017 18:27
          +1

          Ничего не перепутал. Delphi.


          1. SamVimes
            31.03.2017 18:35

            А, ну вот Delphi я как раз не знаю =)


            1. khim
              31.03.2017 19:43

              А к чему тогда ваш комментарий к статье в которой есть строка «Так я познакомился с Delphi7»?

              Впрочем ключевое слово implementation ещё в Turbo Pascal 4.0 появилось, так что конкретно Delphi знать даже и необязательно…


              1. SamVimes
                01.04.2017 12:17

                Ну, так получилось, что с паскалем тоже не знаком. Как-то больше по С-подобным (джавы, свифты и прочие с ними)


      1. Comlan
        31.03.2017 18:31
        +2

        Думаю, Хакинен не знает, какая посадка подшипников на вал у него в машине. Однако он гонщик. Ваше сравнение не совсем к месту.


      1. degs
        31.03.2017 18:53
        +1

        Секундочку, вы правда считаете что если кто-то не знает Вашего любимого языка то он совершенно точно — не программист?
        Я не для того чтобы спорить, просто уточнить хочу, вы правда так думаете?


        1. khim
          31.03.2017 19:48

          Можно я цитату поправлю, а?

          Секундочку, вы правда считаете что если кто-то не знает Вашего любимого языкаязыка программирования, на котором он пишет программы, то он совершенно точно — не программист?
          Я не для того чтобы спорить, просто уточнить хочу, вы правда так думаете?
          И таки да — я правда так думаю. Это вот как раз про них ведь написано если достаточно долго месить чан с перловой кашей, в синтаксическом мусоре можно рано или поздно узреть лик Ларри Уолла.

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


        1. basili4
          31.03.2017 20:58

          del


  1. comerc
    31.03.2017 17:12

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


  1. worldmind
    31.03.2017 18:39
    +1

    Это называется прикладной программист — человек который решает конечную задачу.
    Чем дальше развивается ИТ отрасль, тем меньше знаний требуется для использования программерских инструментов и это правильно, растёт уровень абстракции, приближаемся к тому чтобы говорить с компьютером на языке как можно более близком к человеческому (DSL навроде 1C). Глубокие знания того как оно работает внутри теперь нужны в основном системным программистам, которые создают эти инструменты. Просто в отрасли, со времён когда все программисты были системными, осталось мнение, что все должны знать алгоритмы сортировок и т.п.
    Другое дело, как заметили выше, быть хорошим программистом — хороший прикладной программист должен писать понятный и расширяемый код, понятный это значит как можно ближе к человеческому языку в данной предметной области, а расширяемый это значит позволяющий добавить практически любой новый функционал без полной переделки или без копипаста и иных костылей порождающих ошибки в будущем.
    Хотя знание того как оно работает внутри полезно для хорошего специалиста из-за протекающих абстракций, но, во-первых, знание это не обязательно должны быть слишком детальным, а во-вторых, можно быть прикладным программистом и без этих знаний и это тоже востребовано.


  1. SONce
    31.03.2017 19:06

    Эм, я всегда считал и считаю что таких как ТС около 90%.


  1. sbnur
    31.03.2017 19:13
    +2

    Бравирование невежеством — это признак воинствующего дилетанта
    Профессионал демонстрирует вежество или стремление к нему
    В первом случае он конченный профессионал (в смысле final), в втором развивающийся (в смысле developer).
    Для сведения невежество — это липкое вонючее болото, а вежество — прозрачная до ясности высото


    1. Comlan
      31.03.2017 20:22

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


      1. sbnur
        31.03.2017 20:29

        Есть казахская пословица (привожу на русском)
        Когда два мудреца спорят — их слова, как горы, высоки.
        Когда мудрец с дураком спорит — они на врагов похожию
        Когда два дурака спорят — ничего не меняется.


        Думаю вы сделаете удобную для себя подстановку (я же свою)


        1. Comlan
          31.03.2017 21:36

          Какой уж я вам враг. Да и на мудреца я не тяну. А вы под 3-й вариант не подходите. Мораль. Народная мудрость, она в ауле хороша. Ведь не каждая баба коня остановит.


  1. drafterleo
    01.04.2017 00:47

    Что это за программист, который не знает, зачем в коде строка implementation… я и не хочу знать всего этого

    Вот прямо-таки совсем неинтересно? :) Кстати, чего-то подобного (модулей) очень не хватает в C++.


    1. Comlan
      01.04.2017 05:18

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


      1. drafterleo
        01.04.2017 13:22
        -1

        Это конкретно-операционный подход. На ступеньку ниже магическое мышление (культ карго). Уровнем выше — формальное оперирование (создание моделей исходя из понимания общих принципов с учётом перспективы развития). Насколько я понял, Ваши задачи и технологическая среда, в которой работают Ваши решения, позволяют оставаться в рамках конкретно-операционного подхода, т.е. вполне хватает силового, горизонтально-кругозорного расширения (грубо говоря, школьнику третьего класса проще посчитать площадь треугольника по квадратикам на миллиметровке, чем вникать в геометрию Евклида, а такому же школьнику постарше — с хорошей памятью — проще запомнить формулы, чем разбираться, откуда и как они выводятся). Хотя, даже по тексту статьи видно, что Ваше приложение потихоньку, на ощупь выкарабкивалось из горизонтального растекания (Excel -> Delphi + dbf -> MySql), пару раз перерождаясь в новом качестве. Следующий этап — удалённый доступ, распределённая аллокация, микросервисы :).


        1. Comlan
          03.04.2017 07:48
          +1

          Следующий этап — удалённый доступ

          пока не вижу необходимости
          распределённая аллокация

          о таком вообще не слышал, прочитал, перевариваю
          микросервисы

          ушёл от этого, не прижилось, не удобно в рамках моего предприятия


        1. mayorovp
          04.04.2017 08:46
          +1

          В целом с вами согласен, но вот со следующим этапом вы как-то хватили лишнего… Микросервисы — это архитектура для бакенда, а тут еще я не увидел упоминаний о разделении мега-программы на клиент и сервер!


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


          1. Comlan
            04.04.2017 08:55

            а не обращаться к общей базе за каждый чихом

            А если это не играет особой роли, если система справляется?
            У нас около 20 раб мест (производство, служба снабжения, бухгалтерия, КТО, менеджеры).
            У каждого клиент обращается к MySQL серверу, за каждым чихом.
            Наблюдаю за всем этим и не вижу пока никаких проблем.
            Но видимо где-то есть предел развития, после которого мне придётся воспользоваться вашими наводками. Спасибо вам за советы.


            1. mayorovp
              04.04.2017 09:01
              +1

              Тут предел не столько в объемах информации (уж с этим-то любая нормальная СУБД справится, если схему нарисовали правильно и нужные индексы развесили) — а в отзывчивости интерфейса. Пока программа работает в парадигме "загрузить данные — отредактировать — сохранить" — проблем с СУБД нет.


              Но если появляется задача реагирования на события или оперативного мониторинга каких-либо показателей — то СУБД внезапно оказывается очень медленной средой передачи данных.


              1. Comlan
                04.04.2017 09:10
                +1

                реагирования на события или оперативного мониторинга

                Да, я держу на заметке этот момент. В последней версии программы увлёкся созданием виджетов для рабочего стола (см. картинку в публикации). Раз в 30/60 сек они обращаются к базам SQL запросами за актуальной информацией и переварив её выдают текущее состояние дел. Теперь я понял про какой развитие вы говорите.


  1. Daniro_San
    01.04.2017 04:10

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


    1. Comlan
      01.04.2017 16:23

      Здесь есть мнение, если программа здорово справляется с тем, для чего она создана, но написана "говнокодом", то это не считается. Значит человек не програмист.


      1. Daniro_San
        01.04.2017 16:27

        Ох, да забейте вы на снобизм и самовозвышение некоторых товарищей.
        Видели бы вы исходники некоторых популярных продуктов, WordPress например.


        1. Comlan
          03.04.2017 07:43

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


      1. mayorovp
        04.04.2017 08:51

        Нет такого мнения. Есть мнение что говнокод:


        • является источником багов (увеличивает цену отладки и тестирования);
        • увеличивает цену поддержки программы.

        Если программа уже отлажена, протестирована, работает и не требует доработок — никому не интересно что там внутри.


        Но тут есть две тонкости.


        1. говнокод очень редко находится в состоянии "отлажено и не требует доработок";
        2. выкладывать говнокод в открытый доступ — дурной тон, потому что сама идея открытого кода подразумевает доработки.


        1. khim
          04.04.2017 19:37

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

          А вот как только изменения туда начинать независимо вносить человек 10… вот тут-то все «видеоэффекты» и начнутся.


  1. fpinger
    01.04.2017 08:27

    А насколько предприятие зависит от вашей разработки?
    И сможет ли всё это работать и развиваться без вас?


    1. Comlan
      01.04.2017 09:19
      +1

      В ней вся жизнь предприятия. Она везде. На нее подсажено 90%. Остальные 10% — 1С. Если ее вдруг не станет, для ведения бизнеса остануться ручка, бумага и Excel. Без меня работать будет. Нужно только за базами данных ухаживать. Развиваться без меня — нет.


      1. fpinger
        01.04.2017 09:37

        Можно ещё вопрос?
        Это ваш личный бизнес или чей-то, а вы наёмный работник?


        1. Comlan
          03.04.2017 07:41

          Я не могу ответить на этот вопрос. Возможно мои коллеги увидят, а им знать не обязательно все тонкости.


  1. VYakushev
    01.04.2017 14:57
    -1

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


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


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


    1. Comlan
      01.04.2017 16:31

      А хрущевки создали строители или нет? Вроде сносить собираются. А зачем Microsoft выпускает новые ОС? Неужели Win98 не гибко и не качественно? А ведь в 98 было все иначе. Сейчас легче быть профессионалом. Сейчас доступны знания. Я например смогу построить дом сам. Мне только проект купить.


  1. VYakushev
    01.04.2017 17:41

    Хрущевки отстояли 60 лет, и ещё бы простояли. Но в их фундаменте не заложена достройка этажей. Да и эту аналогию считаю некорректной.


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


    1. Comlan
      01.04.2017 18:45

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


      1. khim
        01.04.2017 20:48
        +1

        Невозможна достройка этажей? А где тогда здесь гибкость?
        Что заказали — то и построили. Почему у аэропорта Шереметьева столько терминалов? А потому что в своё время решили экномию устроить и выбрали проект «подешевше» — но без расширяемости. То же самое — и с «хрущёвками».

        В программировании мы можем себе позволить устраивать «гибкость» потому что современные компьютеры — чудовичщо, невероятно, мощны. Какая-нибудь Undertale имеет графику, сравнимую с Commander Keenом — но требует на три порядка более мощного компьютера. Да-да, не «в три раза более мощного компьютера», а «на три порядка (то есть в тысячу раз) более мощного компьютера».

        У производителей хрущевок такого запаса, как бы, не было…


  1. VYakushev
    01.04.2017 18:58

    Когда-то я рисовал графику в Paint. А теперь использую Photoshop и Sketch. И проблема не в том, что код Paint не гибок, а в том что:


    1. У него другая сфера применения
    2. Нерационально развивать его до уровня Photoshop.

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


    Может это ваш случай, но, чаще всего в разработке ПО полное переписывание софта — это что-то из ряда катастрофы.


    1. khim
      01.04.2017 20:41
      +2

      Может это ваш случай, но, чаще всего в разработке ПО полное переписывание софта — это что-то из ряда катастрофы.
      Ничего подобного. Любой «живой» софт — переписывается неоднократно, но… по частям. А катастрофа — это попытка снести всё к чертям собачьим и сделать всё с нуля.

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

      Тут у нас новая магистраль, но… вьезды-выезды пока недоделаны, потому весь трафик пошел в обьезд. А тут — новый монорельс, но поскольку пропускной спосодности не хватает, то под ним ездит автобус. И так далее и тому подобное.

      А дальше — вопрос настоящести/ненастоящести программиста смешон: да — есть архитекторы, которые могут грамотно спроектировать микрорайон, а есть такие, что не могут. И что — те, кто не могут быть Главным Архитектором Москвы — уже ненастоящие, что ли? А люди без образования, строившие Собор Василия Блаженного — они архитекторы или нет?

      По моему не в названии дело. Главное — понимать чего ты можешь, чего нет. И не браться за строительство многокилометрового подвесного моста если у тебя опыта — только строительство семейного домика…


      1. Comlan
        01.04.2017 22:44
        +1

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


    1. Comlan
      03.04.2017 07:38

      Катастрофы для кого? Для того, кто вкладывал деньги? Или самого исполнителя?
      Начинать с нуля — прерогатива смелых и не только в разработке ПО.
      Ведь каждый молодой специалист/человек когда-то начинает с нуля.
      А с годами рисковать хочется всё меньше и меньше.


      1. khim
        03.04.2017 12:30
        +1

        Катастрофы для кого? Для того, кто вкладывал деньги? Или самого исполнителя?
        Для того, кто это затеял, в большинстве случаев. Это настолько банальная вещь, что уже как бы и не обсуждается. Вот тут перевод статьи на эту тему.

        Но тут — аналогия с городом проявляется черезвычайно выпукло: снести дом и отстроить на его месте другой — нет проблем. А снести полгорода и заново проложить все коммуникации и дороги… редко когда кончается добром.

        Проект, сделанный одним человеком, как правило, переписывается «с нуля» без проблем. И получается только лучше. А вот большие проекты — нет. И понятно почему: если проект переписывает тот человек, который делал его изначально — то он реально помнит все крупные грабли и может их избежать. А если в проекте участвует человек 100 — то такого понимания нет, а потери от переписывания — есть.


  1. VYakushev
    01.04.2017 20:52

    Как раз о полном перерисывании я и говорю. А, то что вы описали, это и есть развитие продукта.


  1. Yurik17
    02.04.2017 03:18

    Я закончил специальность оптика (оптические системы и приборы), но еще во время учебы меня взяли на профильное предприятие программистом, за это время «научился» программировать на ассеблере, даже местами для ПЛИС (ни одного диплома нет, так что это пустые слова), в свободное время помогаю другу разрабатывать правила для ДнД и сам же пишу компьютерную игру по этим правилам (моделируя нужные модели в 3ds Max)…
    Так вот, к чему я. Определяться в жизни? А зачем?


    1. Comlan
      03.04.2017 07:32

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


  1. Zoomerman
    03.04.2017 07:13

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


    1. Comlan
      03.04.2017 07:30

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


  1. Lyuba23
    03.04.2017 07:13

    Проработала разработчиком ПО на крупном предприятии 13 лет. Иногда мне кажется- я с этим родилась. Хотя я и себе самой не всегда могу объяснить… как это, но программы же созданные мной существуют же. Это как дар писать стихи, только математическими символами.


    1. Comlan
      03.04.2017 07:28

      Мне кажется, что писать стихи сложнее, а хорошие стихи — удел избранных. Попробуйте написать что-нибудь. А вообще приятно увидеть женское мнение здесь.


  1. pset
    03.04.2017 07:13

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


  1. uploadfor
    03.04.2017 07:13

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


    1. Comlan
      03.04.2017 07:16

      Зря вы так, нет здесь особо критики. Все по делу.

      автор, не мудрствуя лукаво и не будучи семи пядей во лбу

      за это конечно спасибо


      1. uploadfor
        03.04.2017 10:07

        за это конечно спасибо


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


        1. Comlan
          03.04.2017 10:14

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


  1. Swiftarrow7
    03.04.2017 07:13

    Как по мне так, программист — это обучаемый человек, который в своей работе использует компьютер с инструментом (будет немного узко), называемый язык программирования! Так вот, вы скорее программист-любитель) Обычный такой) Ленивый) Человек, которые готов ради того, чтобы полениться: изучить язык и среду разработки, написать программу и всё с помощью неё автоматизировать =)


    1. Comlan
      03.04.2017 07:24

      Только вы обратили внимание на слово «лень». А это был один из ключевых моментов в моей заметке.


  1. KoToSveen
    03.04.2017 07:13

    Склоняюсь считать автора статьи инженером, которому в руки дали инструмент автоматизации Delphi7.


    1. Comlan
      03.04.2017 07:20

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


      1. KoToSveen
        03.04.2017 13:47

        Ближе всех, т.к. я тоже инженер-конструктор, но занимаюсь программированием. Программистом себя не считаю, не вдаюсь во многие тонкости типа implementation и т.д. Но периодически приходится кодить на Delphi, vb6, c++, php, sql (не знаю, относить его к программированию или нет?).


        1. drafterleo
          03.04.2017 15:50

          У меня в трудовом договоре написано «инженер-программист» :). Кстати, по этой логике получается, что «чистый» программист — это тот, кто разрабатывает программно-инструментальный софт (компиляторы-интерпретаторы, IDE, фреймворки и т.п.).