Junior c что нужно знать
Перейти к содержимому

Junior c что нужно знать

  • автор:

Что должен уметь junior C++?

Собственно, вопрос вынесен в заголовок, хочется получить указания от более опытных людей. Понятно, что надо знать синтаксис и базовые конструкции языка (циклы, операторы, функции и т.д.), уметь в ООП, крайне желательно быть знакомым с STL. А что ещё? Нужны ли boost, Qt? SQL? Иногда указывают что-то типа «базовых алгоритмов», это что и в каком объёме? Обязателен ли какой-то стоящий завершённый проект, который новичку не стыдно запостить на github?

О себе: бакалавр по направлению «физика», МГУ, реальные навыки описаны во втором предложении, в принципе во время учёбы пользовался Matlab и могу работать с ним, но почему-то сомневаюсь в его необходимости за пределами университета. Кстати, могут ли возникнуть в будущем затруднения, если остановиться на бакалавре и не получать магистра, или реальный опыт и навыки всегда ценятся выше формальных (надеюсь на это)?

P.S. Если ошибся с форумом и это не для Job, прошу перенести.

P.P.S. Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном? На HeadHunter в большинстве стартовых вакансий почему-то зарплата не указывается. Я правильно понимаю что адекватно будет 30-40 тысяч?

Hasek ★★
08.08.16 09:19:59 MSK

Базовые алгоритмы—это понимать как работает поиск, сортировка и т.д., возможно в нескольких вариантах. Туда же понимание стандартных контейнеров, как минимум чем отличаются и какова цена операций вставки, удаления, поиска, в идеале—как устроены.

Библиотеки, я думаю, не обязательны.

По деньгам можно раза в два больше, если метить в топовые конторы вроде Google, Facebook, Intel, JetBrains, etc. Проблема только в том, что топовые международные конторы во-первых выводят R&D из России, во-вторых не во всех нужны плюсисты.

staseg ★★★★★
( 08.08.16 09:32:20 MSK )
Последнее исправление: staseg 08.08.16 09:38:08 MSK (всего исправлений: 1)

Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном?

umren ★★★★★
( 08.08.16 10:35:49 MSK )

тебе щас местные насоветуют. ходи на собеседования и смотри что предлагают.

vvviperrr ★★★★★
( 08.08.16 10:37:07 MSK )

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

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

umren ★★★★★
( 08.08.16 10:41:13 MSK )

Подскажите адекватные среднерыночные деньги, на которые должен рассчитывать в Москве человек, устраивающийся джуном?

Ща тебе про стотыщьмильёнов расскажут

sidor ★★
( 08.08.16 11:03:29 MSK )

Джун должен знать и главное помнить все тоже, что и сеньор, но работать при этом за еду. Прописная истина, сэр.

unt1tled ★★★★
( 08.08.16 11:11:35 MSK )
Ответ на: комментарий от staseg 08.08.16 09:32:20 MSK

EXL ★★★★★
( 08.08.16 11:19:47 MSK )
Ответ на: комментарий от EXL 08.08.16 11:19:47 MSK

fluorite ★★★★★
( 08.08.16 11:56:44 MSK )
Ответ на: комментарий от fluorite 08.08.16 11:56:44 MSK

ЛОл! Таки решили свои тормозные поделки с Java на C++ переписать, чтобы работали быстро?

EXL ★★★★★
( 08.08.16 12:01:31 MSK )
Ответ на: комментарий от EXL 08.08.16 12:01:31 MSK

Нам нужен сильный С++ специалист для работы над ядром продуктов dotTrace/dotCover/dotMemory.

stave ★★★★★
( 08.08.16 12:03:17 MSK )
Ответ на: комментарий от EXL 08.08.16 12:01:31 MSK

Таки решили свои тормозные поделки с Java на C++ переписать, чтобы работали быстро?

Гы, как будто подделки типа qt creator, kdevelop, etc работают лучше (притом функционала там сильно меньше)

umren ★★★★★
( 08.08.16 12:06:05 MSK )
Ответ на: комментарий от EXL 08.08.16 12:01:31 MSK

vvviperrr ★★★★★
( 08.08.16 12:06:13 MSK )
Ответ на: комментарий от umren 08.08.16 12:06:05 MSK

Работают они значительно быстрее, при сравнимом общем функционале.

Это неоспоримый факт.

Но тема не об этом, каюсь за оффтоп и сворачиваю беседу на эту тему. Если хочешь продолжить разговор, пиши в личку.

EXL ★★★★★
( 08.08.16 12:10:21 MSK )
Последнее исправление: EXL 08.08.16 12:11:34 MSK (всего исправлений: 1)

Ответ на: комментарий от fluorite 08.08.16 11:56:44 MSK

Джависты на 300к/мес не нужны? Я бы к вам подтянулся через 2 года.

unt1tled ★★★★
( 08.08.16 12:14:23 MSK )
Ответ на: комментарий от unt1tled 08.08.16 12:14:23 MSK

fluorite ★★★★★
( 08.08.16 12:28:44 MSK )

Там про стажера, а не джуна, но ты понял.

Deleted
( 08.08.16 19:04:31 MSK )
Ответ на: комментарий от EXL 08.08.16 12:01:31 MSK

Насколько я знаю, нативного кода у JetBrains если и есть, то очень немного, в отличие от C++/CLI (требуещееся владение C# намекает, что это как раз тот случай).

Тут, очевидно, дело не в языке, а в архитектуре — учитывая, сколько работы та же IDEA выполняет в фоне, понятно, что она на любом языке бы ела довольно много вычислительных ресурсов и тормозила в случае их нехватки.

Softwayer ★★
( 08.08.16 20:30:54 MSK )
Ответ на: комментарий от Softwayer 08.08.16 20:30:54 MSK

Насколько я знаю, нативного кода у JetBrains если и есть, то очень немного,

Нативного у них как минимум интеграция с дебаггерами, они недавно искали человека пилить lldb/gdb-интерфейс в их clion.

Засунь себе свой копрофантазии куда-нибудь подальше.

hateyoufeel ★★★★★
( 08.08.16 23:05:27 MSK )

Э-э-э. кое-как уметь нечто и уметь учить машину этому нечто?

ados ★★★★★
( 08.08.16 23:10:15 MSK )
Ответ на: комментарий от hateyoufeel 08.08.16 23:05:27 MSK

Сорри, это не твои копрофантазии, это суровая реальность 0_o

Мы программируем на С++/СLI, который компилируется в .NET-сборки.

hateyoufeel ★★★★★
( 09.08.16 00:59:41 MSK )
Ответ на: комментарий от Softwayer 08.08.16 20:30:54 MSK

Ну, так многие поделия на java жрут просто как жабы. Особенно раму. Вот пример: YouTrack. Какая-то простая система учёта проектов еле ворочается на 1 гиге оперативе. Jira: валится на гиге только в путь. Их (атласиан) git webserver тоже жрёт на старте под 2 гига, а даёт всё то же, что и https://gogs.io/ При этом gogs отвечает молниеносно и жрёт что-то около 10 Мб оперативки. Вот тебе и java.

На рубях такая же хрень — вся обвязка gitlab’а жрёт под 2 гига, а толку столько же, что и от gogs с 10 мегабайтами.

Так что будущее за go и swift.

menangen ★★★★★
( 09.08.16 02:30:27 MSK )
Ответ на: комментарий от menangen 09.08.16 02:30:27 MSK

Будущее за теми, кто умеет читать документацию про Xmx, как вообще работают различные аллокаторы и зачем JVM выделяет себе столько памяти.

И еще. Go и swift совершенно разные языки. Первый имеет GC, второй нет. Про это тоже почитай.

xpahos ★★★★★
( 09.08.16 03:51:41 MSK )
Последнее исправление: xpahos 09.08.16 03:52:46 MSK (всего исправлений: 1)

Иногда указывают что-то типа «базовых алгоритмов», это что и в каком объёме?

Умение писать fizzbuzz, insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы. Динамическое программирование. Если ты никогда с этим не сталкивался, то можешь пройти курс Седжвика на курсере, а потом курс основанный на Кормане. Порешай задачки на leetcode, hackerrank, timus, project euler, etc.

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

Физика вряд ли тебе пригодится. Можешь пойти в ШАД, если тебе интересен ML.

Я правильно понимаю что адекватно будет 30-40 тысяч?

На данном этапе зарплата не имеет значения. Твоя задача попасть в как можно более крупную компанию. В аутсорсинговой компании скорее всего тебе дадут ачивку «Senior» просто за то, что ты там 5 лет будешь писать говнокод, но реальных навыков ты можешь и не получить. В большой компании вокруг тебя скорее всего будет довольно много крутых разработчиков и ты сможешь узнать много нового просто за обедом.

xpahos ★★★★★
( 09.08.16 04:06:12 MSK )
Ответ на: комментарий от xpahos 09.08.16 03:51:41 MSK

Ага, я тоже могу тебя отослать читать про то, что не язык имеет GC, а его реализация. Ты нашёл разность — теперь найди общее.

menangen ★★★★★
( 09.08.16 04:21:26 MSK )
Ответ на: комментарий от menangen 09.08.16 02:30:27 MSK

Жаль только гуев там буквально нет, сообщество не тянет, а создатели не хотят

поэтому нетормозящей идеи на го мы никогда не увидим

umren ★★★★★
( 09.08.16 09:08:36 MSK )
Ответ на: комментарий от menangen 09.08.16 02:30:27 MSK

Ну, так многие поделия на java жрут просто как жабы. Особенно раму. Вот пример: YouTrack. Какая-то простая система учёта проектов еле ворочается на 1 гиге оперативе. Jira: валится на гиге только в путь. Их (атласиан) git webserver тоже жрёт на старте под 2 гига, а даёт всё то же, что

Бизнес и ничего личного: [сервер 128GB ram](http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR12. ) стоит 40к рублей, или 312 рублей за GB, или 44 минуты рабочего времени разработчика с окладом 90к в месяц.

snizovtsev ★★★★★
( 12.08.16 00:10:08 MSK )

На самом деле нет такого формализованного понятия Junior в С++ и соответственно нету и строгих требований. Каждая контора набирающая юных программистов имеет какой то свой профиль работы и соответственно свои неповторимые требования к кандидатам. Кто то пишет гуёвые проги на Qt, кто то прошивки для всяких встраиваемых устройств. У всех контор требования абсолютно разные. А тебе при этом надо изучать вещи универсальные для С++, основы языка, STL и пр. То что пригодиться в большинстве случаев. Чем лучше ты это изучишь, тем больше шансов попасть в Junior-ы. Пока свободен учись. Можешь поучиться подольше, написать какие то свои небольшие проекты тогда признают и опытным разрабом. Бакалавр ты или магистр значения не имеет, абсолютно никакого. Реальные навыки и только это.

Согласен, (с предыдущим оратором) лучше будет начинать в больших конторах. Но не факт что большие конторы захотят с тобой начинать. Как повезёт.

Matlab и твоя физика могут пригодиться когда станешь опытным программером. Иногда бывают вакансии на написание софта в этих предметных областях. Пока важно найти хоть какую то работу и получить начальный опыт.

Тут на форуме постоянно набирает начинающих сишников NatSys-Lab. Думаю будет очень хорошая позиция для тебя. Они занимаются системным софтом для Linux. Это конечно не C++, а просто C, но очень перспективное направление.

khenty
( 12.08.16 05:54:34 MSK )
Ответ на: комментарий от xpahos 09.08.16 04:06:12 MSK

никому не нужное дерьмо

insertion sort, mergesort, quicksort. Различные деревья с балансировкой и без. Алгоритмы на графах. Строковые алгоритмы. Динамическое программирование. Если ты никогда с этим не сталкивался, то можешь пройти курс Седжвика на курсере, а потом курс основанный на Кормане. Порешай задачки на leetcode, hackerrank, timus, project euler, etc.

всё это дерьмо не нужно на практике ( если ты не практикующий олимпиадник )

по сабжу. джуну C++ необходимо на три с плюсом знать язык ( т.е. как минимум осилить Страуструпа ) и знать азы апи операционки ( т.е. основы работы с памятью, файлами, тредами, процессами ) под которую он решил писать код, т.е. для онтопика это позикс.

peacelove
( 17.08.16 18:11:31 MSK )
Ответ на: никому не нужное дерьмо от peacelove 17.08.16 18:11:31 MSK

всё это дерьмо не нужно на практике ( если ты не практикующий олимпиадник )

Ты либо принимаешь правила и проходишь собеседование в топовую компанию, либо продолжаешь всем доказывать что алгоритмы не нужны и идешь работать в EPAM, Luxoft или в любую другую аутсорсинговую контору. Без знания алгоритмов ты никогда не попадешь в команду разработки очередной крутой распределенной системы для Google/Facebook/etc.

по сабжу. джуну C++ необходимо на три с плюсом знать язык ( т.е. как минимум осилить Страуструпа ) и знать азы апи операционки ( т.е. основы работы с памятью, файлами, тредами, процессами ) под которую он решил писать код, т.е. для онтопика это позикс.

Ахаха, ну да, ну да. А потом у таких спрашивают на собеседовании про виртуальные конструкторы и они начинают нести чушь. Треды и процессы это отдельная огромная часть CS. Lock free, сами блокировки, модель памяти итд итп.

xpahos ★★★★★
( 17.08.16 20:07:34 MSK )

kirk_johnson недавно говорил, что ищет спеца по плюсам. Может он тебя просветит про текущее положение дел на рынке.

Что должен знать C#/.NET разработчик в 2023 году

Что должен знать C#/.NET разработчик в 2023 году

13.12.2022

24330

Рейтинг: 5 . Проголосовало: 10
Вы проголосовали:
Для голосования нужно авторизироваться

advertisement advertisement

  1. Язык программирования C#
  2. ООП
  3. Алгоритмы и структуры данных
  4. Шаблоны проектирования
  5. Базы данных
  6. SQL
  7. Entity Framework Core
  8. LINQ
  9. ASP.NET
  10. ASP.NET Core
  11. Git
  12. Основы FrontEnd
  13. Английский язык
  14. Итоги

На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:

  • создание веб-приложений и веб-сервисов
  • создание настольных приложений;
  • создание облачных сервисов;
  • создание игр;
  • создание мобильных приложений.

Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в ТОП-10 компаний — мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?

Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-девелопмента.

advertisement advertisement

Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.

Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.

Благодаря широкому спектру применения, С# является очень востребованным языком. Различные ресурсы по поиску работы предлагают большое количество вакансий, причем, как на крупные проекты с четко определенным консервативным стеком технологий, так и в компании, которые создают новый программный продукт с применением наиболее современных инструментов.

Компания Microsoft активно развивает свое детище — .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет — кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы, образовательные вебинары, дружное комьюнити — всё это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.

Объектно-ориентированное программирование — это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.

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

Тема связана со специальностями:

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

Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.

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

Каждое приложение оперирует данными – от интернет-магазинов и банковских систем до корпоративных приложений и социальных сетей. Регистрация, авторизация и аутентификация пользователя, прием, изменение и отправка данных на сервер или даже простое сохранение конфигурации приложения – все это данные, требующие отдельного места для их хранения.

Этим хранилищем служат базы данных (БД), представляющие собой организованную структуру для приема, хранения и обработки данных различного формата – от ФИО и номеров телефона до изображений и видео контента.

Именно поэтому знания БД очень важны в том числе и для .NET разработчиков. Необходимо владеть базовой теорией по БД: основные термины, реляционные и нереляционные базы данных (вы будете работать именно с реляционными – имеющими реляционную структуру), нормализация, отношение one-to-one, one-to-many и many-to-many, поиск и упорядочение информации, работа с таблицами и т.п.

Structured Query Language — декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.

Изучение языка запросов очень тесно связано с изучением теории баз данных, поэтому углубляясь в БД, вы непременно начнете практиковаться и набивать руку и с SQL.

Entity Framework — специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Это дает возможность абстрагироваться от самой БД и работать с данными на более высоком уровне абстракции, который более понятен и удобен для человека. Благодаря такому подходу уменьшается количество кода, необходимого для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.

В двух словах, эта технология позволяет программисту абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища.

Language Integrated Query (язык интегрированных запросов) — это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.

Active Server Pages для .NET — платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.

ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.

Видео курсы по схожей тематике:

Что нужно знать junior c++ разработчику?

Очень сильно интересует критика пути подготовки на трудоустройство junior c++ developer. У самого техническое образование, но в области электроники.

Хватит ли учебника С++ Стивена Праты, пройденного курса по с++ на stepik.org и прохождения курсов по алгоритмам и структурам данных https://ru.coursera.org/specializations/data-struc. для успешного трудоустройства на данный тип вакансий?
Что можно добавить/удалить из этого списка для повышения своих шансов?
Есть ли сборники задач и упражнений типа kaggle чтобы писать на с++ и прокачивать свои скиллы в области программирования?
На какую зарплату можно расчитывать новичку в с++ в Москве?

  • Вопрос задан более трёх лет назад
  • 9883 просмотра

2 комментария

Оценить 2 комментария

Что должен уметь Junior C# Web разработчик?

Всем привет! Я знаю, что во многом это зависит от компании, но, всё же, хотелось бы услышать и мнение хаброжителей). Что, по вашему мнению, должен уметь джун C# веб-разработчик?

  • Вопрос задан более двух лет назад
  • 2728 просмотров

Комментировать

Решения вопроса 3

vabka

Василий Банников @vabka Куратор тега C#

Токсичный шарпист

1. Уметь работать с asp net core.
Написание нового контроллера не должно вызывать никаких сложностей.
Должен знать про middleware и разные фильтры. Знать, какими сущностями в разные моменты времени обрабатывается запрос
2. Знать как устроен HTTP хотябы на поверхностом уровне.
Знать что в http-запросе есть заголовки и тело.
3. Уметь работать с dotnet cli, если понадобится. Уметь вызывать dotnet build, dotnet watch, dotnet run, и dotnet publish
4. Уметь искать нужные библиотеки в гугле и в нугете.
5. Уметь работать с git хотябы на базовом уровне: git init, git branch, git add, git commit, git merge.
Можно через GUI. Можно через встроенный плагин в IDE
6. Уметь работать с какой-нибудь одной IDE на базовом уровне: с VS или с Rider.
На базовом уровне — это значит, что ты можешь мышкой создать проект, добавить в него новые файлы, и запустить проект.
7. Хотябы поверхностно знать про фронтенд. Чтобы мог загуглить и решить несложную задачу.
8. Уметь работать с debugger-ом. Ставить точки останова, делать шаг вперёд, с заходом, с обходом.
9. Уметь работать с какой-нибудь реляционной БД. Знать основы про всякие нормальные формы, уметь писать сырой sql запрос.
10. Ну и кнонечно C#, ООП, всякие паттерны.

Ответ написан более двух лет назад

Нравится 5 7 комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *