Это фотошоп, я программист, меня не обманешь

Обновлено: 20.11.2024

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

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

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

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

Потом это как-то закипело. На своей первой работе после окончания бакалавриата я немного поработал над front-end разработчиком (мы говорим только об основах HTML). Когда я вернулся в школу взаимодействия человека с компьютером, мне пришлось немного больше программировать, в основном только Java, Arduino и Adobe Flex [RIP], но не более того. Когда после окончания школы я начал работать UX-исследователем, я подумал: «Ну, теперь это твоя карьера!»

Я искренне думаю, что моей проблемой на протяжении многих лет была уверенность. Я был просто специалистом по UX, а не программистом. В окружении только самых чертовски хороших разработчиков в Facebook (а затем и в Stack Overflow) я отбросил все свои фантазии о профессиональном программировании.

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

    за то, что заставил меня перестать путаться в собственной голове и вместо этого принять любой ужасный код, вытекающий из моих пальцев. и Löve2D за чрезвычайно доступные и хорошо задокументированные инструменты для создания игр. и Advent of Code за то, что дали мне очень сложные, но достижимые задачи по программированию. и Tomorrow Corporation за создание игр для программистов, которые помогли мне понять, что разрыв между собой-текущим и мной-разработчиком заключается не в интеллекте, а в знаниях и уверенности.
  • Несколько моих коллег-разработчиков Stack Overflow за то, что они были первыми людьми, которым я признался, что сам хочу стать разработчиком. Все они были такими ободряющими, поддерживающими и добрыми, что я не могу представить, чтобы начать эту карьеру где-то еще.

В течение этих нескольких лет, когда я серьезно занимался программированием на стороне, я также регулярно чувствовал себя обескураженным и сбитым с толку огромным количеством возможных вещей, которые я мог бы изучить или сделать. Я не могу сосчитать количество четвертьзаконченных игр и едва начатых проектов в моих личных репозиториях GitHub (на самом деле могу. Их 15, и это только те, которые туда попали). Без достаточного формального образования в этой области я часто терялся в дырах в документации и обнаруживал, что тону в 800 способах возможно решения проблемы, которая у меня была. Наконец, я пришел к выводу, что мне нужно больше структуры, и что я не смогу получить эту структуру за час полезной работы мозга, который у меня есть после работы каждый день. Я начал изучать учебные курсы, подсчитывал бюджет и планировал покинуть Stack Overflow.

В прошлом году я пошел к своему новому менеджеру, чтобы сообщить ей, что мне придется уйти. Я сказал ей, что давно хотел стать разработчиком и что мне нужно пойти осуществить эту мечту в другом месте. Ее ответ? «Ну… ты думал заняться этим здесь?» Это привело к шквалу откровенных разговоров с моим нынешним менеджером, оценке моих навыков и, в конечном счете, к плану по использованию того, что я бы назвал неопределенно полезными и большими сгустками знаний, и превращению их в строительные блоки карьеры в разработка.

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

Вот чем я сейчас занимаюсь: работаю над проектами в команде Public Platform и лучше разбираюсь в огромных и сложных сетях кода. Не буду врать, мне невероятно повезло оказаться на этом месте.Без шикарного портфолио, степени CS или дорогого буткемпа за плечами получить эту возможность с холодным приложением было бы почти невозможно. Мораль этой истории не такова: «Эй, просто поработай в действительно крутой и понимающей компании три года, а потом посмотри, понизят ли тебя в должности!» Это не очень практично. Однако, если вы работаете в сфере технологий, не недооценивайте, насколько ваша работа хочет вас удержать, и не бойтесь просить о том, чего вы хотите. Как я обычно говорил ребятам из команды дизайнеров: "Самое худшее, что может случиться, если вы кого-то о чем-то попросите, это то, что они скажут "Нет" и, возможно, посмеются над вами".

Самое главное, я был прав: я думал, что мне понравится писать код профессионально, и, как оказалось, мне это нравится! Конечно, иногда я отправляю пулл-реквест на проверку и впоследствии смущаюсь из-за своих оплошностей. И да, время от времени (но не чаще нескольких раз в день!) я абсолютно уверен, что меня в любую секунду уволят за очевидную некомпетентность. Но я так счастлив, что принял это решение. Если вы сами подумываете о такой смене карьеры, то послушайте: вы достаточно умны, достаточно смелы, у вас достаточно всего, чтобы принимать карьерные решения, которые вы хотите принять. Не оглядывайтесь на десять лет назад и не жалейте, что не изменились сейчас.

Подкаст Stack Overflow – это еженедельная беседа о работе в области разработки программного обеспечения, обучении программированию, а также об искусстве и культуре компьютерного программирования.

Связанные

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

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

Я ищу самую крутую вещь, которую можно сделать с помощью нескольких строк простого кода. Я уверен, что вы можете написать множество Мандельброта на Haskell в 15 строк, но за этим трудно следить.

Моя цель — убедить учащихся в том, что программирование — это круто.

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

Мои причины эгоистичны. Я преподаю курс Intro to Computing для группы из 60 специалистов, наполовину инженеров, наполовину бизнесменов; все первокурсники. Это ученики, пришедшие из неблагополучных средних школ. По моему прошлому опыту, группа обычно делится следующим образом: несколько рок-звезд, некоторые очень стараются и отчасти получают это, те немногие, кто очень стараются, но еле-еле получить его, и те немногие, кому все равно. Я хочу как можно эффективнее охватить как можно больше таких групп. Вот пример того, как я буду использовать компьютерную программу для обучения:

Вот пример того, что я ищу: 1-строчный скрипт VBS, чтобы заставить ваш компьютер разговаривать с вами:

Я мог бы использовать это, чтобы продемонстрировать порядок операций. Я показывал код, позволял им поиграть с ним, а затем объяснял, что в этой строке много чего происходит, но компьютер может понять это, потому что он знает правила. Затем я показывал им что-то вроде этого:

И вы можете видеть, что сначала мне нужно сделать это (5*5). Тогда я могу умножить на 4. И вот я создал Объект. Деление на 10 аналогично вызову Speak — я не могу говорить, пока у меня нет объекта, и я не могу делить, пока у меня не будет 100. Затем с другой стороны я сначала создаю InputBox с некоторыми инструкциями по его отображению. . Когда я нажимаю Enter в поле ввода, он оценивает или «возвращает» все, что я ввел. (Подсказка: «ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо. И я получаю это из InputBox.

Поэтому, когда вы делаете несколько вещей в строке, например:

Вы должны знать порядок вещей. Сначала мы добавляем 14 и y. Затем мы помещаем результат (то, что он оценивает или возвращает) в x.

Моя цель – собрать несколько классных примеров для демонстрации и обучения классу, пока они развлекаются. Я попробовал этот пример на своей соседке по комнате, и хотя я не могу использовать это в качестве первого урока, ей он понравился, и она кое-чему научилась.

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

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

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

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

Компания Bored Panda обратилась к инженеру-программисту, музыканту и художнику Эндрю Экелю за советом по программированию. Прочтите его мысли, дорогие Панды.

Это сообщение может содержать партнерские ссылки.

Несколько лет спустя…

Поднимите это наверх. Дождь голосов

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

"Моя программа бакалавриата преподавалась на C++, но там, где я учился в аспирантуре, использовали Java. Чтобы наверстать упущенное, я закончил курсы для выпускников и вводные занятия для первокурсников в одном семестре. Мои сокурсники в класс первокурсников недоумевал, как я вдруг стал их ассистентом в следующем семестре", — поделился Эндрю фрагментом из своей жизни.

Думаю, гибкость не была требованием

Дорогой Питер Нистор, даже если это рифмуется, не работайте на Accor!

Основано на личном опыте

Эндрю полностью убежден, что программирование дает много возможностей для творчества и самовыражения. По его мнению, сказать, что программирование не является творческим занятием, «все равно что сказать, что использование швейной машины не является творческим. Это креативно, если вы делаете с ее помощью что-то творческое! искусства. Или вы можете запрограммировать устройство открывания гаражных ворот."

Он пошутил: "Если люди говорят, что это не креативно, вы не услышите их из-за звука закрывающейся двери вашего гаража".

Пространство имен.

*не используйте глобальные переменные.

Компьютер кричит...

Когда ИИ станет разумным, он придет за людьми, которые сделали это… 🤣

Почему, но почему?

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

Инженер-программист Эндрю также рассказал нам о своих последних творческих проектах. «Я работал над песней под названием «Fire Escape», с парой моих друзей из Бостона, которые поют в качестве бэк-вокала, записанного удаленно, и партии синтезаторного баса с большим количеством сдвигов высоты тона. Вдохновленный синтезаторным басом Бритни Спирс «Toxic», — я подключил MIDI-джойстик для управления высотой звука влево-вправо и вибрато в направлении вверх-вниз, имитируя работу джойстика на некоторых синтезаторах 80-х. Песня в целом совсем не похожа на «Toxic». ,' совершенно другой звук, но для басовой партии я хотел именно такой вибрации!" — сказал он Bored Panda.

Тем временем он готовится выпустить код своего проекта LeastAverageImage с открытым исходным кодом на следующей неделе, «вместе с некоторыми результатами запуска программы с классическим эпизодом Симпсонов в качестве входных данных». Он также «сделал небольшую фотосессию с любимой игрушкой моего детства на прошлых выходных, ради глупой шутки, высмеивая NFT».

О, я бы не согласился с этим. Если вам нужен пример, обратите внимание на то, что «Excel» является общеотраслевой стандартной корпоративной системой управления базами данных. Он совместим с модным словом, будучи NoSQL, и масштабируется до десятков тысяч записей, чего, несмотря на утверждения об обратном, почти всегда достаточно для большинства реальных проблем. Мир будущего — это не сотрудничество администратора баз данных и CRUD-разработчика для написания вашего списка покупок, а одного неподготовленного чувака с электронной таблицей.

Посмотрите, сколько художников-графиков, использующих бумагу и карандаш, были заменены одним маркетологом с фотошопом. Это уже случилось. Это не бравада, а наблюдение.

Ряды и ряды столов младших бухгалтеров заменены одним бухгалтером с быстрыми книгами. Еще одно наблюдение, а не бравада.

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

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

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

Полностью заменить? Сомнительно. У вычислений все еще есть неотъемлемые ограничения, которые мы не разрешили, и, если наши нынешние догадки верны, скорее всего, не удастся.

Кобол должен был сделать программирование незначительной и легко выполнимой задачей с его жестким синтаксисом, похожим на английский, но как это оказалось?

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

Например, базы данных? Конечно. CRUD-приложения? Абсолютно. Даже если у вас нет графического интерфейса для их создания, скорее всего, будет какая-то чрезвычайно абстрактная библиотека, в которую нужно вставить несколько процедур.

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

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

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

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

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

Excel не является базой данных (я не имею в виду тривиальную поправку, это совершенно другое); многие работы, выполняемые с его помощью, предположительно можно было бы выполнять с помощью баз данных, но это не так, поэтому в некотором смысле он открыл целый рынок для хранения и обработки большего количества данных, чем когда-либо прежде, в небольших масштабах бизнеса, и я полагаю, что вы могли бы предположительно замените dbs им в некоторых случаях. Однако я не думаю, что он заменит базы данных в компаниях, с которыми я работаю — по крайней мере, по моему опыту, я вижу, как больше данных перемещается из Excel в базы данных и приложения (с внутренними dbs) по мере того, как он становится сложным или люди хотят им поделиться, чем я вижу, что он движется в другую сторону. Например, представьте CRM, встроенную в Excel, масштабируемую до 1000 клиентов и нескольких пользователей — в конечном итоге наступает момент, когда гораздо проще использовать базу данных и внешний интерфейс, чем пытаться управлять такими данными в Excel вручную. и поделиться между несколькими людьми.

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

Посмотрите, сколько художников-графиков, использующих бумагу и карандаш, были заменены одним маркетологом с фотошопом.

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

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

Он наверняка используется как один в корпоративном мире. Это не значит, что он очень хороший, в том смысле, что молоток не очень хорошая замена отвертке.

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

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

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

В 1970 году бизнесмен, вероятно, использовал более старомодный метод - лист бумаги и помощник для записи цифр на странице, очень похожей на электронную таблицу Excel!

Читайте также: