Оценка уровня программиста?

Добрый день,

Каким образом можно оценить свой уровень знаний в программировании?

Я достаточно молодой специалист (21 год, 6 курс, чуть меньше года работаю), работаю в довольно большом банке в отделе экваринга (банкоматы, POS-терминалы), но по сути я занимаюсь разработкой внутреннего ПО, для нашего отдела и отчасти процессинга. Пишу в основном на Perl и Java. Как хобби изучаю дома Python и опять же Java. По характеру работы мне приходится иметь дело со всевозможным многообразием языком (человек-комбайн), начиная от C/C++ и заканчивая VB в Экселе, JS, HTML, CSS. Плюс слежение за сервером, обновления, прокладка сетей. В общем куча разноплановой работы и дизайн, и верстка, и программирование.


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

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


В общем, подскажите пожалуйста какие-нибудь ресурсы для объективной оценки своих знаний и навыков, или вообще какие-нибудь методы. Хочется позднее уйти в IT компанию, но не могу даже представить по какому из направлений и на кого могу претендовать Junior|Middle.
  • Вопрос задан
  • 40762 просмотра
Решения вопроса 2
@korvindest
Оценка стоимости и знаний сотрудника у каждой компании своя. Где то больше будут ценить понимание вами паттернов проектирования и знания той предметной области где вы будете работать. Где то самым важным будет ваше стремление развиваться и доводить до конца.
Некоторым компаниям гораздо важнее, что бы вы понимали особенности и подводные камни языка на котором вам придется писать. А есть компании в которые вы никогда не попадете если не работали с системами контроля версии и баг треккингом, будь вы даже трижды гений!

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

Лично мой совет будет таким: походите на собеседования, даже не ради того что бы сменить работу, а просто что бы пообщаться с умными людьми и понять основные запросы рынка. Я думаю после этого вы сами составите адекватную оценку себе.
Ответ написан
Weageoo
@Weageoo
Нужно просто попросить прособеседовать себя к.-л. опытного программиста, а он вас скажет ваш относительный (относительно его опыта) уровень и вашу ценность для ентерпрайза/науки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 11
TheHorse
@TheHorse
Навыки программирования очень сложно оценить. Знание языка, вообще, почти не коррелируют с уровнем программиста. Знание паттернов — тоже. Частота использования гугла — тоже. Я, например, будучи программистом 10 лет, все еще по каждой мелочи пользуюсь гуглом, и так будет всегда.

Хорошего программиста определяет умение качественно решать, различного рода, задачи. Чем лучше программист, тем шире список решаемых им задач, и тем лучше качество решений, но и это все не объективно.

Единственное, что могу посоветовать — поискать ответы на вопросы такого рода.
Ответ написан
sainnr
@sainnr
Позвольте и мне высказать свою точку зрения. Как правильно отметили выше, объективно оценить знания программиста по числовой шкале (хоть по 100..0-бальной), пожалуй, невозможно. Да и наверное не нужно, так как в каждой компании требуют различные знания (кто еще кроме компаний будет вас оценивать?).

Тем не менее, можно выделить несколько категорий знаний, по которым можно составить более-менее объективную картину программиста. Например, сюда можно отнести:
— владение различными ЯП;
— опыт работы с каждым из них;
— работа в команде;
— участие в OpenSource-проектах;
— наличие собственных разработок;
— знание паттернов;
— знание алгоритмов, структур данных;
— знание методологий разработки;
— знакомство с системами контроля версий, тестирования;
— и т.д.

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

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

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

В непрофильных же — работа программиста чаще всего необходима для поддержания внутренней информационной инфраструктуры, от ИТ-специалистов требуется лишь, чтобы они просто выполняли свою работу («работает — ну и хорошо, следи, чтобы не сломалось»).

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

По поводу собеседований. Ходить на них — весело, если выбрать верный настрой. Представьте себе, что вы вообще не хотите попасть в эту компанию, а пришли лишь показать все, что вы умеете, «какой вы из себя хороший специалист». Конечно, не стоит выпячивать свое ЧСВ при собеседовании — ведите себя естественно; в тоже время, убиваться в случае неудачи не стоит — вы же совсем и не хотели к ним идти работать.

А чтобы было о чем рассказать, в свободное время (оно же у вас есть?) разрабатывайте «для себя» разные программки. Ну например, напишите какой-нибудь парсер, поработайте с API различных систем (того же Яндекса), сделайте собственный таск-менеджер, придумайте сами интересную вам небольшую идею и доведите ее до конца. В каждой такой задаче можно найти много тонких моментов — оптимизация скорости алгоритма, структуры БД, применение паттернов, взаимодействие компонент, написанных на разных ЯП и т.д.

Многовато текста получилось…
Ответ написан
KriegeR
@KriegeR
Software Engineer
@r1c0
Ответ написан
Комментировать
taliban
@taliban
php программист
«Сам я свои знания оцениваю как низкие, т.к. часто пользуюсь гуглом, большинство решений беру оттуда и внедряю к себе(стараясь правда понять как оно работает)»
Вот это вот плохой показатель =) Я свои знания оцениваю как выше среднего, но тоже часто пользуюсь гуглом, а знаете почему? До меня такую работу уже делали, вдруг кто-то сделал ее лучше меня, почему бы этим не воспользоваться?
Если хотите уходить, и не можете выбрать куда, идите на вакансию постарше, если не пройдете на мидла но у них будет вакансия на джуниора, они Вам ее предложат.
Ответ написан
Adam_Ether
@Adam_Ether
Java Developer
Попробуйте сходить на собеседование например в Yandex/Google/Intel (нужное подчеркнуть, в городе на буковку М.), возможно, объективно оценят, если примут и согласятся на «цифры», значит Вы нужный им специалист. А если Вы будете нужны такой вставить имя компании сюда, значит вы программист высокого уровня.
Кстати говоря, компаниям выше нужны сильно заточенные под язык и предметную область люди.
Ответ написан
Комментировать
Есть некое количество компаний, которые занимаются независимым тестированием и сертификацией, где можно оценить различные скиллы, в том числе программерские, или пригодность для той или иной роли (роль это некий набор требуемых скиллов). Раньше популярным был brainbench.com — там устраивали бесплатные тестирования в качестве промоушена и даже высылали сертификаты. В России получение брейнбенчевских сертификатов было национальным видом спорта. Сейчас, похоже, все только за деньги, но можете попробовать поискать какие-то стартапы, они для раскрутки тоже могут проводить бесплатное тестирование.
Ответ написан
Комментировать
jolasveinninn
@jolasveinninn
Посмотрите разработанные АПКИТ профессиональные стандарты в области ИТ для программистов, там описано какими навыками и знаниями должен обладать специалист того или иного уровня.
Ответ написан
7workers
@7workers
Попробуйте наоброт — сначала решить, сколько хотите зарабатывать, и потом «померяйтесь» с кем-нибудь с такой зарплатой.
Ответ написан
@Happi
Был заказ от фирмы оценить программистов разработали тест.
Пока каждый желающий может пройти бесплатно.
aiti112.blogspot.ru
анкета внизу блога
Ответ написан
Комментировать
Ula_T
@Ula_T
Software Engineer at Paygety
Вот хорошая матрица компетентности https://docs.google.com/spreadsheets/d/e/2PACX-1vS...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы