LINUX.ORG.RU

Что отличает юниора от более продвинутого

 ,


3

7

Начнем с такого вопроса: существует ли вообще такое понятие как «разработчик на C++ среднего уровня». Все знают, что есть junior и senior, но o промежуточном варианте я как-то не слышал.

Но, допустим, мы рассмотрим некий средний уровень. Что по-вашему должен уже знать/уметь миддл, чего может еще не знать юниор? Интересует только то, что непосредственно связано с языком, знания общего плана - это отдельная тема.

★★★★

существует ли вообще такое понятие как «разработчик на C++ среднего уровня».

Это типичный среднестатистический зубрилко, обладающий знаниями как более-менее совладать с граблями, которые разбросаны по всему цепепе-полю :-) Стать же мастером цепепе - это значит потратить много-много лет на выучивание сложных правил и тонких нюансов, без знания которых писать на цепепе опасно :-) Дело в том, что цепепе ошибок не прощает, шаг вправо, шаг влево - и вот он SIGSEGV :-)

Что по-вашему должен уже знать/уметь миддл, чего может еще не знать юниор?

Стандарт от 2003 года :-) На это уйдёт лет 5, как минимум :-) Ну а после всяких обновлений стандарта, выросшего в размере больше чем 1500 страниц, чтобы вызубрить такое количество материала нужно лет эдак 10-15 :-) Лол :-)

anonymous ()
Ответ на: комментарий от seiken

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

Ну и мидл довольно-таки ходовой термин, вон в гугле куча статей на эту тему.

Kronick ()
Ответ на: комментарий от anonymous

Дело в том, что цепепе ошибок не прощает, шаг вправо, шаг влево - и вот он SIGSEGV :-)

SIGSEGV'ы, на сколько я понимаю, происходят по причине лютых косяков, и чаще встречаются в коде на C. В C++ конечно тоже можно напортачить с итераторами, но язык и стандартная библиотека минимизирует количество мест, в которых необходимы танцы с указателями.

seiken ★★★★ ()
Ответ на: комментарий от seiken

SIGSEGV'ы, на сколько я понимаю, происходят по причине лютых косяков, и чаще встречаются в коде на C

лол

В C++ конечно тоже можно напортачить с итераторами, но язык и стандартная библиотека минимизирует количество мест, в которых необходимы танцы с указателями.

Дважды лол

UVV ★★★★★ ()
Ответ на: комментарий от seiken

SIGSEGV'ы, на сколько я понимаю, происходят по причине лютых косяков, и чаще встречаются в коде на C. В C++ конечно тоже можно напортачить с итераторами, но язык и стандартная библиотека минимизирует количество мест, в которых необходимы танцы с указателями.

Как юниор, в самом деле :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

Стандарт от 2003 года :-) На это уйдёт лет 5, как минимум :-) Ну а после всяких обновлений стандарта, выросшего в размере больше чем 1500 страниц, чтобы вызубрить такое количество материала нужно лет эдак 10-15 :-) Лол :-)

капец ты тупой)

anonymous ()
Ответ на: комментарий от Kronick

Как по мне, джун - это тот, кто знает теорию

Некоторую часть теории. Вряд ли новички сначала штудируют стандарт и все книги от «C++ for dummies» до «Template Metaprogramming» и только потом набираются практического опыта на основе прочитанного. Скорее это итеративный процесс.

seiken ★★★★ ()
Ответ на: комментарий от AlarinPerfect

На самом деле можно обобщить.

Нельзя обобщить :-) Тот же C выучивается в сто крат проще :-) Тот же Python можно освоить на твёрдую «четвёрку» примерно за год :-) Так же и JavaScript можно осилить на «хорошо» за год-два :-) И только цепепе требует долгих-долгих лет днями и ночами :-) Особенно если строить из себя Ъ-программиста-настоящего-эксперта и писать без IDE в каком-нибудь Vim, типа чтобы не привыкать к удобствам, как настоящий герой-программист :-)

anonymous ()

Кароч, за джуном надо следить постоянно, толку почти ноль. Миддл сам норм работает, код поревьюить иногда и всё. Сеньёру задачу общего плана ставишь, он там сам всем всё раскидает.

fluorite ★★★★★ ()
Ответ на: комментарий от seiken

Почему «как»? я он и есть.

Потому что юниор слушает, что ему говорят :-) У юниора не достаточно опыта по определению, чтобы рассуждать в той области, где он юниор :-) Ты же рассуждаешь сейчас о безопасности цепепе и его стандартной библиотеке, что SIGSEGV уже почти что в прошлом, а программировать на цепепе уже можно и без указателей, будто ты эксперт :-) Может быть ты тролль, а не юниор? :-)

anonymous ()
Ответ на: комментарий от anonymous

Тот же C выучивается в сто крат проще

Это при том, что цпп взял из С большую часть грабель. Из нового том только ООП-грабли со вкусом стандартной библиотеки. Или для тебя стать мастером == выучить наизусть последний стандарт вместе со всей стандартной библиотекой? Тогда мастером Python будет стать сложно, да.

AlarinPerfect ()

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

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

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

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

На плюсы из всего этого приходится способность пользоваться темплейтами, неймспейсами, ADL, сахаром языка в разработке удобных generic компонент для проекта.

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

anonymous ()

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

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

//капча airway footpath

anonymous ()
Ответ на: комментарий от AlarinPerfect

Это при том, что цпп взял из С большую часть грабель.

Давай сравним две классические книги по C и C++ :-) K&R занимает примерно 300 страниц :-) C++PL 4-е издание занимает примерно 1300 страниц :-)

Из нового том только ООП-грабли со вкусом стандартной библиотеки.

Исключения с шаблончиками ты забыл :-) Это бывает, когда дальше чем class Person ... программирование на цепепе не заходит :-)

Или для тебя стать мастером == выучить наизусть последний стандарт вместе со всей стандартной библиотекой?

Стать мастером - это значит уметь пользоваться инструментом таким образом, чтобы решать поставленные задачи сразу, без использования внешних источников информации :-) А когда по-мимо IDE открыты 10 книг и какой-нибудь стандарт на 1500 страниц, куда постоянно надо нырять, то какое-тут мастерство, о чём это ты? :-) Когда надо из памяти написать что-нибудь из std::chrono, а оно никак не вспоминается, потому что последний раз писалось аж 2 недели назад, то мастером по такому инструменту стать как-то уж сложно :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

Может быть ты тролль, а не юниор? :-)

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

seiken ★★★★ ()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от seiken

Вы пытаетесь общаться с известным на ЛОР-е троллем-смайлодауном, единственным развлечением которого является попытка максимально насрать в C++ные темы потоками бреда с большим количеством смайликов в тексте. Сам он толком программировать не умеет, что уже неоднократно выяснялось здесь, когда этого персонажа удавалось раскрутить на написание хоть какого-то кода.

Небольшая иллюстрация: «Стать мастером - это значит уметь пользоваться инструментом таким образом, чтобы решать поставленные задачи сразу, без использования внешних источников информации»

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

eao197 ★★★★ ()
Ответ на: комментарий от seiken

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

Хахаха :-) Ну вот тебе умный указатель и привет SIGSEGV :-)

#include <memory>

int main(int argc, char** argv)
{
  std::unique_ptr<int> i;
  (*i)++;
  return 0;
}
anonymous ()
Ответ на: комментарий от eao197

Небольшая иллюстрация: «Стать мастером - это значит уметь пользоваться инструментом таким образом, чтобы решать поставленные задачи сразу, без использования внешних источников информации»

Извини, но то, что ты пытаешься тут проиллюстрировать не ясно :-)

anonymous ()

Можно отследить по уровню использования «фич» C++

Джуниор/студент - пишет на Си с классами, дрочит на stl, boost, C++NN итд

Мидл - пишет на stl, boost, C++NN, итд

Синьор - пишет на Си с классами

lovesan ()
Ответ на: комментарий от seiken

В C++ конечно тоже можно напортачить с итераторами, но язык и стандартная библиотека минимизирует количество мест, в которых необходимы танцы с указателями.

0 итераторов, никаких warning-ов, один сегфолт (строго говоря, UB):

#include <deque>

int main()
{
  std::deque<int> d;
  return d.front(); // SIGSEGV
}

kawaii_neko ★★ ()
Ответ на: комментарий от AlarinPerfect

Это при том, что цпп взял из С большую часть грабель. Из нового том только ООП-грабли со вкусом стандартной библиотеки. Или для тебя стать мастером == выучить наизусть последний стандарт вместе со всей стандартной библиотекой? Тогда мастером Python будет стать сложно, да.

Если могильщику показать станок с ЧПУ, то у него будет ровно такая же реакция - т.е. начнёт сравнивать полезность лопаты и станка с ЧПУ для рытья могильных ям.

anonymous ()

Что по-вашему должен уже знать/уметь миддл, чего может еще не знать юниор?

Главное различие: опыт, мать его, разработки! Человек без опыта (junior) жидко обгаживается на каждом шагу, человек с опытом уже прошелся по большому количеству граблей и лажает по большей части в нетривиальных ситуациях (хотя у всех порой осечки «на ровном месте» случаются).

kawaii_neko ★★ ()
Ответ на: комментарий от anonymous

и писать без IDE в каком-нибудь Vim, типа чтобы не привыкать к удобствам, как настоящий герой-программист :-)

как настоящий герой-программист

Скорее как дебил-программист.

IDE упрощает разработку = КПД +, исключает факторы «человечности» - ошибки, проще говоря - говноVim'ом не заменить.

BitSum ()
Ответ на: комментарий от BitSum

Скорее как дебил-программист. IDE упрощает разработку = КПД +, исключает факторы «человечности» - ошибки,

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

anonymous ()
Ответ на: комментарий от BitSum

IDE упрощает разработку = КПД +, исключает факторы «человечности» - ошибки,

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

проще говоря - говноVim'ом не заменить.

Эксперт?

andreyu ★★★★★ ()
Последнее исправление: andreyu (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

IDE упрощают работу программисту :-) Не важно, дебилом он является, или гением :-) И тот и другой способен ощутить комфорт работы от качественной IDE, цель использования которой - сократить трудозатраты :-) Организовать работу с помощью IDE можно куда проще, чем с помощью простых редакторов, хотя бы потому, что не возникает возни на ровном месте по таким холиварным вопросам, как «стиль кодирования» :-) Но, ясное дело, пионэров такие пустяки, как время разработки и трудозатраты не касаются :-) Это не к ним :-) Они заняты настройкой Vim :-)

anonymous ()
Ответ на: комментарий от RazrFalcon

Если вы считаете современный C++ безопасным - значит вы junior.

о, главный Эксперт по безопасности пришел) решили одну, не самую серьезную проблему программирования в своем расте, создали еще десять, зато типа «безопасно»))

anonymous ()
Ответ на: комментарий от UVV

В C++ конечно тоже можно напортачить с итераторами, но язык и стандартная библиотека минимизирует количество мест, в которых необходимы танцы с указателями.

Дважды лол

Ну, давай, аргументируй.
В С++ использование указателей - скорее исключение, чем практика.

Kroz ★★★★★ ()
Ответ на: комментарий от BitSum

исключает факторы «человечности» - ошибки

Ага. Функции с опечаткой в названии. Опечатка размножена по коду. А потом сплошные пятиминутки недоумения у других разработчиков: вроде всё правильно написал, а не собирается почему-то. Нормальный разработчик ведь сначала свой код будет проверять, а там всё правильно.

Привет, IDE с автодополнениями.

i-rinat ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Смотря в каком C++.

В современном. Ну или хотя бы в C++03.

В Qt весь GUI на указателях.

Qt — это не современный C++. Qt начался тогда, когда STL еще не стал частью С++. И долгое время Qt был вынужден оглядываться на платформы, в которых STL-я нормального не было.

Подвижки Qt в сторону современного C++ начались относительно недавно, всего несколько лет как.

eao197 ★★★★ ()
Ответ на: комментарий от i-rinat

Ага. Функции с опечаткой в названии. Опечатка размножена по коду. А > потом сплошные пятиминутки недоумения у других разработчиков: вроде >всё правильно написал, а не собирается почему-то. Нормальный >разработчик ведь сначала свой код будет проверять, а там всё правильно.

Привет, IDE с автодополнениями.

Предлагаю вообще код не писать. А зачем? Мало ли баги будут.

BitSum ()
Ответ на: комментарий от anonymous

Но, ясное дело, пионэров такие пустяки, как время разработки и трудозатраты не касаются :-) Это не к ним :-) Они заняты настройкой Vim :-)

Одного не могу понять. Чем вас не устраивают IDE? Они не пишут код за вас, а только упрощают разработку.

А некоторые IDE ещё и код рефакторят, атачатся всякие анализаторы и тп. Или вы считаете, что в состоянии написать идеальный код не по методу «тяп-ляп и в продакшн»?

Не видел ни один большой проект без ошибок.

IDE упрощают разработку и позволяют сосредоточиться на главном.

BitSum ()
Последнее исправление: BitSum (всего исправлений: 1)