Как начать программировать? / Хабр
Для кого эта статья?
В первую очередь для тех, кто интересуется программированием, но не знает как к нему подступиться.Ведь это неизвестность, которая всегда пугает.
Ко мне периодически обращаются юноши, которые горят желанием программировать, но теряются. Действительно, есть много такого, что хочется создать своими руками. Много разного. Чаще всего молодёжь хочет написать крутейшую игру, которая будет работать на слаааабенькой видеокарте 🙂 Мне приходится их разочаровывать. Дело в том, оптимизация программы не менее сложная работа, чем её написание. целые команды профессионалов работают над этим. И наивно полагать,сто один разработчик,который только начал изучать азы программирования окажется более эффективным в этой задаче. Задача «крутая игра на слабом железе» возникает от невозможности позволить себе дорогую видеокарту. Обычно такую задачу ставят себе старшеклассники, либо студенты начальных курсов институтов.
Один из моих студентов со временем понял, что заниматься WEB программированием (не путать с вёрсткой) намного интереснее. А крутую видеокарту можно купить на нормальную зарплату программиста, без особого ущемления других своих потребностей.
Платформы
Итак, первым шагом определяем, что именно хочется программировать. В какое именно устройство вложить свой мозг и для чего это нужно именно Вам (может, просто для высокой зарплаты).
Основных направлений не так уж много:
Windows
Linux
MacOs
WEB-приложения
Мобильные приложения (Android, iOS)
Виртуальная и дополненная реальность AR/VR
Мультимедиа (Фото, видео и звук)
Встроенные системы и IoT(типа, Arduino, STM32, AVR, ESP и т.п.)
Наверняка есть ещё направления. Более экзотические. Или комбинации из перечисленных. Например, дополненная реальность в мобильных приложениях…
Выбирайте, с какими устройствами Вы хотите работать и переходим к следующему шагу.
Инструменты и технологии
Для каждой платформы есть свои инструменты разработки и отладки.
Конечно же, все эти инструменты перечислять бессмысленно. С этим списком ничего невозможно сделать.Вам нужно выбрать инструмент по какому-то критерию. Лучше всего — по популярности. Дело в том, что в разработке всегда, возникают неожиданности. В лучшем случае, это Ваши ошибки, в худшем — ошибки самих инструментов и целевых платформ. Обычно, программист получает сообщение об ошибке. Затем гуглит это сообщение, чтобы решить проблему. Чем популярнее инструмент — тем больше вероятность, что решение будет найдено.
Со временем Вы поймёте, что инструмент выбирается под конкретную задачу. Когда Вы только начинаете изучение — Вам лучше всего выбрать именно популярный инструмент. Он стал популярным не случайно. Например, в WEB программировании самый популярный инструмент это Node.js с его кучей готовых компонентов и библиотек. По сути, готовых решений.
Лёгкий старт
Для того, чтобы новичку придать начальное ускорение в каждом развитом технологическом решении (платформа + инструмент) есть примеры готовых приложений, которые можно просто собрать и запустить на выполнение. Посмотреть как оно работает. Поизучать какие изменение в тексте программы как влияет на исполнение приложения. Есть так же образцы кода, которые можно скопировать в своё приложение. На жаргоне программистов это называется «скопипастить» от слов Copy + Paste Правда, они могут не всегда работать 🙂
Примеры есть как в наборе инструментов, так и вообще на просторах интернета. Самая высокая плотность примеров и образцов — это GitHub. Что такое GitHub и git — описывать не буду. Об этом достаточно написано статей, документации, видеороликов. Скажу только одно — использование системы управления версиями в работе — привычка профессионала. Это нужно для сохранения всей истории измений Вашего кода. Это сильно упрощает жизнь. Чем дольше и сложнее разработка — тем больше облегчается жизнь.
Так что, если у Вас с программированием серьёзные отношения придётся изучить ещё и git. Именно git — по причине самой высокой популярности. На первых порах достаточно знать и понимать не больше десятка команд, так что на пугайтесь. Тем более, что для git существуют разные графические интерфейсы, с помощью которых можно работать с историей изменений более наглядно. Многие компании исторически используют другие системы управления версиями. имея опыт с git для Вас не составит большого труда изучить и другую систему.
Живое сотрудничество
Итак, Вы определились с целевой платформой, задачей и технологией. Что дальше. Пришла пора практических шагов. Установка необходимого ПО. Тех самых инструментов. Как правило, на первых порах выбирают интегрированную среду разработки IDE, где редактор, отладчик, компилятор ( или интерпретатор ) находятся «в одном флаконе». Процесс разработки максимально упрощён. Но даже при этом упрощении на обойтись без инструкций, как этим пользоваться В самом комфортном варианте — это видеоинструкции. Обычно на youtube этих инструкций много и нужно подобрать ту, которая для Вас наиболее доходчива. И всё равно, готовьтесь к тому, что какие-то вопросы нужно будет задать живым людям. Либо в форумах, либо авторам видеоуроков, либо, просто, знакомым, которые в теме. Кстати.достаточно эффективный ресурс qna.habr.com Здесь вероятность найти компетентного человека очень высока. Сам пробовал. Правда, бывают такие вопросы, на которые может ответить только автор технологии. С этим вопросом мне пришлось обращаться в STM И несколько недель ждать ответа.
Тайные смыслы
Наконец-то первое приложение из примера собрано, запущено, протестировано. Однако, хочется, чтобы программа была своя и имела именно тот функционал, который хочется Вам, а не тот, который заложил автор примера. Вот тут придётся попотеть. Дело в том, что язык программирования — это ЯЗЫК. он предполагает некоторый набор смысловых конструкций. Если Вы программист — Вам нужно вникать в самые разные смыслы. Смысл переменных, объектов, функций, библиотек, ключевых слов, директив, примитивов, запросов. Вам нужно вникать в смысл того, что вы сейчас используете. Где это находится, как это работает? Я бы сказал, что работа — исследовательская. Контрольный вопрос: «Вы готовы заниматься исследовательской работой?»
Почему так сложно? Потому, что современное программирование давно и далеко ушло от своих истоков. Наработано огромное количество технологий, библиотек, компонетов и прочего кода, который хочется использовать повторно. На жаргоне это называется Reuse (реюз) Встают практические задачи совместно использовать один компонент с другим, одновременно использовать разные компоненты, в одном приложении или системе использовать различные технологии одновременно. Такая задача называется интеграцией. Сборкой чего-то целого из частей. И программисты часто сталкиваются с проблемой совместимости этих самых частей. возникают ошибки, конфликты сборки и исполнения, различия систем понятий. Чтобы разрешить проблемы нужно глубоко вникать в детали и подробности. Глубже и глубже. Делать предположения, проверять их. Затем тестировать. В общем, это целый мир. «Зазеркалье»
Хотите туда? Интересно? Тогда дерзайте.
Эта статья не претендует на введение в специальность.
Она была написана постольку, поскольку вопросы задаются и я на них отвечаю.
Можно ли начать программировать в 40 лет
akipolkaso
akipolkaso
- #2
Пожалуйста имейте ввиду, что этот пользователь забанен
А почему нет? Можно ПО писать на заказ
Позитивный голос 0
лол
лол
- #3
Позитивный голос 0
danilko 5535
danilko 5535
- #4
Не советую, в таком возрасте мало куда берут, только время потраченное, да и мозги не так уже работают
Позитивный голос 0
alexdav
alexdav
- #5
кодь на здоровье, кто запретит.
основная работа, поди, в 40 уж есть — вот на своих задачах и тренируйся.
Позитивный голос 0
паша_116
паша_116
- #6
«начать кодить и там расти» — можно, только школу закончи сначала.
Позитивный голос 0
scatha
scatha
- #7
Шанс велик. Спрос есть. Программирование не основано ни на каких других знаниях (в том числе не требует знания математики).
Позитивный голос 0
GamBit
GamBit
- #8
Если ты находишь свободное время от работы, то, конечно же, можно это посвящать изучению программирования.
Но скажу так:
На рынке сейчас мало работодателей, которым нужно ЧИСТО питонист. В большинстве своём, программист, которого ищут работодатели, должен знать по меньшей мере 3 языка программирования. А чаще — даже больше.
Хотя на деле — это лишь звучит страшно. Сейчас такое время, когда тебе не нужно сильно париться над написанием программы, так как всю низкоуровневую работу — сделали за тебя ещё много лет назад! А высокоуровневый кодинг — похож между собой в любом языке.
По математическому складу ума — это хорошо. Не будет проблем на первых парах (я пытался учить людей писать простейшие программы на Python и некоторые даже банально не понимали, что такое переменная, как и почему она хранит данные, лол).
Скажу так:
Вряд ли ты сможешь расти в этой области. Ты можешь изучить на хорошем уровне Python и писать определённого рода скрипты под заказ на фрилансе, что, в принципе, неплохо, но человек-фрилансер — не человек по определению, так как идея фриланса лишь звучит круто, а на деле — ты сидишь с копейками в кармане, весь потный за своим монитором и надеешься найти хоть какое-то задание, которое тебе по силам и которое ты можешь выполнить в поставленные сроки.
А работать на фрилансе придётся, так как это пойдёт в твоё резюме, если ты попробуешь устроится на работу в какую-нибудь компанию.
Позитивный голос 0
ruslan400
ruslan400
- #9
Начать — можно, программировать — нет.
Если ты, конечно, по основной работе не математик.
Позитивный голос 0
Andrey.roval
Andrey.roval
- #10
Можно начать и тут же закончить.
Позитивный голос 0
cruelma
cruelma
- #11
разрешаю
Позитивный голос 0
valtor
valtor
- #12
лучше поздно — чем никогда
Позитивный голос 0
dragan
dragan
- #13
А почему нет? 40 лет это приговор что-ли?)
Позитивный голос 0
Как мне начать кодирование моего ребенка?
Возможно, вы много слышали о программировании и о том, как важно, чтобы дети начали изучать программирование как можно раньше. Компьютеры стали частью нашей жизни, и мы говорим не только о ноутбуке или настольном компьютере, который может стоять у вас дома или на рабочем столе. Ваш телефон, ваша микроволновая печь и ваш автомобиль управляются компьютерами, и этим компьютерам нужны инструкции, чтобы сказать им, что делать. Кодирование или компьютерное программирование включает в себя написание этих инструкций.
Если дети обнаружат в себе любовь к программированию, у них появится возможность делать то, что они хотят делать; писать программы и создавать проекты, которые они находят полезными, забавными или интересными. Так как же дать ребенку возможность научиться кодированию? Ниже мы перечислили некоторые бесплатные ресурсы и рекомендуемые действия.
Scratch Junior
Если у вас есть маленький ребенок в возрасте до 7 лет, то лучше всего начать с ScratchJr. Это приложение, доступное на телефонах и планшетах Android и iOS, позволяет детям изучать основы программирования, не беспокоясь об ошибках.
Code Club World
Фонд Raspberry Pi разработал ряд мероприятий для юных учащихся, которые стремятся развить свои компьютерные навыки. Code Club World предоставляет детям платформу, на которой они могут играть с кодом, создавая собственный аватар, заставляя его танцевать и проигрывая музыку. Кроме того, они могут делиться своими творениями с другими учащимися.
«Вы тоже можете попробовать вместе открыть для себя Scratch. Платформа предназначена для начинающих, и с ней очень весело играть».
Кэрол Торнхилл, магистр инженерных наук, учитель математики
Scratch
Для детей от 7 до 11 лет Scratch — это хороший способ начать свой путь в программировании или прогрессировать в ScratchJr. . Как и ScratchJr, Scratch — это блочный язык, позволяющий детям собирать код для создания игр, анимации, историй или даже использовать некоторые надстройки для взаимодействия с электронными устройствами и изучения физических вычислений.
Девушка с проектом Scratch, который она закодировала.Фонд Raspberry Pi имеет сотни Scratch-проектов, которые может опробовать ваш ребенок, но лучше всего начать с курса «Введение в Scratch», который даст вашему ребенку необходимые базовые навыки, а затем побудит его создавать проекты. которые имеют отношение к ним, кульминацией которых стало создание их собственной интерактивной электронной книги.
Попробуйте интерактивную анимацию, написанную на Scratch
Ваш ребенок никогда не устанет от Scratch, и это абсолютно нормально — это полностью функционирующий язык программирования, удивительно мощный, когда вы научитесь понимать все, что он может делать. Еще одно преимущество Scratch заключается в том, что он обеспечивает легкий доступ к графике, звукам и интерактивности, чего может быть сложнее добиться в других языках программирования.
Python
Если вы ищете более традиционные языки программирования для вашего ребенка, особенно в возрасте 12 лет и старше, тогда мы хотели бы направить наших юных учеников к языку программирования Python и к языки, на которых построена Всемирная паутина, в частности HTML, CSS и JavaScript.
Анимация, написанная с помощью Python.Наши ресурсы по Python охватывают основы использования языка, а затем продвигаются дальше. Python — один из наиболее широко используемых языков, когда речь идет об искусственном интеллекте и науке о данных, и у нас есть ресурсы, чтобы помочь вашему ребенку в изучении этих увлекательных аспектов технологии. Наши проекты могут даже познакомить вашего ребенка с миром электроники и физических вычислений с помощью занятий, в которых используется недорогой Raspberry Pi Pico и несколько электронных компонентов, что позволит вашим детям создавать самые разные художественные инсталляции и полезные гаджеты.
Python — отличный текстовый язык программирования для изучения молодыми людьми.«Попробовать Python не означает, что вы не сможете вернуться к Scratch или переключаться между Scratch и Python для различных целей. Я до сих пор использую Scratch для некоторых проектов!»
Трейси Гарднер, доктор компьютерных наук, бывший архитектор программного обеспечения IBM, а в настоящее время автор проекта в Raspberry Pi Foundation
Проекты по программированию
На нашем веб-сайте, посвященном программированию, есть множество различных проектов, которые помогут вашему ребенку научиться кодированию и цифровому созданию. Они варьируются от ресурсов для начинающих, таких как «Введение в Scratch», до более продвинутых занятий, таких как «Введение в Unity», где дети могут научиться создавать трехмерные миры и игры.
«Наши новые проекты могут быть реализованы молодыми авторами самостоятельно, без вмешательства взрослых. Пути структурированы таким образом, что они формируют навыки и уверенность на ранних этапах, а затем предоставляют более открытые задачи и вдохновляющие идеи, которые создатели могут адаптировать или использовать».
Рик Кросс, бакалавр наук (с отличием), PGCE, бывший учитель и директор по неформальному обучению в Raspberry Pi Foundation
Веб-разработка
Интернет является неотъемлемой частью нашей жизни, и мы считаем, что это важно для детей иметь представление о технологии, которая управляет им. Вот почему у нас есть курс «Введение в веб-разработку», который позволяет детям создавать свои собственные веб-страницы с помощью HTML и CSS. Путь помогает им создавать веб-страницы, которые им небезразличны, и они также узнают о доступном веб-дизайне.
Дети узнают, как веб-сайты, которые они посещают, создаются с помощью кода.Клубы программирования
Клубы программирования – это отличное место, где дети могут весело провести время и стать более уверенными в программировании, где они могут учиться, создавая и делясь своими творениями друг с другом. Raspberry Pi Foundation управляет крупнейшей в мире сетью клубов кодирования — CoderDojo и Code Club.
В Code Club и CoderDojo многим молодым людям нравится объединяться для совместной разработки проектов.«Каждый год в моем клубе Code Club появляется новая группа авторов, и мне больше всего нравится, когда они понимают, что действительно могут дать волю своему воображению. Вы хотите сделать анимацию, в которой говорящий ананас гонится за снеговиком — обязательно. Хотите сделать произведение масштабируемого искусства из 1000 пиксельных мультяшных музыкальных инструментов — вперед! Если вы можете это закодировать, вы можете это сделать»
Лиз Смарт, наставник Code Club и CoderDojo, бывший архитектор решений и автор проектов для Raspberry Pi Foundation
Задачи по программированию
После того, как ваш ребенок освоит некоторые основы, он может с удовольствием принять участие в задаче по программированию! Европейская программа Astro Pi Challenge позволяет молодым людям писать код и фактически запускать его на Международной космической станции, а Coolest Projects дает детям возможность продемонстрировать свои проекты со всего мира.
Девушка со своим закодированным творением на личном показе «Самых крутых проектов».Бесплатные ресурсы
Независимо от того, с какими технологиями хочет работать ваш ребенок, есть множество бесплатных ресурсов и материалов, доступных от таких организаций, как Raspberry Pi Foundation и Scratch Foundation, которые готовят молодых людей к жизни в 21 веке. Если они хотят стать профессиональными инженерами-программистами, повозиться с электроникой или просто поиграть… предложите им изучить некоторые проекты по кодированию и посмотреть, что они могут узнать, создать и сделать!
Автор: Марк Скотт, бакалавр наук (с отличием), бывший преподаватель естественных наук, информатики и инженерии, а также руководитель проектов Raspberry Pi Foundation .
Microsoft MakeCode
Microsoft MakeCodeMake & Code
Microsoft MakeCode — это бесплатная онлайн-платформа для обучения программированию, на которой каждый может создавать игры, программировать устройства и модифицировать Minecraft!
Создавайте аркадные игры в стиле ретро
Более 100 игровых механик, готовых добавить в вашу игру
Начать кодирование Узнать больше
Написание программ для micro:bit
Карманный компьютер, который можно встроить в любой проект — оборудование не требуется
Начать кодирование Узнать больше
Кодовые моды для Minecraft
*Требуется Minecraft Education
Получить доступ Узнать больше
Любой человек с любым уровнем навыков может кодировать
Развивайте свои навыки кодирования, переходя от блочного кодирования к таким языкам, как JavaScript и Python.
Быстрое начало работы с блочным кодированием
Исследуйте библиотеку блоков и расширений MakeCode, которые открывают бесконечные возможности для любого новичка в программировании.
Переход к JavaScript и Python
Вы уже разбираетесь в концепциях кодирования? Переключитесь в режим текстового кодирования и напишите свой следующий проект на Javascript или Python.
Загрузите свой код на физические аппаратные устройства
Вы создали что-то, чем гордитесь? Перенесите свой код в физический мир, запустив его на различных физических устройствах.
Узнать больше
Преподавание компьютерных наук
MakeCode предлагает учащимся увлекательный опыт изучения компьютерных концепций в удобном для них темпе с помощью значимых для себя проектов, будь то дома или в классе.
Ознакомьтесь с некоторыми уроками, учебными пособиями и учебными планами, доступными в MakeCode.