на чем можно программировать

Программирование для начинающих: как стартовать и куда двигаться?

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

Я, будучи недавно в такой же ситуации, гуглила, искала мануалов на Хабре (кое-что нашла: Десять советов начинающим программистам, Начинающему программисту про стартапы и не только…), но в итоге всё же была вынуждена обратиться за советом к одному хорошему человеку, который составил для меня вот такой план. С разрешения этого человека размещаю данный план на Хабре – вдруг он пригодится и кому-то ещё. (Тем более, что перечисленные книги относятся к «золотому фонду» литературы в данной сфере и проверены временем.)

UPD: Новичкам советую обратить внимание на комментарии — там активно и аргументированно корректируется этот план.

Нортон «Программно-аппаратная организация IBM PC»
Эта книга, несмотря на свою давность, относятся к тем, что пока отнюдь не устарели. Как новичок подтверждаю – повествование вполне понятно и для почти полного чайника в IT.

Гук «Аппаратные средства IBM PC»
А эту книгу стоит прочитать «поверх» – она расскажет о том, как дела в данной сфере обстоят сейчас.

Морс, Алберт «Архитектура микропроцессора 80286»
Почему тут берётся за основу именно микропроцессор 80286 – станет понятно по изучении трудов первого этапа.

Гук «Аппаратные интерфейсы ПК»

Гук «Интерфейсы устройств хранения»

Этап III. Операционные системы

Таненбаум «Архитектура компьютера»

Колисниченко, Аллен «Linux: полное руководство»
От общей теории переходим к изучению конкретной операционной системы – на примере Linux.

Немет, Снайдер, Хейн «Руководство администратора Linux»

Этап IV. Собственно программирование

Керниган, Ричи «Язык программирования С»
Почему первым для освоения выбран именно язык Си? Как мне рассказали знающие товарищи, он поможет достичь правильного «программистского мышления», чего было бы сложно достичь, начиная изучение, скажем, с Паскаля. Кроме того, язык Си по-прежнему используется в наши дни и подходит как для прикладного, так и для системного программирования.

Кнут «Искусство программирования»:
Том 1. Основные алгоритмы
Том 2. Получисленные алгоритмы
Том 3. Сортировка и поиск

Бентли «Жемчужины программирования»

Зачем осваивать эти труды? Как уже отмечали на Хабре – «наверное, нигде больше, чем в айти, не изобретается такое огромное количество велосипедов». Данные книги помогут этого избежать – и попутно будут прививать умение писать не просто код, а хороший код.

Ну а для затравки можно прочесть небольшой цикл лекций «Культура программирования» (автор – А. Бабий). Он помогает начинающим программистам понять, что их деятельность не будет проходить в вакууме, а неизбежно включит взаимодействие с другими программистами, с заказчиками и пользователями (а также включит необходимость копаться потом в своих собственных или в чужих программах).

Закономерный вопрос новичка: сколько времени займёт изучение всего этого? По прогнозам моего советчика, у человека, который может тратить на изучение программирования только вечера и выходные, на прочтение и осмысление литературы первых трёх этапов уйдёт полгода-год. На четвёртый этап тоже даётся год – чтение должно сопровождаться практикой по самостоятельному составлению программ. Как получится на самом деле – время покажет.

Буду крайне благодарна за ваши советы и уточнения.

Источник

Как начать программировать?

Для кого эта статья?

В первую очередь для тех, кто интересуется программированием, но не знает как к нему подступиться.Ведь это неизвестность, которая всегда пугает.

Ко мне периодически обращаются юноши, которые горят желанием программировать, но теряются. Действительно, есть много такого, что хочется создать своими руками. Много разного. Чаще всего молодёжь хочет написать крутейшую игру, которая будет работать на слаааабенькой видеокарте 🙂 Мне приходится их разочаровывать. Дело в том, оптимизация программы не менее сложная работа, чем её написание. целые команды профессионалов работают над этим. И наивно полагать,сто один разработчик,который только начал изучать азы программирования окажется более эффективным в этой задаче. Задача «крутая игра на слабом железе» возникает от невозможности позволить себе дорогую видеокарту. Обычно такую задачу ставят себе старшеклассники, либо студенты начальных курсов институтов.

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

