1 | |
Определение уровня Junior C++ developer?21.10.2013, 01:39. Показов 23598. Ответов 111
Метки нет (Все метки)
Доброй всем ночи.
Как и многие здесь я недавно встал на нелегкий но приятный путь изучения С++, профильное высшее за плечами имеется, глубоких знаний не получил, особенно по Си, скорее научился быстро учится и находить нужную информацию =) Вопрос вот в чем, опишите примерный уровень вхождения в профессию. Там где я живу работы по С++ нет вообще, есть пути устроится на предприятие и деградировать там, но как то западло из уважения к себе. Короче нет возможности просто сходить на собеседование и узнать свой левел в глазах работодателя. Опишите пжлст что нужно знать чтобы устроиться коддером, допустим в Киеве, на уровень хлеб+вода. Предположим что пишем под винду, С++, WinAPi, не геймдев (слышал что очень хорошие нужны знания для старта).
0
|
21.10.2013, 01:39 | |
Ответы с готовыми решениями:
111
C# Junior Developer Уровень программиста (Junior Developer, Middle Developer, Senior Developer), как проверить? Какие требования нужно выполнить, чтобы стать Junior developer, Middle и Senior developer? Комплектиция ноута для изучения до уровня Junior |
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
10.10.2015, 23:05 | 101 |
Это ты к чему? Я про то, что ты не знаешь весь стандарт настолько, чтобы не делать ошибок в синтаксисе и семантике.
Представляешь, надо. Когда-то вылазят, когда-то не вылазят. Те же утечки у тебя вылезут только при долгой или интенсивной работе. Чтобы все нормально проверить, нужно хорошо протестить, да еще и специальными инструментами - статическими анализаторами, санитайзерами, профилировщиками. Это какая-то твоя личная статистика. Потому что я имею хорошее представление о том, как именно оцениваются сроки и из чего они складываются, - из наглядных примеров и опыта работы в разных компаниях и командах, а еще и из многих книг. Это что, 100% защита? Плюс ты как-то взял и все в кучу смешал - . nullptr без концепций владения и смартпойнтеров, какие-то сайзы непонятно чего, STL и политики DP и DbC. В общем, как по мне, так сей абзац никакой полезной смысловой нагрузки не несет.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 00:53 | 102 |
А я как то по практике. У тебя никогда такая ошибка как перегрев винта не вылазила? А устраняетет ее отдел оборудования.
Добавлено через 5 минут Не ну понятно что обычно кто распределял тот и удаляет. Ну в тяжелых случаях бывает перброс в списки удаления другого владельца. А смартпойнтеры... дурные они для моих задач...разве что и могут референсы считать. А если удаляться надо если нарушен минимально допустимый комплект связей (типизированных) с оповещением оставшихся связей и контейнера? В большинстве задач кстати вылазит необходимость следить не за тем чтобы поинтер не удалился когда его кто то использует, а оповещать остальных при удалении. Добавлено через 21 минуту Это к тому что пытаюсь блин угадать какой принцип распеределения запросов по сессиям понадобится вышестоящему коду, и делать ли его на автомате, настраиваемым каким то образом, или отдать это вышестоящему коду. Добавлено через 7 минут Не ну еще прямые руки. Понимаешь не бывает unsafe кода бывают unsafe кодеры. то что пытаются лечить смартпоинтерами и тп называется недопонимание задачи и незнание матчасти. А это никакими примочками не лечится, только изучением матчасти и уяснением задачи. А если ручки прямые то из всей этой STL реально нужен динамический массив void*.Его конечно можно обтемплэйтить до типизированного, но в большинстве случаев это только создает неудобства. Особенно если пользуется концепция умного таск-ориентированного контейнера. А ну да, его же в STL нет. Кому тогда вообще эта STL нужна? Добавлено через 1 час 9 минут Ага. Как то отключение питания чаще встречается чем у меня память течет. Проверяли. По 5 лет крутились проги без перезапуска. Просто динамическое распределение надо использовать там где надо. а для временных данных (живущих внутри функции) лучше вообще не использовать, а декомпозицию правильно производить. Тогда и течь ему неоткуда ни при каких раскладах. И пользовать по возможности автоматы состояний, там локальноживущие динамические распределяемые буфера лепить вообще некуда. И инкапсуляцию нарушать тоже не надо. Тогда проблем с необновившимися указателями тоже не будет, им тогда браться неоткуда.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
11.10.2015, 13:04 | 103 |
Нет. Причем тут сроки?
Обычно, но далеко не всегда так. И по объявлениям сущностей не всегда можно понять, что и кто удалять должен. Так может тебе подучить виды смартпойнтеров и как они используются? А то кажется, что ты не в курсе. Бывает. Это называется удобство, прагматичность и надежность. Ну и о чем это говорит? Что критически важных утечек нету. Это не говорит о том, что код хорошо написан, что вообще никаких утечек нет (включая утечки при сбоях), что в прогах активно используется динамическая память. Расклады в определенных задачах всегда будут. То, что ты не сталкивался с такими, - не значит, что их не существует. А чего тут гадать? Если нет 100% уверенности, что будет какой-то один принцип, то надо реализовывать все 3 варианта. Или реализовать один, оставив маневр для легкого добавления остальных при нужде.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 18:24 | 104 |
Интерфес с вышестоящим кодом получается повернутым на 180 градусов в случае отдания этого вышестоящему коду по сравнению с автоматикой. А настраиваемое получается должно сочитать оба этих повернутых варианта. Т.е . интерфейс от того что вышестоящий код создает реквест и ни о чем не парится что там внутри в случае автоматики. В случае управления вышестоящим кодом, он создает сессию и использует ее как фабрику реквестов. При этом понятие сессии в WinAPi (Сессия - хранилище коннекций, при этом переключение синхронный или асинхронный вызов функций на уровне всей сессии) кардинально не совпадает с понятием в плане того что сессия - это группа запросов к одному хосту, имееющая общий менеджер кук.
Добавлено через 20 минут Каких сбоях? Там исходится из того что софтверные сбои недопустимы. Используется самодельный AnsiString и TStringList, интенсивность использования которых такая, что винт перегревался при записи из оных. В критичных местах правда кольцевые буфера, но там в обработчиках прерываний распределение или пераспределение памяти лучше вообще не пользовать, по соображениям скорости выполнения. При том что отдел оборудования может такую проблему и год устранять. А без устранения система (аппаратно-программный комплекс в целом) имеет недостаточную надежность для продакшина. При этом рубить функции логирования системы - должностное преступление. Или умею проектировать иерархию так, что эти расклады не всплывают. Добавлено через 53 минуты Список сущностей подлежащий удалению этой сущностью, если никто другой не удалил, помогает в таком случае. Естесвенно при наличии оповещения контейнера из деструктора. Добавлено через 4 минуты Ну да. Только подход в плане не выделять под каждый пук промежуточный буффер, а выделить его и повторно использовать при повторяющихся пуках, если не хватает - ресайзить, а удалять по завершении жизненного цикла пукогенератора сильно помогает вообще не допускать утечек. Добавлено через 2 часа 53 минуты Ты про статические обертки выделяющие динамическую память и мрущие в конце скопа? Так это вообще бред для особо криворуких, за одним исключением - AnsiString. И исключение потому что весь набор операций с содержимым определен и инкапсулирован в методах и операторах класса. А так толку от этого ноль. Просто объект надо рассматривать как автомат состояний, а методы - команды перехода из состояние в состояние. Тогда в скопе метода не то что динамических буферов, переменных почти не надо использовать. В основном у меня в скопе методов живут управляющие циклами переменные и возвращаемые значения. А вообще списки void * гораздо удобнее и безопаснее. Потому как они используются аки кирпичики в умных таск-ориентированных контейнерах, которые обычно хранят не один, набор а разных по сути списков одних и тех же объектов, и перекидывают их со списка в список при необходимости, следя за этим чтобы соблюдались необходимые синхронизации при таких манипуляциях, к которым доступ извне закрывается (т.е. Добавление/удаление из одного списка либо вызвано каким либо изменением объекта, и так или иначе синхронизированно с изменением его нахождения в других списках). И от обшаблоненных списков и смартпоинтеров в таком случае профита 0, но зато есть огромный профит от правильно сделанных __property, а не того мелкомягкого бреда который пошел в стандарт. Добавлено через 26 минут Кстати самый шикарный способ поиметь указатель не туда куда надо - итератор.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 18:40 | 106 |
Та может поймет что учится надо в первую очередь мыслить задачей, а не штудировать стандарты. А по ходу изложения видения задачи в коде и использование языка очень подтянется. Сам же синтаксис С++ исключительно простой и удобный.
0
|
Модератор
|
|
11.10.2015, 18:46 | 107 |
Fulcrum_013, такая тема была классная! Парняга весь такой в сомнениях просил состоявшихся программистов рассказать, что нужно знать, с каким минимальным багажом знаний идти на собеседование, чтобы реально работу получить (кстати, у ТС это, в итоге, получилось). В теме предполагались короткие дельные советы + история личного успеха в два-три абзаца. Типа вдохновляющий пост для новичков. А вы двое, уж простите за прямоту, как торговки на базаре не поделившие чего-то, друг с другом устроили потасовку на три страницы. Испохабили такой топик!
3
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 19:06 | 108 |
Дак я в первом своем посте в этой теме сразу сказал - в первую очередь надо уметь мыслить задачей, нет подняли хай.
0
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
11.10.2015, 20:46 | 109 |
Нормальная тема, junior'ам помимо знания языка и предметной области надо еще уметь детектить всякие нездоровые личности ( не буду показывать пальцем, лол ) и всячески обходить их стороной. Иначе, наслушавшись про крутизну borland C++ и void* , они рискуют через 20 лет закончить тем, что будут постить резюме через ютуб, как один небезыветсный нам товарищ http://www.youtube.com/watch?v=93SYc_FD9Jw
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 21:17 | 110 |
Ты знаешь фрилас штука хорошая, но частенько больше мороки чем профита. Поэтому от удаленной работы на заграничные конторы в принципе не отказываюсь. Иногда варианты нарисовываются, хотя никаких резюме никуда не постю. Требования там обычно к образованию PDA. Обычно в результате знакомства и рекрутеры и тим-лиды чуть ли не головой об стену бьются по поводу того что я категорически не согласен на переезд в штаты. Специфика такая того что предлагают, там на объекте находится надо постоянно, или хотя бы иметь под рукой стенд моделирующий объект. А разницу между кодером и програмером четко знают, и програмеры у них в огромном дефиците, в отличии от кодеров.
А на более простые задачи не возьмут, потому что прекрсано знают, что либо задача человеку интересна, либо сильно падает и скорость и качество, сколько бабок не плати.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
11.10.2015, 22:10 | 111 |
Ну да, такое бывает под настроение! Я далеко не всегда хороший, спокойный, вежливый
Кстати да. Фильтрация информации и критическое мышление важный навык.
0
|
46 / 31 / 12
Регистрация: 21.04.2015
Сообщений: 82
|
|
12.10.2015, 21:12 | 112 |
0
|
12.10.2015, 21:12 | |
12.10.2015, 21:12 | |
Помогаю со студенческими работами здесь
112
Junior C/C++ developer Junior C++ Developer Приложение уровня Junior, какое оно должно быть? Junior Ruby developer Junior IOS Developer Junior C/C++ Developer (до 1000$) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |