LINUX.ORG.RU

что такое «базовые знания» языка программирования(c++)?

 , ,


0

5

что такое вообще эта база c++. я вот уже изучаю довольно много часов с++(6 месяцев), уже думал перейти на средний уровень, но вот проблема, а прошел ли базовый? я бы хотел некий список базы, который нужно пройти, чтобы писать уже средние или «неплохие» программки, например какие нибудь консольные игрушки(не просто крестики нолики, а реально прям игру там с сотней левелов, или какую нибудь утилиту супердуперпуперскую консольную).

Затем уже собираюсь перейти на более средний уровень(почти продвинутый) и писать какие нибудь простые графические штуки.

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

База - это знание и хорошее ориентирование в материале книги типа Стивен Прата - Язык программирования C++ или другой аналогичной.

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

Отправлять к ИИ - это как отправлять в гугл в свое время. Человек тут спросил, чтобы местные ответили. И пока еще реальный опытный программист лучше ИИ.

rumgot ★★★★★
()

В 10х было достаточно «дизаен и эволюцию» иметь в виду, понимая что конпеляторы ее тоже «поимели в виду», все два, используемые на практике.

Щас «базово» кукаретики специализирующиеся на собесах тебе будут вчехлять про космические корабли, которые они скурили чтоб бороздить «модный с++»(тм), т.е. 17й стандарт минимум (периодически про это забывая и зачем-то спрашивая про ненужные уже костыли из 14го), а в кодовой базе у них по-прежнему насрано UB из 90х годов.

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

придумал эти дурацкие private, public, protected

Это как бы следует из структуры социума - личное, групповое и всеобщее. Но реализация группового хромает.

Shushundr ★★★★★
()

база базы выше базы

у https://www.stroustrup.com/ есть https://www.stroustrup.com/dne.html

база алгоритмики это императивщина

база жИ плюссов это «мульти-пульти» папа-догма и трэйдофа железа 80ых и как улучшение в железе плавило плюсы до нонешнего https://isocpp.org/ c пофакту сонмами контекстных dsl под эгидой «С++3к»

qulinxao3 ★☆
()

кури Аху кури mojo от Латенера?(llvm)

кури эссе из Лекций премий ЯблоЕдуна в части копуляторстроения и распределённых систем

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

так что ботай фундамент в части рафта и прочих генералов интриганов бизантинирующих

ну и железо понимай во что плюсы выливаются копуляцией

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

палишься

если можешь проникнуться чужими задачами как своими по можно и по учебникам куриться

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

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

Зачем придумывать «новые способы» спецификации доступа, если они уже есть в чистом виде - приватный, публичный, защищенный?

Их можно обойти. Иногда, кстати, очень помогает, если автор либы забыл virtual добавить геттеру или в private, вместо protected засунул, а из исходников только заголовки.

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

И чем поможет добавление virtual там, где его быть не должно?

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

PS: И да, через пол года вышла версия где этот геттер уже виртуальный. Но того что общее приключение вышло бы не на зайти и выйти(на несколько дней), а на минимум год, это не отменяет. Потому что перевести весь проект на новую версию, это только тестировщикам пол года работы.

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

я вижу тут много крутышей собралось. так вот, я бы хотел узнать сколько у вас лет опыта в с++ и нравиться ли вам писать на с++🤠

Всего опыта 22 года, на плюсах из них, думаю 15 будет, на лет 7 суммарно было всяких вывихов в сторону SQL и C#. Писать нравится, в последнее время на кутях пишу, на них писать вообще сплошное удовольствие.

PS: крутышом себя ни в коем случае не считаю.

Loki13 ★★★★★
()

нет никаких «базовых знаний C++» или любого другого языка программирования. Точнее конечно есть, но это все вообще не важно и гуглится на каком-нибудь cppreference за вечер.

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

Как только ты начнешь все это понимать, то сможешь писать хороший софт на любом* языке, в том числе и на С++.

*кроме раста. Раст - говно.

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

нет никаких «базовых знаний C++» или любого другого языка программирования.

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

Точнее конечно есть, но это все вообще не важно и гуглится на каком-нибудь cppreference за вечер.

Да, да. С++ можно выучить за 21 час.

urxvt ★★★★★
()

Что такое база языка? Есть мнение, что это весьма относительная вещь. Предлагаю исходить из пользы.

Например:

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

Если ты главный мейтейнер буста, у тебя база будет пошире и глубже соответственно решаемым задачам.

Все остальное из стандарта (в 1к5 страниц) это для тебя бесполезный мусор,(а для бусто-ментейнера вся книга - база).

Как было сказано кем-то: «Я не боюсь того, кто изучает 10 000 различных ударов. Я боюсь того, кто изучает один удар 10 000 раз»

Лучше досконально знать небольшую часть языка, чем быть чуток знакомым со всем языком.

А дальше, берешь новые задачи и углубляешь и расширяешь знание языка.

yax123 ★★★★★
()

Долго думал комментировать или нет, т.к. убеждён, что ТС - тролль, но фиг с ним… Может ещё кому понадобится.

Чтобы получить базовые знания C++ нужно:

  1. Получить предварительное понятие о программировании, т.е. узнать что такое переменные, массивы, циклы, ветвления и т.д. Basic, Pascal, Python - в помощь.
  2. Попрограммировать на ассемблере. Желательно нескольких разных процессоров. Ещё более желательно идти по восходящей - 8080 -> 80386 -> Pentium.
  3. Научиться программировать на C. Он достаточно простой - «это не сложно» :)
  4. Ознакомиться с ООП. Что такое, зачем и когда нужно. Желательно, также, знать что такое ФП.
  5. Прочитать Язык программирования C++ Страуструпа последней редакции.

Вот, когда закончишь - будешь обладать базовыми знаниями по C++. А до этого момента к нему лучше на пушечный выстрел не подходить.

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

Пиши код, а потом читай как правильно писать, так ты поймёшь что к чему, где ошибался, что действительно нужно, а что не нужно

s-warus ★★★★
()

Да хз.

Скорее понимание синтаксиса языка и умение работать без сырых указателей: т.е. знание и понимание контейнеров, в том числе невладеющих, типа std::span и std::string_view, «умные» указатели. Уметь пользоваться шаблонами, но не писать их.

А так же умение в сформулировать мысль и в предметном указателе смочь поискать что-то нужное, например: сортировку или другой подходящий алгоритм: https://en.cppreference.com/

Имхо, этого уже за глаза хватит, что бы что угодно делать, скорее всего не так изящно или эффективно, как возможно, но что бы работало.

ЗЫ ну… это если ты не троллинга ради тему завёл :)

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

очевидно(а кому не :) )

что C++ - это имя явное подтвержение что ATT не позволила Страуструпу перехватить С

ибо изначально Страуструпу было бы удобней окажись его извод эталоным C

ибо даже индустрия c/c++ постоянно путала и того ригористы по типу Линупса за pure C

qulinxao3 ★☆
()

Ни разу не сишник и не плюсовик, но базовый уровень владения любым языком программирования это владение синтаксисом и семантикой языка, т.е. все чтоб читать идиоматичный код. Для крестов я бы ожидал от базового уровня умение воспринимать такие конструкции как int&& или virtual void pop() = 0;.

Темплейты можно вынести за скобки, во всех языках темплейты сами по себе как отдельный язык декларирования обобщенного кода, ИМХО для базового уровня достаточно уметь использовать самые простые и распространенные конструкции.
Ну и стандартные коллекции, list, vector, map, unordered_map/set, уметь с ними работать.
И конечно в языках без GC нужно уметь пользоваться смартпоинтерами (для базового без из вариаций для мультитрединга), короче понимать про время жизни объектов и как этим управлять.

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

Как коммерческий разработчик на C++ могу заявить, что синтаксис говно и этому языку желаю смерти.

«Пароход хороший. Только он ипрограммистов боится.».

https://rutube.ru/video/27a28bdd38a0f126eb6998c20401a2f6/?utm_source=embed&utm_medium=referral&utm_campaign=main_logo&utm_content=27a28bdd38a0f126eb6998c20401a2f6&utm_term=yandex-video.naydex.net&t=0

anonymous
()