Pull to refresh
0
CyberEd
Международная высшая школа IT и безопасности

Как разобраться новичку, какой язык выбрать для желаемой профессии?

Reading time4 min
Views5.1K
Дисклеймер: данный текст не рекомендован к прочтению детям до 13 лет (для них нужно устанавливать отдельную политику конфиденциальности), сеньорам, мидлам, людям со слабой психикой, любителям VBA и языка АЛГОЛ, а также беременным женщинам. Все изложенное является личным мнением неадекватного автора и не изложено здесь с целью посеять рознь среди адептов статической и динамической типизации. Поехали: new Thread().start()



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

Я прошел долгий путь от сперматозоида до программиста от подростка, любящего паскаль и windows 3.11, до человека, не любящего ничего, кроме роллов и терминала. Поэтому сейчас я вам всё объясню и даже, возможно, покажу несколько картинок. Поехали.

Так какой же язык программирования выбрать?


Глупость всех подобных вопросов состоит в том, что нельзя стать условным сферическим программистом в вакууме. Программист сейчас — это не дискретный математик прошлого, для которого ПО и аппаратная часть вторичны. В большинстве случаев сейчас программист — ремесленник, который работает в рамках действующего «окна» технологий. Причем это «окно» движущегося вагона, за которым вы бежите. Технологии постоянно меняются, и мы вынуждены как Алиса Кэррола бежать, чтобы оставаться на месте. Взять хотя бы мой любимый Google, не успеешь одно Android API понять, а уже там половина фич deprecated, еще и гайки закручивают…
Кхм, да-да, статья вроде для новичков, что ж, давайте разберемся. Для начала все же придется определить, чем именно вы хотите заниматься? Область, ну хотя бы приблизительно?

Ничего не понимаете вообще?


Начните изучать алгоритмические конструкции. Ветвления, циклы, структуры данных, блоксхемы. Очень помогает перенос (перенос, а не копипаст из википедии!) алгоритмов и блоксхем на реальный язык программирования.

Какой же язык выбрать для начала, если хотите заложить фундамент?


В принципе, любой. Так как вам надо просто научиться писать простейшие программы, понять что такое переменные, операторы, исследовать классические алгоритмы, типа поиска максимума, сортировки, бинарный поиск и т. п. Далее принимайтесь за ООП и структуры данных, ведь вас на собеседовании-таки спросят, чем вектор от списка отличается!

Но что делать, если язык вам нужен для прикладных задач?
Да и не хотите вы становиться программистом. Может, вы ученый, которому надо парсить текстовые файлы с цепочками ДНК, или инвестор с идеей написать торгового робота. Тут я бы посоветовал Python, да простят меня адепты других языков. Python — язык с головокружительными возможностями и при этом низким порогом входа. Новичкам даже поначалу кажется, что это какой-то легкий, «учебный» язык (пока не начинаешь их тыкать в корутины и функционалку).

Хорошо, скажете вы, но куда двигаться дальше? Не питоном же единым…? Конечно нет. А куда вас тянет? Веб? Десктоп? Скрипты? Системный уровень? Мобилка? Вы уж, дорогой, определитесь, универсальных решений не бывает!

Нравится сайтостроение? Ну, давайте я как попугай тут напишу: html, javascript и иже с ними (еще там тихонечко притаились python с django и кое-кто еще)

Хотите суровые вебсервисы? PHP, node.js, ruby, Java и тот же Python.

Хотите быть поближе к железу и операционным системам? Возьмитесь за С/С++ (только не отстрелите себе ногу и не порежьтесь, хотя куда там — все в гипсе ходили). Кстати, я бы советовал всем программистам хотя бы разобраться с основами С/С++ и базовыми классами из STL, знаете ли, помогает потом другими глазами смотреть на GC. Если железка упадет вам на голову — учите ассемблер.

Хотите скриптовать, парсить, майнить, работать с большими данными, строить модели, писать ботов, администрировать ОС и многое другое? Берите уже озвученный Python3+. Если больше работы с данными — можно еще R взять.

Мечтаете написать десктопное приложение? Тут на чем угодно! Хоть Delphi берите! Шутка, конечно. Тут надо смотреть, под какую систему писать, и нужна ли кроссплатформенность. Например, код на Python или Java будет переносим. C/C++ придется собирать отдельно под каждую платформу.

Хотите познать java core? Значит вы уже знаете, зачем вам джава. Не знаете? Как бы вам объяснить сейчас, зачем вам она. Вот вы видели воздух? А тем не менее без него не прожить.:)

Есть конечно модные штуки, Kotlin, например. Классная вещь, этот язык убил моего давнего друга по прозвищу NPE, ну как убил — ранил! Я вот только так и не понял, как его нормально изучать людям, не знающим java? Нет, «Hello world» на нем пишется легко и без джавы, а вот дальше — не знаю.

Может вы игры вздумали писать? Есть много готовых конструкторов, тот же Unity3D, а также двумерные движки, обычно, сразу под кучу платформ. Там уже сами смотрите: C#, Java и т. п. И все это сверху полируется знанием различных протоколов передачи данных, операционных систем, фреймворков, шифрования и криптографии, авторизации и аутентификации, XML, JSON, технологий работы с базами данных, защиты приложений, систем контроля версий и много-много другого.

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

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

С уважением, Эдвард Кох,
преподаватель международной школы IT и кибербезопасности HackerU
Tags:
Hubs:
-20
Comments13

Articles

Change theme settings

Information

Website
cyber-ed.ru
Registered
Founded
Employees
31–50 employees
Location
Россия