Olezhka
А кто-то фанатеет от “Дэлфи”, например, и говорит, что ни на что другое его ни в жизни не променяет!
Как показывает практика, они переходят на C++, но потом на нём пишут, как на Delphi. Очень слабая подготовка у них, виндовые мозги.
Вот пример
Программа The Bat!
https://www.ritlabs.com/ru/products/thebat/Очень классная программа, я на ней отсидел лет десять. Но посмотри, они так и не перешли на Linux-системы. То есть это значит, что этой программы не будет ни в Linux'ах, которые сейчас дофига где есть, в том числе и на государственном уровне, ни на смартфонах, ни на планшетах, и на сетевых цепочках её тоже не будет ни в каком виде. То есть представляешь, да? Просто написание программы на Delphi убило её напрочь.
Блин, на их месте я бы уже давно переписал её на C++ и с помощью этого вышел на рынки разных устройств, которые сейчас есть у каждого жителя планеты в кармане. Но это вот результат - виндовые мозги, виндовая привязка.
То есть мышление паскалиста - оно вот такое, то есть мозги не работают у человека, потому что он их не развивает. Даже если он переходит на C++, они у него всё равно такими остаются. Он на C++ пишет, как на Delphi, как будто C++ - это такой Delphi.
C же - это UNIX'овый язык. А UNIX вот как раз мозги развивает. Поэтому, если ты начинаешь с Delphi, ты остаёшься дураком; если ты начинаешь с C, ты становишься мастером, потому что у тебя идёт развитие постоянно, так как весь мир UNIX'овый сейчас. Все эти Android'ы и iOS'ы - это всё UNIX'овые идеи.
Olezhka
А вот скажи, пожалуйста! Если все же заняться изучением “С”, то с какого его подвида лучше начинать? С изначального “С”? С более нового “С++”? Или с новомодного “С#”?
У него нет подвидов. Всё, что ты перечислил, - это
разные языки. Они делаются абсолютно разными производителями. А использование буквы C там везде - это просто маркетинговый ход. Язык C известен и является легендарным, а эти просто хотят показать, что они тоже существуют “смотрите на нас, мы тут!”. Поэтому и нет никакого языка C/C++, потому что C - это один язык, а C++ - это другой язык.
Если ты начнёшь с C, ты его сможешь изучить, потому что он компактный и его границы хорошо очерчены. То есть ты всегда видишь откуда и докуда он продолжается.
Если ты начнёшь с C++, ты его никогда не сможешь изучить, потому что он и так разросся, но и продолжает разрастаться, причём необходимость в этом только одна - чтобы он случайно не сдох, чтобы про него случайно не забыли. Именно поэтому они от страха всё время в него что-то добавляют и раз в три года его обновляют. Это просто чтобы он не потерял свои позиции как старьё какое-то.
Если ты начнёшь с C#, ты будешь таким типа паскалистом. Раньше были паскалисты, а теперь их место заняли сишарписты. То есть там аналогично, ты кроме винды не будешь знать ничего, как паскалисты, которые ничего не знали, кроме DOS'а. Весь мир на UNIX'ах сидел, а они сидели и ковыряли этот DOS беспонтовый два притопа три прихлопа, который так и подох в итоге в таком же виде неразвитом.
Я когда на Linux переходил и первый раз её загрузил, я подумал “это что? такой DOS что ли?”, когда смотрел на консоль на эту. А потом когда я узнал, что в этой консоли можно чуть ли не чайник заваривать и чаёк попивать, я сразу понял “это не DOS никакой! это что-то мощное!”. Ну я просто mp3-список песен запустил в консоли и оно просто стало играть, показывая мне всю информацию, все паузы там можно было делать, всю громкость туда сюда двигать, и там эквалайзер был даже прямо в консоли, практически WinAmp, только в консоли. Какой там DOS, DOS даже близко ничего подобного не сделает, там будешь только сидеть и тупить, глядя в командную строку, и всё - вот и вся твоя деятельность будет на многие месяцы.
Так что ты будешь ну таким “IT Борода” с YouTube'а, вот он годами программирует на C#, работает там где-то, но не знает вообще ничего, во-о-о-обще. Он не знает ни алгоритмов, ни какие системы существуют, ни асинхронщину какую-нибудь там, ни модели всякие сложнее там чем два притопа три прихлопа, просто вот, с чем винда не работает, вот он этого всего не знает, не знает
годами. А винда не работает ни с чем практически, кроме своей всякой фигни, которой она там пытается просто рынок захватывать. Поэтому у него и интервью все в стиле “а какой ты пирожок в детстве ел?”. Он просто не знает, что спрашивать, потому что он просто не знает ничего.
Olezhka
И что типа эта “NET”-платформа объединяет в себе сразу несколько языков программирования. Ты такое слышал?
.NET полностью принадлежит Microsoft. А Microsoft не заинтересована в развитии чего-то там в мире. Она заинтересована в развитии только себя. Платформа хорошая, но с ней ты будешь развивать Microsoft. Потом у неё начнутся проблемы и ты не сможешь никуда перейти. Будешь хавать эти проблемы, ты в зависимости, а тебе будут говорит “да так и надо, это всё правильно, так и должно быть”. Потом будет какое-нибудь “заплатите сто рублей, а то мы выключим вам .NET”, ты такой “чего? а почему?”, а они такие “ничего, а потому что”. И всё, и ты сидишь и всё, и тебе и ни туда и ни сюда.
Так что изучай Python, C, С++, Rust. После этого, когда выйдёшь в ООП, изучай Java.
Но я думаю, ты не выйдешь, тебе уже поздно. Потому что, чтобы до ООП дойти, нужно лет семь.
Про ООП. То, что сейчас многие называют ООП, - это не ООП. Представь, что ООП - это такой айсберг, у которого есть верхушка и
огромная подводная часть. Вот все изучают эту верхушку айсберга и говорят “мы изучаем ООП”. Это правда, да. Но потом они, изучив верхушку, останавливаются полностью и говорят “вот теперь мы знаем ООП, мы изучили ООП”. Понимаешь? вот так оно происходит. Потом, естественно, они ни-хре-на не могут сделать. То есть их “изученное” ООП никакого преимущества вообще им не даёт. Они не знают ООП, не умеют применять ООП, и они вообще даже не понимают этого, что они из ООП изучили лишь маленький кусочек, которым они ничего сделать не смогут. А потом, в результате этого всего процесса, они пишут статьи “ООП не такая уж хорошая технология, лучше вообще без ООП обходиться”. Понимаешь, они просто не понимают ничего и так дураками и остаются навсегда. Ни одного я не видел, который вот так пропёрся, сделал выводы про то, что он пропёрся на самом деле и решил просто с наскоку это взять, эту сложную тему, а потом взял и научился ООП с самого начала, перестроив всю свою программу обучения изначально. Обычно этого нет. Обычно у них как не было программ, так и нет программ. Они только сидят и соревнуются друг с другом, кто лучше слово class напишет и скобки выровняет там.
Так что не думай, что ООП - это просто вот классы научиться в Python'е делать и это вот ООП и есть как раз, наследовать там их и так далее. ООП - это вообще не это. Оно гораздо больше и оно действительно что-то даёт. Но для этого его надо изучить сначала. Если тебе втирают, что ООП - это просто GoF-шаблоны, посылай этих людей на три весёлых буквы, это ламеры, самые такие классические.