Платформы

Итак, первым шагом определяем, что именно хочется программировать. В какое именно устройство вложить свой мозг и для чего это нужно именно Вам (может, просто для высокой зарплаты).

Основных направлений не так уж много:

Мобильные приложения (Android, iOS)

Виртуальная и дополненная реальность AR/VR

Мультимедиа (Фото, видео и звук)

Встроенные системы и IoT(типа, Arduino, STM32, AVR, ESP и т.п.)

Наверняка есть ещё направления. Более экзотические. Или комбинации из перечисленных. Например, дополненная реальность в мобильных приложениях.

Выбирайте, с какими устройствами Вы хотите работать и переходим к следующему шагу.

Инструменты и технологии

Лёгкий старт

Для того, чтобы новичку придать начальное ускорение в каждом развитом технологическом решении (платформа + инструмент) есть примеры готовых приложений, которые можно просто собрать и запустить на выполнение. Посмотреть как оно работает. Поизучать какие изменение в тексте программы как влияет на исполнение приложения. Есть так же образцы кода, которые можно скопировать в своё приложение. На жаргоне программистов это называется «скопипастить» от слов Copy + Paste Правда, они могут не всегда работать 🙂

Живое сотрудничество

Тайные смыслы

Почему так сложно? Потому, что современное программирование давно и далеко ушло от своих истоков. Наработано огромное количество технологий, библиотек, компонетов и прочего кода, который хочется использовать повторно. На жаргоне это называется Reuse (реюз) Встают практические задачи совместно использовать один компонент с другим, одновременно использовать разные компоненты, в одном приложении или системе использовать различные технологии одновременно. Такая задача называется интеграцией. Сборкой чего-то целого из частей. И программисты часто сталкиваются с проблемой совместимости этих самых частей. возникают ошибки, конфликты сборки и исполнения, различия систем понятий. Чтобы разрешить проблемы нужно глубоко вникать в детали и подробности. Глубже и глубже. Делать предположения, проверять их. Затем тестировать. В общем, это целый мир. «Зазеркалье»

Хотите туда? Интересно? Тогда дерзайте.

Эта статья не претендует на введение в специальность.
Она была написана постольку, поскольку вопросы задаются и я на них отвечаю.

Источник

Что следует знать перед тем как «увлечься» программированием

Вступление

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

Так получилось, что около четырех-пяти месяцев назад я решил слегка разнообразить свой досуг новым хобби и вплотную заняться веб-программированием. Как я докатился до жизни такой — это тема для совсем другой статьи, и речь сейчас пойдет не об этом. Речь пойдет о трудностях, с которыми я столкнулся, и к которым абсолютно не был готов. Возможно, этот топик поможет вам лучше подготовиться и не повторить моих ошибок.

Читайте также:  неоплаченный кредит что будет

Итак, после осознания навязчивого желания хотя бы немного да освоить это таинственное ремесло, каждый задает абсолютно логичный вопрос — «С чего же мне начать»? Ответов может быть множество — к услугам новичков скринкасты, книги, курсы, онлайн-обучение, форумы и прочее, и прочее. Учи-нехочу. И так как никакой общепринятой системы самообучения программированию не существует, можно смотреть и читать все без разбору, дни напролет. При желании, в чтении можно захлебнуться, однако для уверенного продвижения по лестнице знаний необходимо четко и эффективно расходовать свое время и силы, и если не знать с чего начать и куда двигаться — вы попросту забредете в дремучий лес, по которому можно блуждать неделями, пока, наконец, вы не выйдете на верную тропинку. Если выйдете вообще — велик шанс, что вам попросту все это дело быстро надоест.

Я и сам пошел по этому пути — скачивал тучи роликов, впридачу купил несколько книг, читал их и забрасывал, потому что мне все-равно не хватало знаний и подготовки, несмотря на то, что все материалы были предназначены для «новичков». Я постоянно гуглил разные мелочи, задавал нубские вопросы на форумах, хватая минусы, и это убивало во мне желание продолжать самообучение.

Да, любые знания и любой накопленный (нагугленный?) опыт вам, безусловно, поможет и пригодится, однако ваша цель научиться тому, чему вы хотите научиться, и увидеть мало-мальский результат в обозримом будущем ведь так?

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

Это как если вы пришли работать, скажем, крановщиком, вас в первый же день посадили в башню, и похлопали по плечу со словами «Ну, удачи!». А как же техника безопасности и базовое объяснение что делать, а чего делать не нужно? Как мне пользоваться инструментами? Что вообще у меня за инструменты в наличии? Что я должен знать перед тем как приступить к работе?

Статья носит сугубо рекомендательный характер, однако попадись мне подобный топик на глаза пол года назад, я бы значительно увеличил свою продуктивность, сэкономил уйму времени себе, а так же множеству людей с форумов, отвечавшим на мои абсолютно идиотские вопросы. К каждому пункту я добавил несколько ссылок, как отправных точек для начала обучения. Так как текст предназначается для абсолютных новичков (да и сам я еще таким себя считаю) — я буду изъясняться предельно просто и понятно, поэтому если вы — гуру, и вы нашли в моем тексте оплошность — судите, но не строго!

Итак, что же следует знать, перед тем как увлечься программированием?

1. Терминал

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

Самообучение

2. Регулярные выражения

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

Выглядеть регекс может, например, так:

Задача регулярных выражений — помочь программисту с поиском чего-либо. Сейчас объясню.

Если я в своей программе захочу найти все слова, частью которых является слово car (car, carrot, cartoon), мой регекс будет выглядеть так:

Если же меня интересует только слово car, я напишу:

Дальше — веселее. Можно фильтровать поиск через слово, через букву, исключать слова перед или же после искомого результата… Список возможностей фильтрации результатов при помощи регулярных выражений по-настоящему захватывает, и в паре с терминалом, про который я вам уже рассказал выше, эта штука просто невероятно крута. Несмотря на различающийся синтаксис отдельно взятых представителей ООП, многие из них поддерживают регексы и экономят уйму времени людям их использующим.

«Ну поиск, кому оно надо? Я же буду учиться программировать, а не искать слова!» — наверняка подумаете вы. Я вас услышал и даже понял. Так что если вы все еще сомневаетесь в необходимости заморачиваться с регулярными выражениями, просто поверьте мне на слово — они вам пригодятся. Многие книги и скринкасты используют регексы в примерах, вообще не объясняя, что происходит — авторы думают, что вы уже владеете этими азами и особенно не акцентируют внимание на разжевывании написанного.

Зубрить их совсем не обязательно, но, согласитесь, просмотр пары-тройки скринкастов на данную тематику вас явно не убъет.

Самообучение

3. Софт для разработки — знай свое оружие

Правило номер один — вы должны по-максимуму знать и владеть своими инструментами. Грамотно выбранный и изученный редактор, в котором вы вскоре обязательно начнете творить чудеса, я легко могу сравнить с превосходно подобранным самурайским мечом. Солдаты собирают и разбирают свои автоматы с завязанными глазами — вот насколько хорошо вы должны владеть софтом, которым пользуетесь! Пока вы буква за буквой пишете простую функцию, ваш враг, используя весь потенциал своего редактора, напишет несколько.

Для веб-разработки существует огромное количество програм, от простых текстовых редакторов до сложных облачных решений. В этой статье я не буду сравнивать эти редакторы между собой, вам придется сделать это самостоятельно — ведь вам с этим редактором жить, работать и смотреть на него и в горе и в радости. Я остановил свой выбор на редакторе Sublime Text 2. Помимо тонны возможностей, которыми обладает Sublime, необходимо отметить, что он условно-бесплатный и по нему существует множество отличной документации. Возможно совсем скоро, познав все хитрости Sublime и научившись подключать к нему плагины, подобная строка будет для вас обычным делом:

Читайте также:  о чем говорят ангелы 555

div>(header>ul>li*2>a)+footer>p (используется плагин Emmet, если кому интересно)

Самообучение

4. Система контроля версий

«Ну а это еще что такое?» — спросите вы. О, система контроля версий это прекрасная вещь, без которой в наши дни не обходится ни один серьезный девелопер. Википедия гласит — «Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.» Систем контроля версий существует достаточно много, поэтому сразу скажу — ниже речь пойдет исключительно о GitHub, самом большом сервисе для совместной разработки проектов.

Резонный вопрос: «Зачем мне этот Гитхаб осваивать, ведь мне пока нечего выкладывать?» А причин на то несколько. Помимо содержания собственных репозиториев, GitHub, во-первых, поможет вам осознать себя частью огромного сообщества разработчиков (возможно, кто-то из читающих сейчас ухмыльнулся, но поверьте, это действительно важно, особенно на ранних стадиях обучения!). Кроме того, вы сможете взглянуть на чужой исходный код и научитесь правильно его скачивать и «форкать» (копировать). В дальнейшем GitHub частенько будет всплывать в различных онлайн-курсах и скринкастах, и, конечно же, их авторы будут уверены в том, что вы знаете, как Гитхабом пользоваться. Поэтому если у вас найдется немного времени на неделе, сделайте себе одолжение — попробуйте Git.

Самообучение

5. История и культура

Этот пункт, скорее, вспомогательный, но если программиста которым вы восхищаетесь зовут Стив Джобс, то прошу вас, продолжайте чтение. Программирование имеет богатую и интересную историю (говорю вам как историк по первому диплому), в которой следует поковыряться хотя бы для общего образования. Занимаясь чем-либо, всегда полезно знать, откуда у этого чего-либо растут ноги. Кроме того, я искрене считаю, что без знания истории предмета невозможно полностью понять его суть, и, следовательно, достичь предельных успехов в его освоении. Поэтому если по прошествии некоторого времени такие имена, как Линус Торвальдс или же Грейс Хоппер не будут для вас пустым звуком — уважение вам и респект!

Помните — тот, кто не изучает историю, повторяет ее ошибки.

Заключение

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

Источник

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

Сегодня каждый, кто стремится попасть в IT, задается вопросом — какой язык программирования изучить? Все ищут универсальный ответ, который предопределит головокружительную карьеру. Да, до изобретения интернета и появления мобильных платформ можно было освоить один язык, написать на нем программу и быть востребованным разработчиком. Сегодня реалии таковы, что даже джуниорам предъявляется огромный список требований, среди которых — знание нескольких языков.

Судите сами: для веб-разработки неплохо бы владеть PHP, JavaScript, Python, Ruby, а еще HTML и CSS; в мобильной сфере — Swift, Objective-C, Java, C#. Перечень языков для создания десктопных приложений можно даже не начинать — по сути, все будут полезны. Именно поэтому мы взяли на себя ответственность назвать 5 языков программирования, которые надо изучить хотя бы шапочно, чтобы сегодня называться программистом.

Python

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

Несмотря на визуальную простоту, этот язык — один из мощнейших. С его помощью с одинаковой легкостью можно и работать с текстом, и строить нейронные сети. Посмотрите:

В этом коде мы создали собственную функцию для вычисления последовательности Фибоначчи, а потом вывели ее на экран. Всего 6 строк потребовалось, чтобы описать достаточно сложное математическое действие.

Стоит упомянуть, что на данный момент актуальны две версии: Python 2 и Python 3. Вам за основу лучше брать последнюю, так как поддержка Python 2, а значит — и активная разработка на ней, прекратится совсем скоро.

Кстати, для тех, кто решился изучать Python, мы подготовили список полезных и практичных советов.

JavaScript

Следующий must have среди языков — JavaScript, для работы с ним хватит браузера. Синтаксис здесь на порядок сложнее: появляются служебные символы и конструкции с разношерстными скобками, названия функций далеко не всегда раскрывают суть действия, и даже простейший код имеет структурированный вид. Взглянем на переписанный код с функцией Фибоначчи:

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

В целом, JavaScript незначительно уступает Python по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

Если вы не определились с языком, значит еще не решили, что вас привлекает: веб, мобильные или десктопные приложения. Тогда ваше решение — C#, универсальный инструмент для всех направлений разработки. Чтобы создавать десктопные приложения, понадобится Visual Studio (версия Community — бесплатная). Для мира мобильных устройств установите Xamarian, а для веба пригодится ASP.NET.

Взглянем на наш код на языке C#:

Код вновь незначительно усложнился — это связано с использованием ключевого слова static. На этом этапе вы познакомитесь с грамотным использованием памяти, областями видимости данных и полностью погрузитесь в ООП. Ну, если не успели при знакомстве с JavaScript.

Подробней о языке C# вы можете узнать в нашей ознакомительной статье.

Swift

Подходим к самому интересному — языкам, безупречное владение которыми поможет вам попасть в сферу мобильной разработки. Swift не вполне универсален: он еще не полностью вытеснил Objective-C из приложений для Apple, но перспективы у него блестящие.

Четвертая версия Swift вышла в 2017 году: она содержит множество улучшений для работы со строками, коллекциями; возросла надежность и многое другое. Это уже не «сырой» язык, а классический представитель верхушки рейтинга TIOBE с планомерным развитием. С помощью Swift вы можете создавать приложения для всех продуктов Apple: macOS, watchOS, iOS и любой новой системы, если она появится.

Посмотрим на код последовательности Фибоначчи:

Читайте также:  нейроседативный массаж лица что это

Более двух десятков лет этот язык находится в списке самых востребованных, а это уже что-то значит. Сегодня он в основном ассоциируется с разработкой приложений для Android — но это лишь малая часть его возможностей. При помощи Java вы можете создавать графические виджеты для веба или писать десктопные приложения — принцип независимости от платформы и устройства в Java живет и процветает.

Кроме того, Java — великолепный язык, чтобы полноценно понять программирование: здесь реализованы все принципы ООП, организована работа с памятью и периферией, можно поупражняться с функциональным программированием.

А вот так выглядит Java-код нашей последовательности в простейшем императивном случае:

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

Для тех, кто хочет начать быстрое освоение Java, наш педагог Сергей Ирюпин подготовил цикл вводных статей, которые мы постепенно публикуем в блоге:

Заключение

К списку можно было бы добавить ряд полезных языков вроде PHP, C++ или Ruby. Или несколько функциональных для общего развития: Lisp, Haskell, Clojure. Впрочем, до этого вы обязательно дойдете. Но сперва выбирайте специализацию, записывайтесь на курсы GeekBrains и осваивайте пять описанных must know языков.

UPD. Если вы хотите знать, как изменилась ситуация с языками программирования во второй половине 2019 года, мы подготовили об этом отдельный материал.

Сегодня каждый, кто стремится попасть в IT, задается вопросом — какой язык программирования изучить? Все ищут универсальный ответ, который предопределит головокружительную карьеру. Да, до изобретения интернета и появления мобильных платформ можно было освоить один язык, написать на нем программу и быть востребованным разработчиком. Сегодня реалии таковы, что даже джуниорам предъявляется огромный список требований, среди которых — знание нескольких языков.

Судите сами: для веб-разработки неплохо бы владеть PHP, JavaScript, Python, Ruby, а еще HTML и CSS; в мобильной сфере — Swift, Objective-C, Java, C#. Перечень языков для создания десктопных приложений можно даже не начинать — по сути, все будут полезны. Именно поэтому мы взяли на себя ответственность назвать 5 языков программирования, которые надо изучить хотя бы шапочно, чтобы сегодня называться программистом.

