Пользователь
0,0
рейтинг
8 сентября 2012 в 08:45

Разное → Как гуманитарию стать программистом?

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

Итак, как гуманитарию научиться программировать?
Ответ. Надо следовать принципу: «Глаза боятся, руки делают».

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

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

Вводное слово


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

Какой язык изучать?


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

Вы выбрали язык, как же быть с остальными?


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

Найдите толстый учебник


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

Как все это запомнить?


А запоминать не надо. Просто вбивайте примеры из книжек и смотрите как это работает. Если вы будете усиленно зубрить, то ваш мозг начнет ненавидеть это. Изучать предмет надо в спокойных условиях. Говорите себе: «Дай-ка я это попробую, ничего страшного не случится».
Ниже вы прочитаете как все запомнить.

Записывайте рабочие фрагменты


Вбили код, запустили, работает? Запишите его. Я для этого использую docs.google.com Чтобы иметь доступ из любого места. Там я все распределяю по папкам, каждый документ — это пример небольшого кода. Каждый раз обращаюсь, как к шпаргалке. В конечно счете, вы достигните такого уровня, когда будете все помнить.

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

Записывайте правильное решение


Допустим вы бились над решением какой-то проблемы. Решили ее, запишите код рабочей программы с подробным описанием в чем была проблема и как вы ее решили. Согласно закону подлости, на следующий день, когда решите улучшить код, вы сломаете свое рабочее решение и потом долго будете недоумевать, а как же оно вчера работало?

Сделайте ошибку


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

Набивайте код


При чтении учебника, часто возникает такая ситуация. Вам показывают код, видите вы его впервые, но вы понимаете, как он работает и читаете дальше. В этом таится большая опасность. Набейте код из книжки и сделайте его выполнение. Пока вы будете его вбивать, ваш мозг задействует разные отделы, от получения информации до ее передачи для использования в опорно-двигательной системой (руки, в данном случае). Что означает — информация пройдет через разные отделы мозга. И следовательно она будет восприниматься по-другому. Реальный случай, пока читаешь, говоришь себе: «Да, понятно, это работает вот так», а после того как вбил и запустил исполнение, увидев результат, восклицаешь: «Эврика!». Вот поэтому написанная информация запоминается лучше, чем та, которую вы просто прочитали.

Предупреждения



Отчаяние


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

Плохая документация


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

Ваши знакомые и друзья


Среди ваших знакомых найдутся люди, которые зададут вам такой вопрос: «А зачем ты изучаешь программирование?».
Я был немало удивлен таким вопросом. Придумайте для них какие-нибудь дебильные отмазки, чтобы отстали. Например: «Я хочу найти работу программиста. Средняя зарплата программиста… бла бла бла».
Что самое интересное, спустя какое-то время, когда вы добьетесь серьезного результата, их почему-то это совсем не впечатлит. Не знаю, что это такое, зависть?

Гуру из интернета


«Гуру» на всяких форумах порой говорят что-то про кодеров, новички пугаются, задают вопросы: «А как не стать кодером?». Вы должны знать, что когда научитесь серьезно программировать, у вас появится столько оптимизма, вы себя почувствуйте таким супергероем, что будете рассуждать, как пилот боевого истребителя. Вскоре, вы тоже начнете на форумах что-то писать про индусов и быдло-кодеров.

Ну и последнее

Сколько времени у вас займет обучение? Если каждый день тратить по 10 минут, то через полгода заметите за собой, что кое-что уже можете. А через два года сможете уже искать работу. А может быть даже раньше, зависит от вас.

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

Update 1: Судя по комментариям, некоторые бегло пробежались по статье. И некоторые вопросы вызваны невнимательностью. Про 10 минут также говорится под заголовком «Отчаяние». Суть 10 минут, чтобы человек не бросил изучение, когда у него нет уже сил. Иначе, если вы дадите себе неделю отдыха не прикасаясь к материалу, то за неделей последует вторая, и третья…

Личный опыт


Попросили добавить личный опыт. Обучение началось с языка TurboPascal в школе, язык понравился. Но дома не было компьютера. После школы я поступил в университет, на истфак, где у меня тоже были успехи. На факультет по прикладному программированию, я бы не смог поступить, так как не смог бы сдать экзамены по математике.
После университета, найдя работу, я купил компьютер и попытался изучать Делфи. Поставил перед собой задачу, как написали некоторые в комментариях, но как оказалось, Дельфи не смог справится с ней. На этом мое обучение прекратилось. Следующая попытка была предпринята через несколько лет. Решил наброситься сразу на несколько: Delphi.NET, Php, С, С++, С Sharp, ObjC, Assembler, Python, Ruby, Perl, Javascript, Java.
Результат: Python очень хорошо пошел. Остальные языки знаю понемногу. Но сейчас их изучать стало намного легче, так как нет прежнего страха и неуверенности.
Михаил @Rome
карма
39,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

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

  • +8
    На самом деле, рекомендации хороши практически для любой сферы, в которой происходит обучение. Постоянно работайте над собой, вникайте в то, что делаете, и не останавливайтесь, даже если не получается — думаю, это и есть основная мысль статьи
  • +2
    Отличный совет для изучения всего. То же самое относится к языкам. Так начал изучать итальянский и вдруг осознал, что понимаю песни, новости и фильмы.
    • 0
      <офтоп> Не с помощью Полиглот — Итальянский за 16 часов случайно?) </офтоп>
      • 0
        Нет. Из любопытства попробовал Rosetta Stone.
        Английский знаю в совершенстве, потому не верю в программы, обещающие изучение языка за часы или месяц.
        • НЛО прилетело и опубликовало эту надпись здесь
          • +1
            Ну не знают даже авторы серьезных изданий (и редакторы этих изданий), что в русском языке нет слова «сервера»

            Жопа есть, а слова нет?
            • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Не возможно. Безграмотность «договора», «сервера» и т.д. не делает человека не знающим язык. Просто он носитель, но неправильно произносящий определенные слова.
            Я говорю свободно и даже думаю. Потому что не только учил, но и работал там, годами говорил с носителями, смотрел и смотрю фильмы, спорт и передачи на английском, читаю книги. Это крайне важно, я считаю.

            За пару месяцев, возможно, удастся выучить язык на базовом уровне, но надо заниматься не по десять минут, а часами или даже сутками в нем вариться.
            • НЛО прилетело и опубликовало эту надпись здесь
              • –1
                Как будто те у кого родной русский, но плохо учились в школе, не являются носителями языка :)
              • –3
                Угу, не так хорошо, как у Вас. Кстати, «Вас» пишется с большой буквы, и предложения надо начинать с нее же. My dear lad, do not judge so not to be judged. И, как писал Шекспир: Thou art as smart as thou art beautiful. How's my English now?
  • +1
    Под параграфом «Какой язык изучать?» подпишусь два раза!
    Пишу на php, и все дается трудно, красивые конструкции не получаются, код мне не нравится, приходится переписывать.
    Пишу на js, и все получается с первого раза. Этот язык для меня. Изучал его после php.
  • +1
    Спасибо за статью, я кстати тоже историк но потом ещё учился…
  • +1
    Спасибо за пост, с нашим качеством образования он прекрасно подходит не только гуманитариям, но и многим «дипломированным программистам».
  • 0
    Хотелось бы больше подробностей: какой язык(и) учили, какие книги брали, что подошло, что нет… Понятно, что это не панацея, а личный опыт, но многим начинающим программистам гуманитариям это изложение думаю будет интересно не менее, чем общие принципы, которые вы применили (курсивом в конце разделов было бы самое то :) ).Также хотелось бы больше упоминаний о используемых приложениях\сервисах и расстановки акцентов по тексту — выделить жирным гугл-докс например.
    Спасибо за статью.
    • 0
      Спасибо, добавил в пост скриншот и личный опыт.
  • +2
    Не уверен что это стоит делать с самого начала, но в какой-то момент точно надо подписаться на тег изучаемого языка на stackoverflow.
    • +1
      Сколько страниц в день придётся после этого там прочитывать, Вы не могли бы подсказать по собственному опыту? А не то, если и Хабрахабр-то немало времени забирает — куда уж тут ломиться вдобавок на Stack Overflow?
      • +1
        Не знаю, честно говоря, как оценить. От языка зависит. Для популярных языков будет немало вопросов. Но, во-первых, необязательно подробно читать все вопросы и ответы. Во-вторых, можно отфильтровать ненужную тематику. Как-то так. В принципе, если не подписываться, а раз в день заходить из закладок, то визуально еще по популярности вопроса можно фильтровать.
    • 0
      Можно пойти даже дальше. Начать самому задавать вопросы, если что-то не получается. К счастью на StackOverflow вам будут отвечать и помогать, в отличии от российских аналогов, где будут комментарии в духе «Нуб! Иди играй в Косынку, а программирование оставь умным людям».
      • +4
        Есть нюанс — на StackOverflow очень не любят тех, кто хочет получить ответ на вопрос, ничего не сделав для получения ответа в свою очередь. Грубо говоря, вопрос «Как создать массив на основе другого массива только с отрицательными числами по модулю большими 10» не подойдет — его закроют, либо признают homework и не будут отвечать по существу, или в него никто не будет заходить в принципе. Если же хотя бы рассказать, что уже было сделано для решения этой задачи и что не получилось — например, непонятно, как определить модуль числа, или элементы записываются не туда, куда должны бы, или не получается создать результирующий массив — в этом случае ответ будет дан достаточно быстро, доброжелательно и по существу.
    • 0
      Метод не для слабонервных.
      Количество тупых вопросов по популярным темам на SO просто зашкаливает.
  • 0
    Вы очень правы. Не знал английский вообще. Год чтения мануалов и документаций на английском с гугл переводчиком. И я уже начинаю понимать многие тексты без перевода.
  • +15
    1. если каждый день тратить только 10 минут, не стоит вообще их тратить.
    2. а что вам дает записывание кусков кода? Зачем их заучивать?
    3. если боитесь что завтра сломаете и не сможете починить — попробуйте svn или другие системы коннтроля версий.

    может я и неправ, и для гуманитариев именно этот подход работает, но мое мнение — не надо толстых учебников, не надо заучивания, не надо никаких типичных алгоритмов в доках. просто делайте, примеры из учебника на первом этапе. не надо их перепечатывать, разобрались, отложите книгу и сделайте. потом поставте себе интересную задачу и делайте ее. все нужное запомнится само. главное ведь не синтаксис языка выучить, а построить мышление программиста. в свое время я начинал именно так, но я типичнейший технарь, пути гуманитариев мне плохо понятны, а от необходимости что-то «заучивать» меня выворачивает.
    • +2
      потом поставте себе интересную задачу и делайте ее. все нужное запомнится само. главное ведь не синтаксис языка выучить, а построить мышление программиста.

      Согласен.
      Самое лучшее обучение — поставить себе задачу (не сложную, чем проще, тем лучше) и начать её реализовывать. Реализовать до конца. И, спотыкаясь на каждой строчке, уже искать решения в справке/книгах/форумах и т.д. Пусть это будет велосипед, который уже сто раз сделан, но это даст бесценный опыт и понимание происходящего.
    • +2
      Могу дать совет, который мне очень помогает.

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

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

      Некоторые книги, некоторые знания настолько нужны и тем временем объемны, что нужно заучивать. Правда, не сразу, не во время первого прочтения, а то никогда не закончите
      • 0
        Некоторые книги приходится сначала читать бегло, а потом тщательно. Например «Современное проектирование на C++» Андрея Александреску. Но это уже для крутых.
    • 0
      Трудно ставить задачу, когда ты не представляешь, что оно в принципе может. А перепечатывание простых примеров помогает запоминать наименования функций, в принципе лучше «впихивает» в мозг осознание возможностей языка.
  • +10
    Какая статья, какая глубина изложения… гуманитарии ликуют, программеры с высшим образованием плачут, что не пошли на историка или на крайняк на журналиста: искали бы языки которые нравятся, читали бы все учебники разом и всего на это нужно было бы 10 минут в день, но не получилось. Читаем только избранные книги и по одной, программим по 8-10 часов в день, никто не спрашивает зачем стали программистами. в общем феил.
    • 0
      Автор поставил несколько более глубокую задачу чем может показаться на первый взгляд — взять из множества языков именно наиболее подходящее, чтобы обучение было более приятное и не напрягало, если хотите (выработка другого мышления процесс не для всех легкий, знаете ли, тут нужен подход). Про 10 минут явно было сказано, чтобы показать, что даже при таких мизерных затратах будет толк, итак понятно, что нужно уделять от 1 часа до нескольких часов в день. Вообще не фейл
      • 0


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

        Тут в статье говорится про разочарование. Разочарование в начале — это только цветочки. Настоящие разочарования начнутся через лет 5 работы, когда придет осознание, что НИКОГДА всё не изучишь. И надо привыкнуть постоянно учиться, чтобы не отставать в развитие.

        Так что, гуманитарии, подумайте еще раз и не изучайте языки программирования. Не демпингуйте )))
        Хотя, ничего сложного нет в программировании. Ничего сверхинтеллектуального. Программисты сами себе завысили оценку. Есть и намного посложнее науки ))
        Сложность в программировании — это большой объем знаний. Который еще и быстро устаревает и появляется что-то новое.
        • –1
          Ссылка потерялась. попробую еще раз
          Бизнес для программистов. Как начать свое дело
        • 0
          Я пытался в статье донести мысль, что любая наука находится в вечном познании. А гуманитариям это хорошо известно по гуманитарным наукам. Они к этому готовы лучше всех. Я просто им сказал, что с программированием тоже самое. Им просто не нужно боятся: «Глаза боятся, а руки делают».
    • +1
      не передергивайте. у гуманитариев и технарей отличаются схемы обучения. у них, если я что-то понимаю, осмысление, анализ происходит после накопления определеного обема информации. сначала запоминаем ключевые события за период, потом анализ и выводы. поправте если не прав. технарь сначала пытается понять как это должно работать, а потом делает. и учится в ходе эксперимента а не изучения фактов. я об общих, типичных вещах. понятно что исключения есть, да и граница не такая уж четкая. так что для гуманитариев все эти рецепты может и работают, пока они не перестроили мозг на технаря, все это более привычно. хотя про 10 минут я согласен. год опыта это около 2000 часов, по 10 минут в день жизни не хватит до нормалбного уровня джуниора добратся.

      • +1
        Я, с вашего позволения немного обобщу: гуманитарий решает проблему дедуктивно, а «технарь» — индуктивно. Т.е. люди все, разумеется, разные, но подобная тенденция имеет место быть. Судить, «как лучше» — не вполне корректно, т.к. разные задачи решаются по разному, но на мой взгляд достаточно очевидно, что на пути от кодера к архитектору «технарю» неизбежно приходится более «гуманитаризироваться». :-)
        • +2
          Хм, мне казалось ровно наоборот, что у технарей дедукция более развита, они создают частное на основе общего, а гуманитариям ничего не стоит сказать, что если какое-то общее противоречит их частному, то просто их частное исключение. Гуманитариям свойственно решать задачу методом подбора, не замечая что она противоречит их же представлениям.
          • 0
            1) Когда уже есть общее, то частное из него будет создавать кто угодно — тут вариантов особых нет. :-) А когда нет ничего и стоит задача решить вопрос, то можно либо сначала пойти по пути создания некоей «общей теории», которая позволит в частности решить данную конкретную проблему, либо же сразу впрягаться в эту проблему «напрямик». Первый комментатор именно об этом и говорит, с чем я и согласен.

            2) Не вполне понял, как «частные исключения» соотносятся к гуманитарностью. Оглянитесь вокруг — нас одни исключения и окружают независимо от. :-) А количество разнообразных «костылей» с очевидностью показывает, что в «технарском» программировании исключений разнообразных разве что не больше. :-)

            3) Кстати, о «костылях»: их обилие как раз подтверждает высказанный тезис — если бы программисты больше думали в начале и обобщали, а не сразу «бросались в бой», то не было бы потом так мучительно больно адаптировать потом созданное решение для схожей, но немного иной задачи. И «костылей» было бы меньше… :-)

            4) Последнее предложение не вполне понял. Методы — это методы. Подбор — имеется в виду эмпирика? Так ведь процессе работы все методы используются — и эмпирика в частности. Что тут такого? «Противоречит их представлениям» — это как? Можете привести пример? И чем это плохо? Очень часто бывает, когда в процессе работы/исследования результат противоречит изначальным представлениям и установкам. Собственно, это нормально. Главное, что потом делать — отрекаться от результата, потому что «ересь», или пытаться переосмыслить те самые изначальные представления. Ну дык это уже от конкретной личности зависит — «гибкие» и «твердолобые» люди бывают независимо от склада мышления. :-)
            • 0
              1) Не создать теорию, а «нагуглить». Хороший технарь, имхо, сначала поищет общее решение проблемы, абстрагируясь от частностей. А гуманитарию в голову не придёт (утрирую), что его проблема имеет общее решение, пока не накопит решений частных задач, «схожих до степени смешения».

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

              3) Хороший технарь, лепя костыль, понимает, что это костыль. Ещё лучше понимает, когда костыль на костыле нагромождаться начинает, у него возникает зуд «переписать всё с нуля». А гуманитарий этого не замечает.

              4) Плохо выразился, речь не об, но пример пожалуйста. Написали код (псевдокод):
              N = input();
              A = input_array(N);
              print_array(A);
              

              и видим, что массив выводитс неправильно и сдвинут на один элемент (последний теряется, а в первом случайное значение). Технарь полезет читать доки, а гуманитарий напишет что-то вроде
              N = input();
              A = input_array(N);
              print_array(slice(shift_array(A), 1, N+1);
              


              • 0
                1) Вы опять в сторону уводите и в частности. При чем тут «нагуглить»? Мы говорит не о «поиске» решения, а о его создании. Любой адекватный человек, разумеется, сначала поищет готовый вариант — кто в гугле, кто в яндексе, а кто в библиотеку сходит. По второй фразе — очень спорно, на мой взгляд. Было бы так, как вы говорите, фреймфорки появлялись бы ДО появления тонн говнокода. :-)

                2) Ну да, а что, вы думаете по другому? :-) Любая теория объясняет лишь часть окружающего мира. То, что она не объясняет — исключения из этой теории. Они объясняются теорией более высокого порядка, у которой, в свою очередь, есть свои исключения. Ну а Общей Теории Всего На Свете у нас пока еще не выдумано. :-)

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

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

                PS: Кстати, вы в своем комментарии ниже по сути подтверждаете мои слова. Упомянутая вами девушка-гуманитарий имеет проблемы с декомпозицией именно потому, что как полагается гуманитарию воспринимает все (в данном случае — блог) общо и как единую систему, а разделить на составные части — да, не может. Соответственно, у технарей проблема зачастую обратная — хорошо видят и понимают в деталях, как функционируют составные части некоего целого, но «охватить разумом» объект целиком — не могут. Охватить в том смысле, чтобы понять и сформулировать зачем этот объект нужен, что с ним делать, какие у него глобальные цели и задачи. <троллинг>Возможно, именно поэтому по жизни получается, что заказчики — гуманитарии, а исполнители — технари.</троллинг>
                • +1
                  1.1 Мы говорит не о «поиске» решения, а о его создании.
                  Создание нового решения — это научная задача, по-моему (если глобально брать). Большинство же технарей занимаются, имхо, допиливанием общего решения для конкретных услови или изобретением велосипедов (далеко не только Ит имею в виду).

                  1. 2. Было бы так, как вы говорите, фреймфорки появлялись бы ДО появления тонн говнокода. :-)

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

                  2. Гуманитарии не думают о теориях высшего порядка. Они верят в индивидуальность, а не в возможность существования Общей Теории Всего На Свете :D

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

                  4. Возможно, что термины у нас не согласованы. Но бухгалтеров технарями я точно не считаю :)

                  Возможно, именно поэтому по жизни получается, что заказчики — гуманитарии, а исполнители — технари.

                  Ага, и именно из-за их способности представить общо и как единую систему, мы постоянно лепим костыли или переписываем систему с нуля. Представить они может и представили, но нам сообщить о своём представлении забыли, чтобы мы проектировали исходя из их видения системы. Они берут свое частное (да ещё и зачастую сиюминутное) видение системы как общий принцип, не требующий объяснений. Да ещё при этом лезут в технические детали: «сайт должен быть с синим фоном и зелеными буквами и, конечно, на PHP 5.2», а что он должен быть приложением вконтакте — это для них общий принцип, не стоящий даже упоминания :(
  • 0
    Хотел бы в рамках поста посоветовать хороший сервис, если кто не знает — www.codecademy.com.

    Будет кидать на русскую версию, скорее всего, но можно воспользоваться и en.

    • 0
      Плюсую, идея отличная и написано добро.
  • +3
    Не менее интересно было бы понять, зачем гуманитарию (если он сам, зная свой склад ума, признает себя таковым, ) становиться программистом.
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      «Кто много читает, тот будет умён».
      Заголовок статьи гласит о том, как «стать программистом», но содержание рассказывает, как освоить основы программирования — и вот это уже полезно вне зависимости от склада ума.
    • 0
      Звучит, как будто вы считаете, что все у кого гуманитарное образование по другому мыслить не могут. У многих гуманитариев есть необходимые навыки и способности, просто в силу тех или иных причин они в свое время выбрали другую специальность. Если человеку интересно программирование или любая другая область IT и есть возможность ей обучиться и начать работать, то почему бы и нет.
      • +1
        Я несколько о другом. Вполне естественно, что человек, получивший гуманитарное образование, но обладающий при этом аналитическим складом ума, может захотеть стать программистом. Мне не понять, такое желание берется у истинных гуманитариев — прирожденных писателей или художников? Вряд ли программирование — первый вариант заработка, который приходит на ум.
        Это я все к тому, что лично мне кажется, что если у человека есть набор способностей, чтобы стать программистом, то он научится этому точно так же, как и все остальные (т.е. не имеет значения, какое образование было получено раньше). А если человек к этому совсем не расположен, то ему и в голову не придет всерьез пытаться стать программистом.
        • +3
          Программирование это тоже искусство, так, что истинному поэту и художнику здесь есть где развернуться, да и философу тоже :) Все дело в отношении к предмету.
        • +1
          Есть технари, которые занимаются гуманитарными вещами — рисуют, сочиняют музыку, изучают историю или делают что-то ещё, не ради заработка, а хобби. Почему нет?
          • 0
            Речь же о противоположном…

            Технарь = гуманитарий + аналитический склад ума — неуправляемые эмоции.
            • 0
              Полагаете, технарям несвойственны неуправляемые эмоции?
              • 0
                полагаю, в на порядки меньшей степени
        • 0
          У нормального гуманитаря аналитический склад ума тоже есть. Например, если у историка отнять аналитический склад ума, то получится Фоменко.
          • 0
            «Нормальный гуманитарий» и «гуманитарий» — две большие разницы.

            Фоменко получится, если математику с аналитическим складом ума не суметь дать вовремя нужной информации от историка с аналитическим складом ума, а если у тех редких историков, у которых аналитический склад ума есть, его отнять, получится «гуманитарий» в популярном смысле этого слова.
          • +1
            ))) Я всегда считал, что Фоменко просто троллит.
        • 0
          Ну мало ли какая блаж придёт в голову художнику?..
      • 0
        будто вы считаете, что все у кого гуманитарное образование по другому мыслить не могут


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

        А замечал ли кто-то, что физики, которые подались в программирование, программистов (по образованию) легко рвут? Глубина мышления другая. (не пиарю себя, просто с 5 человек знаю, выделяются заметно).

        Гуманитарии могли выбрать не ту специальность. А как им потом догнать отставание? Все таки ум — это то, чем мы занимаемся.
        • +1
          Вопрос можно? Вы разделяете программистов на кодеров и программистов или программистов и инженеров-программистов?
          • 0
            нет.
            Я думаю, что кодеров быть не должно. В идеальном случае программист должен уметь от работы с заказчиком, постановки задачи и создания продукта.
            Хотя встречаю программистов, которые считают, что они кодеры и им это по душе. Они не хотят думать (это их слова), они от этого устают. И они хотят, чтобы были аналитики, которые им распишут что делать вплоть до детальных схем, а тогда они закодят.
            • +1
              То есть каждый программист должен быть инженером-программистом? Боюсь вас разочарую, но российское государство так не считает, по его мнению должны быть как инженеры-программисты, так и программисты и техники-программисты и в сферу профессиональных компетенций последних не входит сбор требований или постановка задач, даже разработка архитектуры не входит, их компетенции начинаются с уровня модуля, например разработка спецификаций на модуль по проектной и технической документации или интеграция модуля в систему.

              И, кстати, я вот не хочу работать с заказчиком или ставить себе, или, тем более, другим, задачи, но не потому что не хочу думать, а потому что хочу думать над интересными вещами, а не над человеческими взаимоотношениями.
              • 0
                Неинтересный заказчик — неинтересные задачи. Какой бы прослойкой не оградились ))

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

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

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

                Пока не все это понимают. И государство в том числе. И бизнес не всегда. В бизнесе и в государстве приняты авторитарные формы управления.

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

                Кстати, те программисты, которые хотят оградиться, верят, что нужна бюрократия, горы документации, утверждения, иерархии — меняют мнение тогда, когда их поставить в другие условия. Когда надо болеть за проект, когда нет иерархии, где каждый ищет, какой вклад сделать. Как-то начинает и настроение общее у людей подниматься и эффективность.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    мне везло. Заказчик, у которого не гуманитарный склад мышления )))

                    Т.е. заказчик, который умеет выразить свою мысль и представляет более менее, что он хочет. Или по крайней мере с ним можно общаться и собрать требования или предложить какие-нибудь варианты.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Противоречия нет. Я не говорил, что заказчика должна интересовать реализация. Ни в коем случае. Когда я общаюсь с заказчиком, всегда его останавливаю, если он заходит на «территорию» реализации. Если он говорит, что ему нужна еще одна таблица в базе данных — это не принимается. Это реализация.

                        Но с другой стороны заказчик (адекватный) обязан участвовать в процессе требований. И если они меняются — тоже. Бывают неадекватные, которые думают, что платят деньги, за это им должны и телепатию обеспечить. «хочу чтобы сделали хорошо». Открещивается от любых объяснений или общения. А потом, постоянно, говорит, когда что-то реализовывается: «я не этого хотел!»

                        Обсуждать предметную область и что он хочет — очень даже нужно. И неплохо было бы, чтобы он сам соображал что-то. Или прислал соображающих посредников.
    • +7
      Практически во всех областях науки, умея программировать, можно более эффективно решать множество задач. Особенно это касается прикладных областей. Обрабаотка данных исследований в социологии, анализ текстов в прикладной лингвистике и т.д. А какой-то там склад ума это только отговорка. Если что-то действительно интересно, то можно научиться. Проблема как раз в том, что в школе чаще заставляют заучивать и вместо того, чтобы заинтересовать предметом, отбивают охоту к его изучению. Учиться нужно всегда, в том числе и осваивать новые профессии, и чем сложнее, тем интереснее.
      • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Например, чтобы доказать самому себе, что он не хуже. Я вот тоже всякую ерунду изучаю типа языков не программирования, чтобы доказать, что «технарь» — это не клеймо на всю жизнь.
    • +2
      Если бы в 2002 году я узнал о существовании языка Python, то мне не пришлось бы 2004 году идти работать на автозаправку.
  • +7
    Самое главное для меня — делать сразу что-то рабочее и нужное. Работать над абстрактными задачами не интересно и запал быстро проходит.
  • +1
    Программистом может стать любой. Но какого уровня?
    Я считаю, что без таланта на одном труде далеко не уедешь. Но и талантливый лентяй не достигнет многого. Необходима комбинация. Это, кстати, касается и многих других профессий.
    Но если относится к этому, как к хобби, и не ставить цели стать настоящим профессионалом, попробовать можно.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        К сожалению, при текущей ситуации на рынке, не нужно быть профессионалом, чтобы работать программистом и зарабатывать деньги. Спрос на программистов сейчас превышает предложение. Только это и позволяет говнокодерам чувствовать себя нормально.

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

        Но топик, вроде, о том, как стать программистом, а не как заработать деньги?
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Хотя бы чтобы экономить время на выполнении рутинных задач типа «закачать сто новых фоточек в вконтакте» :)
          • +1
            Программирование экономит время. В этом году я сделал пару программ, которые мне очень помогли в выполнении рутинных задач. И уже среди моих знакомых появились заказчики на эти программы.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Я не говорю про вынести мусор, вдобавок, это полезное занятие.
                Вам просто повезло с начальником. Мой же мне отдал такое задание: Взять два excell документа, сравнить цены на товары и послать ему отчет о различиях в цене. Документы весят несколько мегабайт. Тогда я программировать не мог и мне пришлось делать всё ручками. На это уходило несколько часов, я сильно уставал и нервничал. Ошибался и мне за это влетало. Собственно, именно это стало отправной точкой снова начать изучать программирование. Когда я написал скрипт, то он справился с этим заданием за 20 секунд.
                • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      На рынке труда программисты разного уровня востребованы.
      • 0
        Никто не ищет плохих программистов. Их берут, потому что хороших трудно найти.
        • +1
          Не думаю, что фирма предлагающая зарплату в 15к в Питере ищет хорошего программиста.
          • 0
            Это не значит, что им нужен плохой программист. На собеседовании они не будут проверять, достаточно ли он плох. Все равно ищут лучшее из того, что могут себе позволить за такие деньги.
            • 0
              Понятно, что будут брать лучшего за эти деньги, но хороший вряд ли пойдёт. И, имхо, не найти сложно хороших, а нет желания/возможности предложить условия такие, чтобы хороший сменил работу.
              • 0
                В этом и сложность — создать такие условия. Программисты заелись. Рынок беден.
                • 0
                  Значит, имхо, неправильная бизнес-модель у многих фирм, нанимающих программистов. Если они не могут получить прибыль, создавая условия, на которых хорошие программисты готовы сменить работу, значит что-то не так в их бизнесе, раз им нужны хорошие программисты, но нет задач их окупающих.
                  • 0
                    Возможно, это мелкий подвальный интернет-магазин, которому нужен кто-то для поддержки сайта. Отсюда и бюджет.

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

                    Я только призываю не пополнять ряды плохих программистов, пользуясь состоянием рынка :)
                    • +1
                      Мелкий подвальный интернет-магазин, требующий программиста за 15к на фулл-тайм и жалующийся на его говнокод, не кажется мне удачной бизнес-моделью.

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

                      Почему нет? Позавчера человек пользовался ситуацией, чтобы стать плохим продавцом, вчера — юристом, сегодня — программистом, а завтра станет хорошим предпринимателем, способным ставить адекватные задачи, не нарушающие закон и хорошо продающиеся :)
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Два неоконченных высших. На 4-м курсе в одном вузе понял сначала, что приборостроение это не моё, а потом, во втором, что менеджмент.
        • +3
          Есть еще более интересный фокус: некому искать ))

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

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

          Вот где беда в нашей отрасли. Еще гуманитариев только не хватает. Если честно, не видел их в программировании.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Я ужас какой плохой :( И советы даю вредные, замедляющие разработку.
              • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Есть люди, у которых нет слуха. Есть люди, которые не умеют подбирать одежду. Есть люди, которым не дано программировать. И они пишут так: govnokod.ru/10335
              Поверьте, они есть, и я знаю одного такого лично :)
              • 0
                Другое дело, что люди без слуха обычно не пытаются зарабатывать деньги музыкой, а не умеющие подбирать одежду редко становятся стилистами.
                • 0
                  что люди без слуха обычно не пытаются зарабатывать деньги музыкой

                  Сдаётся мне, что вы ошибаетесь.
                • 0
                  Я, пожалуй, соглашусь с VolCh. Вы просто давно не смотрели телевизор :)
                  А по поводу стилистов — не знаю, я не в теме
            • +2
              У программистов разные уровни, разные взгляды и разные понимания. Интернет ничем не ограничивает. Мне ничего не стоит давать советы, так же как и другим программистам.

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

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

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

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

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

              Иногда тяжело работать, когда у людей такие мнения.
              • НЛО прилетело и опубликовало эту надпись здесь
                • +2
                  так вот это мнение у разработчиков и надо искоренять.

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

                  Но есть у разработчиков фобия рефакторинга. Если никогда его не делали, то такое мнение часто: «я не буду ср… ть в коде сразу, чтобы не убирать потом!». Месяц думать над диаграммой классов для них психологически нормально. Но потом, если надо переименовать — это кошмар и трата времени.
  • 0
    Считаю, всё таки при выборе языка нужно руководствоваться и параметром его перспективности. Я, например, сразу руби стал учить.
    И «ракетные науки» несколько режет слух, rocket science не так переводится:)
    • 0
      спасибо, исправил.
  • +11
    Заметил, что у многих гуманитариев слабо развит навык декомпозиции, чёткого разделения задачи на подзадачи. Плюс навык технического абстрагирования тоже зачастую отсутствует: либо не видят общего между сущностями, либо начинают лезть в такие дебри. Помогаю девушке одной, учительнице русского и литературы и психолога, изучать программирование, пишет «бложик» в качестве учебного задания: с одной стороны, она гуглит что-то вроде «как написать блог», а, с другой, когда совместными усилиями разбили задачу на подзадачи типа «написать пост», «написать комментарий», то не видит связи между постом и комментарием, носом ткнёшь, что и то, и другое текст, вводимый пользователем и хранящийся на сервере — «ну да», не ткнёшь, а просто задавая вопросы типа «что общего?» — начинает рассказывать о том, что и то, и другое байтики в памяти компьютера (это если свернуть с рассуждений об эмоциональном состоянии пользователей, в котором он пишет).

    И это не единичный пример. Потому ещё несколько советов:

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

    — Если задачи зависимые, например, вы знаете как показать запись из БД, но не знаете как её туда записать, то просто ставьте временные заглушки даже на то, что знаете, вместо обращения к БД сделайте простое присваивание с явно тестовыми данными post.body = "Я пока не знаю как записать пост в БД, а значит и нечего читать из неё, поэтому вы видите этот текст".

    — Абстрагируйтесь от предметной области, когда работаете с техническими задачами. Не думайте категориями «пост», «новость», «статья», «документ» и внезапно окажется, что задача размещения поста в блоге практически не отличается задачи размещения новости на сайте-визитке или статьи на портале. Это просто задача размещения введенной пользователем информации.

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

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

    — Не бойтесь не оптимальности и избыточности — главное чтобы работало. Вам проще понять if (a > b) return true else return false? — так и пишите, а не return a > b, не бойтесь что вас назовут быдлокодером. Не бойтесь давать длинные названия функциям и переменным — лучше назвать переменную lengthOfTextThatUserInputed чем l. Не бойтесь повторяться, но бойтесь копипастить, при этом не забывайте про изоляцию — когда надоест писать одно и то же, сами заметите, что пара функций у вас отличаются только названием переменных.

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

    — Пользуйтесь отладчиком для изучения непонятного кода, а не для отладки

    — Изучите TDD/BDD и попробуйте их применять, возможно понравится и/или поможет избавиться от лишних страхов

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

    — Никому не верьте — все люди лгут :)

    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Может и не умею, педагогического образования точно нет. Но и человеку вряд ли безразлично, т. к. инициатива была с её стороны, я ж не изверг чтобы милую девушку обучать PHP по своей инициативе :) И говорим мы, надеюсь, на одном языке. По крайней мере задания типа «напиши скрипт, выводящий содержимое таблицы users, заджойнив все внешние ключи и фильтруя по полю email, которое пользователь вводит на странице» затруднений у неё уже почти не вызывает. Проблемы как раз в том, чтобы перейти к техническому уровню от задач типа «Вывести список пользователей со всеми атрибутами, фильтруя по адресу электронной почты».
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Естественно надо подумать и придумать алгоритм решения задачи. Собственно программирование, имхо, в том и заключается, чтобы алгоритмизировать задачу приемлемым в конкретных условиях способом. Перевести алгоритм в программу — дело техники в основном. а в учебных задачах обычно и ограничивающих условий нет, то есть нужно хоть как-то алгоритмизировать.

            За фильм спасибо, название знакомое, но сюжет вроде нет.
            • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Она введенное пользователем в поле email на предмет SQL-инъекций фильтровать не забывает? :-)
          • 0
            Не нуждается в этом. Знает только про PDO::prepare :)
    • 0
      Не поможет… Они как правило на другое хорошо заточены.
    • 0
      Вернее, не поможет тем, кому целите.

      Но эти советы хороши для тех, кто способен, но ещё не опытен — для начинающих программистов, но уже явных «технарей».
  • +3
    Хороший труд, но все же хотелось бы предостеречь всех тех, кто ВНЕЗАПНО решил стать программистом. Особенно, если в школе на уроках математики и информатики вы не понимали, чего от вас хотят, а основной мотив идеи насчет «переквалификации» — что-то вроде «этим ребятам хорошо платят, они востребованы, и сидят в уютных офисах».

    По моему (и нетолько моему) мнению, для того, чтобы бы программистом, нужен особый склад мышления. Я видел людей, которые решили заняться программированием, вопреки отсутствию такого склада мышления. И вот что могу о них сказать. Они:
    1) Глубоко несчастны — 8 часов нелюбимой сложной работы ежедневно, как-никак;
    2) Никак не растут профессионально (в т.ч. по зарплате, естественно);
    3) Испытывают на себе мощное воздействие лучей диареи от своих коллег, которым приходится работать с их говнокодом, написанным методом проб и ошибок, без четкого понимания, почему же в некоторых случаях он таки выдавал правдоподобный результат.

    В общем, воспринимайте это руководство как инструкцию по заведению еще одного хобби. И посмОтрите, как оно всё пойдет. Если программирование будет вам в удовольствие, и вы в определенный момент сможете создавать достаточно сложные и красивые вещи — тогда можете задуматься насчет переквалификации. Но вот так сразу ориентироваться работать программистом — по-моему, это очень, очень плохая идея.
    • +1
      P.S. Да, и для хранения «кодов» лучше сразу попытаться освоить что-то типа Bitbucket-а или GitHub-а, что-ли. :) А то Google Docs немножко не для этого.
      • +2
        Насколько я понял речь идёт о хранении сниппетов, ане кода полноценных (пускай и учебных) проектов. Кодохостинги для этого не очень годятся, имхо. У меня в детстве вообще тетрадка со сменными страницами была — больше смахивающая на гуглдокс или евернотс, чем на битбаккет или гитхаб.
    • 0
      Ну, насчет 1, 2 и 3 — у человека может быть и сейчас ровно такая ситуация, а вдруг он себя найдёт или хотя бы чуть-чуть улучшит свою жизнь? Вы же не конкуренции боитесь? :)
      • +1
        Я боюсь тратить свою жизнь на рефакторинг плодов их труда.
        • 0
          А я люблю рефакторить :) А если серьезно, то разве у вас нет выбора?
          • 0
            Серьёзно? А как насчет 650 строк SQL-запросов, без единого комментария, и с взятыми с потолка алиасами для таблиц? :) Я как раз в пятницу занимался, нужно было найти ошибку. Как всегда, на вчера.

            P.S. Кстати, существуют ли какие-то продвинутые инструменты для рефакторинга SQL? Что-то вроде того, что в продуктах JetBrains… Выделил переменную (в случае SQL — алиас таблицы или поля), заменил, и оно интеллектуально исправилось по всему запросу.
            • 0
              А Ctrl+R (Ctrl+H иногда) в режиме Whole words only чем не подходит?
            • 0
              От SQL стараюсь держаться подальше, жаль редко получается.
    • 0
      guessss_who я с вами согласен, я уже про это пишу новый пост. С таким явлением столкнулся и опишу некоторые жизненные ситуации. Но я писал пост на случай, чтобы хотя бы попробовали. У некоторых людей есть скрытые таланты. Многие заявляют: «Ну это слишком сложно, не буду даже пытаться».
  • +2
    Картинка для привлечения внимания работает не так.
    • +1
      Пожалуйста, поясните свою мысль.
      • 0
        Подозреваю, что она напоминает воспаленный мозг. Люди, помогите найти хорошую картинку, вставлю.
    • +3
      Заменил на котика, надеюсь никто не против?
  • 0
    Какой учебник читать? Найдите все учебники, которые сможете найти. Начните читать все сразу, обязательно найдется тот, где все очень подробно рассказано.

    С этим не согласен. Лучше найти какую-то одну книгу по отзывам и рекомендациям и читать ее, чем начать читать все сразу.
    • 0
      Кстати, да, некоторые учебники лучше вообще не читать. Как минимум устарели, а могут и плохому научить.
    • 0
      Бывают Кнута советуют, так ради прикола.
  • 0
    Интересно, а целевая аудитория читает хабр?
    • +1
      На хаьре не только программисты, есть точно дизайнеры, менеджеры, даже рекрутеры.
      • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      У целевой аудитории бывают знакомые, которые читают хабр! В моём случае, например, не совсем гуманитарий, физик-оптик, но тоже хочет освоить программирование, т.к. разочаровалась в российских науке и производстве!
      • +1
        У физиков все шансы. Я тоже бывший физик.

        Потом, физиков никак нельзя назвать гуманитариями.
        • 0
          Да я сам учился на физфаке, собственно, вместе с ней и учились.

          И потому я и написал, что не совсем гуманитарий, просто в данном случае физик — девушка!
    • 0
      По количеству плюсов к постам о дизайне, можно сделать соответствующие выводы о целевой аудитории.
  • +1
    А мне вот кажется, что гуманитарии пусть остаются гуманитариями…
    Говнокодеры и так размножаются в геометрической прогрессии.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Не совсем так.
        У нас в РБ (да и в России), к сожалению, многие идут кодить не по зову сердца, а из-за зарплаты.
        «Ну а шо? штуку далярау плацяць, у цеплам офисе сидиш, чэм плоха?»
        Из таких товаристчей по определению никто, кроме говнокодера не может получиться.
        А по поводу аутсорса тоже не могу согласится. Лично я в свое свободное время постоянно рефакторил свои рабочие проекты, пока в аутсорсе трудился, и низкая зп меня не смущала. Зато чувствую, что вырос значительно
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Я понимаю, о чем Вы, и отчасти согласен, но не стоит обобщать;)
            Все зависит от бизнеса и
            Хотя лично я для себя уже решил на пушечный выстрел не подходить к бадишопам
            • 0
              * Все зависит от бизнеса и потребностей. Грубо говоря, есть поставщики решений в-ля Apple, а есть Lenovo. Кому нужно качество, тот платит нормально и требует соотвествующего результата.
              Хотя согласен, в бизнесе перепродажи человекочасов для хорошего кода места как правло нету:(
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  Я вот сотрясаю воздух, и занят своим проектом и не работаю ни на кого, А Вы не сотрясаете и сам из себя такой положительный, но работаете на дядю и тихо ждете своего часа. Правда мило?:)
                  К слову, обличать никого не нужно и бороться с системой тоже. Никогда этим не занимался. Нужно понимать, как работает этот бизнес, и принимать правила, либо не принимать и искать себе другой бизнес.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Не обижайтесь пожалуйста, но из-за таких как Вы, в моей стране людей сажают на 10 суток, за то что они хлопают в ладоши на улице.
                      Извините, но мы с Вами с разных полюсов, и как люди, и вообще;)
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • –1
                          что и требовалось доказать.
                          Успехов Вам в сидении в кустах в ожидании чуда.
                          • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      R0ckwi11У людей есть скрытые таланты. Насчет программирования это сложно проверить, так как многим это кажется слишком сложным. Они даже не пытаются. Моя статья просто просит их попробовать. У меня есть свой талант, оказалось, что я могу быстро придумать новый алгоритм. Иногда ко мне обращаются знакомые программеры с таким запросом.
  • +4
    Я можно сказать не согласен с пунктом:
    «Сколько времени у вас займет обучение? Если каждый день тратить по 10 минут, то через полгода заметите за собой, что кое-что уже можете. А через два года сможете уже искать работу. А может быть даже раньше, зависит от вас. „

    Как показала моя практика, лучше тратить несколько часов подряд, но потом ничего не делать неделю, чем 10-минутными урывками каждый день. Ибо на переключение контекста уходит довольно много времени. Я наверное буду занудой, но: 10 * 365 * 2 = 7300 минут = 121 час с копейками, примерно 15 рабочих дней (8 часовых). По-моему оценка чересчур оптимистичная ;)

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

    Мой более реальный прогноз: довольно продуктивно тратить по 2-3 часа в день на обучение. Может быть что-то и выйдет из этого через годик.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Все в нашем мире относительно. Что в вашем понимании хорошо, то в чьем-то другом понимании что-то недостижимое. Ну и с точностью до наоборот.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            тех, кто в вашем понимании зарабатывает хорошо не так уж и много. И это скорее всего уже не наемный работник(если я не прав, то поправьте). А это уже другой разговор. Ибо тут уже нет речи о зарплате, т.к. зарплата — это то, что тебе платит «дядя» в моем понимании. Если у тебя свой бизнес, то ты, естественно, себя любимого не обделишь. Но если быть реалистом, много ли таких людей которые способные зарабатывать 300 тысяч и более в месяц? Не много(в принципе это хорошо, так как в противном случае 300 тысяч уже не позволяли бы покупать столько, сколько на них можно покупать сегодня), а непыльную работу с ЗП, которая будет позволять посытнее кушать и позволять себе пить коньяк хочется уже сегодня. Хотя насчет непыльности работы программиста это, в принципе, миф, т.к. это компенсируется сполна другими проблемами.
            • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      10 минут имелось ввиду другое, я добавил апдейт в пост на этот счет. В остальном согласен, уже пишу статью «Безработный программист».
  • 0
    Из личного — в 2005 поставил себе интернет ( мопед )

    Как то зашел посмотреть клубничку( ну вы поняли зачем ), но картинки открывались очень медленно, а про видео так вообще и говорить нечего…

    ну че делать, прогуглил — разработка компьютерных игр, там был — Blitz 3D, потом С++, и сейчас это работа!

    Вывод, а что если был-бы не мопед, а мегабитный канал тогда?

    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        ну все, Я в печали… Ибо в данный момент Я думал не о деуках в бассейне — а о том как сделать хороший memory manager и защититься от протухших ссылок
  • +1
    я гуманитарий и я уже 10 лет работаю программистом. Програмист програмисту рознь. Степень профессиональности и возможностей программиста зависит исключительно от его интереса к данной профессии. Для простого решения задач (уровня большинства компний — запрограмируй нам тот или иной бизнес процесс или забацай сервис на сайте) нет необходимости вникать в какие-то точные науки (типа мат анализа или анал. геометрии), вполне хватит навыков собственной логики. В более сложных задачах потребуются уже вполне себе серьезные знания, но благо интернет всем доступен. Отсюда вывод, было бы желание изучать что-то и делать. Все, что нужно, есть в интернете. Как плюс — общение с людьми с аналогичными или большими знаниями.
  • 0
    За всю свою программистскую жизнь не прочитал ни одной книги, только статьи и инструкции, когда припекало делать что-то новое и для грамотности кода пару статей.
    Возможно, дело в том, что я изучаю языки параллельно с решением задач. Сразу в жизни, как говорится. Мне так удобнее и это работает лично у меня. Навязывать метод никому не буду.
    • 0
      Зависит от языка. По php действительно очень много статей в интернете. А вот по Python, я все же бы рекомендовал взять книги. Сейчас статей по Python стало больше из-за роста его популярности, но много статей в интеренете, взято из книг. Кое-где грубая копипаста.
    • 0
      на чем пишете/писали? сколько лет программируете(профессионально ну и воообще)?
      • 0
        c, c++, c#, java, python на уровне «если надо, сделаю», то есть не слишком глубоко, веб языки (которые основные в моей работе) хорошо знаю. Это я про html+php+js и примыкающие вещи, типа css и мускуля. Для себя на баше и на луа могу заточить что-либо при необходимости (те же скрипты на серверах). Программирую лет пять, по профессии года три.
  • +1
    Автор пишет — 10 минут в день. Я, когда начинал писать, програмил по 5-6 часов в день, и меня это не утомляло. ИМХО, 10 минут — это не хватит даже нормально войти в контекст задачи, пару часов в день — что-то более похоже на правду. За мотивацию — если для Вас главное деньги — нормальным программистом вам не стать. Деньги могут быть дополнительным стимулом, но если Вы не фанатеете от процесса — можно и не начинать. От таких 10-минутников обычно получаются программисты, которые напишут «Hello world», но если им сказать вывести эту фразу 10 раз — они вместо цикла и выведут ее 10 раз. Еще раз повторю главную мысль — если Вы чувствуете удовольствие от процесса — Вы не будете замечать течения времени. Если же нет — найдите себе другую сферу деятельности.

    P. S. А за велосипеды — да, поддерживаю. Помню, как радовался, когда на паскале заставил двигаться пиксель по экрану клавишами курсора. Это был еще тот велосипед:)
    • 0
      10 минут ни у кого не получится, это хитрая попытка заставить человека заново прикоснуться к материалу. Бывают такие моменты, что уже ничего не хочется, а так сам себе говоришь: «Потрачу 10 минут, ничего страшного не случится». Это как игроки говорят себе: «Побегаю в игрушке 5 минут, всего лишь пять минут...»
  • 0
    Хорошо вам. А мне так надо выучить php чтобы набрасывать себе прототипы проектов, да боюсь что что-то упущу в процессе обучения. Мне кажется это слишком сложным.
  • –4
    Я поражён! В очередной раз излагается подход, подходящий одному, максимум двум из шестнадцати типов устройства мышления людей, и подаётся как очредная панацея, подходящая всем.

    Рецепт «делайте, не думая о страхе и вообще не думая, потом получаться начнёт» работает не для всех. Для большинства не работает.

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

    НЕЛЬЗЯ ТАК ДЕЛАТЬ! Вкурите описания людей из Соционики, посмотрите вокруг. Убедитесь, что люди разные! Убедитесь, что есть люди, которым легко даётся абстрагировать факты, а есть — которым легко удаётся помнить множество конкретных примеров, и нет людей, которым это даётся одинаково легко. Убедитесь, что есть люди, которым проще понять, чем посочувствовать, а есть наоборот. И так далее, ещё по двум дихотомиям. То, что соционика не умеет надёжно типировать никак не отменяет то, что эти наблюдения подтверждаются. И то, что у разных людей максимальные возможности в разных областях и главное — при работе разными методами!
    • –1
      «Вводное слово» тоже касается только автора и подобных ему. Мозги МНОГИХ других устроены ИНАЧЕ.
    • –1
      Факторы «личное желание» и «то, сколько времени вы готовы на это потратить» — не абсолютные конечные факторы, которые могут быть сами по себе, которые каждый может выбрать сам себе. Они тоже от зависят от других факторов. Нельзя делать вид, что они конечные. Это пудрит людям мозги.

      Конечные факторы — внешние обстоятельства. Нынешние, в которых приходится принимать решения, и прошлые, из которых сложился опыт. Плюс особенности личности, которые тоже сложились до неё и независимо от неё, которые составляют её основу. Да, часть из этих обстоятельств — это утверждения о том, что «ты должен хотеть», «ты можешь добиться», «ты идиот» и тому подобные. Но это не значит, что такими утверждениями нужно разбрасываться, как истинами.
    • –1
      Нет, конечно можно возразить, что «оно тут для гуманитариев написано, а это как-раз люди подходящих типов для этих рецептов» — но гуманитарии тоже все разные!
    • +1
      Соционика — это такая лженаука, да?
      • 0
        Конечно
      • 0
        не, вот так: Конечно
    • +1
      Скажите на милость, а лень присуща всем 16 видам мышления?
      • 0
        Конечно, но у каждого вида свои особенности и лени в том числе. И разные способы борьбы с нею.
        • 0
          То есть вы признаете, что у всех 16 видов есть нечто универсальное?
          И откуда вы взяли, что эти виды мышления как-то связаны с обучением?
          И что такое особенного в моей методичке, что не годится под обучение? Неужели конспектирование пройденного материала не годится не под один тип мышления? Вы хоть мою статью прочитали? Или взорвались после первого абзаца?
          • 0
            У нас и голова одна у каждого… универсального много, несомненно.

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

            Да, прочитал. Взорвался после первого, написал коммент, прочитал дальше написал ещё комменты.
            • +1
              Тут многие так комментируют. Глазами пробежались и их понесло.
              Обучение на основе соционики привело к кризису в образовании США. Если в России двоешник — это двоешник, то в Америке именуют их «альтернативно-успевающий». И ребенок выбирает сам предметы, а на олимпиадах побеждают в результате японцы и китайцы, где образование традиционное. Как бы не удивительно после этого, почему американцы недовольны тем, что они много тратят денег на космос 17 млрд, но в то же время жутко боятся террористов и готовы потратить 500 млрд в год на их уничтожение.

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

              Если у вас память хорошая, вы конечно, все можете запоминать, но именно конспектирование может значительно облегчить, потому что информация проходит по разным разделам мозга. И с этим невозможно поспорить. И я об этом написал в статье.
              • 0
                Описанное Вами образование в Америке ничего общего с тем, что я говорю, не имеет.

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

                Последуйте, наконец, совету из первого комментария, и почитайте описания типов вместо того, что б искать причины этого не делать…
                • +1
                  Я прекрасно понимаю в психологии, как бы есть родственники с таким образованием. Но согласно их совету, я не принимаю все на веру. Юнг не был кибернетиком, а информация в мозге сортируется, значит имеет иерархическую структуру, то есть похожа на работу процессора.
                  Что означает две вещи:
                  1) Различие между типами мышления такие же как между Intel и AMD
                  2) Мозг все-таки должны изучать кибернетики, а не психологи, которые больше похожи на алхимиков. Если бы это было не так, то психологи давно бы вылечили всех психов. А так их лечение похоже на микстуры алхимиков, что-то помогает, что-то травит. Они сами не знают, что они делают.

                  А что вы можете предложить сами? Предоставьте мне альтернативный способ обучения программированию. Давайте, я посмотрю, что вы можете предложить. Мне самому очень интересно.
                  • 0
                    habrahabr.ru/post/151091/#comment_5121093 было Вам, извините, промахнулся. Но пусть тут будет эта ссылка на ответ.
                    • 0
                      Я открыт для всего нового, если что-то предложите более лучшее, я буду вам аплодировать.
                      • 0
                        Я предложил — изучите описания соционических типов, держа в голове задачу их обучения.

                        Кстати, начните с Драйзера — мне почему-то кажется, он будет про Вас.
                        • 0
                          Нетушки, давайте-ка вы от критики перейдете к практике.
    • +1
      Соционика, на мой вкус, в очень многих местах пахнет бредом. Пробовал — знаю. Согласно соционике я вообще не программировать должен.
      • 0
        А Вы там в кого затипировались? И какие у Вас ощущения от программирования?
        • 0
          *программировать не должен.
          Пардон, опечатка.
          Ощущения — занимаюсь тем, что мне нравится, и тем, что у меня получается. А вот в кого меня оттипировало — предлагаю погадать вам. И мне в коллекцию, и вам интересно.
  • +1
    Креационисты тоже не всё на веру принимают, в эволюцию вот не верят… Это ничего хорошего о них не говорит.

    В мозгу информация связывается ассоциативными связями. Остальное — системный эффект. На процессоры современной архитектуры это не похоже ни разу.

    Кибернетика — устаревший термин, не имеющий смысла.

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

    Для того, чтобы видеть проблему, не обязательно знать её решение. Я не собираюсь писать альтернативный курс программирования для считающих, что это им не по зубам. Но вижу, что Ваш подход многим из них окажется вреднее, чем его отсутствие.
    • 0
      Мой подход и цель статьи была спровоцировать на действие. То есть вынудить человека просто попробовать. А там дальше сам разберется какой метод ему помогает.
      • 0
        Именно. Но если этот подход для него непримемлим, он ударит по его самооценке.
        • 0
          А ведь мы говорим о человеке, который итак не верит в свои силы на этом поприще!
        • 0
          А я как раз предложил метод, который не будет бить по самооценке. Потому что я уже через все это прошел. Это настолько универсальный набор действий, что когда о нем забывают, то как раз в себе разочаровываются.
          Вы этот метод не пробовали, но критикуйте. Причем это не мой метод, а собран из уже известных методик обучения.

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

          У меня тоже в голове есть нечто подобное соционике. Я вас ставлю на полочку «критиканы».
          • 0
            Или Робеспьер… Тоже невменяемые, на мой взгляд ДонКихота.

            Но двойку признаю, заслужил. Не учился ещё учить с учетом ТИМ…

            Научился лишь видеть, где за универсальное выдается очень ограниченное.
            • 0
              Просто критиковать любите не подумав. Я сжалюсь над вами, кое-что проясню.
              Есть три методики обучения придуманные человечеством:
              1) Добровольное
              Это когда вы сами учитесь, сами себя мотивируете, сами выбираете техники. Сами разбираетесь, что помогает вам, что действует на вас. Начиная от моей методички и заканчивая самогипнозом.
              2) Принудительное
              Это когда вы учитесь в учебном заведении. И вы вынуждены запоминать материал, иначе если не сдадите экзамены, будет плохо.
              3) Жестокое-принудительное
              Это когда вас связывают и подводят ток 220 вольт. За неправильный ответ получаете разряд. За любой крик о ваших правах — получаете разряд. За упоминание 16 типов мышления — разряд.
              При таком подходе работа памяти повышается на 500% и применима к любому типу мышления. Обучение также ускоряется.
  • +2
    Как научиться программировать? — Программируйте!
  • +1
    Привет от коллеги-историка )
  • 0
    «Глаза боятся, а руки делают»
    До чего глубокая фраза, в контексте программирования. Если разобраться.
    • 0
      Это же поговорка такая. Но она работает. Когда гуманитарий смотрит на код, он его пугается. Куча незнакомых символов, непонятный язык. Это отбивает всякое желание. Но если вопреки страху все же засесть за обучение, то оно произойдет.

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