Сегодня хочу затронуть тему выбора языка программирования новичку. Если точнее — определиться с языком программирования. Эта статья может помочь тем, кто уже успел пощупать несколько языков программирования и приблизительно понимает где и в каких случаях они используются.
В своё время изучал PHP, Python, JavaScript, Java… И когда встал вопрос выбора, для того чтобы устроиться на первую работу разработчиком, сильно растерялся. Но волею судеб мне повезло и смог определиться с выбором. Это были непростые 6 лет, но способ нашёлся.
Конечно, когда вы точно знаете, что хотите верстать, не должно возникать такого вопроса (HTML/CSS). Или если вас интересует только программирование под микроконтроллеры. Разговор больше пойдет про языки программирования которые могут в ООП:
- С++
- C#
- Java
- JavaScript
- PHP
- Python
Хотя некоторые способы помогут и в выборе направления разработки.
Каждый из них может использоваться для решения многих задач. Для каждого из них существует множество фреймворков и библиотек, которые дают еще больше возможностей. А про комбинацию даже упоминать не буду.
Выбор языка программирования
Итак мы имеем в своём арсенале несколько языков программирования. Знаем их конечно не идеально, но и «Hello world!» уже давно пройденный этап. Мы даже можем побеседовать за чашечкой чая про ООП, хотя и будем понимать, что знаем совсем немного.
РЕКОМЕНДУЕМ:
Пять типичных ошибок проектирования и программирования
А когда собеседник спрашивает «А на чём пишешь ты?», ответом будет молчание.
Как же так получилось? Неуверенность в себе? Жаль, что рядом с нами нет Тайлера Дёрдена, который легко помог бы решить проблему. Но если капнуть еще глубже…
Всё не так плохо! На самом деле, вы просто относитесь к той половине человечества, которая склонна долго (иногда слишком) анализировать и сомневаться перед принятием решения. Примите это как данность и научитесь этим пользоваться. Возможно именно благодаря этой способности, вы станете великим архитектором программного обеспечения (ПО). Но пока…
Пока вокруг так много языков програмирования и каждый по своему интересен и красив, пока так много фреймворков и вариантов решения поставленной задачи, пока одну и ту же программу можно написать, что на Java, что на Python, что на C#, пока вокруг множество статей о выборе первого языка программирования, а в конце «каждому своё»… Неужели мы так и будем осваивать основы синтаксиса всех языков програмирования, которые есть на планете Земля? Так ведь и до перфокарт дойти можно.
Как определиться с языком программирования
Ниже — несколько вариантов решения для выхода из бесконечного цикла без брейкпоинтов:
- Придумайте себе интересную задачу
Подумайте, что это будет за программа, о её архитектуре, классах, методах, уровнях абстракций и т.п. Напишите её. Отрефакторите. Ещё раз пробегитесь по комментариям, если они есть.
По поводу комментариев: это ваш собственный проект и никто не будет ругать за их отсутствие. И всё-таки, когда возникнет необходимость отправить что-нибудь для потенциального работодателя в резюме, и выбор падёт на данный проект — комментарии (грамотные) будут только в плюс.
РЕКОМЕНДУЕМ:
Таинственный язык программирования Ада
Так придумайте несколько проектов и реализуйте их. А потом… Откройте спойлер уже после того как напишите несколько проектов. Это вам поможет гораздо больше, нежели сейчас.
- Сразу пойти на рандомную позицию
Да простят нас работодатели, но этот способ тоже работает. Вы проходите собеседование, где основной необходимый язык программирования — один из тех, что в вашем списке желаний. Работаете месяц/два/полгода/день и понимаете: «ваше» это или нет. На испытательном сроке уйти всегда успеете.
Конечно, желательно подготовить себе финансовую подушку. Никто не знает наверняка как оно повернется.
- Квадрат Декарта
Тем, кто не хочет тратить много времени на написание множества проектов или отдаваться на откуп судьбе, понравится данный вариант. Есть множество рекомендаций и инструкций по заполнению этого квадрата. Следует составить по одному квадрату на каждый из язык программирования. Сравните получившееся и выберите самый безопасный/прибыльный/интересный/др. вариант. Теперь сделать выбор будет несколько проще.
Описывать процесс заполнения квадратов не буду. Просто загуглите «Квадрат Декарта».
- Выбор между фронтом и бэком (язык программирования для бэка выбран*)
Если вам нравится писать и фронт и бэк, можно сделать ход конём. Многие компании предлагают позицию full-stack разработчика. Она заключает в себе оба направления. Когда освоитесь и захотите переключиться на что-то конкретное, никто не будет мешать развиваться дальше в чём-то одном.
Как и писал выше, когда-то передо мной встала задача подобного выбора. Использовал я первые два и четвёртый подходы. Силу первого вы познаете сами, когда напишите парочку-другую проектов. Со вторым получилось не совсем хорошо. Четвертый был реализован вместе с первым.
Результат первого — Python.
Фронт, я думал, мне тоже нравится и решил пойти на позицию full-stack. Как только решение было принято, написал заявление по собственному на предыдущем месте работы и начал активно отправлять своё резюме потенциальным работодателям. Финансовая подушка на 2-4 месяца имелась, как и твердая уверенность ходить по собеседованиям до победного.
В резюме сразу написал, что без выполнения ТЗ (тестового задания) на собеседование не приду. Последнее немного усложняло процесс, но так мне было спокойнее — пойму, что от меня хотят и работодатель поймёт устрою ли я его. Если примут ТЗ, шансы возрастают.
Второе собеседование и меня приняли. Подготовили рабочее место. Я до конца дня пытался по максимуму понять задачи, выполнение которых от меня ожидают. К середине дня понимаю, что ничего не понимаю. Делюсь этим с коллегами. Отвечают, что это нормально, что шесть месяцев меня никто трогать не будет, просто изучай документацию.
РЕКОМЕНДУЕМ:
Олимпиады по программированию
Шесть месяцев! На меня напала тоска. С одной стороны — хорошо: сиди себе, изучай документацию, получай ЗП. С другой — уровень амбиций и желание покорять вершины Эвереста начали падать. Вечером подхожу к тимлиду и говорю, мол не подхожу им, и это не совсем то, что я ожидал, да и вряд ли смогу им помочь (смог бы, но не хотел так долго погружаться). Многие скажут, что это была нормальная ситуация. Что в самом начале не нужно сразу с места в карьер, но в моём случае, я точно понимал, что не хочу так. Ну и еще понял, что frontend — не моё.
Через день приходит сообщение с новым предложением. Сначала подумал, что это проектная работа. Но, когда побеседовал с ребятами, дали понять, что ищут человека в команду…
Прошло уже почти 10 месяцев, как меня устраивает моя позиция разработчика.
Заключение
Так что если вы железно решили стать разработчиком, станете. Прислушивайтесь к советам и подсказкам других, однако лучше принимайте решение самостоятельно.
Нравится писать на 1С — пишите! То, что другим не нравится — это их проблемы. И это точно не повод писать на другом языке программирования.
Нравится писать на PHP, но где-то слышали, что он умирает… Пишите на PHP! Львиная доля рунета написана и пишется на нём.
Высокая конкуренция среди Java разработчиков? Пишите на Java! Станьте лучшим специалистом, и получайте тысячи офферов от топ компаний в месяц.
Кто-то там не любит и ругает frontend? Да они даже и не догадываются, что их любимое и самое красивое приложение в телефоне — это SPA (Single Page Application — одностраничное приложение).
До недавнего времени, думал что Python никто не ругает. Ага… На одном из форумов нашёл такие вещи, что вспоминать страшно. Оказывается есть те, кто очень не любит и этот язык, и думают, что перечисляют его минусы. Хотя бОльшая часть из перечисляемого — это особенности и так оно и должно быть.
В этой статье мы рассмотрели несколько способов выбора одного из первых языков программирования для трудоустройства. Применяйте их, комбинируйте.
Если у вас есть опыт (описанный выше, другой или ваш собственный) решения данной задачи, опишите его в комментариях. Думаю всем будет интересно.