С чего начинать начинающим

Когда начинающий решает начать программирование, почти всегда задаётся вопрос о первом языке программирования. В ответ обычно называют какой-нибудь любимый язык из TIOBE top-10 и всё.

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

Иногда приделывают тему “на каком языке я буду много зарабатывать?” Ну… на любом. Индустрия большая. Хорошие разработчики нужны везде. Деньги вы зарабатывать будете не языком, но годным решением проблем. Можно на VBScript автоматизировать колхозный амбар и получать зарплату яйцами раз в квартал. Можно на VBScript писать автоматизацию бухгалтерии Газпрома и получать премию размером в колхоз с подворьями. Язык один и тот же, результат разный. Если у вас голова и руки из разных мест, всё будет хорошо хоть на C, хоть на HTML.


Дальше банальное и очевидное.

Если вам интересны красивые страницы красивых сайтов, следует начать с JavaScript, HTML и CSS. Таким макаром вы будущий фронтендер. Или веб-дизайнер.

Если интересно ставить софт, помогать в настройке, копаться с сетью, следует начать не с программирования, но с глубокого понимания сетей и операционных систем, т.к. вы будущий админ или NOC. А там вы, скорее всего, втянетесь либо в Python, либо в C.

Если заворожены маленькими железками вроде микроконтроллеров и всю жизнь мечтали перепрограммировать пульт от телевизора, вам в мир C и пробного кода под Arduino, например.

Если чётко решили нырнуть в мир разработки под смартфоны, осваивайте Java под Android. Можно было бы порекомендовать Swift под iOS, но начальные вложения там далеки от обычного бюджета начинающих.

Если вам хочется делать сайты целиком и вы видите себя могучим фрилансером, отбивающим кусок хлеба у граждан маленькой бедной Индии, учите как фронтовый стек (JavaScript, HTML, CSS), так и бековый стек (Java или Python или PHP плюс SQL). Но эта затея не на один год.

Если вы услышали по радио про BigData и то, как аналитики спасают мир, учите R и Python. Правда, без доли математики (статистики) толку от этого не будет, потому сначала хорошо бы справиться с ней.

Если вы хотите делать игры (неожиданно, ага), вариантов несколько. Игры для смартфонов попадают в совет про разработку под смартфоны. Игры для веба делаются на том же стеке, что и фронтенд, но нередко ещё и Flash (правда, его роль с каждым годом всё меньше, потому кажется, что однажды он умрёт). Десктопные игры — хардкорный C и C++.

Если ваш сосед, сосед его соседа и бабушка соседа его соседа ходят в белой рубашке с синим галстуком, от чего вы тащитесь удавом по стекловате, выбирайте Java. Своеобразный мир софта для мира финансов в основном делают на ней, если не считать ядерных кусочков на C/C++. Ну и почти 20% по TIOBE — это намёк на полоску масла под икринку в голодные времена.


А вот что делать, если вы просто хотите начать программировать, но пока не знаете, что вам нравится… как по мне, в качестве учебных сейчас актуален список из трёх языков.

Язык программирования C подходит тем, кто хочет нырнуть в это всё с головой и потом медленно вставать с колен. Это мир хардкора, жести, боли, слёз и радости. Вы узнаете очень много о том, что под ковром и как всё на самом деле работает. Но вкалывать надо будет много. После этого можно переходить в очаровательный мир C++, чтобы взорвать себе мозг сотней способов решить задачу в разных парадигмах и тысячей способов убить себя и кластер опечаткой. Как по мне, C является лучшим первым выбором для тех, кто хочет стать best of the best. Заодно проверите память и усидчивость.

Язык программирования Python подходит тем, кто хочет научиться программированию, но нежно и мягко. Чтобы не плакать и не запоминать слишком много. Академическую нишу в школах и вузах язык уверенно и давно отгрызает (чего только стоит переход SICP с кошерного Lisp на народный Python), потому лишним не будет, если захотите продолжить обучение уже в высшей школе. Учебных материалов по нему полно, технологический стек тоже весьма развит, потом можно будет вливаться junior’ом в какую-нибудь сайтоклепальную конторку. Но надо помнить, что при этом вы не получите живых знаний из области computer architecture и около неё. Надо будет добирать на стороне.

Язык программирования JavaScript подойдёт тем, кто хочет пока лишь лапу намочить, а не бросаться в омут. Полагаю, сейчас это самый щадящий новичка язык, на котором можно писать хоть в браузере, хоть в консольке (Node.js). Опять же, учебных материалов overdofiga. Детальнее эту тему (JavaScript как лучший язык для неопределившихся) я уже разбирал, потому особо расплываться тут не буду.


Воооот. Как-то так.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.