LINUX.ORG.RU

Выбор первого языка

 , , ,


0

3

Вечер добрый, господа! Пожалуй подобных вопросов было уйма, но помогите выбрать первый язык. Всего у меня 3 варианта:С++, Goolag(Go) и Python. Хотелось бы узнать преимущества и недостатки каждого их них, а также какой из них способен выработать хорошие привычки в написании кода которые помогут избежать быдлокодинга в будущем? Какой из них, по вашему мнению, будет востребованным в будущем, какой с самой высокой оплатой, а какой с низким порогом входа? Также интересен один момент, сколько необходимо времени изучать язык чтобы после попробовать заняться фрилансом?(Естественно перед этим изучив алгоритмы и работу с базами данных(Ну и посоветуйте пж книжек на эту тему)). Буду работать в основном под Linux и писать программы под него соответственно



Последнее исправление: ZeeCaptain (всего исправлений: 2)

Python вполне хорош будет для этого. Заодно поймешь, твоё ли оно вообще. Python очень хорош тем, что отучает с малолетства велосипидорствовать, кроме прочего.

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

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

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

а ты точно в тот топик пишешь? ТС спрашивал, какой из трёх выбрать: С++, Goolag(Go) и Python. По Python немного больше вакансий, чем по C++, а Go вообще «на дне»

Sahas ★★★★☆
()

И вообще, первый ЯП — это как первая женщина. Выбирай-не выбирай, а потом всё равно сюрпризов не оберёшься. Так что бери какой попадётся и ныряй в это дело с головой.

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

Это называется «среднее по больнице». Запросов на C++ программистов гораздо больше и разной компетентности. Для «редких» языков ситуация обратная — вакансий мало, и на каждую нужен «крутой специалист».

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

программистов на паскале в среднем больше денег, а у программистов на С++ — меньше

Не совсем о том. То, что у паскалистов выше оплата говорит только о том, что спрос превышает предложение. А вот почему спрос превышает предложение - как раз и есть самая мякотка. В случае паскалистов - спрос превышает предложение вовсе не потому, что они везде нужны и мы имеем запрос рынка на генерацию новых паскалистов, как ты понимаешь.

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

Цитирую:

C++

Сложно, долго, почти нигде не нужно.

Python

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

Выделяю для невнимательных:

C++: почти нигде не нужно.

Python: работы на нём больше

При этом по востребованности на рынке труда они лежат довольно близко

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

C++, например, довольно востребован в AdTech. А не только в клепании говноподелок на кутях, как многие тут думают. Но уровень плюсовика для AdTech и для клепания говноподелок на кутях - он, как бы, не соизмерим.

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

А теперь посмотри на entry level и на зарплаты.

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

WitcherGeralt ★★
()
Ответ на: комментарий от LINUX-ORG-RU

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

Я просто прекрасно помню, какой у меня был кайф от перехода Basic->Pascal, и с каким «трудом» дался C (в плане привыкания к синтаксису). И потом (да и сейчас) мне С не нравится ни по синтаксису, ни как ЯП (С++ уже лучше)

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

Ну знаешь, так и JavaScript не сильно далеко от Python по востребованности на рынке труда... Согласен, что есть ЯП более востребованные, чем С++, но писать огульно, что он «нигде не нужен» — это зашквар, ИМХО...

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

Синдром утёнка. Большинство языков сегодня всё же C-like в плане синтаксиса, так что нуб как ты фалломорфировать не будет, а наоборот поимеет с этого профит в будущем, когда другие языки изучать начнёт.

портить себе впечатление от программирования

Не портить, а наоборот, не создавать ложное впечатления того, что программирование — это тяп ляп, и всё само работает.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Во, лорчую, и я о том.

В то же время, люди со знанием неплохим Python и отличным знанием железа - нужны поболее, чем плюсовики. Индустрия за увлечением облаками просрала все полимеры в виде тех, кто умеет работать с bare metal.

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

Так может, сразу с языка Ассемблера начать, чего уж?.. Познать азы архитектуры фон Неймана, так сказать...

Интересно, где это в языках, отличных от «C-like», тяп-ляп и всё само работает?.. Вообще-то, в том же Python'е интерпретатор постоянно по рукам бьёт, если начинаешь фигово делать...

А «детей» проще и продуктивнее начинать учить с простых интуитивно понятных вещей, типа рисования и прочая, и прочая, а не числа Фибоначчи заставлять считать с максимальной эффективностью и минимальным жором памяти

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

Индустрия за увлечением облаками просрала все полимеры в виде тех, кто умеет работать с bare metal.

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

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

Когда-то от рынка плюсов «отъела» Java, потом и Шарпы с Python, теперь чуть-чуть отъел Go (у плюсов в меньшей степени, больше у питона и джавы), по всем фронтам наступает Rust. Они всё менее и менее перспективно выглядят. Если опустить системную разработку, встройку и гуй, то даже не знаю кто будет смотреть на плюсы в качестве языка для нового проекта.

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

Буквально на днях увидел такой С-код и чуть не упал... Естественно, он у меня на 64-битной оси не скомпилился:

int pointer;
...
pointer=(int)malloc(array_size);
Sahas ★★★★☆
()
Ответ на: комментарий от WitcherGeralt

а я и не считаю С++ лучшим ЯП в плане востребованности, «красивости» и пр.

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

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

Так может, сразу с языка Ассемблера начать, чего уж?..

Если не перегибать, то окажется, что Си прекрасно подходит для того чтобы вкатиться, а потом и перескочить на другой C-like без труда.

Вообще-то, в том же Python’е интерпретатор постоянно по рукам бьёт, если начинаешь фигово делать…

Нет.

А «детей» проще и продуктивнее начинать учить с простых интуитивно понятных вещей

Только в программировании не простое и не интуитивное для них потом окажется чем-то сродни магии. Проходили, знаем. И на примере множества коллег и даже на личном.

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

Нет.

Да.

Только в программировании не простое и не интуитивное для них потом окажется чем-то сродни магии. Проходили, знаем. И на примере множества коллег и даже на личном.

Как оказывается (сужу по своим студентам), для многих в принципе программирование — это «чёрная магия». Не спорю, что для настоящих программистов знание, как оно всё устроено изнутри, является не просто необходимым, а жизненно важным... Если не рассматривать вебмакакинг :)

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

Это называется «среднее по больнице»

Я ж говорю — отмазки пошли.

Запросов на C++ программистов гораздо больше

Говорите уж сразу: если у вас нет амбиций и всё равно чем заниматься, выбирайте С++ там полно галер, которым нужны гребцы. Ещё можно таксистом устроиться.

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

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

В качестве числодробилки тот же питон вполне годится, так как библиотеки-то за тебя уже написали (не на питоне) и произодительность будет на уровне, знай говнячь.

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

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

Да

Расскажи тому, кто на питоне больше десяти лет пишет, ага.

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

Поздравляю, вы перешли на третью стадию, стадию торга. Осталось пережить депрессию и принятие у вас в кармане.

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

У тебя что там за компилятор? И причём тут 64 бита? Они приведётся к размеру инта даже если он 3битный. И в каком контексте это используется? Указатель как хеш юзают и всё. Например выделяют несколько банок памяти для своего аллокатора, эти банки сортируют в пуллы банок. На консолях вроде такое было где по виртуальному адресу можно судить о реальном ибо они не совпадают явно, но совпадают их диапазоны реальные по типу плюс минус где то там. На дремкаст вроде такое можно было делать (может ошибаюсь) там сильно зависило то в какую область памяти ты напишешь, в начальную или нет. Но я уже начал шизу за фазию фантазировать. Где увидел?

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от ugoday

Ну а у SAP программиста ещё больше зарплата, и о чём это говорит?..

Это же всё «нишевые» вещи. Выучиться на Perl, потом несколько лет мыкаться по вакансиям, где perl нафиг не нужен (ибо, как я говорил, для легаси нужен профи), набить кучу шишок и только потом устроиться на типа большую зарплату перловиком на унылую работу, которая никому не интересна (и поэтому за неё много платят), вместо того, чтобы выучить сразу популярный ЯП и влиться в амбициозный стартап с интересными задачами...

Sahas ★★★★☆
()
Ответ на: комментарий от LINUX-ORG-RU

Ну, не знаю. Я конечно не настоящий сварщик, но, по-моему, подход с обобщёнными функциями проще и как-то человечнее. Интуитивно понятно, что совой об пень, что пнём об сову — одинаково. И размышления, должно ли бить быть методом совы или пня — лишь лишняя когнитивная нагрузка.

ugoday ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Ругается g++:

ошибка: cast from «void*» to «int» loses precision

gcc 9.2.0 не ругается, но кидает warning:

предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]

Юзается в контексте... Указателя. Т.e. потом обратно приводится к (int*) и разыменовывается

Тут пишут, что

A quick hacky fix might just to cast to long instead of int. On a lot of systems, sizeof(long) == sizeof(void *). 

Код мне дали посмотреть по работе...

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 2)
Ответ на: комментарий от Sahas

Ну а у SAP программиста ещё больше зарплата, и о чём это говорит?..

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

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

g++

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

предупреждение: приведение указателя к целому другого размера

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

Предположу что выделяется 1 байт. А значение адреса юзается как рандомное число =) Вариков больше нет.

Ну или тупо звёздочки забыли поставить, тогда как оно работает в целом… короче тебе дали посмотреть потому что оно не работает да? ))))))))))))

тут

ой, не заметил ща глянем

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

для этого надо думать по другому, а ТС ещё по обычному надо научиться

А может, не надо? Может, сразу по-нормальному?

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

Не, я против лиспов ничё не имею. Оно даже красивое.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Да не, я ж говорю, что используется именно как указатель, причём не на 1 байт, а на массив (динамический, произвольного размера). Зачем хранить указатель в виде int - я хз, но на том же SO пишут, что для 64-битов размер указателя — это long, поэтому и warning кидается. В общем, как ни посмотри — какой-то г-код...

Оно (этот код) было создано под виндой в MSVS. Я, естественно, собирал под линуксом. Дали просто как пример некоторого алгоритма, реализованного «на чистом C»

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.