Что значит программировать, и почему многие не понимают этот процесс
Что значит программировать. Почему многие не понимают этот процесс. Как решить эту проблему. И почему программирование всегда про рациональный подход.
7773 просмотров
Приветствую, этот пост — небольшое дополнение к посту про уч.материалы. Точнее, к 2 пунктам из того поста, я особо не акцентировал на них внимание(пост был о другом), но именно они, могут стать решением, чуть ли не самой большой проблемы на этапе изучения программирования.
Мой канал в телеге — https://t.me/tobeprog (там о самих методах обучения и обзоры на уч.материалы).
Проблема — непонимание самого процесса программирования. Мне кажется, она является чертой, определяющей получится ли в разработку или нет. Именно за ней, скрывается ситуация, когда учебный материал пройден, но изучивший абсолютно не умеет программировать, т.е. писать программы, решающие какие либо задачи, выходящие за пределы типовых описанных в уч. материале.
Президент Таджикистана ПОСТАВИЛ ПУТИНА НА МЕСТО — тот МОЛЧА кивал
Программирование — процесс который не понимают
Утрированный пример — есть менеджер, абсолютно не понимающий в разработке, и при этом стоящий над разработчиком(так быть, разумеется, не должно). Как он видит процесс работы программиста?
Программист смотрит документацию(он что ее не выучил?), это еще что, он буквально гуглит какие то решения(точно ничего не знает) и смотрит чужой код(ну это уже за гранью наглости), да и к тому же в конце его всегда ждут ошибки(и почему его вообще взяли?) и вообще пол дня сидит, бороду чешет уставившись в экран.
Очевиден сюр подобных умозаключений. Понятное дело, никто так не думает, и менеджеров таких нет, но если уменьшить градус бреда, то так ли далек этот утрированный пример от отношения к разработке за пределами it?(напомню, новички именно за этими пределами)
Программирование, безусловно, техническая профессия(наверно даже, самая техническая), однако, описанное выше не особо ложится на представление о чем строгом и точном. К примеру, вы бы точно не хотели лететь на самолете который разрабатывают в расчете сопровождения после выпуска, будут допиливать и исправлять ошибки, после каждого полета.
Довольно интересно наблюдать, как сами разработчики пытаются подобрать понятную метафору для этого процесса, к примеру, нередки сравнения с творчеством(если хочется покопаться в теме метафор, то довольно интересно это описывает Макконнелл, во 2 главе “Совершенного кода”)
Получается интересный набор — странные свойства процесса, сравнения от которых вопросов становится лишь больше, но при этом невероятная эффективность и производительность(даже менеджер из утрированного примера должен это заметить).
При этом, со стороны программистов, эти свойства, эти описания и вообще сам процесс настолько очевидны/логичны/правильны, что об этом как будто бы, нет смысла даже говорить.
Немного про сам процесс
Важно понять, программирование — не выученный синтаксис языка, программирование — умение решать задачи. Не решение задачек из книжки, или курса, а умение решать свои задачи с помощью кода(немного отдает пафосом — но это, про то как думать в некой сложной системе, недостаточно просто ее выучить).
Ишак делает хорошо узбеку!
Программист как бы постоянно выстраивает структуру будущей программы, выставляет какие то чекпоинты и идет по ним, создавая и заставляя эти куски функционировать как ему надо, можно даже не знать, как в точности, сделать определенный кусок, но важно понимать как его сделать.
Сложность — в умении выстроить эту структуру, это и отличает хорошего программиста, он куда более элегантен в своих решениях, но сам метод одинаковый. С одинаковыми побочками — вне зависимости от уровня, разработчик так же вылавливает и исправляет ошибки, и так же может посмотреть какое то решение, но повторюсь, хороший — делает это куда более эффективно.
Именно такой подход и порождает “странные” свойства самого процесса, по идее, именно на нем и стоит сосредоточиться. Но вместо этого, учебные материалы зачастую берут другой вектор — вместо того, чтобы учить программированию, они зачастую учат просто синтаксису(думаю это очевидно, но на всякий случай напишу, я не говорю о том, что учить синтаксис не нужно, это просто нелепо).
Зачастую, самому процессу программирования уделяют(если вообще уделяют) очень мало внимания. Нопо сути, яп — лишь инструмент, можно сказать переменная, а сам процесс программирования — постоянная. Именно поэтому, многие разрабы скажут, что абсолютно неважно с какого языка начнешь учить, и могут даже предложить достаточно экзотический вариант(сразу на ум приходит легендарная книга из 80-ых, написанная в MIT, где яп — lisp), главное — понять сам процесс.
Как же понять этот самый процесс?
Вернемся к тем 2-ум пунктам из поста про уч.материалы, но перед этим, пару слов о питоне и почему вообще, это один из лучших вариантов первого япа.
Он простой, при этом позволяет очень быстро писать сложные программы или их рабочие прототипы, т.е. как можно быстрее прийти к тому самому процессу программирования. Также можно ограничить круг задач, тем самым еще ускорив этот переход(в посте про уч. материалы — все что связано с автоматизацией рутины(п.1.)).
1. Чтобы понять процесс программирования, для начала надо его увидеть.(увидеть процесс программирования и досконально понять код — разные вещи, нам нужно именно само мышление).
https://www.youtube.com/watch?v=vpyWbpdk3Xs серия видео, где показан именно тот самый процесс мышления при написании программы.
Будет позитивной практикой, время от времени пересматривать и отмечать что-то новое, трекать свой прогресс. Можно считать видео ориентиром, когда подобный способ понят, понят и сам процесс программирования.
2. https://stepik.org/course/4519 курс в котором учат гуглить, искать на StackOverflow, читать документацию, и юзать библиотеки. Это тот самый подход, про такую — трушную практику. В каком то смысле, здесь учат делать, как в видео выше.
Забавная штука насчет этого курса, пару раз видел реакцию, из разряда — “какой ужас, в нем ищут ответы на StackOverflow”. Это идеально иллюстрирует то самое “непонимание процесса” из начала поста.
Программирование всегда про рациональный подход
Есть еще один важный момент, касаемый странных свойств процесса — программирование всегда про рациональность.
Лучше раньше об этом узнать(и принять), отпадет куча вопросов и сохранится куча нервов. Рациональность — в буквальном смысле слова, всегда выбираем более выгодный вариант.
Многих новичков смущает, что в тех же ЯПах есть проблемы/неудобства, о которых все знают(и обсуждают), но, кажется, ничего по этому поводу не делают. Во-первых — это не так, ЯПы постоянно прогрессируют/исправляются, иногда плавно, иногда весьма радикально(когда Python разошелся на 2.x и 3.x версии). Во-вторых, не всегда исправление — рациональный вариант, к примеру, если оно коснется чего то глубокого, после него придется затратить кучу ресурсов(переписать огромное количество кода), учитывая ‘наслоение’ технологий друг на друга, это может, стать невыполнимой задачей.
Если в программировании, на первый взгляд, что-то кажется не рациональным, стоит взглянуть на всю систему в целом, с большой вероятностью, из виду упущен какой то важный момент.
К примеру, существование какой то распространенной практики всегда рационально, иначе она бы не распространилась. Возьмем те же, стандарты оформления кода(стиля), крайне удобная штука, но видно это будет, когда начнется работа с большим количеством кода(особенно чужого).
Источник: dtf.ru
Какие знания нужны, чтобы написать первую программу
От гикбрейнс ощущение как от бизнес молодости, почему то. И статья больше подходит для формата Пикабу, чем для цп, имхо.
Развернуть ветку
Вся правда про курсы рассказана тут — http://ebanoe.it/category/courses . И, кстати, про гикбрейнз там тоже есть.
Развернуть ветку
Прошли курс и вдруг как стали программистами 🙂 Создали программу, продали за миллион и теперь курите в сторонке. Почему не кто не пишет про гемор, который постоянно присутствует в этом деле. Или почему не рассказать сколько г*кода нужно написать, для нормальной работы. А курсы да, это важно!
Развернуть ветку
Что плохого в том, что кто-то пройдёт бесплатный курс по программированию? Даже если человек не станет профессиональным разработчиком, то он хотя бы станет адекватным заказчиком. 🙂
Развернуть ветку
Как раз самые страшные те, кто думают что разбираются — сожрут мозг.
Развернуть ветку
Конечно) как же после этого Заказчика на *бать , объяснив что двухдневная работа стоит как запуск МКС в космос
Развернуть ветку
Уважаемый вы когда в кино ходите и берете например вип кресло — это получается наи..ть со стороны кинотеатра или как? Или гипотетически — я засаживаю джуна что-то пилить он это делает за неделю, второй человек за 4 часаили до этого мы сделали модуль за 3 недели но его поставить сейчас — 10мин, сколько это будет стоить? Опять же кто мешает заказчику рассказать, что пока он в онлайне дуб — то не стоит лезть в инет, или стартовать лучше с максимально дешевых решений, набить шишку и приходить к нам — где дорого, но заточено все конкретно под его бизнес-процессы, что если его беспокоит цена за час — то можно и дешевле и результат он тоже может получить (а не парить мозг, про кач-во лучших мегаспецов и топ дизайнероф всия рунета), но только придется в это время заниматься не бизнесом, а поиском и руководством кадров, и ведением проекта, и сожрет это дело намного больше времени. Если мы говорим про обмануть — так вот обмануть это как раз писать https://geekbrains.ru/professions/python_developer что курс за 5 месяцов заменит нормальное айтишное образование и при этом давать еще гарантии
Оперируя вашими терминами — сделайте ох..й сервис, вникайте в бизнес заказчика, советуйте и будьте прозрачным в общении, постройте оперативную и понятную для него обратную связь и тогда не надо будет наебыв..ть.
Развернуть ветку
«Войти-в-айти» или «наговнякай на js под бряузер и стань погромистом».
Развернуть ветку
Учить программированию на нетипизированных языках.
Развернуть ветку
Справедливости ради, все-таки типизированных, но с динамической типизацией.
Развернуть ветку
Хотите стать миллионером — мы знаем как этого достичь! Совершенно бесплатно вы станете успешными и богатыми. Всего пять золотых!
Развернуть ветку
Я вот курс по Python для SMM-щиков начал составлять.
Какие знания нужны? Уметь читать осмысленно, пробовать делать, уметь искать ответы, просить помощи у других
Источник: vc.ru
Что делает программа
Вернёмся к компьютерам традиционным. То есть к ЭВМ — электронно-вычислительным машинам.
Подробно расписывать принципы загрузки программ в память и их выполнения я не буду. Это описано в книге Как стать программистом.
Здесь вам нужно только понять, что компьютер работает с какими-то данными. И любая программа получает какие-то входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат (выходные данные).
Давайте попробуем добить наш пример с походом за молоком.
Входные данные
Как вы уже знаете, в программу нужно передать какие-то данные для обработки. В нашем случае входными данными будут:
- Деньги из тумбочки
- Информация о погоде
Обработка данных
- Программа определяет погоду, и тепло одевается, если на улице холодно
- Программа идёт в магазин
- Программа меняет деньги на молоко
- Программа возвращается домой
Выходные данные
- Молоко
- Сдача в тумбочке
Важный вывод, который вы должны понять и запомнить:
Программа получает входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат.
Разумеется, данные — это понятие растяжимое. Вот с этим растяжимым понятием мы и будем разбираться в следующих статьях.
Домашнее задание:
Возьмите алгоритмы, которые вы составили в предыдущем уроке, и попробуйте выделить в них три блока: входные данные, обработчик данных, выходные данные.
Источник: info-master.su
Программист: типы профессии, зарплаты, как стать и где учиться
Рассказываем подробно, как быстро стать программистом, какие есть специализации программистов, где на них учат и сколько они зарабатывают. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Кто такой программист
Программист — это разработчик алгоритмов и компьютерных программ. Он пишет их на специальных языках. Во всём мире программисты очень востребованы, их работа хорошо оплачивается: зарплата программиста в России в диапазоне 80 000–220 000 рублей, тимлиды — TeamLead и техлиды — TechLead (специалисты высшей квалификации) получают больше: 250–400 тысяч рублей. Пройдите короткий бесплатный тест, чтобы понять, можете ли вы быть программистом.
Стать программистом можно в любом возрасте. Профессия подходит мужчинам и женщинам с хорошими аналитическими способностями, логикой, знанием математики (в некоторых областях разработки) и обязательно английского языка. В программировании ценятся не только практические навыки, но и идеи.
Новогодняя акция в онлайн-университете Skypro! Новая работа в новом году!
Только до 29 декабря скидки на профессии с гарантированным трудоустройством и фиксированной зарплатой.
✨А что вы подарите на Новый год себе?
Только до 30 декабря от онлайн-университета Talentsy: 2 курса по цене 1 (психология, астрология, мода и стиль, дизайн интерьера, нутрициология).
Источник: www.profguide.io