Как не вылететь из IT через 5 лет. Часть 2 – Язык программирования.

Мы продолжаем обзор темы “Как не вылететь из IT через 5 лет“. Я уже осветил свой взгляд на то, что необходимо знать в части алгоритмов, далее мы переходим, непосредственно, к языку программирования (далее – ЯП).

proraming-languages

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

Знать, как написать “Hello, world!!!” и 10 раз вывести надпись в консоль с помощью цикла, конечно замечательно, но для того, чтобы называться профессионалом (а Вы, надеюсь, стремитесь именно к этому) необходимо нечто большее.

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

Если вы хотите быть разработчиком программного обеспечения, вы обязаны уметь решать задачи. Знание теории ОС, алгоритмов, языка программирования, баз данных и т.д. – всё это должно помогать вам решать задачи.

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

  • Синтаксис языка программирования.
    Главным источником информации в этом плане для языка Java является Java Language Specification.
  • Реализация базовых структур данных и алгоритмов на вашем языке программирования
    Collections API. В реальной работе вы почти всегда будете работать именно с коллекциями. Вы просто обязаны знать все плюсы и минусы каждой базовой коллекции.
  • “Чистый код”
    Крайне “заезженное” понятие, но смысл всегда остаётся следующим – пишите код так, чтобы его мог понять другой программист и, чтобы данный код можно было легко изменять. Принципы SOLID, KISS и т.д. придут вам на помощь.
    Меньше кода, меньше ошибок – это именно тот случай, когда количество (строк кода) должно перейти в качество.

Решение следующих задач крайне поможет вам в освоении своего ЯП:

  • Написание кода, который работает, практически, с любыми вводными данными (null, символы вместо чисел и наоборот и т.д.)
  • Реализация базовых алгоритмов (обход графа в ширину и в глубину, бинарный поиск, удаление элемента  и коллекции и т.д.)
  • Написание CRUD приложения, которое использует текстовые файлы вместо БД (вспоминаем Java I/O)
  • Написание тестов к своему коду. Тесты должны покрывать 100% кода. Код, которые не протестирован – не надёжный код.

Самый главный совет – это ПРАКТИКА, ПРАКТИКА и ещё раз ПРАКТИКА. Пишите код, просматривайте чужой код, пытайтесь оптимизировать собственный код, проверяйте его и снова оптимизируйте. С каждым годом вы должны становиться всё более и более квалифицированным разработчиком. Только так вы сможете составить конкуренцию другим разработчикам.

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

Список материалов, которые помогут вам углубить свои знания в вашем языке программирования:

  • “Clean Code” Robert C. Martin
  • “The Clean Coder” Robert C. Martin
  • “Java Language Specification 8” (актуальна на момент написания статьи)
  • “Effective Java” (2nd Edition) Joshua Bloch

На этом мы заканчиваем обзор данной темы.

Ссылки на статьи цикла: