5171

Ответ на пост «"Программисты не умеют программировать"»19

А я соглашусь, хоть и сам программист.

Я типичный крудошлеп, без бэкграунда в computer science. Кое-как выучил Java Core, кое-как посмотрел Spring, что-то там по реляционкам - и устроился на работу джуном аж за 35к в Хабаровске в местный бодишоп. Там, понятное дело, уже подтянулся к остальным, через три месяца круды пилил не хуже местных "мидлов". Через семь месяцев Сбербанк схантил за 100к с переездом в Москву, я и согласился - что я, дурак что ли?

Там зарплата довольно быстро выросла до 135к, и в принципе на этом этапе я считал, что схватил госпожу удачу за хвост - я весь такой умный, зарабатываю x2 по Москве и x5 по России. Правда, когда я попробовал пройти собес в другую компанию (по-моему, Luxoft), моя радость быстро омрачилась - меня спросили что-то примитивное, в духе "а как устроена HashMap в Java", а я вообще ни сном, ни духом. Какие хэш-функции, нафиг они нужны? Какие коллизиии? Какая потокобезопасность? Ребята, есть класс HashMap, как его использовать, я знаю, что вам еще надо то?

Впрочем, печалился я недолго - просто выучил ответы на типовые вопросы Java / Spring собеседований, благо, таких материалов в интернете море. Да, на одном собесе не смог реверснуть связанный список и пролетел, зато на другом были довольно типовые вопросы, и я без особых проблем перешел уже на 250к в другой бодишоп.

Был ли я хорошим крудошлепом? О да, я мог быстро написать хороший, покрытый тестами круд на Java. Был ли я хорошим программистом? О нет.

  1. Многопоток - паника

  2. Другой ЯП - паника

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

  4. Внутрянка Java (как устроена JMM, как работает GC и т.д.) - паника

  5. Просьба задизайнить приложение сводилась к разбиению на микросервисы. Любые попытки вывести на темы доступности / производительности / консистентности данных - паника.

  6. Любые попытки выйти за пределы базовых понятий реляционок - паника.

И вот уже второй год я пытаюсь закрыть эти пробелы и дать самому себе нормальное образование в computer science.Алгоритмы, concurrency, базы данных, распределенные системы и вычисления, внезапно - базовая математика (дискретка, комбинаторика, теорвер), битовые манипуляции. Пригодилось ли мне это на работе? Нет, я все так же пилю круды в массе своей (сейчас меньше, т.к. работа связана больше с менеджментом). Разве что знания системного дизайна здорово выручает при создании архитектуры приложений. Но.

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

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

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

Вы смотрите срез комментариев. Показать все
6
Автор поста оценил этот комментарий

зачем учить алгоритмы и все остальное, чтобы что? Чтобы считать себя настоящим программистов? Кто вам навязал мнение, что вы ненастоящий программист и привил синдром самозванца? Вам бы к психологу сходить и свои тревоги с ним проговорить, а Вы тут хвастаетесь, что делаете что-то, чтобы соответствовать чему-то мифическому. Такое ощущение, вы боитесь что будут тыкать в вас пальцем и говорить: "он ненастоящий программист!". Наслаждайтесь лучше жизнью, а к собеседования можно подготовиться просто по факту погуглив интернет, так как все равно тренды меняются и знание CS не связано со скиллом прохождения интервью, а литкод можно 1-2 месяца порешать в свободное время перед собесами и все, medium встречал очень редко, для easy есть подборки, все задачи типовые

раскрыть ветку (21)
5
DELETED
Автор поста оценил этот комментарий

Я хочу в бигтех, там medium / hard, ну и вопросов из CS хватает. Понятно, что по условной concurrency напрямую спрашивать не будут, но могут поднять тему на сисдизе. А вообще я лично реально почувствовал, что мне стало проще кодить и понимать вещи, которые лично для меня раньше были сложными. Я «кабанчика» читал как художественную книжку, а еще пару лет назад она бы меня на этапе B-деревьев в нокаут отправила.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Не знаю как там сейчас в Москве, но в FAANG даже medium редко спрашивают. В основном easy, но в сжатые временные рамки. Сыграет роль как ты походу дела рассуждаешь и объясняешь свои решения.

Ну и к коменту ниже - с индусами придется конкурировать уже лично :)

Да и технические задачи не так сильно то и отличаются. Просто появляется больше других не технических забот.

Автор поста оценил этот комментарий

а как обучение CS в целом помогает прохождению интервью, если на интервью в битехи спрашивают конкретные вопросы: leetcode, system design и софт скиллы. Зачем распыляться и тратить время нецелевым образом? Если Вы хотели развиваться просто для себя, то зачем эти пассажи про "ненастоящий программист"? Предположу, что вас отчитали как мальчишку на интервью за эти пробелы, отсюда и этот страх, что щас выгонят с текущей и никуда не возьмут :) Вам бы самоанализом заняться, а не подрываться на внешние раздражители, мотивация из негатива - это сильная мотивация, но жизнь у вас одна и вы рискуете ее прожить несчастливо

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

истину глаголите. Тоже этот пассаж про "настоящего программиста" вызывает оскомину

7
Автор поста оценил этот комментарий

зачем учить алгоритмы и все остальное, чтобы что?

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

Кто вам навязал мнение, что вы ненастоящий программист

Синдром самозванца приходит сам, когда приходится сталкиваться с вещами/задачами за пределами известных знаний, и вот тогда возникает вопрос "это от меня требуют запредельное или может я не обладаю нужными знаниями, а должен?"

раскрыть ветку (16)
4
DELETED
Автор поста оценил этот комментарий

Какая же жиза. Или когда читаешь, как кто-то спокойно вкатывается в новый ЯП за пару недель и такой «да там все одинаковое»)

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

На тебе нюансы )

На тебе специфику )

На тебе либы )

На тебе фрейворки ))

...2 недели ага

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Дак либы всё те же, фреймворки такие же, нюансы аналогичны таковым в языке X. Две недели - пообвыкнуться с синтаксисом и кое-какими деталями. Ну, может месяц.

1
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий

1. Для проектирования программы как ни странно нужно проектировать программы. Практика алгоритмов это как гантели. Полезно? Да. Будет ли это более лучшим инструментом для тренировки бега, чем сам бег? Нет.


2. Я не знаю groove и не могу сразу и эффективно писать на нем код. Делает ли это меня как специалиста хуже? Да не особо, с учётом что это вообще не мое направление и работаю я в нём от безысходности.

В посте описано стремление к абстрактному идеальному программисту. Но вот как по мне, нужны не эти идеальные, которые в уме перебирают сферические массивы в вакууме, а люди которые понимают как круды писать быстро и эффективно.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Я не знаю groove

это вообще не мое направление и работаю я в нём от безысходности.

Делает ли это меня как специалиста хуже?

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

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

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


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

раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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


вот для меня это было груви. Для тысяч других программистов - это алгоритмические задачки выше легкого уровня литкода. Для третитьих это системный дизайн. Какой смысл вообще терзать мобильщиков или фронтендеров на тему применять cassandra или Amazon DynamoDB?(ну или что сейчас там из аналогов хорошего? Куда лучше вставить кафку и почему она такая быстрая?

1
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
1
DELETED
Автор поста оценил этот комментарий

Я просто хотел (и хочу) в бигтех, и по пути втянулся и понял, что все это не такая уж бесполезная хрень и есть другое IT, кроме крудов и конкуренции с индусами на аутсорсе.

0
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

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

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий

Слушать можно и 50 лет, в одно ухо влетает, в другое вылетает.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку