В последнее время я часто получаю вопросы от студентов университета, например:

  • «Мои навыки программирования не так уж плохи, но мне часто приходится искать в Google ссылки на код — даже с базовыми функциями языка программирования, не знаю, ужасно ли это?»
  • «Обычно я захожу в Stack Overflow, чтобы найти решение своих проблем, так стану ли я плохим разработчиком? Должен ли я искать новую карьеру?»

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

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

Ответ - нет. Конечно, нет.

Никто не имеет права судить вас как плохого разработчика при поиске кода в Google.

Для веб-разработчиков, например, существуют сотни тегов HTML, тонны свойств CSS, а Javascript — это «нестрогий язык», который может все испортить, так как же вы можете легко запомнить их все?

Ни один разработчик не может с уверенностью сказать, что он может завершить проект без поиска в Google несколько раз.

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

Это напоминает мне историю про Альберта Эйнштейна:

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

Он ответил: «Зачем мне что-то запоминать, если я знаю, где это найти?»

Переполнение стека

Переполнение стека (SO) — страница вопросов и ответов (Q&A), которую вы видите каждый раз, когда ищете код в Google — это действительно лучшие стероиды для программистов. Я серьезно!

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

Я полноправный разработчик StackOverflow

Хотите знать, как сделать A с X и Y? Просто ищите, и вот как работают X, Y, это входные данные, … Столкнулись с проблемой B? Просто поиск и… бинго, это вызвано C. Теперь вам нужно только подумать о том, как решить C.

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

Это поможет вам понять и решить проблему полностью и полностью. Очевидно, что разработчики часто используют проверку try-catch или nulls, не зная, почему было выдано исключение или основная причина.

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

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

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

Некоторые из вас могут спросить: Итак, когда дело доходит до более сложных и сложных проблем, как вы можете просто выполнить поиск в Google, чтобы решить их?

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

Но…

Вы не должны злоупотреблять поиском Google (копировать/вставлять все, что вы нашли). По крайней мере, вам нужно понять «некоторые части» скопированного кода, прежде чем внедрять его в свой проект.

Лучше всего всегда понимать, что вы делаете:

  • ЧТО является проблемой.
  • КАК работает это решение, КАК оно решило вашу проблему.
  • ПОЧЕМУ вы выбрали это решение (среди других решений из поиска).

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

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

Другие источники

Есть и другие сообщества, такие как Stack Overflow:

Удачного кодирования~

📝 Читайте эту историю позже в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слушайте самые примечательные новости недели в области технологий, ожидающие в вашем почтовом ящике. Читать информационный бюллетень Noteworthy in Tech.