С какого языка начать изучение программирования
vk f t

С какого языка начать изучение программирования

У нас нет одно­знач­но­го отве­та, но есть кое-что получ­ше.

Итак, вы хоти­те ворвать­ся в про­грам­ми­ро­ва­ние, но там десят­ки язы­ков и непо­нят­но, за что брать­ся. Пусть эта ста­тья вам немно­го помо­жет.

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

В про­грам­ми­ро­ва­нии глав­ное — понять прин­цип реше­ния задач и состав­ле­ния алго­рит­мов, а не зна­ние кон­крет­ных команд язы­ка. Ещё вы полу­ча­е­те допол­ни­тель­ный бонус: на изу­че­ние вто­ро­го язы­ка про­грам­ми­ро­ва­ния у вас уйдёт в несколь­ко раз мень­ше вре­ме­ни, чем на пер­вый. Дело в том, что вам не нуж­но тра­тить вре­мя на пони­ма­ние прин­ци­пов, и оста­нет­ся толь­ко разо­брать­ся, как нуж­ная вам вещь реа­ли­зо­ва­на в кон­крет­ном язы­ке.

Мы не ста­ли раз­би­рать каж­дый язык или область при­ме­не­ния, пото­му что их дей­стви­тель­но очень мно­го, а вме­сто это­го поста­ра­лись отве­тить на вопрос «А для чего мне нуж­но изу­чать мой пер­вый язык про­грам­ми­ро­ва­ния?».

Чтобы разобраться в программировании

Ино­гда быва­ет так, что чело­век про­сто хочет понять, како­во это — быть про­грам­ми­стом, и хочет ли он даль­ше этим зани­мать­ся. В этом слу­чае нет смыс­ла учить мно­го­по­точ­ность в Python или углуб­лять­ся в пере­груз­ку опе­ра­то­ров на C++.

Вме­сто это­го луч­ше выбрать такой язык про­грам­ми­ро­ва­ния, кото­рый будет лег­ко осво­ить и у кото­ро­го есть боль­шая «груп­па под­держ­ки» в интер­не­те: фору­мы, учеб­ные мате­ри­а­лы и кур­сы. Рань­ше все начи­на­ли с Turbo Pascal 7.0, но сей­час этот язык мораль­но и тех­ни­че­ски уста­рел, поэто­му луч­ше выбрать что-то дру­гое.

JavaScript. Самый лёг­кий и струк­ту­ри­ро­ван­ный язык с точ­ки зре­ния обу­че­ния для нович­ка. Язык поз­во­ля­ет неко­то­рые воль­но­сти и при этом содер­жит жёст­кие кон­струк­ции вро­де объ­яв­ле­ния пере­мен­ных или оформ­ле­ния функ­ций.

Golang. Реаль­но про­стой язык, кото­рый мож­но осво­ить на началь­ном уровне за пару недель. При этом он из-за сво­их осо­бен­но­стей часто не поз­во­ля­ет напи­сать «пло­хой» код, что хоро­шо для начи­на­ю­щих. Отдель­ный плюс — Go-рутины, кото­рые иде­аль­но рабо­та­ют с мно­го­за­дач­но­стью.

Python. Если вы хоти­те сра­зу разо­брать­ся с ООП и все­ми пре­иму­ще­ства­ми объ­ект­но­го под­хо­да в про­грам­ми­ро­ва­нии — выби­рай­те Python. У него огром­ное сооб­ще­ство в сети и мно­го сфер при­ме­не­ния.

Зарабатывать много денег

Если ваша цель — сра­зу на стар­те полу­чать боль­шую зар­пла­ту, нуж­но отби­рать язы­ки по вос­тре­бо­ван­но­сти пря­мо сего­дня. Мы уже изу­ча­ли рынок зар­плат про­грам­ми­стов в Рос­сии, и вот кар­тин­ка из это­го мате­ри­а­ла:

Самые высо­ко­опла­чи­ва­е­мые ЯП в Рос­сии по дан­ным Мое­го кру­га на конец 2018 года.

Сра­зу вид­но, что мак­си­мум денег при­но­сят Elixir, Golang и Scala, потом идут Objective-C и Ruby. Не бои­тесь слож­но­стей — учи­те Scala, хоти­те быть в трен­де — Golang вам в помощь, люби­те про­сто­ту и ООП — начи­най­те с Ruby.

Важ­но: одно толь­ко зна­ние язы­ка не гаран­ти­ру­ет сра­зу высо­ких зар­плат (да и вооб­ще ниче­го не гаран­ти­ру­ет) — для это­го нуж­но вла­деть инстру­мен­том на уровне мид­ла или сеньо­ра. Но на стар­те зар­пла­та у таких про­грам­ми­стов обыч­но немно­го выше, чем у раз­ра­бот­чи­ков на дру­гих язы­ках.

Получить перспективную профессию

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

Что­бы это сра­бо­та­ло, нуж­но одно­вре­мен­но две вещи: понять, какие отрас­ли будут актив­но раз­ви­вать­ся бли­жай­шее вре­мя и какие язы­ки в ней исполь­зу­ют­ся.

Мы не зна­ем навер­ня­ка, что эти обла­сти будут гаран­ти­ро­ван­но раз­ви­вать­ся, но нам кажет­ся, что к это­му сто­ит при­смот­реть­ся:

Машин­ное обу­че­ние и big data — R, Python, Scala.

Ней­ро­се­ти — Python, R, C++(для рабо­ты с ней­ро­се­тя­ми на низ­ком уровне), CUDA OpenGL (для запус­ка ней­ро­нок на видео­кар­тах).

Мобиль­ная раз­ра­бот­ка — Swift, Java, Objective-C, C#.

Раз­ра­бот­ка ПО под мик­ро­про­цес­со­ры и «желе­зо» — С++ и Ассем­блер.

Решить конкретную и прикладную задачу

Здесь всё про­сто — смот­ри­те, какая зада­ча перед вами сто­ит, и в зави­си­мо­сти от неё выби­ра­е­те язык. Если нуж­но посчи­тать всех посе­ти­те­лей сай­та — бери­те любой веб-ориентированный язык, JavaScript, PHP, Golang, Java или что угод­но ещё.

Обра­бо­тать мно­го про­цес­сов одно­вре­мен­но — исполь­зуй­те Golang, Erlang, Haskell или Ruby.

Хоти­те напи­сать при­ло­же­ние для iOS — Swift.

Напоследок

Нет одно­го уни­вер­саль­но­го язы­ка про­грам­ми­ро­ва­ния на все слу­чаи жиз­ни.

Если вы зна­е­те один язык, дру­гие будет осво­ить намно­го лег­че.

Чем боль­ше язы­ков вы зна­е­те, тем шире ваш кру­го­зор и тем цен­нее вы как спе­ци­а­лист.

Необя­за­тель­но все даль­ней­шие зада­чи решать на сво­ём пер­вом язы­ке про­грам­ми­ро­ва­ния — все­гда мож­но выучить что-то новое.

При­хо­ди­те к нам учить­ся: на ана­ли­ти­ка, бэкен­да, фрон­тен­да, веб-разработчика и дата-сайентиста. Мы обу­ча­ем не язы­кам, а целым про­фес­си­ям. 

Ещё по теме