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

Шаг 1: Научитесь печатать

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

Я бы порекомендовал использовать два ресурса: typingclub и typeracer. Изучите основы от typingclub и попрактикуйтесь в typeracer. Делайте это последовательно, пока не достигнете где-то между 50–60 слов в минуту (слов в минуту), этого будет достаточно для новичка.

Шаг 2: Прочтите «Код: скрытый язык компьютерного оборудования и программного обеспечения» Чарльза Петцольда.

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

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

Шаг 3: Изучите язык программирования C

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

  • Это база, здесь все началось (по крайней мере, на мейнстримном уровне). Изучение C похоже на изучение азбуки языков программирования.
  • Позже, изучая более современные вещи, вы сможете оценить, какими вещи были раньше и насколько они стали лучше сейчас, а также понять, почему это стоит за этим. Вы поймете, почему нужна была объектная ориентация (Python, Java и т. д.), а не монолитное программирование и т. д.
  • Некоторые функции других популярных языков построены на тех, которые используются в C. Например, классы можно рассматривать как расширение типа данных структуры в C. Возможность устанавливать эти связи может быть очень полезной.

Как долго я должен изучать C?

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

Шаг 4: изучите язык программирования Java

Для этого шага было трудно выбрать между C++ и Java, выбрав java, потому что я чувствую, что это идеальное введение в объектно-ориентированное видение, концепцию, на которой сегодня основаны все популярные языки программирования. Другая причина в том, что это популярный выбор при даче интервью по программированию. Большинство онлайн-руководств и решений по кодированию также написаны на java.

Вы будете создавать классы и объекты с самого начала, что улучшит вашу способность мыслить нестандартно. Освойтесь с различными библиотеками, которые может предложить Java. После этого создайте 2–3 продвинутых проекта с использованием java. Изучение других языков после того, как вы освоитесь с Java, будет намного проще.

Шаг 5. Изучите структуры данных и алгоритмы с помощью Java

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

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

Вот и все. Это не быстро, но база, которую создает этот подход, проверена и оценена кодерами по всему миру. Увидимся на другой стороне! :)