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

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

  • автор:

Список требований к C++ junior developer

Просьба к знающим людям сформулировать примерный список требований для C++ junior. Просьба предварительно указывать свой реальный опыт работы в IT, чтобы было понятно, от кого исходит совет.

Спасибо за внимание.

�� Подобається Сподобалось 0

До обраного В обраному 0

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

160 коментарів

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Математическую логику учите, тогда любой язык сможете освоить в ходе написания программы. Все языки одинаковы, только логические инструменты разные. Это как в жизни любую проблему можно решить различными способами. НО существует один совершенный способ решения проблемы, который занимает наименьшее количество времени, сил и допуск ошибок. Вот к нему приходят опытом и знаниями. Проблема в том , что эксплуататор хочет иметь на лохе.

С++ developer-ом работаю с 1999. Первую программу на C написал лет на 7 раньше.

Junior C++ разработчиков сейчас практически нет, потому как с ВУЗ-овской подготовкой что-то случилось.

Потому лично я, взял бы на Junior C++ developer-а человека, которого

1. Собственно, серьёзно интересует программирование (постоянно что-то пишет на C++ хотя бы Just for fun) и ему не безразлично, как это всё устроено на системном уровне (потому как задачи С/C++ ближе к системе, но это не обязательно. Но мне кажется хороший C++ программист не может не интересоваться системой)
2. У него есть способности (на основе собеседования) и достаточно собранности. Последнее нужно, чтобы ориентироваться в большом объёме кода (может попастся софт, написанный давно и его за то время уже стало много, а C++ может подбрасывать неожиданности)

3. Его Страуструп всегда под рукой, его программы улучшаются день ото дня. Потому как, естественно, Junior нам нужен как будущий Senior

P.S. Ну, знание того, что такое виртуальное наследование не обязательно, если человек способен изобрести самостоятельно произвольное количество (и может быть, не менее заумных 🙂 абстракций и потом их реализовать с использованием языка.

я junior программист учился сам, знаю с\с++ о моей подготовки мне себя оценить трудно, но думаю она достаточная для работы, очень хотел бы работать по этой профессии, но меня не берут, из за отсутствия всяких компьютерных дипломов и опыта работы, если Вы можете меня взять, я с удовольствием пройду испытательный срок, даже без оплаты, Вы не разочаруетесь в моих способностях, мой номер 0631711138 звоните в любое время!

Мирошниченко Галина Координатор обучающих программ в Fulcrum Software 19.01.2012 15:02

На сайте много материалов для подготовки. Милости просим.

Апну тему, ибо интересна она мне, ну и нагуглилась.

Вкратце, вдумчиво прочтен Керниган и Ритчи — их С, частично Страуструп, спецификация СТЛ и опенГЛ, ну и куча просто документации — по разным возникшим вопросам .

Опробованы силы с использованием ооп, стл, кютэ, опенгл, но все по меловам.

Наверное примусь за что-то более серьезное, ибо опыт не купишь..

место действия Харьков, цель устроится на работу на должность джуниор цпп девелопер.

Итак, пройдено некоторое количество фирм — на каждом собеседовании для себя сам выявлял слабые стороны, кои усилиненно пилил потом до полного понимания. Судя по всему, если раньше и было несложно устроиться то сейчас на джуниора спрашивают очень высоко.

Любимые вопросы и темы рассуждения — мне так попалось:

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

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

Но, пилю дальше, и да.. мне нравятся плюсы, по разным причинам, не буду уточнять.

зЫ. надеюсь что все будет окей, и я запилю здесь свою кулстори. )

> ООП — это правильный шаг в развитии функционального программирования

Ну Вы ребята жжоте. ООП, шаг в функциональном программировании. Божий дар с яичницей путаете.

Вывод — чтобы найти хорошую работу на С++ мало знать С++. Еще нужно быть гуру в некой области применения С++. Так что хэллоуворлдщикам там делать нечего. Но если все необходимые знания уже есть, и удалось найти адекватного работодателя (а это тоже непросто, особенно в нашей стране), то такой программист может рассчитывать на з/п в несколько раз выше, чем специалисты в более «широких» областях.

Плюсы это удел в основном системных программистов. Рынок труда требует очень небольшое количество таких специалистов, особенно в нашей стране. Спрос же на программистов прикладных во много раз выше. Написать сайт, автоматизировать хозяйственную деятельность конторы на 1С, на крайний случай написать несложную игрушку для мобильного телефона — это все задачи намного более распространенные, чем например написание драйверов, операционных систем, антивирусов и прочих вундервафель, требующих специальных знаний. Еще плюсы используются в серьезном геймдеве. Это не системное программирование, но тоже требует глубоких специальных знаний.

При чем тут виртуальное наследование, мы же про виртуальный деструктор говорим, а не про наследование. Вот спросил бы ты их про деструктор — они точно засыпались бы:)

ScorpZ Lapshov C++/C# && other programmer в AMC Bridge 08.11.2010 12:10

Кстати, про виртуальные деструкторы — это действительно вопрос для джуниоров?
В Волгоградской области ни один программист со стажем (от 0 до 14 лет) не ответил мне на вопрос, что такое виртуальное наследование и для чего нужны виртуальные деструкторы.

Станно, когда мы, в Днепре, набирали людей на С++ жуниора то 3 из 6 человек рассказали про виртуальное наследование и смогли привести примеры его использования.

Значит это вопрос на все возроста:)
Хороший джун должен знать. Я знал ещё в студенческие годы, то есть до того как стал джуном.

Возможно програмисты в Волгоградской области имеют малый опыт прохождения собеседований. Кстати, а что это был за програмисты то? Точно С++ ники?

Кстати, про виртуальные деструкторы — это действительно вопрос для джуниоров?

В Волгоградской области ни один программист со стажем (от 0 до 14 лет) не ответил мне на вопрос, что такое виртуальное наследование и для чего нужны виртуальные деструкторы.

Конечно, как ООП реализован в С++, это далеко от идеала, но будем надеятся в новом стандарте добавят каки то интересные фичи, те же интерфейсы (как языковые элементы) к примеру.

Смысл? СРР это компромисс между низкоуровнемыми возможностями С и строгой объектностью более высокоуровневых языков. В этом вся его ценность. А то развели всяких Александреску — и язык становится непригодным для доступа к битам, и риск потерять контроль над памятью остаеться.

2 ScorpZ Вы всё замечательно изложили, только

ф-циональные требования к программе

меняются каждые полчаса, вот основная сложность современного программирования, отсюда и все «интересные фичи»

ScorpZ Lapshov C++/C# && other programmer в AMC Bridge 17.08.2010 07:15

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

Конечно, как ООП реализован в С++, это далеко от идеала, но будем надеятся в новом стандарте добавят каки то интересные фичи, те же интерфейсы (как языковые элементы) к примеру.

Где же дао?
Антимотиваторы не спят.

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

Ivan M Software Engineer в Лідер ринку 16.08.2010 21:12

ООП — это правильный шаг в развитии функционального программирования.

Скорее процедурного, функциональным там и не пахнет.

В принципе, простые формы кодогенерации/метапрограммирования (до этапа компиляции), можно реализовать и при помощи нынешних макросов, в сочетании с тэмплитами.

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

Для более сложных вещей, хорошо бы иметь возможность передавать строку, в качестве параметра тэмплита (это, вроде, обещается в новом стандарте C++). Но это, конечно, изврат — к тому же, тормознутый и тяжёлый для отладки. В общем, нужен рефлекшен -, а его пока не обещают.: (

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

Впрочем, немерле очень и очень неплох в этом плане.

В этом смысле, дженерик (обобщённое?) -программирование, это действительно, нечто другое.

Это просто одна из слабых форм метапрограммирования.

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

А у Глобала 300 открытых вакансий и они по 100 закрывают в месяц (если я все правильно помню).

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

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

C++ снижает производительность, по сравнению с C.

Ню-ню. Закон Паркинсона.
Ворд и ексель сгнижает прозвтльность, а нотепад и калькулятор повышает.
ООП можно и на ассембля сбацать.

Нус, в студию дао

2 мдауж

Метапрограммирование — изменение кода (и главное типов) в процессе исполнения программы, очередная новомодная фича для создания полиморфизма, которого нет в исходном языке, ничего сложного там нет, но напроказить (и отладить) практически невозможно.

2crypto5 вот и я о чем! Новичкам, таким как я, пользы от таких высказываний мало.

> Но СТЛ тем не менее задизайнено используя ООП; -)
Возможно, под «мистификацией C++ сного ООП» он имел в виду, что оно реализовано, фактически, средствами C.

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

Александр Степанов, в одном из своих интервью, указывал на то, что ООП «методологически неправильно» и что «. ООП практически такая же мистификация как и искусственный интеллект. »

Но СТЛ тем не менее задизайнено используя ООП; -)

> отец-основатель STL

Да, уже посмотрел. Чё-то я забыл о нём.

Хто такой, ентот Александер Степанов?

Какие макросы? С его бредовым синтаксисом? Не задолбаетесь?:)

> Александр Степанов, в одном из своих интервью, указывал на то, что ООП «методологически неправильно»
Хто такой, ентот Александер Степанов? Страуструпа знаю, никакого Степанова — не знаю.
ООП — это правильный шаг в развитии функционального программирования. Но следом должно прийти метапрограммирование, как некое «надпрограммирование» -, а вот с ним в «плюсах», как-то, пока не сложилось.

P.S. Ок, Степанова уже знаю.:)

Александр Степанов, в одном из своих интервью, указывал на то, что ООП «методологически неправильно» и что «. ООП практически такая же мистификация как и искусственный интеллект. »

Тема топика звучит так:
Список требований к C++ junior developer,
а не:

Чего бы я хотел от ЦПП

> Страустрапыч конкретно пишет, как дедушка Ленин — для повышения производительности
Кстати, сомневаюсь, что Страустрапыч такое мог написать. Т.к. C++ снижает производительность, по сравнению с C.

Все эти виртуальные вызовы, динамическая проверка типов в рантайме — это замедляет.

> Будь в С++ макросы аля Немерле, цены б ему не было.
В принципе, простые формы кодогенерации/метапрограммирования (до этапа компиляции), можно реализовать и при помощи нынешних макросов, в сочетании с тэмплитами. Например, глянь сюда:
www.codeproject.com/. p/crc_meta.aspx

Для более сложных вещей, хорошо бы иметь возможность передавать строку, в качестве параметра тэмплита (это, вроде, обещается в новом стандарте C++). Но это, конечно, изврат — к тому же, тормознутый и тяжёлый для отладки. В общем, нужен рефлекшен -, а его пока не обещают.: (

> ООП, например, позволяет упростить то, что иначе делалось бы SQL запросами с приятными неожиданностями по объемам памяти и быстродействию. ООП позволяет, заранее описав структуру данных, упростить запись данных и их выборку из базы данных.
Не, насчёт ООП дао (не путать с DAO) ты не постиг.:)
То, что ты пытаешься выдать за ООП — не самом деле, многоуровневая разработка ПО и O/R-мэппинг. Они, в принципе, могут делаться и без всякого ООП.

ООП же придуман, для другого.

Ivan M Software Engineer в Лідер ринку 16.08.2010 17:35

Будь в С++ макросы аля Немерле, цены б ему не было.

Из моёго опыта, скажу: 90% программистов не понимают, зачем ООП нужно, хотя Страустрапыч конкретно пишет, как дедушка Ленин — для повышения производительности

это понятно. продолжаю заниматься с++ =)

Из моёго опыта, скажу: 90% программистов не понимают, зачем ООП нужно, хотя Страустрапыч конкретно пишет, как дедушка Ленин — для повышения производительности труда. Если это понятно, можно продолжить заниматься С++. Джава то же ООП, но джаву Оракл купил и начал рынок джавы разваливать (погугли). ООП, например, позволяет упростить то, что иначе делалось бы SQL запросами с приятными неожиданностями по объемам памяти и быстродействию. ООП позволяет, заранее описав структуру данных, упростить запись данных и их выборку из базы данных. Не идеализируя плюсики, свою живучесть они доказали давно. Это как тригонометрия, всем нужно её порйти в школе, и использовать на протяжении всей жизни.

Первый пост был написан рано утром и к делу это не относится (тем более после рабочей ночи). Два иностранных языка сейчас совершенствуются. Грамотно писать не проблема, я Вас не проверить ошибки просил.
2 hellip
Я еще студент 4 курса (заочная форма). Год работаю в АЙТИ сфере, но то, чего ожидал, не увидел. Сижу, учу все сам. Вот только по этому я задал Вам вопрос о возрасте. Для Вас звучит смешно возможно, а для меня сейчас все важно. Писаниной задач сейчас никого не удивишь, а с таким ростом технологий вообще никогда не успеешь. Еще не бакалавр лишь потому, что пришлось служить. Зарплата у меня тоже не высокая, для себя мало остается.

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

2 мдауж

Учи — учи английский, может уедешь

Не надо бояться маленьких зарплат, у меня первые два месяца вообще 450 грн было (зима 2005), потом больше и больше, студентом было

Может быть, Мдауж не студент?:)

anonymous

Думаю, тебе стоит отложить С++ на время в сторонку и выучить русский.

Это бессмысленный флейм, к делу не относится. Вот выучить английский действительно полезно, а по-русски у нас большинство пишет малограмотно и никто от этого ещё не умер.

Мдауж, за мной пришли в универ на третьем курсе, когда хотели взять студента «навырост». А меньше чем через два года я по разработке уже оказался за главного. Потом получил диплом и проработав на ставке меньше года, забил на их зарплаты, немного переучился и стал получать уже вдвое больше.

Не надо бояться маленьких зарплат, у меня первые два месяца вообще 450 грн было (зима 2005), потом больше и больше, студентом было неплохо:)

Я просто не пойму где взять 3 года опыта?

Это не только для ЦПП. Мо скоро «кризис» закончится (а судя по активности ХР он уже заканчивается) и будут брать снова всех.

Думаю, тебе стоит отложить С++ на время в сторонку и выучить русский.

товарищи! какой возраст является нормальным для C++ junior developer? мне 21, недавно изучаю с++ (можно сказать решение мат задач) Я просто не пойму где взять 3 года опыта? Если на освоение языка до определенного уровня нужно хотя бы год, а потом еще куча всего.Неужели люди начинают программировать уже сразу в студиях с разработки программного обеспечения, если можно так назвать? Я это к тому, что с таким успехом я лет через 5 смогу смело кидать резюме на вакансию с++ джуниора (

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

Я встречал людей, которые пишут ПО под Oracle и не понимают нормальную форму. Но это же не говорит о всех Ораклоидах?

Спокойно, Софт, мы знакомы лучше чем ты себе можешь представить, я с Делфимастера; -)

2 Soft

А кто же тогда программы писать будет?

Автоочистка памяти и реалтайм несовместимы.

Alexandr Gavriluk .Net developer в Aspose 14.08.2010 19:35

Практик 32 мин. назад
2 Soft
как только все ссылки обнулены объект моментально прибивается и вызывается деструктор, причем фича работает даже в мультипотоковой среде)

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

Яйца отрывать за такие деструкторы.

2 Soft

как только все ссылки обнулены объект моментально прибивается и вызывается деструктор, причем фича работает даже в мультипотоковой среде)

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

2 Антон

Звиняйте за очепятку, в оригинале

Полиморфизм упростит программу, если в цикле надо обойти все ветки всех деревьев, ,

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

про это hellip и цитирует стаустрапыча во втором издании

Указатели на функции помогают реализовать полиморфические подпрограммы, т.е. такие подпрограммы,

которые можно применять к объектам различных типов

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

Ну что, так понятно?

2 Практик
Это что за бред?
> Он упростить программу если в цикле надо обойти все ветки всех деревьев,

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

В предисловии Бьярни как раз и указывает, что это издание не может считаться полноправным преемником ARM. Оно станет им только тогда, когда все устаканится с новым стандартом.
Просто, невзирая на всю эзотеричность его труда, отпугивающую любителей легких денег, мозги он после университетских методичек капитально ставит на место.

Если все же налицо органическая непереносимость Страуструпа, то я могу порекомендовать Thinking in C++ или Священные знания (но это дело вкуса).

Вот, вот, я и говорю, все эти фичи типа лямбда оттого и всплыли, что в С++ полиморфизм не катит

во втором издании Б.С. про полиморфизм сказано лишь только:

Указатели на функции помогают реализовать полиморфические подпрограммы, т.е. такие подпрограммы,

которые можно применять к объектам различных типов

и дальше квик-сортировка, так что, строго говоря, это утверждение не до конца верно:)

> лучше самое новое издание, там уже есть итеративное приближение к стандарту С0х
Незачем джуниорам забивать себе голову С0х. Пускай, хотя бы, с текущим стандартом освоятся — там, для джуниора работать и работать.

С0х появится, может, через 3−5 лет, когда примут стандарт, а потом производители ещё и доделают инструментарий. К тому же, в нём не так уж много новизны — рефлекшeн, вроде, пока выкинули.

Alexandr Gavriluk .Net developer в Aspose 14.08.2010 13:39

Анонимус 5 час. назад
>> — знание всяких объектных фич (наследование, инкапсуляция) и умение применять на практике.
А полиморфизм?:)

Впрочем, встречал делфистов, которые его и вовсе не понимали: -)

Я встречал людей, которые пишут ПО под Oracle и не понимают нормальную форму. Но это же не говорит о всех Ораклоидах?

Alexandr Gavriluk .Net developer в Aspose 14.08.2010 13:32

Практик 3 час. назад
2 hellip Вот, вот, я и говорю, все эти фичи типа лямбда оттого и всплыли, что в С++ полиморфизм не катит. Ну, а с С0x так долго телятся, потому что ничего хорошего в этих фичах. народ не схавает. Уж лучше подождать компилятор ruby

FreePascal?
Довольно шустрый компилятор который делает быстрый код (тестировали с MS-совким, получаются тесты одной скорости), язык полностью соответствующий ООП, reflections нет, но есть RTTI, фичи типа автоматического контроля памяти через интерфейсные объекты (не сработает в случае циклических зависимостей, но в отличие от GC работает как стековые объекты С++, как только все ссылки обнулены объект моментально прибивается и вызывается деструктор, причем фича работает даже в мультипотоковой среде), виртуальные конструкторы, возможность вызова published методов и свойств по имени и прочие вкусности.

Ну и многоплатформенность честная.

2 hellip Вот, вот, я и говорю, все эти фичи типа лямбда оттого и всплыли, что в С++ полиморфизм не катит. Ну, а с С0x так долго телятся, потому что ничего хорошего в этих фичах. народ не схавает. Уж лучше подождать компилятор ruby

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

Полиморфизм в С++ — гадость страшная.
Он упростить программу если в цикле надо обойти все ветки всех деревьев, ,

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

Полагаю, от джуниора (как человека, обученного теории, но имеющего малую практику — скажем, в объёме ВУЗовских лабораторок), справедливо ожидать знания теории на уровне классической книжки Страуструпа:
www.amazon.com/. ntt_at_ep_dpi_1

Собственно, по книжке можно и изучать язык, чтобы подготовиться к соисканию C++ сной вакансии.

— знание всяких объектных фич (наследование, инкапсуляция) и умение применять на практике.

А полиморфизм?:)

Впрочем, встречал делфистов, которые его и вовсе не понимали: -)

ScorpZ Lapshov C++/C# && other programmer в AMC Bridge 13.08.2010 06:25

Ну если говорить о требованиях по знанию самого языка то это — — основы языка (базовые типы, операции наж ними) — умение работать с памятью и указателями. — знание всяких объектных фич (наследование, инкапсуляция) и умение применять на практике. — хотябы базовое знание stl и понимание что и почему там
Это основные требования, плюс еще — Использование механизма шаблонов — Умение работать со специфическими либами (если это сетевое приложение то умение работать с ф-циями типа socket, connect, listern etc, если win32 то там свое. ) Вообщем знания используемых в проекте либ/платформ, от жуниора желательно, но не обязательно.

Сам 6 лет пигу на С++ их них 5 лет под линух.

>> вот если показать такое резюме paradox.lissyara.su то его наверное возьмет почти любой
>> работодатель. или я ошибаюсь?
даже если возьмет, идти нет желания
>
> M$
> screen shoot
> writed for
> скріншоти сорсів з фара
> власна імплементація стрінгів в плюсовому коді
> неініціалізовані локальні змінні
>
> це так, на око.
если бы вы внимательно смотрели то увидели что скриншоты с фара — стоят под code styles

что не является показателем того что сделано, а является кратким обзором стиля программирования

Дедка, записывайте свой маразм в блокнотик, а не парьте его всем подряд. Всего доброго.

Детка, тут не твой персональный форум и ты тут не модератор.

Тихенько записывай когда с тобой старшие дяди говорят и не выпендривайся.

Восновном оффтоп везде «кто из нас круче», полезной инфы не так много, поэтому хотелось бы услышать еще мнений. Ты против?

Подумай головой. Войди в положение работодателя, например, в геймдев конторе.
Кандидат 1:
Ну мне тут Васька из соседнего парадного за пивасиком сказал что програмеры чисто палтарытыщибаксафф палучают, вот я тут и почитал книжку по Ц и еще по крестам и разрешаю вам брать меня и учить всему!
Кандидат 2:
Вот мои демки, а вот моя игрушка написанная на Огре, а еще я в алгоритмах разбираюсь.
Если вариант 1 прокатывал до кризиса по причине того, что кандидатов 2 хватало от силы на 10% мест, то теперь все не так просто.

И твоя пассивная позиция, ИМХО, будет в глазах интервьюера большущим минусом. Поэтому выбери таки себе направление и уже отталкивайся от этого. Ну или станешь вечным местным эмо-жуниором на пару с Лисандером.

Sergii Voloshyn Product Manager в DOU.ua 01.06.2009 20:05

Можно попробовать еще jooble.com.ua

Так тебе тут, да и на РСДН тоже, уже ВСЁ что могли рассказать рассказали

Восновном оффтоп везде «кто из нас круче», полезной инфы не так много, поэтому хотелось бы услышать еще мнений. Ты против?

Дык кто ж тебе сказал что их мало?

2 Ambianx
Чего тема скисла? Так тебе тут, да и на РСДН тоже, уже ВСЁ что могли рассказать рассказали, осталось только флеймить кто кто круче Джава, руби или Сишарп.

Почему вакансий в Украине «так мало»? Дык кто ж тебе сказал что их мало? меньше чем в Росии? Так Украина вообще меньше чем Росия, и рынок айтишный там побольше и поразвитее будет.

Это не случайно, потому что каждый специалист берется под свою задачу. Поэтому и возникает проблема списка требований.

Sergii Voloshyn Product Manager в DOU.ua 30.05.2009 17:36

Требования от вакансии к вакансии часто очень отличаются, не вырисовывается общей картинки.

Так это может неслучайно? Может и нет ничего общего у всех С++ вакансий кроме знания С++?

По теме топика мне все-таки непонятно чего хочет автор — я бы на его месте подписался на несколько RSS фидов вакансий С++ разработчиков и читал что там указано в требованиях

Требования от вакансии к вакансии часто очень отличаются, не вырисовывается общей картинки.

Sergii Voloshyn Product Manager в DOU.ua 29.05.2009 19:43

Отож. У языков разное применение и возможно не стоить менять шило на мыло и сравнивать теплое с мягким.
По зарплатам разница тоже небольшая кстати:
www.developers.org.ua/. verages/skills flocation=%D0%9A%D0%B8%D0%B5%D0%B2& flevel=junior& fcountry=%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0
По теме топика мне все-таки непонятно чего хочет автор — я бы на его месте подписался на несколько RSS фидов вакансий С++ разработчиков и читал что там указано в требованиях, попутно можно пробовать ходить на собеседования если зовут.

Есть еще вариант ныть на форумах что все плохо или все плохо у нас, но при таком подходе можно повторить судьбу lisander-а.

Кстати проверил на джоб.укр.нет — действительно количество вакансий одинаковое =) 108 дотнет и 109 на плюсы.

Sergii Voloshyn Product Manager в DOU.ua 29.05.2009 19:23

2Антон Мартыненко:
Если судить по нашему сайту то:
Джуниоры дотнетчики сейчас тоже похоже ищут работу:
www.developers.org.ua/forum/forum/15
А вакансий примерно одинаково:
www.developers.org.ua/jobboard skill=C%23%2F.NET

2Ambianx
Может я конечно не в тему, но советую глянуть в сторону C# — язык попроще для обучения по сравнению с плюсами. Ну и джава тоже ничего. Вакансий — куча. Сейчас конечно прийдут «папы» и скажут что это не «тру», и что на дотнете и джаве пишут быдлоформоклепы, но тем не менее я сам раньше писал на винапи, и знаю о чем говорю.

В общем на вашем этапе стоит обратить внимание на альтернативные языки.

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

eugene_n
> И судя по здешнему форуму все довольны, пипл хавает.

почему так мало вакансий по C++ в Украине? В России несравненно больше.

Потому что в России худо-бедно занимаются собственными разработками — 1C, ABBYY, всякие Касперские с Даниловыми, какие-то SCADA системы, VoIP и прочее DSP. Как вы думаете, на чем все это пишется?

А у нас цветет аутсорс самого последнего разбора — какой мусор удалось вырвать из зубов индусов, тот и маслают. И судя по здешнему форуму все довольны, пипл хавает.

Sergii Voloshyn Product Manager в DOU.ua 29.05.2009 16:39

Для каких проэктов отдается предпочтение С++? +главный вопрос темы остается актуальным.

Вот тут еще немного обсуждали:

Что-то тема скисла. Может кто-то скажет, почему так мало вакансий по C++ в Украине? В России несравненно больше. Для каких проэктов отдается предпочтение С++? +главный вопрос темы остается актуальным.

> Дждуниору? Прочитать стандарт? смеётесь?
Нет, не смеюсь. Сам прочитал, правда читал долго.
Будучи джуном не читал, но если бы прочитал, то было бы значительно легче. Человеческий мозг — это штука контекстная, глядишь и вспылет чего в памяти в процессе работы. А боятся читать всякую «нудятину» — быть вечным джуном, это диагноз.
Ну это смотря какие лабы в каком универе. И универ в данном вопросе — это старт, если в универе не пошло, то и мучать окружающих не стОит.
eugene_n
Моя вас не понимать:)
> Наниматели (ТЛ и ПМ,
как написанное связано с тем что откоментированно (кроме аббревиатуры HR)? Или это вы для красного словца?
> Лычки все-таки нужны работникам — чтобы поднимать чувство собственной значимости

моя не понимать еще больше:) КАК работник будет поднимать чувство собственной значимости, если у нас ТЛ и ПМ такие прозорливые (следуя логике выше)? Или это это аргумент такой «Я Сеньйор, это Я вам говорю! Платите мне стотыщмильйонов» в конкурентной борьбе за место под солнцем?

2ZaQ> 1. Крепкое знание С++: базовые конструкции, ООП, очень желательно знакомство с шаблонами,. Желательно прочитать стандарт.
Дждуниору? Прочитать стандарт? смеётесь? Вы сами то его прочитали?
ISO/IEC 14882: 2003 (E) содержит 786 стринц текста.
драфт N2798=08−0308, последний из тех что лежит на моей машине 1352 и это должен прочитать джуниор?
Я сам использую этот документ исключительно в контексте хитроумных головоломок и холиваров.
> 3. Опыт программирования, достаточно самому делать лабы в универе (если образование профильное).
Лабы в универе? ну не знаю. ИМХО маловато будет. Мне во всяком случае когда я был джуниором казалось маловато. И я бы этот пункт поставил первым и самым важным.

Всё вышеописанное моё ИМХО.

А лычки бизнесу действительно не важны, они нужны HRам, которым нужно отбирать подходящих спецов из сотен резюме.

Лычки все-таки нужны работникам — чтобы поднимать чувство собственной значимости и аргументировать запрошенные суммы.

Наниматели (ТЛ и ПМ, а аж никак не ХР) прекрасно могут сложить мнение о способностях специалиста по резюме и интервью (а если не могут — грош им цена).

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

Правильнее сказать, минимальную сумму знаний для получения оплачиваемой работы. Вот тут согласен с вышесказанным — хорошо запомненые учебники по языку, основам ОС, алгоритмам и структурам данных. Базовые навыки пользования ИДЕ, умения самостоятельно находить источники ошибок и ворнингов. Другими словами человек который нуждается в обучении тонкостям, но никак не RTFM.

> Бизнесу важно умение решать задачи в заданные сроки и бюджеты. Другое дело, что на сплошных goto в общем случае это получается плохо.
«Другое дело» — это дело бизнеса, от того как будет решена та или иная задача зависит успех бизнеса в долговременной перспективе.

А лычки бизнесу действительно не важны, они нужны HRам, которым нужно отбирать подходящих спецов из сотен резюме. Но мы все же лычки обсуждаем, точнее лычку джуниора и что нужно знать, чтобы ее получить.

Zaq, спасибо, конечно, за совет, но просьба все-таки холиваров тут не инициировать, а то тема окончательно превратится в мусорник.

Человек может на протяжении 5 лет решать «масштабные» задачи используя goto, мидлом он от этого не станет.

Извините, но бизнесу не важны все эти лычки «сеньор/не-сеньор», это все побрякушки для не в меру амбициозного молодняка, который написав первую прогу без ошибок себе сложить цены не может. Бизнесу важно умение решать задачи в заданные сроки и бюджеты. Другое дело, что на сплошных goto в общем случае это получается плохо.

Устроим холивар:)
Если человек решает поставленную задачу качественно и в срок, то он всего лишь делает свою работу, как и подобает профессионалу. Данная фраза ничего не говорит о его профессиональном уровне в контексте «Senior/Mid/Junior».
Мы не обсуждае какие-либо абстрактые умения «написал 3д шутер», чудо-примеры с Брином и т.д. Мы конктретно обсуждаем знания по пунктам, приведенным выше.

Более того, опыт без знаний не говорит ни о чем. Человек может на протяжении 5 лет решать «масштабные» задачи используя goto, мидлом он от этого не станет.

я думаю синьеры и манагеры которые сталкивались с этим, согласяться что если человек решает качествено и в сроки не важно знает ли он паттерны GoF/Anti итд или последнюю версию framework/sdk итд.

главное маштаб и качество решаемых задач

вообще-то кажеться в первую очередь мидл-синьер-манашер-СЕО итд. отличаються маштабом решаемых задач самостоятельно, ,
а какие у них при этом знания уже мало интересно, для оценки таких вещей можно использовать либо орыт хорошо решеных задач, я думаю Брина, в Яндекс возьмут без проблем, не требуя от него знания boost
либо когда опыта нет то опираться на знания так как это может показать:
гибкость человека — степень обучаемости и самое главное сдепень качественой оценки человека, если он зная алгорит пузырька горорит что он Гуру в алгоритмах сортировки, можно себе предаставить код, который по его мнению будет идеальным
и вероятность успешного решения проблемы — предпологаеться больших набор знаний способствует лучшему решению проблем.
Поэтому наверное сперва стоит понять, а если чем похватать интересным перед работодателем из прошлого, даже если это лабораторка,
если человек на лабораторке написал свой 3д шутер с текстурами, АИ и вменяемым разрешением и ФПС, то я думаю не критично что человек не знает что такое MFC, ATL, WTL.

Ибо знание аля МСДН еще не доказывает что ты на что-то способен:)

anonymous, мне жаль людей, считающих себя мидлами и синьйорами с такими знаниями. А так же жаль работодателей, нанимающих таких людей как мидлов и синьйоров.

Крепкое знание С++: базовые конструкции, ООП, очень желательно знакомство с шаблонами,. Желательно прочитать стандарт.

Здравствуйте, гость с другой планеты!

На Земле, в славном городе Киеве, описаный Вами человек — это что-то среднее между синьйором и мидлом:)

Мое видение джуниора С++ (отсортировано по степени важности), общепрограмистские навыки и умения опущены, без них не стоит даже пытаться — себя замордуете и другим проблем создадите:
1. Крепкое знание С++: базовые конструкции, ООП, очень желательно знакомство с шаблонами,. Желательно прочитать стандарт.
2. базовое знакомство и использование STL
3. Опыт программирования, достаточно самому делать лабы в универе (если образование профильное).

4. Понимаение того, что ничего еще толком не знаешь, желание узнать новое.

Катюша отчаянный юзер интернета, не боится спама вообще.

Привет всем! За советы большое спасибо.
Поиски работы продолжаются, и не страшны нам ни кризис, ни дождь за окном. Пугают только сессия и препод, который утверждает, что через 20 лет все будут делать только компы и что искусственный интеллект уже существует. Еще он считает, что программисты — главные люди будущего!: -)

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

2 lisander
А может не стоит головой об стенку биться? Может стоит оглянуться и поискать дверь, ну или окно на крайняк?
2 Katushka

Действительно давайте координаты, мб что-н и заиграет.

To Katushka: можете сказать как с вами связаться, может получиться что-то придумать

To lisander:
не удивлен был услышать такой ответ от вас:)
на самом деле если вы считаете что вы что-то умеете и быстро учитесь то как раз на фрилансерстве можно обойти вами не любимую волокиту с HR и показать кто есть кто,
у меня успешно получалось фрилансить еще на 1 м курсе, хотя отнють не синьером я был тогда (для студента задо удобно, заказчики спят пока пары идут, а если что-то срочное — то СМС)
потом оставил ввиду постояной работы. для фрилансертства достаточно будет всего того что вы описали что у вас есть если это действительно так — заодно и себя проверите,
пока за биды по сражаетесь с конкурентами. когда будет опыт, даль фрилансерство лучше оставить, так как развитие пойдет однобокое. но для старта когда совсем ничего нет — то вполне нормальный вариант,

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

2Katushka
Я с таким подходом 9 лет головой об стенку бился, бесполезно. Уже обламался. Теперь ищу любую работу, хоть грузчиком, но прикол, что сейчас даже на вакансию грузчика требуется опыт.
Всем кто рекомендует фрилас.

Для фриланса нужно быть хотябы сеньором. Джуниор по определению подмастерье. А делать самостоятельно готовые проекты — до этого нужно расти не один год.

Спасибо тебе огромное за опыт, ГУРУ.

Я устраивался джуниором, правда было это несколько лет назад.
Написал резюме во все фирмы которые нашёл на сайтах о работе.
Пригласили на собеседование в 7 фирм:
Первым был incom. Вопросов практически никаких не задавали, больше рассказывали.
Показали что нужно будет сделать в течении полугода.
Это был проект связанный с протоколом обмена между устройствами. Часть программы писалась для мироконтроллеров.
Дали диск с документацией поизучать и сказали, что если меня это заинтересует, то чтобы связался с ними.
Оставили приятное впечатление.
Второе собеседование проходил в unitrade systems.
Мужчина лет 40 — 50 дал задачку о лифте.
Как более эффективно использовать работу лифта в офисном здании.
Суть сводилась к тому, что утром лифт должен стоят внизу, чтобы люди его не ждали, а вечером посередине, чтобы быстрее добираться до нужного этажа.
Задачка была устная для проверки сообразительности наверное:). Я с ней справился. По программированию на C++ не спросил ничего.
Какой можно было сделать вывод из одной задачки на сообразительность не знаю.
Сказал, что я в принципе подхожу, работа связана с кассовыми аппаратами, пишут программы на gcc, правда денег много не платят и если я через полгода уйду в какую-то иностранную компанию, чтобы предупредил заранее:)
В итоге мне никто так и не перезвонил. Тогда я позвонил сам. Мне сказали, что девушка из отдела кадров заболела и что они мне
обязательно перезвонят и пропали. Больше я звонить не стал.
Третим был flextronics.
Дали тест по английскому. Он состоял из частей.
1) надо было перевести на русский кусочек msdn. Описание какой-то функции. Вроде WaitForSingleObject, но точно не помню. Это было совсем не сложно.
2) Перевести текст на английский. Английские слова я знаю не плохо, но правильно соединять их в предложение не умел:)
3) Прочитать текст на английском, а потом рассказать своими словами (на английском) о чём там речь. Это я сделать вообще
не смог о чём сразу сознался.
Потом дали тест по программированию.
Вроде тест состоял из трёх частей.
Часть вопросов была по C++ другая часть по win32 api (объекты синхронизации и тд. ).
Вопросов было много. Я ответил на большинство. Тест забрали и посадили меня в отдельную комнату.
Через пару минут зашли двое парней и стали задавать разные вопросы. По переносимости типов, как выглядит структура данных дерево,
что такое виртуальный конструктор. Ну я им объяснил, что в C++ виртуального конструктора не существует и это фантастика. Уже потом я понял
что они имели в в виду паттерн проектирования:), но этот паттерн в разных книжках называется по разному. Показалось, что хотят засыпать.
Рассказали, что пишут какой-то проект типа Skype для Укртелекома с использованием WTL.
Что пишут быстро (это вызвало у меня улыбку, не смог сдержаться), но правда есть некоторые проблемы со шрифтами.
WTL я не знал (да и сейчас знаю только в общих чертах, так как не использовал ниразу).
В итоге меня не взяли, но вроде сообщили об этом.
Четвёртой компанией была smartcard. Пишут ПО для банкоматов на C.
На собеседовании попросили перевернуть строку. Я перевернул в цикле, первый элемент меняем с последним, потом второй с предпоследним и тд.
Правда цикл у меня был полный, в итоге перевернул строку 2 раза и она стала исходной:). Тяжело писать работающию программу
на листочке с первого раза. На компьютере такая ошибка сразу видна при запуске и её легко исправить.
Дали задачку по информатике, она больше была похожа на задачку по математике. Треугольники куда-то там вписаны и тд.
Я поглядел пару секунд и сказал что не знаю как делать. Мне стали помогать, но безуспешно.
Потом спросили как бы я устроил пересылку данных между банкоматом и центром. Я не знаком с банкоматостроением
поэтому говорю, что можно так, а можно так, а можно ещё вот так, но как правильно не могу сказать.
В smardcard я не прошёл.
На собеседование в компанию ПАРУС я не явился. Забыл адрес и потерял их телефон.
В общем глупо получилось и это моя вина.
Пятой Innovative Marketing Ukraine.
HR очень хорошо формулировали требования, ничего лишнего, всё чётко и грамотно.
Правда из сайта компании было совсем непонятно чем они собственно занимаются.
Пришёл на собеседование. Дали тест. В него входил C++, win32 api, MFC.
MFC я не знал, тоесть я начал её изучать, но это вызвало у меня шок. Мне показалось, что проще использовать win32 api.
Поэтому в вопросах о MFC я просто ставил прочерк.
Зашли 2 парня, даже не помню, смотрели ли они мои ответы, начали задавать вопросы.
В основном по потокам, процессам, по тому о чём пишет Рихтер. К своему стыду я тогда Рихтера не читал, но на вопросы отвечал.
Потом начались вопросы о calling conversion, знаю ли формат PE.
Я ответил что знаю и даже шифровал когда-то секцию с данными, чтобы спрятать строки от постороннего взгляда.
Это оживило парней. Как я шифровал? Отвечаю xor’ом. О, а секцию кода ты шифровал? Говорю, неа. Там проблемы с релоками да и
смысла нет, строки там не хранятся обычно.
Мне в тот же день сказали, что я прошёл собеседование и через неделю я вышел на работу.
Вначале въезжал что и как, потом какое-то время (наверное как и большинство, кто попадал в IMU) возмущался и пытался что-то исправить, ,
а потом привык и сам стал писать код в imu-style (как попало, лишь бы отвязались).
Ещё должно было быть собеседование в System Storage Software на которое я не пошёл (так как устроился в IMU) о чём вежливо им сообщил.
Так как IMU канул в лету, ищу работу C++ разработчика:)

Если кого-то заинтересует пишите на [email protected]

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

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

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

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

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

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

Что должен знать junior С#?

Опять же все ответы на похожие вопросы были слишком общими, а для того, кто новичок в ИТ и вовсе туманны. Выбрал цель стать для начала Junior С#-разработчиком. Хотелось бы иметь конкретные вещи, которые должен знать и уметь Junior С# и с критериями оценки. Будут очень полезны ответы, которые предоставят собственно работодатели? С какими знаниями они бы взяли на позицию Junior’а?

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

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

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

Zorohastres

Туралъ @Zorohastres Автор вопроса
Забыл упомянуть, желаемые направления -корпоративные приложения, финансы, банковская сфера, геймдев.
Туралъ: еще вы как-то перепрыгиваете фазу «стажер».
Решения вопроса 0
Ответы на вопрос 6

Nipheris

Станислав Макаров @Nipheris Куратор тега C#

корпоративные приложения

Поучите голый ADO.NET и какую-нибудь ORM-ку, да хотя бы EF. Еще можете хотя бы начать ASP.NET, вероятность попасть на него на первой работе достаточно высокая.

финансы, банковская сфера

Подтяните теорию по реляционным БД. Ведь какие финансы без транзакций!) Вы должны хотя бы знать о таких понятиях, как изоляция транзакций, представлять в общих чертах как на SQL можно сделать какую-нибудь выборку с агренированием. Никто конечно в здравом уме не даст джуниору непосредственный доступ к сколь-либо значащим данным, отражающим реальные денежные балансы, но ваша осведомленность пойдет вам на пользу, иначе рискуете клепать интерфейсики ближайшие несколько лет. А, ну да, выясните, почему нельзя вот так считать проценты по кредиту:

float interestRate = 0.13 // ставка float interestSum = interestRate * sum;

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

И еще для всех направлений: станьте более-менее самостоятельным в вопросах деплоя. Вы должны в общих чертах представлять, что находится внутри дотнетовской сборки, как работает версионность и что может пойти не так. Ну и про NuGet я надеюсь вы уже знаете.

Ответ написан более трёх лет назад
Нравится 11 1 комментарий

Zorohastres

Туралъ @Zorohastres Автор вопроса
Спасибо за то что отозвались, обязательно воспользуюсь советами.
Георгий Григорьев @IamKarlson
ASP(?).NET, SQL-разработчик

  • Что появилось в .NET 2.0
  • Что появилось в .NET 3.0
  • Что появилось в .NET 4.0
  • Что появилось в .NET 4.5

Еще очень популярная технология для шарпистов — это WCF. Если скилла написать простенький сервис не хватит, то хотя бы почитайте что это такое и с чем его едят.

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

Ну и плюс все что выше описали, достаточно хорошие советы. Походите по ссылкам, почитайте статьи, посмотрите курсы. И самое главное если вы еще не начали, то начинайте учить английский. Грамматика в первую очередь. Банально составлять предложения это ОЧЕНЬ ВАЖНО. Вас никто не поймет если вы будете писать по-русски английскими словами, а вы будете если не возьметесь за грамматику сразу, наравне с программированием.

Ответ написан более трёх лет назад
Нравится 6 4 комментария

Mephistophele

Mephistophele @Mephistophele

По самому .NET: один из самых популярных вопросов «что появилось в .net версии %version%?»

За подобные вопросы нужно интервьювера уволнять к х**м собачим.

Еще очень популярная технология для шарпистов — это WCF

За последние N лет, сколько вы видели проектов, использующих эту технологию? Я только один, и то лет пять назад. REST — наше всё.

Георгий Григорьев @IamKarlson

Mephistophele: зато отсекает тот народ, который искренне недоумевает почему на платформе 4.0 нет нормального зипования.
За последние 3 года практически все проекты в которых я участвую, или мне приходилось видеть, используют WCF. Безусловно, вы можете сказать, что WebApi гораздо лучше ваших этих tcp-binding’ов. Но для промышленной системы, чаще оказывается предпочтительнее вытащить наружу хвост из нескольких методов, и не страдать ерундой с попытками использовать rest в какой-нибудь транзакционной системе.

Mephistophele

Mephistophele @Mephistophele

Георгий Григорьев: Боюсь даже интересоваться зачем вам нужно зипование и почему нельзя обойтись third-party libraries. Я смотрю в сторону насколько тело понимает ООП, SOLID, паттерны проектирования и внутреннее устройство платформы. Поднять какой-то язык на уровень мидла — дело недели-двух, при наличии хорошей инженерно-программерской базы.
Насчёт транзакционности в REST у меня никаких проблем никогда не было, т.к. REST для меня всего лишь инструмент, который я использую как почитаю нужным. Насчёт WCF, нууууу, вам такие фломастеры нравятся и универальный бекэнд видно поддерживать не нужно.

Георгий Григорьев @IamKarlson

Mephistophele: а кто вам сказал что тело не опрашивается насчет знания и использования солида? Ну про универсальный бекенд нужно поддерживать с вероятностью в 50%. Либо надо, либо нет. я ж написал что за последние 3 года не работал с системами, которые должны быть универсальными. Может дело в разных сферах деятельности? Есть у меня протокол заранее проработанный. Он реализует ровно 50 методов. И это не укладывается в рест вообще. Мне его специально тулить? Нет, спасибо я лучше не wcf раскидаю их.

Saboteur @saboteur_kiev Куратор тега Программирование
software engineer
Зайти на сайты IT контор, почитать требования к джуниорам на C#
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

Dywar

От Senior`a — Junior должен знать все, но при этом у него мало практического опыта и он часто не способен самостоятельно решать задачи, требуется постоянного его направлять. Со временем чем меньше ему требуется помощи и он становится более самостоятельным, тем ближе он к Regular/Middle.

Знать и уметь это разные навыки.

Станислав Макаров согласен про финансы. Вопрос не такой простой. float вообще использовать не желательно.

float и double следуют спецификации IEEE 754 формата представления чисел с плавающей точкой.
decimal не имеет специальных значений, и примерно в 10 раз медленнее чем double.
Типы float и double внутренне представляют числа в двоичной форме. По этой причине точно представляются только числа, которые могут быть выражены в двоичной системе счисления. На практике это означает, что большинство литералов с дробной частью (которые являются десятичными) не будут представлены точно.
Именно поэтому типы float и double не подходят для финансовых вычислений. В противоположность им тип decimal работает в десятичной системе счисления и, таким образом, может точно представлять числа, выразимые в десятичной системе (а также в системах счисления с основаниями-множителями 10 — двоичной и пятеричной).

17 вопросов джуну: что должен знать Junior-разработчик

Что должен знать Junior-разработчик и не завышены ли требования? Разобрали популярные вопросы с собеседований, разделив их на hard и soft skills.

Что должен знать Junior-разработчик, чтобы получить должность или удержаться на уже «завоёванной» позиции?

Джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора.

Кто-то говорит, что требования завышены, и в 2020 году младший программист должен знать то, что знал Middle в нулевых. Кто-то парирует аргументами о росте конкуренции, сложности задач и, соответственно, требований.

Что касается технических требований к джунам, то в последние годы они действительно выросли. Профессия программиста стала доступнее из-за курсов, и рынок переполнился начинающими разработчиками. Поэтому компании начали выставлять определённые требования, чтобы найти из общей массы тех, кто лучше других.Например, теперь на позицию начинающего front-end разработчика недостаточно просто знать JavaScript, HTML5/CSS3: нужны базовые знания одного из популярных фреймворков (React, Vue, Angular). Кажется, что со временем требования будут расти ещё сильнее.

Мы разобрались, что должен знать Junior-программист в 2020 году, и собрали общие вопросы с собеседований, по которым работодатели определяют, дотягивает кандидат до нужной планки или нет.

Hard skills

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Soft skills

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Что должен знать Junior-разработчик? Отвечают эксперты

Олег Власенко
заместитель генерального директора SimbirSoft

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

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

Тем временем джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора. Соответственно, такой специалист обязан обладать уверенными знаниями как минимум одного языка и фреймворка. Да, его знания, скорее всего, не будут глубокими, но он должен знать основы. Значительная часть сил джуна уходит на освоение нового. Ведь чтобы стать мидлом и выйти на новый уровень оплаты своего труда, джуну придётся освоить несколько фреймворков пусть и поверхностно, глубоко изучить как минимум один фреймворк, возможно, подготовиться и сдать экзамен по сертификации, получить опыт в разных проектах. Соответственно, важнейшими soft skills для джуна (да и для любого ИТ-специалиста вообще) будут навыки самообучения, навыки и опыт решения любых проблем, самодисциплина и мотивация к обучению.

Если рассматривать hard skills, то, наверное, нужно упомянуть такие профессиональные навыки, как умение искать информацию в поисковых системах, знание средств коллективной разработки (Git и другие), знание IDE, языка и фреймворка.

Завышены ли требования к джунам? Уверен, нет. Всё проясняется, если разделить понятия стажёр и джун и рассматривать джунов, как младших специалистов, а не просто тех, кто начал учиться.

София Техажева
руководитель программ «Python-разработчик» и «Алгоритмы для разработчиков» в Яндекс.Практикуме

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

Требования к hard skills будут зависеть от направления. Например, мы уже подробно рассказывали, что работодатели ждут от Junior-Python-разработчика. Для таких специалистов это чаще всего знание языка программирования Python, алгоритмов и структур данных, опыт работы с базами данных и фреймворками.

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

В технических навыках обычно требуется наличие какого-то (хотя бы учебного) опыта программирования, знакомство с основными инструментами, умение решать типовые задачи. Для получения даже этих навыков придётся постараться. Разработка имеет относительно высокий порог входа по сравнению с другими ИТ-профессиями, но планка по найму в последние годы, скорее, снижалась, чем наоборот.

Александр Махновский
руководитель отдела разработки Аванпост

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

В целом для джуна, планирующего работать в прикладной разработке, требования можно определить следующим образом:

  • Знать синтаксис языка, на котором предстоит работать.
  • Знать основу стандартной библиотеки языка и представлять её структуру в целом.
  • Понимать принципы работы технологической платформы и среды исполнения (например jvm).
  • Понимать принципы работы реляционных СУБД, иметь навыки работы с ними.
  • Знать основы веб-разработки.
  • Понимать, как в целом устроен мир: как работает сетевое взаимодействие, какая инфраструктура существует в интернет- и корпоративных сетях, понимать отличия парадигм программирования, скриптовых языков от компилируемых и т. д.
  • Уметь решать простые прикладные задачи, т. е. применять знания, перечисленные выше, с пользой.
  • Умение слушать, воспринимать постановку задач и пояснения, не упускать детали, но и не зацикливаться на них.
  • Способность и желание обучаться в процессе работы.
  • Умение задавать вопросы и в целом формулировать мысли.
  • Любознательность и стремление к развитию.
  • Ответственность.

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

Большинство же отклонений по результатам собеседования происходит по причине отсутствия практических навыков или критичных софт-скиллов, таких, как умение слушать.

Это не самые высокие требования: могу с уверенностью сказать, что 10-15 лет назад требования были значительно серьезней. Отрасль была менее лояльной к новичкам, готовность брать на работу, платить не самую низкую зарплату и учить была у единиц компаний. Сейчас же все, даже самые небольшие софтверные и не только компании, готовы вкладываться в обучение вчерашних студентов, несмотря на все сопутствующие риски. Всё, что нужно джуну сегодня, — общая адекватность и минимальные знания технологий.

Как стать разработчиком с нуля

Выводы

Мнения насчёт того, завышены требования к джунам или нет, очень разнятся. Но практически все эксперты сходятся в том, что Junior-разработчик должен знать о преимуществах и сферах применения выбранного языка или технологии, уметь работать с Git, знать основные алгоритмы, библиотеки и фреймворки в своей сфере, быть в курсе возможностей хотя бы одной IDE, знать английский не ниже уровня Intermediate и уметь работать в команде.

Следите за новыми постами по любимым темам

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

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

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