Войти в IT

топ 100 блогов hardsign30.01.2023

Войти в IT ploughlike_elk задал интересный вопрос – а с чего начать изучать программирование? Вопрос настолько здорово сформулирован, что приведу его здесь полностью:

Наверное дурацкий вопрос, но вот с чего именно посоветуете начинать начинающим?

Я когда-то начинал с программируеммых микрокалькуляторов (если кто помнит такие с их программами в сотню шагов или типа того), потом Бейсик на школьном компьютере БК-чего-то-там (на который я переписывал игры с тех самых микрокалькуляторов), потом Бейсик на ZX Spectrum и потом Ассемблер для него же. Вот для программирования на Ассемблере мне тогда уже не хватило аппаратной части: не было дисковода, а запись и считывание с магнитофонной кассеты для прогонки написанного кода занимала слишком много времени. ZХ-128 с дисководами тогда стоил как сильно подержанная машина, а уж про "IBM-совместимый" компьютер можно было и не мечтать, такие были только в организациях. В общем, тогда победило другое и более сильное увлечение, автомобилями. Сперва много, реально много прочитанных книг по устройству автомобиля и хорошее понимание теории в этом плане. А потом уже первый Жигуль, практически полностью разобранный-собранный собственными руками чтобы это само ехало и более-менее неплохо выглядело... Ну а дальше уже другие люди сами приходят и просят им починить машину, и пошло и поехало.

Так вот что у нас будет аналогом книги "Устройство автомобиля" и Жигулей-копейки в программировании? Если вообще можно так ставить вопрос?

По своему опыту попыток войти в тему я могу сказать что спотыкаюсь на постановке самому себе интересных задач. Я стал изучать Python, сделал калькулятор, сделал конвертер, а дальше всякие курсы и книги предлагают сделать какой-нибудь Asteroid Shooter и на этом месте я теряю интерес. Я понимаю что делает код и как он создает картинку на экране реагирующую на user input, но слишком многое происходит "под капотом", с использованием всяких библиотек, т.е. огромного количества кода написанного другими людьми. Мне лишь предлагается воспользоваться им приняв как должное что он просто работает. Просто напиши правильно вызов функции или класса - и он сам все сделает. Так неинтересно!

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

На самом деле ответ содержится в самом вопросе, надо лишь внимательно его перечитать.

Допустим, я спрошу собеседника:

– А зачем ты ремонтируешь машины?

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

– Ну очевидно, чтобы ремонтировать машины! Чтобы машины, которые не могли ездить, ездили! Что ж тут непонятного?

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

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

Те, кто играет в компьютерные игры, считают, что игры интересны всем просто по определению. Вот и предлагают в качестве учебного задания написать игру. А моему собеседнику это внезапно не интересно. И я его понимаю – мне это тоже не интересно. Я в своё время даже умудрился рассказать на собеседовании самому Евгению Сотникову, что компьютерные игры – бесполезная трата ресурсов и времени.

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

Допустим, вы – офисный клерк, который постоянно заполняет формы в Excel’е и рассылает горы писем. Подумайте, какие задачи за вас мог бы делать робот. Попробуйте записать в Excel’е макрос, разберитесь, как он работает. Visual Basic – очень простой язык, в нём всего десяток конструкций. Изучение программирования сведётся к изучению объектной модели Excel. А потом освойте такую нехитрую операцию как mail merge. А потом само собой придёт понимание технологии OLE... Бывают, правда, злобные корпоративные программы, не допускающие никакой штатной автоматизации. В этом случае Войти в IT Аркадий Гилев рекомендует обратить внимание на Python и библиотечку PyAutoGUI.

Или, допустим, вы – интернет-боец невидимого фронта, убеждённый, что Власти Скрывают™, журналисты обманывают, все данные на самом деле лежат в открытом доступе, но средний тупой и ленивый юзер просто не может сделать из них правильный вывод. В этом случае выбор – язык Python, книга Тоби Сегарана «Программируем коллективный разум», библиотека Pandas и сайт Госкомстата и Госдепа. Скачайте данные, найдите Тренд, постройте Диаграмму и выведите на чистую воду полную лажу тайную ложу, правящую миром.

А может, вы в детстве читали Азимова и Гаррисона, и теперь вам хотелось бы домашнего робота, который бы бегал по комнатам, смешно спотыкаясь, и моргал лампочками? Тогда ваш выбор Arduino. А чтобы изучить таинственный язык, на котором программируют роботов, прочтите классическую книгу Брайана Кернигана и Денниса Ритчи «Язык программирования C».

Ой, вы не клерк и не фантазёр, а простой предприниматель. Который понимает, что управленческий учёт построен абсолютно неправильно, а стоит лишь по-умному считать дебет с кредитом, как прибыль попрёт вверх (реальный, кстати случай; дорогой А., если ты читаешь этот текст, привет тебе!) Тогда ваш путь – 1С со всеми его если-то-иначе-всё.

Что посоветовать автомеханику? Сложный вопрос. Наверно, почитать всякие статьи по темам «базы знаний» и «экспертные системы». Это совсем не похоже на изучение устройства компьютера, зато похоже на изучение устройства данных, что намного интереснее. И кто знает, может в результате получится такая система, которую подключаешь к сканеру, а она такая «масло надо было поменять ещё 10000 миль назад, у правого переднего колеса развал уехал на полминуты, а если вы вотпрямщаз не замените деталь XYZ123456 (ссылка на eBay), то своим ходом машина доедет только до свалки» – как в известном анекдоте.

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

Есть, правда, и такая формулировка задачи: «хочу много денег, а айтишники – они же все сидят в тёплом офисе, ничего не делают и гребут деньжЫщи». Тут тоже просто – читайте какую-нибудь брошюру типа «Java за 21 день», выполняйте упражнения в конце каждой главы и пополняйте армию говнокодеров, написав объявление на Тиндер HeadHunter. Вторым Биллом Гейтсом не станете, но на доширак, пиво и Hyundai Solaris в кредит заработаете всегда.

Оставайтесь с нами, и вы узнаете, как стать хорошим программистом.

Оставить комментарий

Архив записей в блогах:
            Музыкальный комплекс Медведева           Дача Путина ...
Встретился я тут со старинным приятелем. Не виделись много лет. И стало мне дорогие товарищи очень грустно. Нет, на жизненном пути, тем более в такой стране как Россия, может произойти всякое и происходит, но если вы гарантированно хотите превратить свою жизнь в леденящий душу пиздец вам ...
При быстром проглядывании новостей, заглянувший в Черное море американский эсминец "Дональд Кук" был мной прочитан как "Дональд Дак". И сколько же картинок сразу всплыло в мозгу! Дональд Дак, проходящий армейскую службу на авианосце в "Утиных историях" (нет, это не память у меня хорошая, ...
Фотограф Jeff Cunningham запечатлел альпиниста Дина Поттера, переходящего по канату через 300-метровую пропасть безо всякой страховки.В  В  Место называется Taft Point (Йосемитский национальный парк, Калифорния). В  В  ...
Петербуржец Артём Владимирович Чеботарёв , похоже, не ждал визита бойцов спецназа ФСБ, уложивших его ипальником в пол. Как-то не слишком сильно обрадовался. Странно. Кто есть тридцатишестилетний Артём Чеботарёв? Один из создателей сепаратистского движения "Свободная Ингрия" ...