5172

Ответ на пост «"Программисты не умеют программировать"»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, базы данных, распределенные системы и вычисления, внезапно - базовая математика (дискретка, комбинаторика, теорвер), битовые манипуляции. Пригодилось ли мне это на работе? Нет, я все так же пилю круды в массе своей (сейчас меньше, т.к. работа связана больше с менеджментом). Разве что знания системного дизайна здорово выручает при создании архитектуры приложений. Но.

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

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

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

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

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

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

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

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

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

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

Ну так у всех так.


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

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

Ага, только многие не начинают копать, а идут на другой проект)

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

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

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

Ага, JavaRush (не реклама), «Философия Java» Эккеля, мануалы на Baeldung. Бэкграунда не было совсем.

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

А как прокачивал дизайн приложений? А у меня тоже от этого жопа горит периодически

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

Если низкоуровневый - то ещё никак, но на Educative заприметил курс по паттернам. Высокоуровневый - книга «Высоконагруженные приложения» и сайт Designhurus.

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

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

Мне очень неловко тебя расстраивать, но таджики на стройках в мск еще в 2022 году работали за 90-150к смотря че умеют. Какие х2 по Москве? В москве еще в 2023 средняя зп была уже 140+ тыс.

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

Это был 2019 ещё, тогда средняя была в районе 70, если мне память не изменяет.

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

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

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

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

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

Изучаю джаву для себя, до Джуна мне как до Китая раком, но что такое хэш и прочее знаю на зубок. Днище ты в общем пробитое.

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

Если продолжишь читать тексты через слово, до джуна ещё не скоро дойдешь.

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

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

"Там, понятное дело, уже подтянулся к остальным, через три месяца круды пилил не хуже местных "мидлов"."
Через год опыта сейчас в поиске работы более полугода, потому что не хочу приписывать опыт до 2 лет, ибо нихрена я не могу пилить на уровне "мидлов" )
"печалился я недолго - просто выучил ответы на типовые вопросы Java / Spring собеседований, благо, таких материалов в интернете море."
У меня этих типовых вопросов на 100 мб примерно вордовских документов - и это только основное на джуна, я не могу это запомнить, если не читаю каждый день постоянно месяца напролёт.
Так что всё у тебя хорошо, ты не такой уж крудошлёп )

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

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

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

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

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

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

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

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

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

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

Ты подожди, скоро тебе начнут вопросы задавать типа как обеспечить SLA 99.9, как лоад балансинг по SNI делать, как ты автоскейлил сервисы и прочую хуйню. Все от того, что щас на девелоперов все говно сваливают.

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

А я и не против, мне интересно) На работе, конечно, есть отдельный отдел devops, но обладая базовыми занятиями, проще с ними на одном языке говорить.

22
Автор поста оценил этот комментарий
Судя по тексту ты уже молодец, понимаешь что именно ты не понимаешь, остальное решается пробами, гуглением и тестированием.
Всё получится, главное руки не опускать.
раскрыть ветку (1)
4
DELETED
Автор поста оценил этот комментарий

Время жалко, почти пять лет карьеры херней страдал, штампуя микросервисы на Spring Boot. А так мне реально нравится учиться. Даже математика в кайф, хотя в школе терпеть ее не мог.

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

че-то я запуталась. async это же про асинхронность, то есть всякие JavaRx, реактивные библиотеки вроде Mutiny и корутины Колтина? А synchronized это скорее про доступ к данным. Я понимаю, почему stateless решает проблему synchonized, там по идее не должно быть общих переменных, но не понимаю, как это связано с async/scheduler.

Или я что-то не так поняла и мне тоже пора почитать что-нибудь? :D Что за книга?

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

Все в порядке, это я просто про мои прошлые познания в многопотоке, которые сводились к «ну вроде аннотация async помогает стартовать процесс в отдельном потоке, это все»)

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

особых проблем перешел уже на 250к в другой бодишоп

Ну вот как нахуй это работает? Я, понимая в разы больше, чем вы на том этапе, в январе этого года еле нашел работу на 200. Но, правда, стек .NET, а не Java. Обидно, блеать)

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

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

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

250 - это 10-й грейд, нифига не миддл.

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

Это уже после ухода из Сберыча, там было 170 макс, без учёта годовой, конечно.

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

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

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

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

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

Да позиция собеседующего понятна. У него она своя, у меня своя.
"рассказывать про свой опыт и про свои задачи.... Мы не справочник, чтобы помнить теорию наизусть...."
Памяти тут нужно не меньше )

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

Посмотри Amazon STAR и попробуй использовать, поможет на интервью.

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

А че там concurrency? У вас JVM блин и async/await как у всех. Сейчас все на SpringBoot с blueprints и Hibernate. Есть конечно отчаянные с raw SQL, но хрен пойми зачем. Java это джунгли абстракций и так

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

Ну вот хотя бы пример из книги, которую сегодня читал - использование synchronized на всем методе - это хреново, и лучше использовать блоки. Понятное дело, что в stateless приложениях это особо не упало, но по правде, есть ощущение, что я просто так и не дорос до проектов, где понимание теории многопотока - это реально важно, и воткнуть аннотацию async / впилить шедулер недостаточно.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества