Работа с реакцией коллеги на самоучку

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

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

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

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

PS. Я прошел техническое собеседование для работы, а до этого работу.

Как вы теперь реагируете, когда она так себя ведет? Что вы пробовали? Какого конкретного результата вы пытаетесь достичь?
Коллега недавний выпускник? Как долго это продолжается? (Я подозреваю, что если они новые, они, возможно, еще не поняли свою роль в пищевой цепочке..)
Вопрос: Вы видели, как она не объясняла другим «json»? Или она подходит ко всем людям так, как будто они не знают элементарных «технологий»? Одно дело, если она так с вами разговаривает... другое дело, если она так разговаривает со всеми, и вы просто ожидаете, что к вам будут относиться как к более знающему.
Как вы все знаете, комментарии не предназначены для расширенного обсуждения; этот разговор был перемещен в чат . Это особенно интересная тема для разговора, а чат — отличное место, чтобы поговорить в свое удовольствие.
Тем не менее, правильный вопрос, но ничто в вашем вопросе не говорит нам о том, что причина ее поведения в том, что вы самоучка, или что она смотрит на это свысока. Может быть, она ведет себя так по какой-то неизвестной нам причине? Может, она так себя ведет с другими, у которых тоже есть ученая степень?
Вы предполагаете, что она покровительствует вам из-за отсутствия у вас образования. Вопрос в равной степени может звучать так: «Как вы относитесь к покровительственному коллеге». Почему вы думаете, что это действительно вопрос степени против самоучки?
Манипулировать JSON? это просто дерево ключей/значений, чем там манипулировать?

Ответы (21)

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

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

Я согласен с вашей точкой зрения, что все программисты в значительной степени самоучки, но JSON очень широко известен, и я не ожидаю, что мне придется объяснять его большинству разработчиков с небольшим опытом. Итак, я думаю, исходя из вопроса, все еще кажется вероятным, что коллега ОП ведет себя снисходительно.
Я бы не согласился с тем, что университеты не учат JSON или другим применимым навыкам. Это может быть необычно, но такого рода вещи преподаются на курсах программной инженерии и компьютерных наук в моем нынешнем университете и в большинстве университетов, которые я смотрел.
@LynxBrutal - по моему опыту наоборот. В Университете Флориды специалист по компьютерной инженерии получает 1 курс программирования за 1 семестр (java). В нескольких милях дальше по дороге в SFCollege (не может быть муниципальным колледжем из-за нескольких 4-летних степеней) BAS в области разработки программного обеспечения дает вам python, C++/C#, java, javascript с HTML+css, немного PHP, SQL (mariadb/mysql), mongodb, разработка для Android и node/angularjs. Даже всего за 2 года обучения в SF вы получите python, C++, Java и Javascript+HTML+CSS+PHP.
@ivanivan Нет bs = BS, я начал заниматься CS во время работы и переключился на математику с CS Minor, потому что единственным применимым знанием, кроме курсов теории CS, была математика. Все остальное слишком поверхностно, чтобы считаться знанием. Вы должны учить себя в любом случае. Например, что такое графовая база данных? Вы можете использовать теорию графов, но кого волнует строка подключения к базе данных. Курсы по БД все еще застряли в реляционном режиме, что хорошо и лучше, чем бизнес. Я хочу сказать, что вы должны учить себя в любом случае. Тем не менее, вы должны хотя бы попытаться стать минором в CS, чтобы через 15 лет вы не звучали как дурак.
Библиотека синтаксического анализа JSON не будет использовать обход дерева в глубину. Это будет использовать конечный автомат. (Прости меня. Я не удержался.)
@David Z: CS - это широкая область. Я сомневаюсь, что узнал бы JSON, если бы столкнулся с ним, и, с другой стороны, я предполагаю, что многие люди, которые регулярно с ним работают, могут быть не знакомы, скажем, с MPI или CUDA.
На самом деле, en.wikipedia.org/wiki/Bachelor_of_Software_Engineering действительно учит вас различным «вещам, таким как JSON».
Это все лошади для курсов, если вам никогда не понадобится использовать JSON, вы его не изучите. Хотя по опыту JSON настолько тривиален, я сомневаюсь, что на это уйдет более 10 минут учебного времени.
@ Belle-Sophie Форматы сериализованных данных для иерархических данных? Мой никогда не касался ничего близкого. Для моей степени CS мы изучали Java на вводных курсах, и на этом все. Все остальное практическое применение было самообучением, в то время как курсы либо включали задания высокого уровня («внедрение дерева решений»), либо в значительной степени опирались на знания / теорию («сбалансировать красно-черное дерево с помощью карандаша и бумаги»). . У меня сложилось впечатление от коллег, что для них это было похоже.
@Izkata Я не посещал степень CS. Я получил степень SE. Мы научились использовать JSON.
Я определенно согласен с «не стесняйтесь перебивать» здесь; json - это немного странный выбор для объяснения (в зависимости от области), плюс 2-летний опыт, но мой опыт показывает, что у моих коллег-самоучек есть некоторые (очевидно, ИМО) действительно странные пробелы в знаниях, которые я не могут легко предсказать, являются ли они новыми сотрудниками. Я бы не обиделся, если бы меня перебили либо «я это уже знаю», либо «я этого не знаю», в зависимости от того, каким путем я пошел с объяснением.
@ Belle-Sophie А, я как-то проглядел это. В вопросе упоминается CS.
@Izkata да, SE - это немного более новая степень. Я хотел объяснить отвечающему, что есть и другие степени, кроме CS. Многие из моих коллег изучали CS, а некоторые имеют образование в области SE. Есть разница в знаниях. Люди CS часто знают, почему, а люди SE знают, как. В CS вы узнаете, как создать свой собственный формат данных, в SE вы узнаете, как выбрать и использовать формат данных, созданный кем-то другим.
Просто вклиниваюсь. Моя степень CS, ориентированная на разработчиков игр, не включала JSON. Было много теории, много концепций и архитектурного материала. Прошло десять лет, и, кроме основных концепций объектно-ориентированного программирования, я не использую никаких инструментов, языков или даже структур данных, которые я изучил в университете. Я провел последние четыре месяца, переквалифицировавшись в веб-разработчика, потому что он был нужен моей команде. Быть самоучкой в ​​этой отрасли не просто полезно, это совершенно необходимо.
Люди здесь говорят о JSON как о чем-то, что вы «узнаете» и «знаете». Бьюсь об заклад, любой программист, незнакомый с форматом, может просто отредактировать существующий файл JSON и сразу же знает, что ему нужно знать о формате.
@Belle-Sophie Изучая темпоральную логику, формальную верификацию, теорию автоматов, теорию категорий, алгоритмы проверки типов и вывода, разрешимость, сложность алгоритмов (как детерминированных, так и недетерминированных, время и пространство, параллельные алгоритмы). ), реализации структур данных (например, B-деревья, B+-деревья [как реализованы БД]), алгоритмы сопоставления с образцом и связанные с ними алгоритмы сжатия, включая самоиндексы, цепи Маркова и стохастическое моделирование (много моделирования параллельных процессов , бисимуляция и т. д.), тонны дискретной математики.
@Belle-Sophie Ограниченное программирование и исследование операций (такие вещи, как целочисленное линейное программирование), алгоритмы синтаксического анализа и как написать правильный компилятор и интерпретатор, теория чисел и алгоритмы для (например) факторизации/проверки простоты, алгоритмы шифрования, протоколы шифрования и как чтобы доказать некоторые атаки на них, также используя автоматические инструменты, интерактивную 3D-графику (я имею в виду: различные уравнения затенения, не делая дизайн в Blender), много чего другого. Конечно: вы не можете подробно изучить все это, но вы должны получить основы. Программирование с использованием JSON случайно (ИМХО)
@ Belle-Sophie В заключение: если ваши друзья определяют изучение CS как простое умение придумывать новый формат данных, я боюсь, что они либо не прошли курс CS, либо этот курс действительно отстой, потому что они не на самом деле не делать ничего, что строго связано с CS (что должно быть связано с математикой и в основном с логикой)
Что касается всех степеней CS с обеих сторон, просто обратите внимание, что это смесь, и за последние 20 лет я видел скольжение от дискретной математики к Java. Я бы даже сказал, что я удивлен, когда у недавнего выпускника CS есть компиляторы. См. joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2 более 10 лет назад. Так что, хотя я и рад тому, что вычислительная техника в некоторых местах все еще преподается, не думайте, что все университеты такие же (так же хорошие, как?) ваши.
Один момент, который можно добавить к этому ответу, который, я думаю, одобрит его, и он согласуется с вашим замечанием о том, что некоторые курсы CS не охватывают JSON, заключается в том, что люди склонны чувствовать необходимость объяснять те вещи, которые они недавно изучили. сами себя. Чрезмерное объяснение простых понятий раскрывает больше об опыте объясняющего, чем что-либо еще.
@JollyJoker не обязательно. Допустим, вы видите следующее: { "Name" : "John"}- это здорово, но у вас возникнут трудности с добавлением массива, объекта или типа integer/bool/date. Вы также можете не осознавать несколько основных различных стратегий сериализации. JSON довольно легко понять, но может быть полезно пройтись по основам.
@ NPSF3000 Ну, пример, подобный тому, что в Википедии , был бы более полезным. Я бы не стал рассматривать сериализацию объектов как специфичную для JSON, если предположить, что вы это имели в виду. «Как мы используем JSON в этом проекте/компании», конечно, может быть более глубокой проблемой.
@JollyJoker не показывает экранирование или все поддерживаемые числовые форматы: json.org Стратегии сериализации важны, потому что они иногда раскрывают соглашения (например "_type":"..."), которые могут быть очень важны для понимания того, как использовать json. Кроме того, ваш пример не охватывает дату и время: stackoverflow.com/questions/10286204/the-right-json-date-format
@DavidZ Иногда это просто вопрос терминологии. Например, я никогда не слышал слово «JSON» до того, как начал работать в технологической компании после университета. Но я, конечно, работал с объектами в JavaScript, поэтому, когда старший программист объяснил, что такое JSON, я подумал: «О, это все? Просто такой формат, как объект JavaScript, где все в кавычках? Хорошо, понял». Я, конечно, знаю, как работать с JSON и для чего он нужен, просто я никогда не слышал, чтобы кто-то называл его «JSON». Поэтому, если бы меня спросили о JSON, я бы выглядел невежественным, хотя полностью понял концепцию.
Неважно, снисходительна она или из лучших побуждений, ответ один: «Спасибо, я раньше работал с JSON». Вот и все.

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

Эй, коллега, давайте опустим тривиальные детали и перейдем к сути проблемы. Это не очень эффективное использование нашего времени.

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

Я один из этих людей. Я поймал себя на том, что объясняю вещи профессору, который учил меня им раньше. Это не потому, что я не думаю, что они знают; это потому, что я {убедился, что мы говорим об одном и том же|освежаю их память|любое другое оправдание, которое я использую, когда осознаю свою ошибку}
Я думаю, что должен быть лучший способ сказать это. Это может звучать покровительственно или пренебрежительно. Что-то вроде «Я знаком с json» было бы лучше. Как упоминалось в другом комментарии, этот человек, вероятно, немного полон энтузиазма и гордится своей новой степенью.
Это ужасный совет. Многие люди обсуждают хорошо известные вещи во время технических дискуссий, просто чтобы убедиться, что мы на одной волне . Слишком много раз кто-то перебивал меня версией вашей реакции только для того, чтобы через 15 минут узнать, что они не принимают во внимание те же побочные эффекты технологии, что и я.
Обычно я говорю: «О да, я использовал x для проекта 3 года назад. Я не помню подробностей, но я знаком». Он пропускает основы и оставляет вас открытыми, чтобы спросить/погуглить мелочи (синтаксис и другие подробности).
@dwjohnston По моему опыту, лучший способ сформулировать такое увольнение — задать один или два достаточно сложных вопроса (например, в случае с JSON, какое представление данных использует JSON для чисел или, довольно забавно , как вы безопасно комментируете запись в JSON ), что обычно у меня работает (либо для демонстрации своего уровня знаний без прямого отмахивания и патрионизации, либо, что довольно часто, перевернуть стол и теперь меня просят объяснить , что в качестве желаемого эффекта в том числе).
Я вовсе не думаю, что это плохой совет. Да, было бы очень уместно обсудить детали спецификации JSON в технических обсуждениях, если это имеет отношение к проекту. Но если JSON действительно сбивается с пути, или обсуждение касается не столько проекта, сколько доказательства того, кто технически лучше, то нет ничего плохого в том, чтобы вернуть обсуждение в нужное русло.

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

Вы можете быть удивлены, обнаружив, что этот человек не видит того, что он делает, так же, как вы. Она может просто болтать и не думать, что вы вообще ничего не понимаете. Если бы она начала эти объяснения с чего-то вроде: «Ну, если бы вы когда-нибудь посещали урок по вводному программированию X, вы бы знали…»

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

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

Я этому научился, а ты где научился? Я был бы склонен с этим не согласиться. Во-первых, я согласен с ОП в том, что объяснения несколько снисходительны. Для двоих это плохое использование своего времени, особенно на собрании, где это решающий момент, и вам нужно решить проблему или что-то спроектировать. Зачем мне задавать им вопрос, чтобы усугубить проблему? Зачем мне вовлекать их в разговор, когда на самом деле я хотел бы, чтобы разговор был сосредоточен на обсуждаемой проблеме, которая, по-видимому, является делом компании, а не тем, как она знает о JSON. Это только усугубляет проблему.
@TheAnathema - Часть вопроса упоминает обсуждения во время перерывов. Я бы согласился с другим подходом во время совещаний, но чрезмерная концентрация на поставленной задаче не приводит к развитию профессиональных отношений. Я предпочитаю общаться с коллегами, чтобы они видели во мне личность, а не винтика в компании.

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

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

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

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

Я собирался добавить аналогичный ответ, но это точно. То , что он делает это , потому что у ОП нет степени, является предположением, и это может больше говорить о неуверенности ОП, чем что-либо еще. Лично мне трудно определить, когда вы не знаете, знает ли кто-то что-то, следует ли вам чрезмерно объяснять, предполагать, что человек уже знает, или спрашивать, что он знает. Все эти подходы могут оскорбить того или иного человека. Некоторых людей всегда обижают все эти подходы.
Это хорошая вещь о SE и подобных сайтах. Вы всегда имеете право в избыточных объяснениях (часто через ссылки на источники), потому что то, что написано, читают многие, а не только тот, кто спрашивает.

Это похоже на другие ответы, но с несколькими конкретными примерами.

Если вы просите о помощи / вы двое обсуждаете поставленную задачу

Когда я на другом конце этого. Действительно трудно понять, какими фоновыми знаниями обладает человек, когда что-то объясняет.

Недостаточное объяснение и чрезмерное объяснение — это плохо. Решение состоит в том, чтобы сообщать о том, что вы знаете/не знаете, эффективно и быстро.

В вашем примере, прежде чем она слишком углубится в объяснение JSON, прервите ( вежливо ), чтобы она могла отметить это в своем «списке вещей, которые нужно объяснить».

О, я понял, что такое JSON. Чего я не знаю, так это как десериализовать его в объект на С#. Как ты это делаешь?

Или в обсуждении. Например, если кто-то предложил использовать JSON в качестве формата, и у вас есть проблемы. Вы все равно будете перебивать, потому что хотите быстро перейти к нужной части разговора.

Я знаком с JSON. Я думаю, что XML может быть лучшим выбором, поскольку наши вышестоящие службы уже ожидают его в XML.

Если вас ругают за то, что вы чего-то не делаете. Затем вы следуете той же схеме.

Она: Ты мог бы использовать Х. Х - это...

Вы (перебивая): Да, я знаком с X. Я использовал Y, потому что у X есть недостаток. Я тоже рассматривал вариант Z, но тоже отказался.

Она: А как насчет А, который...

Вы (перебивая): Ах, да, я тоже думал об А. Но это не сработало по ПРИЧИНАМ.

Она: Если вы соедините А с Я, вы сможете решить ПРИЧИНЫ.

Вы: Да, это может сработать. Я посмотрю на это.

Я обычно добавляю префикс «Да» как более приятную короткую форму «Да, я знаю об этом», и это снимает остроту.

Пока в целом вы сохраняете нейтральный тон, вы не окажетесь не прислушиваясь к критике.

Кроме того, однажды вы ошибетесь. Просто убедитесь, что вы так же открыты и честны.

Если вы общаетесь в целом

Теперь мы подошли к этикету вежливой беседы. Не совсем моя сильная сторона, но вот как бы я с этим справился.

Во многих случаях я просто киваю и жду, пока они закончат. После чего я скажу что-то вроде «А, да, я знаком с JSON». Я использовал в X.'. И просто продолжайте разговор.

Если у меня есть какое-то место, чтобы быть, нет выбора, я должен прервать. Что сложнее в обычном разговоре. Но в основном я просто говорю «Да» и киваю, пока они говорят. И как только они делают хоть маленькую паузу, я говорю строчку из предыдущего абзаца.

Предостережение

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

«Решение состоит в том, чтобы сообщать о том, что вы знаете/не знаете, эффективно и быстро». Верно. Это основная проблема здесь.

Отказ от ответственности: я не разработчик программного обеспечения

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

В дополнение к превосходным ответам @Link0352 и @JeffO, где это возможно, я бы порекомендовал просто осторожно перевести разговор обратно на тот уровень, на котором он должен быть для продуктивного обсуждения.

Конечно, мы можем манипулировать JSON, но это может привести к проблеме X. В этом случае я бы рекомендовал манипулировать объектом напрямую (или как-то так).

(Я предполагаю, что это взаимодействие произошло во время технического совещания, и коллега не просто подошел к вашему кубу и начал болтать о JSON. Если это так, мой ответ на самом деле не применим.)

А теперь меня оскорбляет то, что вы полагаете, что быть программистом-самоучкой равносильно не иметь высшего образования. На самом деле, это налогоплательщики в моей стране очень обижены.
Для непрограммиста (точнее, точка!), пример в цитате на самом деле неплох. Он имеет четко определенное значение, является очень разумным предложением и достаточно хорошо объяснен, чтобы его мог понять непрограммист. Однако, чтобы звучать так, как будто вы знаете, о чем говорите, возможно, замените «объект» на «несериализованный объект» (это технически не нужно, но помогает подчеркнуть различие между JSON и «непосредственно объектом»).
@wizzwizz4 Спасибо! Я замечу термин «несериализованный». Хотя я не разрабатываю программное обеспечение как таковое, я работаю в области науки о данных, поэтому я знаю, что такое JSON, и основы ООП. :-)
@AffableAmbler Моя проверка орфографии не подтвердила его существование как с «s», так и с «z», поэтому я начинаю думать, что это не настоящее слово ... но я читал, что оно использовалось, поэтому оно, вероятно, достаточно реально .

В дополнение к другим ответам, мое общее решение для людей, объясняющих вам очевидные вещи:

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

другой человек : Json отлично подходит для... и вы можете сделать...
вы (улыбается/дружелюбно): Точно! Что мне также нравится в Json, так это то, что вы можете ....

или если вы хотите быть немного злым

другой человек : Json отлично подходит для... и вы можете сделать...
вы (улыбается/дружелюбно): Точно! Вы когда-нибудь слышали о XML? Это [объяснение чего-то очень очевидного]

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

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

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

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

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

«JSON — это формат для представления структур данных в виде текста».

«О, JSON, я только что читал о различных реализациях, вы не знаете, есть ли эталонный пример синтаксического анализатора, созданного с помощью JSON lexи yaccдля него?»

От другого женского разработчика

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

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

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

Открой свой разум.

Университет действительно учит навыкам, которых вы не найдете в книгах (за исключением университетских учебников) и которых вам, вероятно, не хватает, если вы самоучка. Откуда я знаю? Я учился, но некоторые области не входили в мою учебную программу, и я самоучка в этих областях. Так что я знаю обе стороны.

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

In dubio pro reo, так что, пока не доказано обратное, предполагайте лучшее и непредвзято приветствуйте ее обсуждения. Однако, как только вы поймете, что уже знаете, что она пытается объяснить, поблагодарите ее и объясните, что вы уже это понимаете. Спросите ее, что еще она может предложить, вы стремитесь постоянно учиться и совершенствоваться. В этом преимущество самоучки: вы понимаете, что обучение — это постоянный процесс, который не заканчивается сдачей экзамена или магистерской диссертацией.

Используйте это преимущество. Учитесь у нее, это может быть только вам на пользу.

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

Я самоучка, и у меня есть куча учебников, специально предназначенных для университетов. Некоторые части знаний приходят из чтения магистерских диссертаций и тонны статей. Большая часть этого университетского материала не преподается в большинстве университетов - о, ирония судьбы. В прошлый раз, когда я посещал университетские курсы («объектно-ориентированное программирование», они называли курс), они делали вид, что каждая строка кода должна быть прокомментирована, как в if (x == true) // check if x is true, иначе баллы будут потеряны. [...]
[...] Я еще не видел программы CS, которая учит важным вещам, которые я еще не изучал, и которая перевешивает все то, чему студенты не научились в студенческие годы (пока я). Я не утверждаю, что получу только пятерки, когда решу вернуться, потому что каждый экзамен зависит не только от знаний. Экзамены — ничтожная случайная выборка, если быть честными. Они никоим образом не отражают того, что происходит в реальной жизни индивида.
Вы оба упускаете суть. Курсы программирования в университете — сплошная катастрофа. Я бы порекомендовал научиться кодировать, просматривая видео на YouTube в течение университетского курса в любой день. Каждый язык, который я выучил после университета, я выучил самостоятельно. Но в университете есть более фундаментальные курсы, которые вы не получите, если сразу перейдете к программированию. Вся математика и логика, функциональное программирование (бесполезное в реальном мире, но концептуально важное), вся теория алгоритмов, основы обработки и базы данных и так далее.
(в случае, если вы обращаетесь ко мне с «оба») Я довольно хорошо разбираюсь в алгоритмах, структурах данных, многих категориях и топологиях языков и грамматик. В свободное время я занимался созданием и оптимизацией компилятора. Компьютерная графика — еще один мой фаворит. Мне нравятся как микро-, так и макро-оптимизации [и, как уже упоминалось, оптимизации, которые компиляторы получают автоматически]. Я думаю, что я гораздо больше увлекаюсь CS, чем большинство людей, которых я встречал, которые действительно изучали его. «Что такое статическое одиночное присваивание?» «Уравнение рендеринга, что за хрень??», «FP? У нас была только Java.», «Императивные PL? Разработать!».
Одна точка данных не делает статистику. :-) Я встречал гениальных людей, которые не поступили или не закончили университет. Я встречал идиотов, которые это делали. И идиоты, которые этого не сделали, так же как и гении, которые ушли. Тем не менее, многих основ нет в большинстве книг или курсов для самообучения. Можно, конечно, изучать университетские учебники. Тем не менее подход, основанный на предположении, что другой человек просто может чему-то вас научить, по-прежнему кажется мне хорошим подходом.
Что касается реализации баз данных: мне трудно представить, что мои бывшие коллеги-студенты делают это, когда они все еще борются с одной из самых простых абстракций: указателями. -- предварительное редактирование: я понимаю, что вы имели в виду понимание реляционных баз данных в пользовательском пространстве. Позвольте мне резюмировать это так: я написал трассировщик лучей на SQL для развлечения (потерял исходный код; но у меня все еще есть шаблон трассировщика лучей C++03, чтобы хвастаться, «метатрассировка»). Кроме того, бывшие CS'еры, кажется, склонны переоценивать оценки больших O. Пузырьковая сортировка очень хорошо работает для очень коротких последовательностей в действительности, на что они не одобряют.
Извините за этот несвязанный ответ, который на самом деле был дополнением к моему предыдущему. И извините за то, что может показаться хвастовством. Но да, я согласен. Лично я очень открыт для обеих сторон спектра. Я многому научился у сборщиков мусора, а также у профессоров — лично мне не важны ни титул, ни внешний вид — и я понимаю, что могу не быть нормой :D
На самом деле, это интересная дискуссия. Может стоит перенести в чат. И нет, я не имел в виду пространство пользователя. На самом деле мне было слишком скучно на курсе SQL в университете, чтобы обращать на него много внимания, большую часть которого я сам выучил позже. Но основы проектирования баз данных я бы не освоил без университета. Я сам выучил несколько языков программирования, но мне жаль, что я забыл то, что мы узнали о кватернионах, теперь, когда я иногда занимаюсь 3D-программированием. Так что это смесь, и вы правы: вы всегда можете чему-то научиться у каждого.
И однажды будет что-то, что ты знаешь, а она нет. Это должно быть очень удобно, башня из слоновой кости, в которой ты находишься.
Я не понимаю смысла этого комментария, @reinierpost. Хотите уточнить?
Тот день давно прошел. Вопрос, который задают здесь, заключается в том, как сломать это ей. А вам, кажется.
Всегда есть что-то, чего кто-то не знает. Вы просто должны найти его. Также как всегда есть что-то, чему кто-то другой может научить вас. Без исключений.
@Tom «Тем не менее, многих основ нет в большинстве книг или курсов для самообучения». Правда? Какие существуют доказательства этого мифического «фундаментального знания», существующего только в университете? Этого нельзя найти, читая тексты uni, видео на YouTube, разбираясь с переполнением стека, читая исходный код, экспериментируя с эзотерическими языками, работая с коллегами и, конечно же, фактически создавая код и т. д.? Возьмите DB, вы действительно думаете, что ACID или CRUD существуют только в стенах Uni?
@ NPSF3000 Я не говорю о ACID или CRUD. Если вы думаете, что это то, о чем я говорю, неудивительно, что вы не поняли сути. Если вы хотите провести расширенную дискуссию, задайте соответствующий вопрос или начните чат.
@ Том chat.stackexchange.com/rooms/76447/…

Я видел это много раз в качестве консультанта на протяжении многих лет. Ответ прост. Это механизм преодоления.

Это один из двух комплексов и может быть комбинацией обоих.

  • Комплекс неполноценности

    Комплекс неполноценности — это недостаток самооценки, сомнения и неуверенность в себе, а также чувство несоответствия стандартам. Часто это происходит подсознательно и, как считается, побуждает страдающих людей к сверхкомпенсации, что приводит либо к впечатляющим достижениям, либо к крайне асоциальному поведению.

  • Комплекс превосходства

    Комплекс превосходства – это психологический защитный механизм, компенсирующий комплекс неполноценности.

Оба являются защитным механизмом.

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

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

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

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

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

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

Проще говоря, это игровое мастерство.

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

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

Меня часто вызывали для решения проблемы или замены системы, за которую кто-то отвечал. Часто сила отнималась у человека, который теперь защищался. Сражения, подобные этим, часто связаны с властью, либо с ее потерей, либо с приобретением власти. Цель состоит в том, чтобы свести к минимуму угрозу, минимизировав потери. Например, в глобальной компании Microsoft Mail устарела, и ее нужно было заменить. Ответственный сотрудник крепко держал бразды правления и управлял всеми серверами, требуя, чтобы они находились в одном месте. Для глобальной телекоммуникационной компании это было катастрофой. Людям в Японии придется подключаться к серверам в Вирджинии, чтобы читать электронную почту. Бремя было огромным, и электронная почта не доставлялась в течение 24 часов. Сотрудник боялся технологии, которую он не понимал или не знал, и беспокоился о своей работе с распределенной глобальной системой. Решение заключалось в том, чтобы провести с сотрудником обучение, тестовую установку, поддержку удаленных систем и дать ему понять, что он по-прежнему играет ключевую роль в организации. Он не терял власть, а набирал силу. Все это через ТА.

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

Это полезно и актуально, но на самом деле не отвечает на вопрос. Можете ли вы добавить, как конкретно применить это к рассматриваемому случаю?
@reinierpost Спасибо за ваш добрый комментарий. К сожалению, недостаточно контекста, чтобы быть конкретным. Тем не менее, я уверен, что смогу завершить этот ответ еще больше. Все, что я мог получить из поста OP, это поза «Родитель, ребенок, взрослый». Без фактической транзакции я не смог бы копнуть глубже. Я хочу пожевать красное мясо! Поверьте мне. Это одна из причин, почему я опубликовал пример истории. Возможно, я смогу более подробно рассказать о том, что такое ТА и как она работает. Я посплю, чтобы придумать что-нибудь более плодотворное. Ваше здоровье!!
Я понимаю, но, возможно, вы могли бы привести примеры из собственного опыта, чтобы проиллюстрировать различные транзакции или что-то в этом роде. Я бы подумал, что здесь применим только один тип, но, может быть, и нет.

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

Вместо этого я рекомендую немного социальной инженерии, которую часто практиковал Бенджамин Франклин, также известный как Эффект Бенджамина Франклина :

Просите помощи, совета, предложений. Просьба об одолжении является признаком близости и доверия.

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

Это быстрое неконфронтационное решение, которое сработает в большинстве случаев.

Мне нравится совет, но Франклин не соответствует.

Поговорите с ней об этом.

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

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

Вы знаете ее лучше, чем кто-либо из нас, поэтому должны лучше понимать, как она отреагирует, но подумайте о том, чтобы начать с чего-то вроде этого:

Эй, Сью, я знаю, что мы не очень долго работаем вместе и все еще учимся тому, чего ожидать друг от друга. Я заметил, что когда мы говорим о работе, вы часто впадаете в довольно простые объяснения того, что я считаю стандартными темами.
Почему это?
Я надеюсь, что это из-за X или Y (дайте одну или две более щедрые интерпретации из других), но часто кажется, что я произвел на вас впечатление, что мне нужно объяснить эти вещи. Если это так, то кажется, что мы теряем драгоценное время, которое можно было бы использовать более продуктивно, обсуждая необходимые функции. Если вы не уверены в моем опыте работы с темой, вы можете спросить, что я знаю об этом, и если обсуждение затрагивает что-то, выходящее за рамки моего опыта, поверьте, я спрошу.

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

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

Как в сторону:

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

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

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

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

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

В этом случае ваше предположение, что она делает это, потому что вы самоучка, и/или (если ваше предположение верно) ее предположение, что вам нужны инструкции, наносит ущерб вашим рабочим отношениям.

IT — это очень широкая сфера.

Предполагать, что кто -то должен знать JSON только потому, что у него в общей сложности 4 года опыта (или 40), было бы довольно глупо со стороны вашего коллеги. Вы могли разрабатывать приложения, не использующие JSON, или фреймворки, скрывающие детали JSON.

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

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

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

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

Есть много аспектов, которые важны, но не могут быть легко изучены:

  • Способность понимать проблемы.

  • Умение читать чужой код.

  • Умение использовать правильную архитектуру.

  • Пишите хороший структурированный код.

  • Защитное программирование.

  • Передовая практика использования инструментов (контроль версий, автоматизированное тестирование).

А что касается вопроса «степень против самоучки», примите, что отсутствие степени означает, что ваш собеседник может делать меньше предположений о том, что вы знаете или чего не знаете 1 . Особенно в отношении объясненных выше моментов (многие самоучки просто даже не знают о существовании этих факторов и просто идут к «я хочу сделать программу, которая делает Х» 2 )

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

TL/DR Дайте этому программисту немного времени, чтобы он мог самостоятельно проверить ваши возможности.


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

2 Прямо сейчас я модифицирую программу, сделанную

3 На самом деле в этом и заключается полезность степеней.

Разработчик с дипломом и без должен одинаково уважаться на рабочем месте.

Я прочитал все ответы выше, и большинство из них указывают на то, что она добра, а вы слишком об этом думаете.

Но судя по вашему вопросу, это не так. Казалось, ты чувствуешь себя оскорбленным ее поведением.

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

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

Это немного сложнее, чем кажется в некоторых ответах. Вы не должны просто выйти и сказать, что вам не нужна помощь (высокомерие), и не должны молча продолжать слушать (это раздражает!).

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

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

Чтобы полностью прекратить техническое приставание, покажите, что вы знаете БОЛЬШЕ, чем человек, пытающийся вас научить, и он быстро научится не читать вам нотации и, если что, приходить к вам с вопросами.

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

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

Предупреждение: это работает только с некоторыми людьми в определенных ситуациях; YMMV. Этот ответ не имеет гарантии.


Что бы я* сделал в этом случае, так это прервал бы их кратким изложением темы. Например, с JSON:

Они: JSON — это нотация объектов JavaScript, которая представляет собой способ представления —
Я: Подобные словарю объекты и, хм, массивы и примитивы, я имею в виду примитивы JavaScript, в сериализованном формате.

Это объясняет следующую ситуацию:

Они: JSON — это нотация объектов JavaScript, способ представления —
Я: Любой объект в JavaScript в виде строки.
Они: Нет, потому что он не может хранить функции или объекты со скрытыми свойствами; это очень простое представление...

Прерывание их с помощью «да, я знаю» в этом случае привело бы к проблемам позже, когда выяснилось, что я на самом деле не знаю, что такое JSON, что вызвало проблемы в коде с моими предположениями.

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


*: см. начало ответа.

Я думаю, вы могли бы сказать - я уже немного знаю (акцент на немного) немного о JSON. Итак, можем ли мы пока пропустить JSON? Но если я чего-то не знаю о JSON, могу ли я попросить вас о помощи позже?

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

Вы не упомянули отрасль, которая будет иметь большое значение.

Я работаю в крупной высокотехнологичной компании и часто нанимаю молодых разработчиков (0-2 года опыта). Школа, которую они посещали, и их степень не имеют для меня ни малейшего значения.

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

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

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

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

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

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

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

Давайте просто скажем вашему примеру, что вы не манипулируете JSON. Вы берете JSON, конвертируете его в объект модели, манипулируете объектом модели и конвертируете его обратно в JSON. Могу поспорить, что если ваш коллега попытается манипулировать JSON напрямую, будут ошибки, потому что JSON прост, но не настолько .

Теперь, если он такой умный, распечатайте копию этой статьи https://www.ics.uci.edu/~dan/pubs/LenLimHuff.pdf , в которой рассказывается о вычислении оптимальных кодов Хаффмана с ограниченной длиной кода (коды Хаффмана с неограниченной длиной кода). длина кода проста) и попросите его объяснить вам этот алгоритм. Скорее всего, он не сможет этого сделать, в худшем случае вы заткнете его надолго. (Ограниченные по длине коды Хаффмана важны, потому что они позволяют использовать гораздо более эффективные декодеры). PS. Если он или она может объяснить вам алгоритм, то он или она хороши . Я сомневаюсь в этом.

Кроме того, если кто-то пытается объяснить вам JSON, вы спрашиваете его, чего он там добивается? Он думает, что JSON — это что-то сложное, что вы не можете понять без степени CS? Серьезно? Не кажется ли ему, что он немного самодовольен? Его поведение оскорбительно, поэтому вы отплатите ему тем, что он заслуживает.

коллега - она. я не уверен, что OP, бросающий вызов, который OP не понимает, действительно является идеальным решением. я не уверен, что OP бросает вызов, который OP понимает , это тоже хорошее решение. личные навыки > мелкие проблемы в межличностных отношениях.
@bharal Проблему совсем не сложно понять. Алгоритм решения сложен .
Предполагая, что это документ по слиянию пакетов - в этом нет ничего супер умного, и я ожидаю, что компетентный специалист по CompSci не будет иметь с этим проблем - тем не менее, это очень агрессивный способ продолжить - цель не не «победить» коллегу в каком-то воображаемом состязании.
Это вообще не отвечает на вопрос.