Python

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

Несмотря на визуальную простоту, этот язык — один из мощнейших. С его помощью с одинаковой легкостью можно и работать с текстом, и строить нейронные сети. Посмотрите:

В этом коде мы создали собственную функцию для вычисления последовательности Фибоначчи, а потом вывели ее на экран. Всего 6 строк потребовалось, чтобы описать достаточно сложное математическое действие.

Стоит упомянуть, что на данный момент актуальны две версии: Python 2 и Python 3. Вам за основу лучше брать последнюю, так как поддержка Python 2, а значит — и активная разработка на ней, прекратится совсем скоро.

Кстати, для тех, кто решился изучать Python, мы подготовили список полезных и практичных советов.

JavaScript

Следующий must have среди языков — JavaScript, для работы с ним хватит браузера. Синтаксис здесь на порядок сложнее: появляются служебные символы и конструкции с разношерстными скобками, названия функций далеко не всегда раскрывают суть действия, и даже простейший код имеет структурированный вид. Взглянем на переписанный код с функцией Фибоначчи:

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

В целом, JavaScript незначительно уступает Python по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

Если вы не определились с языком, значит еще не решили, что вас привлекает: веб, мобильные или десктопные приложения. Тогда ваше решение — C#, универсальный инструмент для всех направлений разработки. Чтобы создавать десктопные приложения, понадобится Visual Studio (версия Community — бесплатная). Для мира мобильных устройств установите Xamarian, а для веба пригодится ASP.NET.

Взглянем на наш код на языке C#:

Код вновь незначительно усложнился — это связано с использованием ключевого слова static. На этом этапе вы познакомитесь с грамотным использованием памяти, областями видимости данных и полностью погрузитесь в ООП. Ну, если не успели при знакомстве с JavaScript.

Подробней о языке C# вы можете узнать в нашей ознакомительной статье.

Swift

Подходим к самому интересному — языкам, безупречное владение которыми поможет вам попасть в сферу мобильной разработки. Swift не вполне универсален: он еще не полностью вытеснил Objective-C из приложений для Apple, но перспективы у него блестящие.

Четвертая версия Swift вышла в 2017 году: она содержит множество улучшений для работы со строками, коллекциями; возросла надежность и многое другое. Это уже не «сырой» язык, а классический представитель верхушки рейтинга TIOBE с планомерным развитием. С помощью Swift вы можете создавать приложения для всех продуктов Apple: macOS, watchOS, iOS и любой новой системы, если она появится.

Посмотрим на код последовательности Фибоначчи:

Более двух десятков лет этот язык находится в списке самых востребованных, а это уже что-то значит. Сегодня он в основном ассоциируется с разработкой приложений для Android — но это лишь малая часть его возможностей. При помощи Java вы можете создавать графические виджеты для веба или писать десктопные приложения — принцип независимости от платформы и устройства в Java живет и процветает.

Кроме того, Java — великолепный язык, чтобы полноценно понять программирование: здесь реализованы все принципы ООП, организована работа с памятью и периферией, можно поупражняться с функциональным программированием.

А вот так выглядит Java-код нашей последовательности в простейшем императивном случае:

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

Для тех, кто хочет начать быстрое освоение Java, наш педагог Сергей Ирюпин подготовил цикл вводных статей, которые мы постепенно публикуем в блоге:

Заключение

К списку можно было бы добавить ряд полезных языков вроде PHP, C++ или Ruby. Или несколько функциональных для общего развития: Lisp, Haskell, Clojure. Впрочем, до этого вы обязательно дойдете. Но сперва выбирайте специализацию, записывайтесь на курсы GeekBrains и осваивайте пять описанных must know языков.

UPD. Если вы хотите знать, как изменилась ситуация с языками программирования во второй половине 2019 года, мы подготовили об этом отдельный материал.

Источник

Строительный портал