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

Создание программы "Hello, world" не с чего начинать!

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

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

Могу ли я действительно научиться этому?

Изучение программирования похоже на обучение вождению автомобиля.

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

«Выжмите сцепление, поверните ключ и слегка нажмите на педаль газа. Удерживая сцепление нажатым, переключитесь на 1-ю передачу. Дайте ему немного газа и МЕДЛЕННО отпустите сцепление».

После нескольких попыток мой сын заставляет машину двигаться вперед. Пора переключаться на 2-ю передачу.

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

Подходит к остановке.

«Если вы подъезжаете к красному свету или знаку «стоп», уберите правую ногу с педали акселератора, выжмите сцепление, используйте правую ногу, чтобы начать нажимать тормоз, пока не остановитесь».

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

Обучение программированию

Для большинства людей, которые хотят изучать программирование, например научиться управлять рычагом переключения передач, требуются аналогичные, очень простые инструкции. Основополагающие вещи, которые создают уровень понимания, поддерживающий изучение конструкций программирования начального уровня, таких как if(), for(), switch(), и вызовы функций.

Если вы водили автомобиль, вы, вероятно, знаете, что такое сцепление, даже если вы никогда не водили машину со сцеплением. Но если вам только что исполнилось 16, вы можете не знать, что это такое, а если вы этого не знаете, а ваш инструктор по вождению говорит: «… выжмите сцепление», (она) он мог бы также говорить по-гречески! Знание того, что такое сцепление и что оно делает, является обязательным предварительным материалом для обучения вождению автомобиля с ручным переключением передач.

Что такое переменная?

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

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

Итак, предположим, мы пишем имя ДЖОН на листе бумаги и помещаем его в пустую ячейку с именем ИМЯ. Если мы забудем имя, мы можем просто заглянуть в ячейку FIRSTNAME и прочитать газету с именем JOHN. Если позже мы поместим другой лист бумаги с именем МЭРИ в ячейку ИМЯ, листок с ДЖОНОМ будет удален, чтобы освободить место для МЭРИ. В любой момент слот FIRSTNAME будет пуст или в нем будет одно имя.

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

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

Резюме

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

Автор: Грег Доуд

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

Буду признателен за любой конструктивный отзыв.