можно ли изучать два языка программирования одновременно
Почему второй язык программирования выучить проще, чем первый?
Секрет — в знании алгоритмов, а не синтаксиса
Когда только начинаешь программировать, может возникнуть такой вопрос: как опытные программисты умеют писать сразу на нескольких языках?
Ответ простой: если вы освоите хотя бы один язык программирования, писать на любом другом можно начать за полчаса. Разберём, как это работает, и посмотрим на исключение из правила.
Коротко: главная метафора
Вот простая метафора всего, что будет написано ниже.
Если вы научились водить автомобиль на механике, вы можете сесть плюс-минус за любой автомобиль и поехать. Вам необязательно ездить именно за тем рулём, за которым вы учились в автошколе. Может быть, первое время вам будет непривычно в новой машине, но вы быстро освоитесь.
Но если вы хотите участвовать в гонках типа «Формулы 1», то вам нужно знать ваш болид досконально, до винтика.
То же в разработке: принципы одинаковые, а нюансы языка можно освоить быстро.
Почему сложно учить первый язык программирования
В самом начале всё может даваться с трудом:
Это нормально, потому что вы осваиваете что-то новое. Раньше вы этого не умели, потом решили научиться и столкнулись с трудностями.
Со временем вы заметите, что циклы работают предсказуемо, а функции — идеальный инструмент для некоторых задач. Ещё через месяц вы понимаете, как собрать каркас программы, чтобы он не ломался. Ещё через месяц классы и методы уже гораздо понятнее, и часть вещей можно делать намного удобнее.
Шаг за шагом вы осваиваете свой первый язык программирования. Изучение идёт не слишком быстро, потому что много нового.
Почему второй язык учить гораздо проще
А вот когда вы решили выучить второй язык, вам не нужно заново изучать как таковое программирование.
Вам достаточно разобраться только с «грамматикой» нового языка — как пишутся функции, какие ставятся скобки, какие есть нюансы с операторами и т. д.
Разумеется, в каждом языке есть нюансы и определённый стиль программирования, который в нём приветствуется. Но это можно изучить и наработать за месяц-другой, без отрыва от производства. А по-варварски написать код на новом для себя языке можно хоть через полчаса, если документация под рукой.
Ограничения
Всё, что написано выше, верно для базового уровня владения языком — достаточного, чтобы работать, но недостаточного, чтобы делать супердорогие высоконагруженные проекты.
Как только вы переходите в «высшую лигу», от вас требуется не просто знание принципов программирования. Вы должны знать специфику конкретного языка и даже больше того — конкретной версии языка, в которой вы работаете. Например:
И многое другое. Всё-таки языки делают не дураки, и если вы хотите использовать возможности избранного вами языка на полную, нужно изучать его глубоко и внимательно.
Исключение из правила
Из этого правила со вторым языком есть одно исключение: оно не работает, если второй язык принципиально другой по своей природе. Например, если вы изучили язык высокого уровня — JavaScript, а потом захотели перейти на Ассемблер — язык низкого уровня.
Или если вы решили изучить Brainfuck. Но зачем?
Можно ли изучать два языка программирования одновременно?
Простой 1 комментарий
словам моего учителя С++ это классика.Зная его остальное будет даваться легче.
по словам моего учителя С++ это классика.З
DmitrijP, наверное, вы слишком мало времени на тостере. Зайдите в его профиль и убедитесь самостоятельно. Иногда складывается впечатление, что он тут работает.
мы не должны разжёвывать им инфу
Это всё-такие не вписка на хате, а сообщество незнакомых и, надеюсь, образованных людей. Это просто неприлично с моей личной точки зрения.
DmitrijP, ничего не понял. Вы утверждаете, что я нацист? Или фашист? Или служу четвёртому киберрейху?
Систематическое унижение нубов не есть признак шутки или аналогии. Я тоже могу сказать, что, если вы не можете получить id строки из html таблицы, то вам не следует заниматься html. Вы, возможно, даже обидитесь и не прислушаетесь ко мне. Поэтому я и предупредил автора, что, несмотря на такое отношение, ответ макдональда мне нравится, я с ним согласен.
Я тоже могу сказать, что, если вы не можете получить id строки из html таблицы, то вам не следует заниматься html.
Вы утверждаете, что я нацист? Или фашист?
ни в коем случае,лишь показал,что спор за чистоту форума ничего не исправит.
Или служу четвёртому киберрейху?
Какой-то глупый вопрос, если честно.
Очевидно нужно учить C (чтобы понимать, как работать с памятью и ссылками), С++ (чтобы понимать основу всех языков), Java (как эталон ООП) и Golang (сейчас все начинает писаться на Golang, и если ты не знаешь Golang, ты просто повязнешь в легаси).
C# и своей проект уже в самую последнюю очередь. Ты не сядешь за руль машины, пока не выучишь правила. Поэтому садиться за свой проект, пока не изучишь C/C++/Java/Golang смысла нет.
Есть ли смысл изучать 2-3 языка параллельно или же лучше погрузиться с головой в какой-то один
Какой стандарт языка Си лучше изучать в 2019 году? C89 или C99?
Ответвление темы https://www.cyberforum.ru/c-beginners/thread2529347.html Попытался собрать.
Какой язык лучше изучать C# или C++
Подскажите какой язык лучше C# или C++. Изучал C++ но в сети натолкнулся на то что C++ хуже C#.
Какой язык лучше изучать C или C++
Всем здравствуйте! Я новичок в программировании(знаю только Паскаль). Сейчас выбираю, какой язык.
Решение
Для успешного использования нужно еще знать технологии, нужно уметь генерировать идеи, планировать работу и т.д.
сейчас потихоньку учу с++.
Я тоже брался за С++ и тоже иногда под настроение беру книжку того же Шилдта) ну и на закуску Марка Лутца «Python’ю»)
Добавлено через 1 минуту
Андрей Дружинин, код, написанный не для людей, а для машины
Мхатовская пауза.
То есть когда человек пишет код, не думая о том, кто его в дальнейшем будет читать, по принципу «лишь бы компилятор со своими ошибками отвязался», и по принципу «ну ладно, зажарится как-нибудь».
Какой язык лучше изучать для разработки сайтов Java или PHP?
Скажите, какой язык лучше изучать для разработки сайтов и какой больше востребованный, Java или PHP?
Есть ли смысл покупать лучшую AGP-видеокарту или лучше сменить мат. плату?
У меня компьютер на материнке MSI 865 Neo2-PS (5 PCI,1AGP,4DDR DIMM) Стоит проц П4-2400, 1гб.
Есть ли смысл изучать делфи
Здравствуйте. Я уже изучал си++ и с-шарп. Знаю их на среднем уровне, писал на них легкие.
Программист-полиглот: востребованный профи или эрудит на обочине?
Разбираемся, сколько языков программирования нужно знать крутому специалисту и есть ли смысл в полиглотстве.
В 2021 году нехватка кадров иногда заставляет компании закрывать глаза на пустую графу опыта в резюме кандидата. Однако занять вакантное место от этого не стало проще. Начинающие айтишники всё чаще сталкиваются с тем, что только владеть языком программирования недостаточно. Работодатели требуют ещё и знать фреймворки, уверенно пользоваться софтом для разработки и подстраиваться под разные методологии. Но главный страх джуна — увидеть в вакансии мечты дополнительный язык, который невозможно изучить в короткие сроки.
В таких ситуациях люди порой теряются. Одни отказываются от идеи стать программистом. А некоторые в панике начинают гуглить самые востребованные языки и пытаться выучить их, чтобы вдруг не упустить классный проект с привлекательной зарплатой. Рассмотрим, насколько рациональны эти амбиции и стоит ли вообще пытаться выучить несколько языков.
Дисклеймер: статья выражает мнение автора и не претендует на исчерпывающую оценку рыночной ситуации.
Околопитонист. Любит писать о коде, но не любит писать код.
Кто такой программист-полиглот?
Для начала давайте чётко определимся с термином. Само понятие «полиглот» очень размытое: лингвисты расходятся во мнениях, сколько языков и на каком уровне должен знать человек, чтобы считаться полиглотом. Возьмём за отправную точку минимальный порог — четыре и более иностранных языка на уровне свободного владения.
То есть в нашем понимании «айтишным» полиглотом будет считаться тот, кто профессионально пишет код на четырёх и более языках программирования и может запросто устроиться в хорошую компанию, где эти языки профильные.
Другой важный момент — определить язык программирования. Мы не будем учитывать языки разметки и спецификаций, а также формальные, декларативные и другие компьютерные языки. Иными словами, знание HTML, XML, CSS или SQL — не в счёт. Также не стоит выделять фреймворки и платформы разработки — всё это прилегающие к языку программирования инструменты, которые кодер обязан знать.
Программист-полиглот в этой статье — специалист, который профессионально пишет код на четырёх и более языках программирования.
Что может дать «айтишное» полиглотство?
Когда вы изучаете несколько языков программирования, невольно раскрываются все их достоинства и недостатки. Например, когда я пытался после Python учить JavaScript, то заметил при работе с Django и Node.js, что фреймворк Python лучше масштабируется. Но при этом Node.js демонстрировал более высокую производительность. Такие сравнения позволяют точнее определить для себя приоритеты в разработке и потенциальные недостатки будущих программ.
В перспективе опыт работы с разными языками может помочь, если дорасти до сеньора или даже руководителя компании. На мой взгляд, подобная эрудиция позволит лучше понимать рынок разработки и его настроения, а вместе с тем и принимать более взвешенные решения. Например, пока конкуренты будут пользоваться устаревшими инструментами, вы сделаете ставку на новые. Такая смелость возможна в том случае, если вы отлично знаете эти инструменты и понимаете, почему они теряют актуальность.
Важный нюанс: опыт разработки на нескольких языках можно получить более простым и практичным методом — работая с ними в разное время. То есть писать код несколько лет на одних языках, а затем попробовать себя в других.
Другой, более спорный, аргумент за — развитие мозга: навыков мышления, концентрации, памяти. Спорный, потому что это же время можно потратить на изучение английского. Это тоже прокачка интеллекта, только более практичная, если нет желания ограничивать себя русскоязычным рынком.
Не последний момент в изучении нескольких языков программирования играют языковые сообщества. Разработчики тех же C# и Java часто отличаются не только опытом, но и образом мышления, взглядами и подходом к делу. Общение с разными людьми прокачивает не только знания в IT, но и гибкие навыки, которые особенно высоко ценятся в крупных компаниях.
Изучение нескольких языков программирования позволяет лучше понять профильный язык, а также расширить кругозор в мире IT. В теории такая эрудиция может пригодиться на более высоких должностях и прокачать софт-скиллы. Но последние плюсы не так очевидны, как риски, о которых речь пойдёт ниже.
Объять необъятное: как можно остаться на обочине IT-индустрии, умея в ней всё
Предположим, вы решили стать профессиональным разработчиком на C++, Kotlin, Swift, Python, Java, Ruby, Go, Scala, C# и TypeScript с кучей фреймворков и библиотек. Первый резонный вопрос — зачем? Многие мелкие компании могут не использовать и половину из них, а в больших корпорациях разработка делится на проекты.
Даже если вы действительно владеете этими языками на крепком уровне, а не просто знаете синтаксис, то вряд ли это как-то повысит ваш ценник. Зарплаты айтишников формируются не только исходя из компетенций и ситуации на рынке, но и из объёма работы. Успевать и выдавать высокое качество везде вы не сможете просто физически.
Но давайте пофантазируем: предположим, ваших навыков хватает на целый штат региональной веб-студии. Звучит впечатляюще, но только не для грамотного руководителя. Вести бизнес за счёт одного человека — это очень плохое решение с точки зрения менеджмента. Когда из 20 человек уходит один верстальщик, нужно найти его коллегу, которого временно может подменять мидл- или сеньор-фуллстек. А вот с уходом полиглота, на котором держится вся разработка, придётся искать целую команду, что повлечёт за собой стагнацию и убытки.
Такие многозадачные специалисты, возможно, нашли бы себя в IT-гигантах, но и это спорно — корпорации и так нанимают лучших, а брать сотрудников, от которых зависит большое количество процессов невыгодно даже им. То есть, с позиции бизнеса, гораздо проще разделять задачи между целой командой. Это снижает риски застоя от потери кадров и других форс-мажорных обстоятельств.
Иными словами, 20 дополнительных языков вряд ли увеличат ваш доход хотя бы в два раза. А если вернуться в реальность, то куда более вероятно, что такая погоня за знаниями и вовсе оставит вас без работы. Владеть огромным количеством языков на профессиональном уровне просто невозможно — они постоянно развиваются и дополняются. Вы не будете, выучив один язык, осваивать второй, а потом третий. Вы будете параллельно изучать все три.
Если не практиковать и не обновлять эти знания, то через пару лет от них не будет никакого толка. С каждым новым языком придётся всё больше времени тратить на процесс обучения, а не на работу. Очень вероятно, что язык, которому вы уделяете меньше внимания, начнёт проседать, а в загрузочные недели в голове может твориться каша вроде этой:
Скорее всего, на практике писать код на десятках языков — бесполезный навык. При этом, даже если вам удастся выучить 20 штук и держать их на профессиональном уровне, какие-то из них неизбежно будут забываться, а во время написания кода возникнет риск путаницы синтаксисов.
Требует ли IT-рынок реально знать несколько языков программирования?
Но вернёмся к минимальному порогу. Всё же знать четыре языка звучит реалистичнее, чем 20. Насколько часто IT-компании ищут таких эрудитов? Чтобы ответить на этот вопрос, я изучил несколько сотен вакансий на hh.ru. Большинство позиций с зарплатой от 150 тысяч выглядят примерно вот так:
Человека, который решил попробовать себя в программировании или просто не знаком с C++, такое количество иностранных слов может отпугнуть. Но опытный разработчик на C++ знает, что STL, Boost, MFC — это всего лишь библиотеки, а Qt — фреймворк. То есть в этой вакансии от вас требуется знание всего одного языка программирования — C++. И это, в общем-то, уже верхний уровень российского рынка.
Если вы обучились языку программирования, то быстро освоите работу с фреймворками и библиотеками. Представьте, что вы отлично знаете английский, но вас внезапно попросили добавить региональный акцент и научиться писать короткие посты в Twitter. Да, это потребует определённых усилий, но всё же задача здесь — расширить знания, а не выучить, например, ещё и арабский. Поэтому, если вы начинающий программист и ищете работу, внимательно изучайте требования к кандидатам: возможно, что от работы мечты вас отделяет всего пара часов нагугливания.
В других вакансиях от вас могут потребовать следующее:
С HTML и CSS мы разобрались выше. React, Vue.js, Node.js опять-таки инструменты профильного языка представленной вакансии — JavaScript. Обратите внимание, что базовое понимание (не владение!) C++ не обязательно, а лишь будет плюсом. Знать Go тоже не нужно, если вы уже владеете Node.js. То есть обязательных требований здесь едва ли наберётся на два языка.
Вакансии с тремя языками — огромная редкость. А если вы вдруг наткнётесь на должность, которая требует знания четырёх языков программирования на крепком уровне, то велика вероятность, что работодатель либо некорректно сформулировал должностные обязанности, либо просто некомпетентен.
Если рассуждать прагматично, то учить четыре языка и больше просто нет смысла — на рынке нет предложений для таких полиглотов. А вот знание ещё одного-двух действительно может пригодиться. Главное — чётко определиться, чем вы хотите заниматься, отобрать ведущие языки из этой области и изучить те, которые вам нравятся больше всего. Дополнительные знания расширят список потенциальных мест работы и позволят вам решать больше задач.
Если у вас всё же есть желание и время стать программистом-полиглотом, чтобы видеть мир разработки шире, то не доходите до крайности. Не беритесь за новые языки во вред старым, особенно если последние нужны вам для работы.
обложка: OlyaSnow для Skillbox Media
5 распространенных ошибок начинающих программистов
Каждый человек, начиная познавать или делать что-то новое, совершает ошибки. Если вы только делаете первые шаги, изучая программирование с нуля или осваиваете новый для себя язык программирования, будьте готовы к неудачам — воспринимайте их, как стимул к дальнейшему развитию профессиональных навыков и самосовершенствованию.
Однако это вовсе не означает, что стоит допускать ошибки, с которыми уже сталкивались прежде ваши коллеги. Ведь их вполне можно избежать, позаимствовав уже приобретенный кем-то ценный опыт. Мы описали пять ошибок «стартующих» программистов, которые можно назвать типичными и тем не менее наиболее распространенными.
Выбор языка программирования
Со сложностью выбора языка программирования сталкивается практически каждый начинающий разработчик. Это и не удивительно, ведь важно учесть сразу несколько аспектов:
Востребованность
Из года в год солидные отраслевые издания и агентства публикуют рейтинги языков программирования. Более того, индекс их популярности обновляется ежемесячно. Учитывайте эти данные! Они помогут определиться с тем, какой язык программирования стоит освоить, и постоянно актуализировать свои навыки.
Определить востребованность языка программирования также поможет штудирование популярных ресурсов по трудоустройству. Количество вакансий — один из наиболее динамичных и объективных показателей.
Инфраструктура
Отдайте предпочтение языку, который активно развивается. Учитывайте фреймворки, инструменты разработки и развертывания.
Интерес
Не стоит останавливаться на одном языке программирования — диверсифицируйте получаемые знания. Изучение разных языков и их особенностей позволит остановиться на наиболее подходящем варианте.
Сфера применения
Принять правильное решение поможет четкая позиция в отношении сферы применения полученных знаний. Хотите создавать мобильные приложения — будьте готовы углубиться в Java. Начать рекомендуем с нашего бесплатного интенсива. Стремитесь стать профессионалом в области веб-программирования — прежде всего детально изучите PHP.
Сомнения
Как бы ни было сложно осваивать профессию программиста, никогда не стоит поддаваться страху и панике. Вероятно, существуют гении в мире программирования, которым все дается сразу и без усилий. Однако большинство разработчиков терпят неудачи, даже будучи профессионалами.
Позволить страху остановить вас — одна из самых серьезных ошибок. Хотите стать программистом? Значит вы им будете! Для этого нужно учиться, практиковаться и не сдаваться.
Не учить английский
Изучение английского языка поможет вам расти в профессиональном плане и упростит освоение необходимых навыков. Общение разработчиков на отраслевых форумах ведется преимущественно на английском. Также на этом языке выходят передовые тематические материалы, включая новости, обзоры, рейтинги и т.д.
Сначала акцентировать внимание стоит вовсе не на техническом английском. «Поднатаскаться» ему удастся в процессе обучения и практики. Важнее научиться общаться, писать и понимать сказанное и написанное.
Должный уровень английского очень поможет и в том случае, если в перспективе вы планируете работать с зарубежными заказчиками. Уверяем вас, мало кто из них сносно говорит по-русски.
Учить несколько языков одновременно
Не пытайтесь освоить одновременно несколько языков программирования. Многие начинающие разработчики думают, что так они экономят время, становятся более универсальными, быстрее приобретают необходимые навыки. Также не стоит учить языки один за другим, без паузы в несколько месяцев.
На практике такая «гонка» может привести только к смешению знаний в вашей голове. Прежде чем приступить к освоению новых знаний, попрактикуйтесь, реализуйте пару проектов. Только потом приступайте к изучению незнакомого языка программирования.
Игнорировать бэкапы
Создание резервных копий — вовсе не глупости и не пустая трата времени, а реальная страховка от потери данных. Чтобы не сокрушаться по поводу безвозвратного исчезновения куска работы, на которую было потрачено уйму времени и сил, делайте бэкапы! В настоящее время существуют простые и эффективные программы, которые создают резервные копии автоматически. Многие из них бесплатные.
А какие ошибки допускали вы в процессе обучения или работы над первыми проектами?
Каждый человек, начиная познавать или делать что-то новое, совершает ошибки. Если вы только делаете первые шаги, изучая программирование с нуля или осваиваете новый для себя язык программирования, будьте готовы к неудачам — воспринимайте их, как стимул к дальнейшему развитию профессиональных навыков и самосовершенствованию.
Однако это вовсе не означает, что стоит допускать ошибки, с которыми уже сталкивались прежде ваши коллеги. Ведь их вполне можно избежать, позаимствовав уже приобретенный кем-то ценный опыт. Мы описали пять ошибок «стартующих» программистов, которые можно назвать типичными и тем не менее наиболее распространенными.
Выбор языка программирования
Со сложностью выбора языка программирования сталкивается практически каждый начинающий разработчик. Это и не удивительно, ведь важно учесть сразу несколько аспектов:
Востребованность
Из года в год солидные отраслевые издания и агентства публикуют рейтинги языков программирования. Более того, индекс их популярности обновляется ежемесячно. Учитывайте эти данные! Они помогут определиться с тем, какой язык программирования стоит освоить, и постоянно актуализировать свои навыки.
Определить востребованность языка программирования также поможет штудирование популярных ресурсов по трудоустройству. Количество вакансий — один из наиболее динамичных и объективных показателей.
Инфраструктура
Отдайте предпочтение языку, который активно развивается. Учитывайте фреймворки, инструменты разработки и развертывания.
Интерес
Не стоит останавливаться на одном языке программирования — диверсифицируйте получаемые знания. Изучение разных языков и их особенностей позволит остановиться на наиболее подходящем варианте.
Сфера применения
Принять правильное решение поможет четкая позиция в отношении сферы применения полученных знаний. Хотите создавать мобильные приложения — будьте готовы углубиться в Java. Начать рекомендуем с нашего бесплатного интенсива. Стремитесь стать профессионалом в области веб-программирования — прежде всего детально изучите PHP.
Сомнения
Как бы ни было сложно осваивать профессию программиста, никогда не стоит поддаваться страху и панике. Вероятно, существуют гении в мире программирования, которым все дается сразу и без усилий. Однако большинство разработчиков терпят неудачи, даже будучи профессионалами.
Позволить страху остановить вас — одна из самых серьезных ошибок. Хотите стать программистом? Значит вы им будете! Для этого нужно учиться, практиковаться и не сдаваться.
Не учить английский
Изучение английского языка поможет вам расти в профессиональном плане и упростит освоение необходимых навыков. Общение разработчиков на отраслевых форумах ведется преимущественно на английском. Также на этом языке выходят передовые тематические материалы, включая новости, обзоры, рейтинги и т.д.
Сначала акцентировать внимание стоит вовсе не на техническом английском. «Поднатаскаться» ему удастся в процессе обучения и практики. Важнее научиться общаться, писать и понимать сказанное и написанное.
Должный уровень английского очень поможет и в том случае, если в перспективе вы планируете работать с зарубежными заказчиками. Уверяем вас, мало кто из них сносно говорит по-русски.
Учить несколько языков одновременно
Не пытайтесь освоить одновременно несколько языков программирования. Многие начинающие разработчики думают, что так они экономят время, становятся более универсальными, быстрее приобретают необходимые навыки. Также не стоит учить языки один за другим, без паузы в несколько месяцев.
На практике такая «гонка» может привести только к смешению знаний в вашей голове. Прежде чем приступить к освоению новых знаний, попрактикуйтесь, реализуйте пару проектов. Только потом приступайте к изучению незнакомого языка программирования.
Игнорировать бэкапы
Создание резервных копий — вовсе не глупости и не пустая трата времени, а реальная страховка от потери данных. Чтобы не сокрушаться по поводу безвозвратного исчезновения куска работы, на которую было потрачено уйму времени и сил, делайте бэкапы! В настоящее время существуют простые и эффективные программы, которые создают резервные копии автоматически. Многие из них бесплатные.
А какие ошибки допускали вы в процессе обучения или работы над первыми проектами?