Войти
ПрограммированиеФорумОбщее

Что разработчик должен знать в С++? (2 стр)

Страницы: 1 2 3 412 Следующая »
#15
21:22, 13 сен. 2020

Zab

+ Показать

Хм, не знал, ну тут я не только в этом контексте имел ввиду, а еще и в контексте что общение будет в основном в геймдеве (на средне-топовых позициях) с зарубежными заказчиками/работодателями, потому как в СНГ сегменте нормальных контор ( чисто СНГ геймдевовских),не работающих на зарубежных заказчиков, можно сказать крайне мало.


#16
21:37, 13 сен. 2020

Zab
> Как ни странно, технической информации на русском в десятки раз больше, чем на английском.
И вся она устарела на 10 лет, минимум. Или переведена промптом, как цппреференском.

#17
22:44, 13 сен. 2020

Zab
> находишь на русскоязычных форумах. На английском только официальные инструкции,

У меня тоже так один кореш говорил. Потом я ему подсказал в браузере и гугле выставить
Accept-Language=en-US и ему отверзлись бездны.

#18
0:41, 14 сен. 2020

Чего вы парня пугаете, что бы собственную эрудицию показать что-ли?
Начинать нужно как раз с базового инструмента, а это в наше время именно С++. И что бы начать писать на нем программы совершенно не обязательно сразу лезть в темплейты и прочие премудрости. В этом смысле есть совершенно гениальная книга Кернигана и Ритчи "Язык Си", которая начинается так:
"Единственный способ освоить новый язык программирования — писать на нем программы. Первая программа, которая должна быть написана, — одна для всех языков: напечатать слова : HELLO, WORLD. Она выглядит так: ...".
Естественно это же относится и к C++. Просто Страуструп в отличие от Кернигана хреновый писатель. Но к счастью Си полностью входит в С++ и собирается тем же компилятором . И начать можно как раз с Си. Научиться основам. Потом плавно подключить классы и далее двигаться уже по C++.

#19
0:52, 14 сен. 2020

san
> И начать можно как раз с Си. Научиться основам. Потом плавно подключить классы и далее двигаться уже по C++.
К сожалению, всерьез проникнувшись идеями C, невозможно перейти на C++, особенно современный. С языка, дающего полный доступ к машине, на язык 100% обфускации, который постоянно обновляется для того, чтобы оттянуть момент: "Вот теперь ЯП готов, и нужно на нем что-то написать".

#20
0:57, 14 сен. 2020

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

#21
1:05, 14 сен. 2020

gudleifr
Не надо "проникаться идеями". Речь идет о фундаменте. А фундамент C++ это Си. "Доступ к машине" у C++ как раз от базовых функций Си, которые лежат в его основе. Все остальное - это обертки для облегчения работы программистов над большими проектами. Понятие "класс" происходит от расширения struct и т.д. Рассматривайте Си именно как фундамент над которым построено здание C++ в котором много этажей. Часто не нужно лазить высоко, иногда достаточно и первого этажа.

#22
1:07, 14 сен. 2020

Zab
> На С/С++ нельзя без этого знания
Ну смотря какие задачи, если нету задачи выжимать максимум из железа то оптимизаций компилятора будет достаточно чтобы получить приемлемый результат при условии что алгоритмы и структуры данных подобраны грамотно.

#23
1:10, 14 сен. 2020

san
> А фундамент C++ это Си.
Это только кажется.

#24
(Правка: 1:42) 1:30, 14 сен. 2020

Zab
> Не ориентируясь как компьютер что исполняет, можно такого наворотить..
Единственное что нужно понимать, это как устроена память, причем на самом примитивном уровне, что бы знать что такое адрес памяти и данные. "Наворотить" можно если не понимать этой элементарной вещи. Более никаких особых знаний архитектуры не требуется.


gudleifr
>>А фундамент C++ это Си.
> Это только кажется.
Глубокомысленное и не менее пустое замечание.
Само название C++ ссылается на родителя. Причем это не D, как можно было бы предполагать (до языка С были A и B), а именно расширение Си.

#25
(Правка: 2:30) 2:30, 14 сен. 2020

san
> Глубокомысленное и не менее пустое замечание.
Судите сами:

1. Язык Си (здесь и далее подразумевается "изначально") полностью текстово интегрирован в ОС - от средств генерации программ, до использования общих соглашений с другими средствами написания программ обработки текстов ОС. C++ заточен под инкапсуляцию всей работы внутри одного исполняемого файла; имеет свою "отдельную ОС" - IDE.
1а. Си имеет препроцессор для чисто текстового препроцессирования. В C++ тяжесть препроцессирования перенесена в типизированные шаблоны.
2. Си прозрачно и однозначно генерирует машинный код; возможна правка последнего. В C++ сделан упор на оптимизирующую компиляцию.
2а. Си поощряет адресную арифметику. C++ делает все, чтобы ее избежать.
3. Си практически не имеет типизации за пределами минимума, необходимого компилятору. В C++ строгая типизация.

Си - это язык для простого расширения ОС нужными инструментами. C++ - язык для расширения себя самого.

#26
2:57, 14 сен. 2020

gudleifr
Какое-то словоблудие.

> Язык Си (здесь и далее подразумевается "изначально") полностью текстово интегрирован в ОС
> C++ заточен под инкапсуляцию всей работы внутри одного исполняемого файла; имеет свою "отдельную ОС" - IDE.
Это точно трезвым человеком написано?

> Си поощряет адресную арифметику.
Как именно происходит "поощрение"?

> C++ делает все, чтобы ее избежать.
У того, кто "делает всё" её просто нет, типа джавы.
И там и там можно одинаково адресами манипулировать.

#27
(Правка: 5:25) 3:52, 14 сен. 2020

gudleifr
Что за бред?

> 1а. Си имеет препроцессор для чисто текстового препроцессирования. В C++ тяжесть препроцессирования перенесена в типизированные шаблоны.
C++ имеет тот же самый препроцессор. Шаблоны не имеют отношения к препроцессору, они обрабатываются компилятором.

> 2. Си прозрачно и однозначно генерирует машинный код; возможна правка последнего. В C++ сделан упор на оптимизирующую компиляцию.
Как C так и C++ можно компилировать с включенной и выключенной оптимизацией. Оптимизатор это не свойство языка. То же самое "генерация машинного кода и возможность правки последнего". Машинный код получается после сборки exe модуля из программы на любом языке. Хочешь его править - флаг тебе в руку.

#28
8:12, 14 сен. 2020

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

#29
8:55, 14 сен. 2020

А мне нравится подход к обучению вот у этого товарища http://www.stolyarov.info/books/programming_intro

Он, конечно, местами излишне радикален в своём неприятии современных технологических стеков, но базу даст хорошую.
Порядок обучения Паскаль - > асм - > кресты

Страницы: 1 2 3 412 Следующая »
ПрограммированиеФорумОбщее