Який мінімум треба для стажера C/C++, щоб отримати позицію trainee?
Добрий день всім.
Зіткнувся з проблемою яку не знаю чим вирішити. Почну с того що я хотів би знайти комерційний досвід у сферах де використовуються C і C++, тому і вчив саме їх. В результаті я (як для стажера) знаю ці мови достатньо (менеджмент пам’яті, файли I/O, STL, OOP, шаблони, кастомні структури данних по типу зв’язних списків і стеків, ну і алгоритми самі базові по типу бінарного пошуку та швидкого сортування). Також я вчив допоміжні інструменти(makefile, lldb, clang, etc) тому що хто такого візьме. Також для резюме я зробив 2 міні проекта, звісно не яскравих, але без проектів було б ще гірше, зробив я кастомні версії класів Vector і List(одно зв’язного), та гру tic tac toe з консольним інтерфейсом.
То що я хотів спитати. Чи цього мало, чи ні? Якщо мало, то що потрібно зробити щоб зацікавити HR?
72 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів1. Знайти вакансії/компанії де візьмуть трейні
2. Написати їм що володієш добре цим і цим і може на ізі вивчити що треба під їхню специфіку(так як ти на трейні то може і пошарять)
3. Підучуєш, Намагаєшся попасти на співбесіду і там себе показати
Якось так я це бачу, я думаю пункт 3 без проблем для тебе а ось з першим хз як.
Приблизно все з цього списку: dou.ua/...rums/topic/52553/#2936686
Зараз C++ в основному використовують для перформанс-крітікал задач (трейдінг, геймінг, аі, нетворкінг), але від трейні не мали б очікувати доменних знань (ну і для трейні нема великої можливості обирати домен), тому я б краще зосередився на багатопоточності, управлінні пам’яттю, алгоритмах та дизайн паттернах (по-простому computer science). В мене як С++ програміста були періоди, де я займався чим завгодно, крім написання С++ коду.
Забудь поки про допоміжні інструменти, зосередся на IDE, git та опціонально cmake. Міні-проекти скоріш за все ніхто не буде дивитись (в людей просто нема часу і бажання переглядати гівно/ШІ-згенерований/роздутий код). Хрестики-нулики це щось на рівні лабораторної роботи другого курсу. Але це всеодно краще, ніж нічого. В таких міні-проектах я б десь окремо вказував і зосереджувався на бест практісах, які були використані (наприклад, застосував producer-consumer паттерн для обробки даних).
Взагалі, розробка на С++ доволі повільна через відсутність єдиного пекедж менеджера та свистоперділок, які є в інших мовах, які поступово наздоганяють С++ по продуктивності (або оверхед мови перестає бути важливим), а для багатьох С++ біблотек написані біндінги. Через це на попередніх проектах ми намагались (де можливо) переходити з С++ на C#/Python
Ладно, додам і я пару слів, крім обсиралова...
Є 2 параллельні напрямки -
1.
C++ з отими всіма новими стандартами, шаблонами та варіадік шаблонами, стл, ооп і іншими модними штуками.
2.
Є С, що для мікроконтролерів, ядра ОС, там ще архітектуру заліза та ассемблер треба знати.
Так от, рекомендую вибрати один з 2х напрямів і продовжувати в ньому.
Бо якщо почнєш «лямку тягнути» в обох, то ти або геній, або в тебе кукуха скоро зїдє.
Кукуха не поїде, але буде більший вибір, але не бачу змісту іти в низькорівневу розробку, за винятком, що топікстартера пре від цього
Поїде, поїде...
Бо це зовсім різні напрями і в голові і в соур коді, потім буде така каша, що ховайся.
в ембедед поїде швидше: паяти, читати/складити схеми, FPGA/DSP, не кажучи про CS, і це, «за миску рису»
Ну в С++, як за «2 миски рису».
Реально зп як якимось цсс-фронтенд формошлепо верстальщікам.
Єдине виключення — то HFT напрям, там реально офігенні зп та гроші, но і впихнутись туди важше.
тільки знати на порядки менше, Е це — ефективіність
Тю. Питоновскую строчку никогда с С-код не совал? Питон не комментировал двумя слэшами?
Доречі декілька разів помічав що ті хто прийшов у програмування зі сторони заліза — доволі комфортно вирішують значну частину своїх задач з пайтоном, а в сторону сі дивляться (чи звертаються до когось) тільки у крайньому випадку.
«писати на будь-якій мові, як на Fortran» ©(тм)
нерелевантно, не зустрічав сучасних «від-заліза» які знайомі з фортраном, хоча і несучасних також таких не пам’ятаю
це мем, не слід сприймати буквально, радше в іронічно — саркастичному контексті
на фортрані софт писав (дуже давно), а мем то і не помітив.. отжеж, так і запишемо — в усьому сучасний пайтон винен
unixforum.org/viewtopic.php?t=8
В Московії москалі
Пишуть всі на паскалі.
На Вкраїні ж ми усі
Пишем як один на Сі!
продовжуйте спостереження, мемів недостатньо, релевантність в очікуванні
del dup, проклятий інтернет)
По MQTT через LoRaWAN сбрасывать на Prometheus в AWS-овском облаке.
Я колись писав, на одному проекті код на C++CLI.
Так от, коли в тебе 2,3 таски на день, де, в одній треба менєджєт .Net код в інший спп анменейжет рантайм, то під кінець дня все починаєш плутати що де і до чого.
А от мозок він так і працює, ьо в іншому варіку починаєтся біполярочка.
ССЗБ
И податься в Intellias и еще пару контор, которые этим обмазываются.
Тут очень по делу был упомянут Qt, вполне жизнеспособная вселенная без выедания мозга.
Для современных микроконтроллеров мьютексы надо знать и сокеты. Ассемблер скорее сам прилипнет, если будешь много заниматься низкоуровневой оптимизацией.
Можу дати раду по розвитку:
1. Як вже казали раніше — вивчи хоча б базу git — на сьогодні це must have для всіх напрямків.
2. Якщо поглядаєш на embedded, треба попрактикуватися із реальним залізом:
2.1. Візьми мікроконтролер, підійде майже будь-який (e.g. я починав з STM32), і починай писати під нього програми поступово ускладнюючи собі задачі.
2.2. Ознайомся* з базовою периферією обраного МК, там UART, I2C, SPI, таймери, DMA, щось іще.
*Ознайомся означає напиши хоча б простенький проектик рівня університетської лаби на частину цієї периферії.
2.3. Ознайомся* з RTOS. Можеш обрати будь-яку.
2.4. Напиши пет-проект із цим МК. Це має бути щось більш-менш складне. Приклади бачив в інших коментарях.
2.5. Багато кому важливо, аби embedded-програмер хоч трохи розумівся на схемотехніці.
2.6. Програмування під МК має певну свою специфіку:
2.6.1. Часто (не завжди) є сильні обмеження на динамічне виділення пам’яті, аж до повної заборони, або використання для цього специфічних ліб замість звичного malloc+free з stdlib.
2.6.2. Переривання (interrupt) мають значення.
2.6.3. Особливості багатопотоковості: дарована RTOS ілюзія паралельного виконання дуже крихка, тим часом DMA є реальним другим мастером на шині даних, а процес у сусідній мікросхемі як ніщо прикрасить досвід покрокового виконання програми.
3. Якщо не до смаку мікроконтролери, але embedded все ж хочеться, є опція мікропроцесори.
3.1. Розберись, чим вони відрізняються від мікроконтролерів.
3.2. Попрактикуйся із реальним залізом.
3.3. Багато не підкажу, бо підходи тут і з МК багато в чому відрізняються, просто знайди в мережі туторіал як з ними працювати, але основа та сама — він має певні можливості по взаємодії із зовнішнім світом — з ними варто ознайомитися*. І написати більш-менш складний пет-проект.
4. Навіть якщо відходити від embedded, все зведеться до аналогічних порад. Обери одну-дві затребувані на ринку технології (фреймворк, ліба, etc.), ознайомся* з їхніми можливостями, потім напиши більш-менш складний пет-проект.
залізо/мікроконтролери — тупиковий напрям, не оутсорситься, низыкі зарплати
ті самі яйця, вид збоку
він в профілі має C#/.Net, я так розумію, що інший напрям теж «не їде»
Мікропроцесор це про лінукс і кернел девелопмент, на цьому рівні апі схоже з х86. Ну може ще ртос бути, зазвичай паралельно запущено на іншому ядрі. Підійде навіть raspberry pi. Бо в цілому зараз в реальних задачах використовують те саме арм ядро. Ну а нижче багато чого аплікабельно від мікроконтролерів.
Просто вивчи Qt чи C++ Builder і подавайся на усі підряд вакансії, а там самі розберуться. Тіпа що С, що С++, абсолютно аморфне явище, і хто як хоче так і дроче, в кожній конторі свій набір костилів і практик, як ото з тим одоробалом взаємодіяти.
не кажи, що ти діва по гороскопу, і я думаю все буде ок.
варіант квадратно-гніздового (Монте-Карло) метода брут-форс рекрутінга
карти Таро рулять
Я б взагалі вивчаючи С чи плюси подавався би на пхп разраба, і просто накопичував би комерційний досвід. Чого пхп, бо має репутацію мертвої лоховської мови, а отже немає черги з випускників курсів датасаєнсист за 21 день, які хочуть на той же пітон. А потім би продавав пхп досвід, за сішний.
Звучить як план
судячи по пхп вакансіям в основному це маленькі контори без грошей. Як для першої роботи може і норм, але потім буде важко свічнутись на інший домен. Взагалі, перші дві роботи сильно впливають на майбутні можливості: ніхто не буде наймати сініор С++ девелопера, який пропрацював на геймдеві, на трейдінг позицію (на ті самі гроші, мало хто захоче дауншифтитись на пару кілобаксів)
це забобони, як і не той розклад по картам Таро, несумісніть по гороскопу і т.п. і т.д.
Щойно натрапив на вакансію спеціально для вас:
💡 Чудова можливість для Junior C/C++ інженерів, яка може стати початком великого професійного шляху у світі big tech!
Ми розглядаємо кандидатів із мінімальним досвідом або студентів останніх курсів, які:
— володіють C/C++, знайомі з Linux і Git;
— цікавляться мережевими технологіями, тестуванням, embedded-системами;
— готові навчатися, досліджувати й зростати поруч із найкращими інженерами галузі.
Лінка на вакансію
Краще в зсу)))
Я чув в deftech/miltech напрямках активно шукають технічних спеціалістів і так як там досить багато чого пов’язано з hardware & embedded — то думаю є хороші шанси там знайти роботу. Особливо враховуючи, що досить багато технічних спеціалістів з досвідом у класичних аутсорс/аутстаф/продуктових компаніях — не дуже хочуть туди йти працювати (у deftech/miltech), тому конкуренція там нижча.
По-перше, не варто змішувати С та С++.
За ось таке написання «C/C++» треба всім бити по руках. Це масове невігластво.
Той факт, що якісь дві технології є умовно-сумісними, не повинно бути передумовою для їх комбінування.
По-друге, реально знайти роботу, але це наразі не просто.
Ти маєш добре володіти технологією( C++ ), знати патерни проектування, алгоритми та структури даних. Ідеально, якщо ще й в багатопоточності розбиратимешся.
Дуже добре, якщо в тебе будуть якісь знання в тому домені, де працює компанія. Тобто чи ембедед чи мережі чи геймдев чи фінанси і т.д.
Те, що ти створив пет-проджекти це добре, але те, що ти перелічив це дуже слабенько.
Запитай у чата жпт, які пет-проекти добре зробити джуніру аби прокачати навички.
Оформи це в привабливий гітхаб профіль. Знову ж таки, запитай у чата як це зробити.
Не вірю, що це рекомендую, але якщо у тебе є можливості, то краще джуніору-стажеру розглянути варіант стажування в іноземних компаніях.
Ідеальний шлях для студента це позадротити літкод leetcode.com
І потрапити на стажування в один із офісів Фаангів.
Пошукай, навіть тут на форумі неодноразово писали про це і свій досвід.
ага, інфа 146%
Запропонуй малому кращий сценарій.
ти сам зробив у 2025 р. як пишеш?
Я свого часу, не зробив цього по тій простій причині, що коли я закінчував універ, ніхто мені не підказав як треба, а я пішов формошльопити на аутсорсера як всі.
Якби якийсь мудрий пан чи пані підказали тоді як краще і як треба, можливо, я б тут зараз не сидів.
Тому наставляю інших.
Якщо натякаєш на те, що неможливо виїхати в 2025, то топікстартер студент і, скоріше за все, молодше 23 і все ще може легально подаватись і виїжджати.
натякаю на інше
якось так
Особисто я це робив у90-х, коли літкода не було. І по відчуттям, я займався задачами складнішими за leetcode, де розставити 8 ферзів на шахівниці щоб вони не били одне одного, чи порахувати скільки розшташувань буде це складний рівень.
тільки тоді це була нова професія, і людей що хоч трохи розбиралося в цьому було мало, наразі їх штампують мільонами, карго культ, рішення в одних умовах переносити механічно в інші
Особисто для мене це була не професія, це була розвага. Яка дозволила прокачати скіли, які виявилися дуже потрібними потім.
В 90і, думаю, за грошима в програмування, мало хто йшов, скоріше за все «за покликанням»
Сначала за интересом, потом за свободой. Потом пришли большие деньги и кончились, и свобода, и интерес.
з точки зору стилістики так краще звучить:
а потом і дєньгі.
Деда, а когда лучше жилось: сейчас или при Сталине? — Ну, дык, ента, при Сталине конечно! — А почему, деда? — Ну так, внучек, при Сталине у меня хер стоял!
Масла таки на всех не хватило.
s1.hostingkartinok.com/...611b385edfc63dbac9de5.jpg
Я тут подумал и вот что могу сказать:
1. Определись в какую сторону ты хочешь двигаться.
С для микроконтроллеров и С++ для графики соприкасаются наверное процентов на 20.
2. В рамках выбранного направления попробуй сделать средней сложности проект.
— Если речь о микроконтроллерах — возьми три штуки ESP32 и построй на них ZigBee сетку для передачи данных о темпераиуре и влажности.
Передай их на облачко, оттуда на комп.
— Если графике — сделай простенький 3Д движок или приблуду для распознавания каких-то специфических объектов, например чертежа от руки в векторное изображение.
— Финансовое — многие протоколы обмнена финансовыми данными открыты.
Сделай энкодер и парсер. Оптимизируй по скорости. Добавь каналов.
Пусти через реальную сеть, посмотри что получится.
Почему так? Это похоже на реальные инженерные задачи.
Ты познакомишься с понятиями, актуальными технологиями, научишься искать информацию, поймёшь применимость определенных техник итд.
Тебе будет о чем разговаривать с нанимателем.
наразі кандидатський
кмс++
я мав на увазі здати «кандидатський мінімум», але теж варіант
IT индустрия в целом находится сейчас в, мягко говоря, не лучшей форме
из-за этого конкурировать за работу тебе приходится с людьми, у которых много лет реального опыта
выводы делай сам
Друже, ти б спочатку поцікавився, кому, на іт ринку, C++ взагалі нахєр треба...
... В 2025 році.
Не знаю, я бачив багато вакансій пов’язаних з networking, fintech, embedded і подібні, да і вакансії стажування є, але проблема у тому що, як я вичитав, моїх ще знань та практики не вистачає
проблема в тому, для чого тобі збиратися туди йти, за грошима (там багато не насипають, а вимоги вище даху) чи за покликанням (жити не можеш без С/С++)
Фінтех навряд, там Джава 99%.
Ємбедет то С, С++ там майже немає, або дуже порізаний.
Є високонавантажений високошвидкісний фінтех з мікрозатримками, де як раз C/C++/Rust — найчастіші інструменти.
Те що ви кажете, то HFT називаєтся — я його згадував, там великі гроші, шалена конкуренція та C++.
В усьому іншому фінтехі С++ , +/- нахрен не потрібен.
Но там надо очень хорошо понимать атомики и барьеры, а вся эта нечисть с вариадик шаблонами идёт лесом. По факту HFT-шный С++ это С с параноидальной типизацией и неймспейсами.
Згоден, я рік тому 2 чи 3 інтев,ю по HFT зафейлив.
На одному, правда, до останнього єтапу дійшов.
Кожна друга мілтех вакансія — c/c++ developer
і?
І те що якщо у тебе було 10+ років у цьому то зараз ти у шоколаді — зп вище ніж була до повномасштабки, бронювання у суперпуперкритичних підприємствах і перегрітий ринок
байка
ок, як скажеш
та я повірив би тобі на слові, but
Мова для системного програмування (від антивірусів до драйверів), всяке мільтімедіа (звук, відео, 3D, стиснення, рендеринг, обробка в реальному часу), робототехніка (наприклад, Autopilot для керування дронами).
Вільно володіти розмовною англійською. Це найголовніше. Сама перша твоя мова програмування це англійська. Не можеш її освоїти — все, тобі кінець. Як айтішніку.
Як на мене мало, особливо зараз. Нічого такого складного, щоб б вимагало скіли відлагодження, я не побачив. Особливо з урахуванням LLM, які напевно всі ці тестові проєкти відразу намалюють без помилок.
Опиши свое видение.
Вот лично я озадачился. Это раньше можно было соорудить какой-нибудь сервер и это было вау.
А сейчас сервера прямо из библиотечки на Питоне, готовые к употреблению.
А для трейни финтех, 3Д, телеком какой-нибудь это темный лес, это полгода только в терминологии разбираться.
Ну... коли я вчився у школі/інституті, то я писав різні клони ігор, графічний редактор, програму для гри в шашки, свою інтерпретуємо мову, автопобудова блок-схем, думав як формалізувати Бурбакі, ...
Кастомна версія Vector та List виглядає як лабораторна робота, яку ти робив дівчаткам за... неважливо...
Ок, то було25-30 років тому. Зараз... Ну... наприклад у мене є такий проєкт:
soccer який використовує сішну логіку 3-football-on-paper. Досить проста історія: памʼятаю, що у дитинстві грав з батьком у футбол на папері. А зараз не знайшов нічого пристойного, вчити інших таке, тому треба створити собі партнера та грати. Невже зараз важко придумати що робити? Тут не вистачає часу на всі проєкти...