Что написать на с# для тренировки?
Есть два крупных класса задач — бизнес задачи и расчётные задачи. Отсюда и рассуждайте. Есть, конечно, куча сайтов со всякими примерами и решениями, но хорошее правило — самому научиться видеть задачи, которые находятся вокруг вас. Очень много даже пользовательских задач сегодня не решены вообще никак. Даже под Windows. Или решены в количестве одной-двух программ с ужасным сервисом.
Вас что-то не устраивает? Берите и пишите. Основное набивание руки происходит не тогда, когда у вас что-то получается, а когда не получается час, два, день, неделя, но наступает момент, когда вы понимаете, вот оно — решение.
В программировании очень ценится самостоятельность. Самостоятельность в выборе задачи, в поиске решения и т.д., когда вы выносите на публику готовый продукт.
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать
Язык программирования С++: чем он отличается от С, где его применяют и подходит ли он для старта
C++: что это за язык, как он появился и какие у него преимущества
В 1980-х годах датский программист Бьерн Страуструп моделировал распределение вызовов между телефонными станциями. Работал он на языке С, похожем на машинный код в виде инструкций из двоичного кода.
Язык С не устраивал Страуструпа: был слишком медленным и не поддерживал объектно-ориентированное программирование — то есть не мог представить программу как набор объектов, не был понятным и наглядным.
Тогда Страуструп решил усовершенствовать С, скрестив его с другим ретро-языком Simula. В C++ появились классы, строгая проверка типов, inline-функции и другие элементы, которые упрощают и ускоряют программирование.
Сначала усовершенствования воспринимались просто как надстройка над базовым языком. Но очень быстро «С с классами» стал надежным рабочим инструментом для миллионов разработчиков.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
- Скорость. С++ обрабатывает данные быстрее большинства высокоуровневых языков типа Python.
- Кроссплатформенность. В отличие от многих языков, в том числе от еще более высокоуровневого С#, С++ не зависит от платформы: разработку можно легко перенести с одной операционной системы на другую.
- Универсальность. С++ поддерживает множество стилей программирования, например, процедурное программирование, объектно-ориентированное программирование. Также С++ предоставляет абстракцию данных. Благодаря этому его можно использовать для решения практически любых задач».
Читайте также: «История IT. 1970: События, люди, технологии»: Павел Калашников про запуск UNIX-времени, создание Pascal и патент на компьютерную мышь
Что пишут на С++
На C++ создают высоконагруженные приложения, драйверы, графические стандарты и игры. Например, на С++ написана система управления базами данных MySQL — основа для множества высоконагруженных приложений, — главные продукты Microsoft, культовые игры Counter Strike и World of Warcraft.
На С++ пишут код, который должен работать быстро и надежно, поэтому язык часто является основой для балансировщиков нагрузок на серверах и сложных графических алгоритмов. На C++ можно написать код для GPU — графического процессора. Так, например, создаются шейдеры для игр и графического ПО: они параллельно запускаются на GPU и позволяют без задержки выполнять сложные вычисления.
На С++ можно писать сложные, нетривиальные алгоритмы — для этого у языка есть огромная библиотека STL (Standard Template Library), где реализована большая часть алгоритмов и структур данных. Иногда С++ используют, чтобы оптимизировать код, добавить ему скорости и производительности или настроить приложение под конкретные платформы.
«Несмотря на универсальность, у языка есть и свои ограничения. Например, на С++ неудобно обрабатывать логи — файлы с информацией о действиях в программе — или собирать серверную статистику. Писать алгоритмы для машинного обучения или серверы для обработки запросов тоже будет сложно: в первом случае больше подойдет Python с большим количеством фреймворков, во втором — Java или C#».
Существует миф, будто С++ подходит только для сложных приложений, потому что даже простые операции, написанные на нем, выглядят как сложные команды. Но эти проблемы легко решить благодаря огромным библиотекам с открытым исходным кодом по С++, которые содержат много вспомогательных функций и серьезно упрощают работу. Поэтому писать на С++ можно что угодно: и большой высоконагруженный сервис, и несложные программы для вычисления площади или решения систем алгебраических уравнений.
Что нужно знать разработчику на C++
«Если вы планируете карьеру С++ разработчика — учите общие алгоритмы и структуры данных. Без них не обходится ни одно собеседование.
Если захотите писать код на С++ и заниматься сложными вычислениями, придется разобраться в параллельном программировании, когда команды выполняются одновременно несколькими процессорами. Также нужно будет изучить открытый стандарт для распараллеливания OpenMP. Инженерам по разработке ПО важно знать дискретную математику, статистику, алгоритмы.
Еще одно направление развития — компьютерная графика и геймдев, где нужно писать шейдеры и OpenGL. Здесь пригодится знание сопряжений с OpenCL — фреймворком для параллельных вычислений в графических процессорах — или CUDA, компилятора с расширениями, необходимыми для написания кода на GPU».
Читайте также: Что нужно знать программисту перед собеседованием и как успешно его пройти
Подходит ли C++ для начинающих
Есть еще один не менее распространенный миф о С++. Говорят, что это сложный язык, который не подходит для старта в профессии.
Легко понять, почему его называют непростым. Вот пример классической программы «Hello, World!» на С++:
//include using namespace std; void function_name () cout <"Hello, world" <endl; > int main() function_name(); // Вызов функции return 0; >
А это пример кода на Python:
print('Hello, World!') // => Hello, World!
Вот что говорит о сложности языка создатель языка Страуструп:
«C++ действительно непрост, и чтобы научиться его использовать, необходимо приложить определенные усилия. Но людям вообще хочется невозможного: еще более простого языка, с еще большим количеством фич и сохранением работоспособности существующего кода».
С++ может стать отличным стартом в IT, но только если вы готовы приложить усилия. В отличие от многих высокоуровневых языков — Python, Java — он не такой «удобный». Код не читается интуитивно, приходится самому работать с памятью: следить, чтобы не было утечки данных и освобождать место для работы программы. Для этого сначала нужно разобраться с основами устройства компьютера.
Но усилия многократно окупаются ростом уровня подготовки. С С++ можно начинать, если вы настроены серьезно и готовы копать глубоко. Этот язык даст отличную базу, которая поможет уверенно двигаться вперед и решать проблемы не только на уровне кода.
«На мой взгляд, C++ — оптимальный язык для старта, потому что он дает базу. Если человек хочет быть разработчиком и разбираться в этой теме глубоко, то не стоит начинать с языков с низким порогом вхождения, таких как Python или JavaScript.
Конечно, на их основе быстрее можно научиться программировать. Но из-за простоты этих языков можно легко упустить важные вещи и не знать в итоге, как устроена память, адресация и многое другое. Это сложно, но важно. По моему опыту, людям, которые начинали, скажем, с Python, потом сложнее глубоко погружаться и разбираться, почему программа так и не работает».
Можно ли стартовать сразу с С++, не изучая С
Эта тема — предмет вечных дискуссий в комьюнити. Одни — и в их числе сам Страуструп — говорят, что С учить не обязательно. Вполне можно стартовать сразу с С++, где не нужно работать напрямую с символами и памятью и тратить время на сложности, с которыми пришлось бы возиться в С.
Чтобы увидеть разницу, посмотрите, как выглядит на С создание email-адреса:
char* compose(const char* name, const char* domain) char* res = malloc(strlen(name)+strlen(domain)+2); // место для строк, '@', и 0 char* p = strcpy(res,name); p += strlen(name); *p = '@'; strcpy(p+1,domain); return res; >
А вот как это же действие выглядит на С++. Никаких сложных операций с символами и памятью:
string compose(const string& name, const string& domain) return name+'@'+domain; >
Другая точка зрения: на примере С лучше разбираться в базовых теоретических вещах, поэтому для тех, кто «копает глубоко», лучше подойдет последовательное изучение обоих языков.
Посмотрите, как разработчики решают задачу из олимпиадного программирования на языке С пятью разными способами. Судя по их решениям, кажется, что зная С, можно потом без проблем выучить многие другие языки — настолько хорошую базу знаний дает этот язык.
«Вопрос в том, чего вы хотите достичь. Если нужно глубоко разобраться в теме, то лучше сначала изучить C. С его помощью можно разобраться с базовой архитектурой компьютеров и теоретическими основами, включая побитовые операции, обращение с динамической памятью и числами с плавающей точкой. Мы обычно преподаем именно так: даем фундамент, а на второй год изучения переводим студентов на С++ с его особенностями и фишками».
Что популярнее: С или С++
Как С, так и С++ уже который год стабильно входят в топ-5 самых популярных языков. Причем одни индексы оценивают их по отдельности, другие включают в общую категорию.
Например, по данным индекса TIOBE в ноябре 2022 года С находится на втором месте, уступив самому популярному языку в мире Python. С++ отстал от С на два пункта и занял четвертое место.
В исследовании Stack Overflow за 2022 год, наоборот, С++ находится на шестом месте, а С — на седьмом.
А вот в индексе PYPL оба языка попали в одну категорию и находятся на четвертом месте, уступая другому родственному языку — C#.
Изучите основы языка C У Хекслета есть платформа для изучения основ программирования с нуля — Code Basics. Пройдите бесплатный курс по изучению языка С. Обучение на Code Basics начинается с азов, информация структурирована и подается от простого к сложному.
Сколько зарабатывает разработчик С++
На С++ пишут практически во всех крупных компаниях, поэтому он может стать хорошим инструментом для карьерного роста.
Уровень зарплаты зависит не только от опыта, но и от знания фреймворков, алгоритмов, библиотек. Исходя из вакансий , опубликованных на HeadHunter, в среднем джуниор-разработчик может претендовать на зарплату 120-150 тыс. рублей, а мидл- и сеньор-разработчик — от 200 тыс. рублей.
Как и с чего стартовать в С++: книги и ресурсы
Перед погружением в язык изучите базовую теорию по объектно-ориентированному программированию — это поможет быстрее погрузиться в тему.
Для тех, кто решит начать с изучения языка С:
- Герберт Шилдт « Полный справочник по С »
А если захотите стартовать сразу в С++, пригодятся книги:
- Герберт Шилдт « Полный справочник по C++ »
- Бьерн Страуструп « Язык программирования C++ »
- Бьерн Страуструп « Программирование. Принципы и практика использования C++ »
В процессе изучения языка не забудьте про библиотеки STL и BOOST:
- Питер Нортон Скотт Мейерс «Эффективное использование STL»
- Николай Джосьютис «C++ Стандартная библиотека. Для профессионалов»
- П. Плаугер, А. Степанов «STL. Стандартная библиотека шаблонов C++»
А еще здорово помогут:
- Сайт стандартизации С++
- YouTube-канал о С и С++
- Русскоязычное сообщество разработчиков
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Что написать на C++ для тренировки?
Какие простые приложения можно написать на C++, если мой уровень чуть выше нуля? Буду рад, если напишете несколько тем, с постепенным усложнением.
P.S.: убедительная просьба не предлагать написать консольные калькулятор, конвертер и прочую мелочь.
- Вопрос задан более трёх лет назад
- 27219 просмотров
Комментировать
Решения вопроса 6
Консультация и разработка мобильных приложений
парсер, идешь за валютой на сайт цб и рисуешь график роста и падения деревянного
Ответ написан более трёх лет назад
Комментировать
Нравится 7 Комментировать
Ищу работу. Контакты в профиле.
калькулятор, конвертер и прочую мелочь.
Напишите сложный калькулятор. Например парсящий произвольное мат выражение и ищущий производную, интеграл определенных видов функций и т д.
Аля сильно упрощенный www.wolframalpha.com
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать
Вот тут отличный список задач на совершенно разные области для закрепления и оттачивания навыков
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Станислав Макаров @Nipheris Куратор тега C++
P.S.: убедительная просьба не предлагать написать консольные калькулятор, конвертер и прочую мелочь.
Напишите не консольный, а с рисованием графиков. Да и к совету Александр Таратин насчет производной советую прислушаться. А если для вас это мелочь, найдите производную не численным, а символьным путем (как делает Maple, например). Много интересного ждет вас.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Владимир Мартьянов @vilgeforce
Раздолбай и программист
А, ну раз мелочь не предлагать. Напишите реализацию длинной арифметики, да чтобы быстрее OpenSSL на операциях сложения, умножения и деления была минимум на 10%. Или докажите что это невозможно.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1
gezgrouvingus progreszive ombusgrander greyderzux
скачиваешь любую книгу «100 задач для программиста» — и делаешь подряд все задачи. тестируешь и пробуешь различные алгоритмы. вам нужно практиковаться не только в самом языке, но и оттачивать алгоритмические навыки и математику в совокупностью с языком программирования.
также как пример: парсер, любая рекурсивная задачка, какая-нибудь простенькая игра (текстовая, робот какой, тетрис, крестики нолики и прочее), создание какого-нибудь бота.
Главное для оттачивания еще навыков — чтобы процесс был интересен, чтобы вас он увлек, и тогда каждая трудность будет провоцировать на поиск ее решения (гугл, тостер, интернет. ) и опробование этого решения на практике и так шаг за шагом. Кроме маленьких задачек полезно участвовать в более крупных проектах (для вашего уровня — относительно крупных, вы не пугайтесь): даже тот же самый простой парсер можно накручивать и совершенствовать все вновь и вновь добавляя новые функции, который может быть потом превратиться в автоматического интеллектуального робота на основе нейронных сетей и эвристических анализатор-кодов.
Что написать для практики?
Есть такой вопрос. На собеседованиях очень часто требуют показать какие-то готовые проекты. Но какие проекты можно показать, если ничего, кроме задачек из K&R не делал. Какой проект можно сделать? В голову ничего не приходит, так как опыт программирования был только на JS.
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Задачи на С для практики
Подскажите ,пожалуйста, где можно взять задачи на С для практики
Нужны задачи для практики
Изучаю СИ, прошел всю базу(до рекурсии и тд), хочется теперь попрактиковаться, но не могу найти.
Что написать для практики ?
сабж просто для себя,попрактиковаться,язык подучить возможно тема не в том разделе,прошу прощения
Что нужно установить для изучения и практики в PhP
Доброго времени суток, уважаемые форумчане! Прошу дать разъяснения для новичка по вопросам.