LINUX.ORG.RU

Разработка / программирование

 ,


0

3

1. Что перспективнее: веб, десктоп, мобильные платформы?

2. Какой язык программирования лучше изучать первым, чтобы разобраться в основах? Раньше, говорят, Pascal/ASM/C было. Сейчас Python?

3. Что проще, имеет более низкий порог вхождения?

Что перспективнее: веб, десктоп, мобильные платформы?

Ты сначала изучи основы, а потом решишь, что перспективнее для заработка. Рано об этом думать, и никак это не повлияет на начало обучения.

Какой язык программирования лучше изучать первым, чтобы разобраться в основах? Раньше, говорят, Pascal/ASM/C было. Сейчас Python?

Сейчас тоже ASM/C. Или Python. Это два разных подхода. Можно идти от низкоуровневых к высокоуровневым, а можно наоборот. У обоих есть плюсы и минусы. В случае, если идти от высокоуровневых к низкоуровневым, результат заметен быстрее (в смысле ты быстрее можешь написать что-то полезное для себя), но есть шанс так и застрять в них, забив на вникание в суть.

Вообще первым можно учить почти любой язык. Например лисп не так уж тяжело даётся именно первым (когда ещё не привык к другим). Самое главное ни в коем случае не учить первым языком Java или C#. Если их учить именно первыми, они вызывают необратимое повреждение мозга, и хорошим разработчиком стать тебе уже не светит. После Си или хотя бы Питоне — можно.

Что проще

ASM

имеет более низкий порог вхождения?

Python

anonymous ()
Ответ на: комментарий от KrasnoGlazik

С#. Можно конечно Java, особенно если есть интерес к мобильной разработке, но она все же довольно-таки страшна по сравнению с шарпом.
Вообще не особо важно какой будет первый ЯП. Впоследствии, если тебя вставит программирование, то ты освоишь еще несколько(а может несколько десятков?).
Не суть. В любом случае ты сам выберешь что будет нужно тебе в зависимости от интереса или вакансий на рынке.

ritsufag ★★★★★ ()
Ответ на: комментарий от anonymous

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

PS

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

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

peregrine ★★★★★ ()
Ответ на: комментарий от ritsufag

Самому новичку я бы C советовал, потом плавный переход к крестам в качестве ознакомления и запугивания, затем отправляться учить Шарп/Яву/Питон/любой другой не хипстерский ЯП высокого уровня и ASM в параллельку. Попутно выбирай основной, остальные поскольку постольку (но там неплохие примеры и идеи к подходу разработки есть, так что в общем случае знакомство с ними полезно ИМХО).

peregrine ★★★★★ ()
Ответ на: комментарий от ritsufag

.NET Core кроссплатформенный.

Насколько я понимаю, это называется фрагментация языка (причем внутри одной компании!!!). Смысл в том, что MS развивают две(!) версии языка. Одну, которая существует давно, но работает только на винде, зато там есть все. Другая .NET, которая кроссплатформенная, появилась недавно и там почти ничего нет.

Если они первую версию не свернут (со временем), то есть шанс, что будет старая версия, которая отлично работает под виндой и у которой нет ограничений, налагаемых кроссплатформенностью и другая .NET.Core, которая открытая, кроссплатформенная, но тормознее и более ограниченная (из-за кроссплатформенности) и с ограниченным набором библиотек... В результате все будут пользоваться старой .NET, а новая .Net.Core будет для галочки и для линуксовой версии MS SQL.

anonymous ()

Перспективнее сейчас мобилки (там порог входа меньше и спрос большой на разработчиков, в результате и зарплаты приличные). Так что либо Android с тем на чем там пишут, либо яблочный Ios с ихним swift.

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

anonymous ()
Ответ на: комментарий от ritsufag

Вообще не особо важно какой будет первый ЯП. Впоследствии, если тебя вставит программирование, то ты освоишь еще несколько(а может несколько десятков?).

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

anonymous ()
Ответ на: комментарий от onetoomany

Go. Изучается за 2 недели.

Да, Go - современная замена питону. Но насколько просто новичку найти работу с одним только знанием Go? А без опыта коммерческой разработки он так и останется специалистом по HelloWorld на Go.

anonymous ()
Ответ на: комментарий от anonymous

Язык то тут каким боком? Все языки .NET платформы транслируются в CIL. Если ты про реализации, то для этого введен .NET Standard.
Ни о каких «ограничениях» речи не идет, все платформоспецифичные API остаются в пределах платформы.
Естественно никаких ограничений для библиотек тоже нет.

ritsufag ★★★★★ ()
Ответ на: комментарий от ritsufag

Ни о каких «ограничениях» речи не идет, все платформоспецифичные API остаются в пределах платформы.

После CIL компилятор должен сгенерировать реальный код. В одном случае, он генерирует код только под виндовые платформы (аппаратные) с виндовым ядром (ОС). В другом случае он должен генерировать кроссплатформенный код. Для runtime аналогичная ситуация: обеспечивать работу, например, исключений только на виндовой платформе, либо кроссплатформенно (насколько я понимаю, аппаратные исключения типа деления на ноль или разыменование nullptr на Linux, не ловятся, в отличие от винды). Не поверю, что разницы никакой и что для обеспечения кроссплатформенности дополнительных сложностей не возникло, которых на старой платформе нет, потому что изначально под нее весь .NET и проектировали.

Поэтому, у меня есть предположение, что .NET более естественно работает под виндой, под которую он изначально и проектировался и старая версия .NET эти будет активно пользоваться. К тому же она более проверенная временем и большим количеством проектов. Думаю, будет как с Java, которая кроссплатформенная, но под Solaris работает лучше. MS не будет MS'ом, если сделает, чтобы .NET не имел преимуществ на винде (кому она тогда нужна, если можно приложения гонять на CentOS).

anonymous ()
Ответ на: комментарий от peregrine

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

Строгая, но не сильная. Не путай, дружок.

RedEyedMan4 ★★★★★ ()

1. Всё бренно. И там и там можно. Мобилы проще, а денег меньше. 2, 3. C# и винда. Люди реально быстро начинают быдлокодить и знать много непонятных слов типа MVC. Python на безрыбье подойдёт, но он не слишком прощающий разгильдяйство язык. Начать можно что-то за пару дней, а через пару месяцев можно уже полноценно быдлокодить. Это тебя не сделает программистом, но это вне данного вопроса. Если хочется жабу и андроид - тоже можно, на недельку подольше. Но с жабой проблема - всегда найдется коллега, который скажет, что нихрена ты жабу не знаешь, как бы ты ни пыжился. И это тоже не сделает из тебя программиста.

Короче, думай надо тебе это или нет. Я бы просто пошёл и пивка попил, и хрен бы с ним.

slapin ★★★★★ ()

Попробуй начать не с языка, а с книг. Структуры данных Ахо например, SICP, K&R и тп. Язык учится быстро, когда уже есть понимание.

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

kardapoltsev ★★ ()

веб, десктоп, мобильные платформы?

Сейчас всё становится веб-десктоп-мобильной платформой. Разделение исчезает, потому что везде один и тот же браузер.

чтобы разобраться в основах?

Без разницы.

низкий порог вхождения?

Такого нет. Хеловорды везде простые, реальность везде сложная.

ИМХО смотри в сторону PHP/Hack, Go, Java. От js тоже никуда не деться, хотя бы краем глаза нужно посмотреть.

no-such-file ★★★★★ ()
Ответ на: комментарий от anonymous

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

Основы можно изучить, не углубляясь в специфику WEB/Desktop/Mobile. Учить их лучше, конечно, на десктопе. При желании потом уже можно двигаться в направлении WEB/Mobile. Но не сразу же.

anonymous ()
Ответ на: комментарий от KrasnoGlazik

А почему вы так против java? Поделитесь, пожалуйста. Я без иронии, сам хочу начать обучение.

И Java и C# прибиты гвоздями к ООП. В самой парадигме ООП ничего плохого нет, но применять её надо там, где она нужна, а не считать панацеей. Все учебники по C# и Java выстроены так, чтобы у обучающегося в мозгу сложилась чёткая догма «объектно-ориентированное — это хорошо, остальное — говнокод», что, мягко говоря, не совсем так. Таким ученикам впоследствии очень сложно бывает отказаться от этой догмы и изучить другие парадигмы. Начинать надо явно не с ООП, а с банальной императивщины, понимания алгоритмов, и желательно даже (хоть приблизительного) понимания того, что происходит на самом низком уровне. После этого уже можно ФП, ООП и прочие страшные слова учить. Я бы наверное даже советовал сначала ФП, потом ООП.

anonymous ()
Ответ на: комментарий от RedEyedMan4

Что проще
ASM

Python

ASM проще в том смысле, что там очень мало разных сущностей, и сам язык (язык, а не все инструкции конкретного процессора), его структура, понимается практически моментально. Да и вообще не так он и труден (особенно если не лезть сразу за пределы i386 и делать это под досом, хехе), просто не для написания полноценных программ с нуля он нужен.

Легче (ниже порог вхождения и т.д.), как я выше и сказал — Python.

anonymous ()

1. Что перспективнее: веб, десктоп, мобильные платформы?

больше всего работы с хорошей оплатой - веб.

2. Какой язык программирования лучше изучать первым, чтобы разобраться в основах? Раньше, говорят, Pascal/ASM/C было. Сейчас Python?

соответственно, javascript/typescript.

3. Что проще, имеет более низкий порог вхождения?

javascript

waker ★★★★★ ()

мой тебе совет, начни с основ алгоритмов, не иди по ошибкам анонимуса, не учи синтаксис языкапрограммирования, алгоритм решает все и экономит время разработки и дает показателя профи

anonymous ()
Ответ на: комментарий от sqq

Пруф кода любого драйвера на Go?

Надеюсь, что ты не программист, потому что с логикой у тебя не всё в порядке. 1.Если Go может заменить C в части применений, это не значит, что Go может, а главное должен заменить Си вообще везде. 2.Если на Go не пишут драйверов (видимо устройств), это не значит, что такое невозможно. 3.Такая возможность, или наличие драйверов никак не связана с тем, что синтаксически Go похож на Си, и/или может заменить его в других (большинстве) сферах применения.

no-such-file ★★★★★ ()

Раньше, говорят, Pascal/ASM/C было. Сейчас Python?

И сейчас они же.
Паскаль - чтоб понять как че, не даст стрельную в ногу.
Асм - ад и содом на низком уровне.
С - Можно стрельнуть в ногу.

Пистон - хренота какая-то.

Zhbert ★★★★★ ()
Ответ на: комментарий от sqq

кто писал

Я что писал об этом в контексте обсуждения драйверов? Тут кажется десктопно-мобильно-вебный софт обсуждается.

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

причем тут синтаксис языка?

А при чём тут драйвера?

no-such-file ★★★★★ ()
Ответ на: комментарий от sqq

Если Go не может заменить хотя бы в одном из основных применений какой-либо язык, значит он, априори, никак не может заменить этот язык

Заменить где? Вообще везде в любом контексте - не может. Никакой язык не может вообще везде заменить другой язык. Ваш КО.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)