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

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

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

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

Иногда я вижу знакомый термин, но в данном контексте он означает что-то совершенно другое или одно и то же, называемое по-разному в разных контекстах. Например, символ ‘ | ’, называемый «Трубой» в Angular, в синтаксисе жидкостных шаблонов Orchard Core (/shopify) называется «Фильтр», выполняя аналогичные функции. Хотя я могу ошибаться, на данный момент я едва окунулся в Orchard Core, и даже спустя пару лет я все еще осваиваю Angular, который иногда подбрасывает мне увлекательные кривые шары. .

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

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

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

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

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

Я начал свою работу с кодом на C#, создавая веб-сайты ASP.NET MVC. Когда я пишу класс (или это модель? Или модель является типом класса? Кажется, что они используются как взаимозаменяемые, и одна из вещей, которая заставляет меня нервничать, когда я говорю с другими представителями отрасли или пишу об этом, это своего рода неприятный вопрос) Я добавляю { get; набор; } к каждому свойству (полю? есть еще одно), и тогда я могу получить или установить значения в моем функциональном коде. Я пытался осознать это, когда только начинал, покачал головой и решил, что вернусь к этому.

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

Мое понимание снова возросло, когда я узнал, что в некоторых языках, таких как Python, рекомендуется использовать геттеры и сеттеры, и я подумал: что… Это необязательно?

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

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

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

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

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

Если вы хотите увидеть больше, дайте мне знать!