Что нужно, чтобы стать хорошим программистом?

Программирование?

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

Библиотечные функции

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

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

Замечательно. Но…

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

Почему это проблема?

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

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

Вывод

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

Похожие записи

Добавить комментарий

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