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 и т.д.) - паника

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

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

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


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

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

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

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

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

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

раскрыть ветку (9)
20
Автор поста оценил этот комментарий
От человека зависит.
Я встречал коллег, которые, занимаясь разработкой корпоративного портала, на просьбу запилить простейший rest веб-сервис говорили, что не будут этого делать, т.к. не умеют (можете ходить к нам в базу или забирать данные из файла). Т.е. у них не было даже опции "нам надо время чтобы научиться" не было. Тупо не умеем, потому не будем ни делать, ни изучать.
Но да, это единичный случай за 20+ лет.
раскрыть ветку (7)
13
Автор поста оценил этот комментарий

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

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

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

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

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

Я в таком случае иду к руководителю этого программиста и предлагаю ему самому написать этот сервис, если же и руководитель предлагает сходить напрямую в базу - то уже иду к своему руководителю и говорю что с этим говном мы интегрироваться не будем. Шеф у меня понимающий и обычно внезапно появляется человек который все-таки умеет в rest. Ну или кто то из нашей команды влезает грязными сапогами и делает работу за них. Правда после этого авторитет той команды падает очень сильно.

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

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

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

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

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

Так ребят никто не просил вагоны разгружать или на другой ЯП пересаживаться. Нужна простейший сервис, который на вход получает один айдишник, по нему находит у себя в базе и отдаёт обратно другой айдишник. Всё. Делай как хочешь, на чём хочешь и практически сколько хочешь.

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

Ну, ситуации разные) Иногда "не умею" не значит "не умею", а просто "не хочу"

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

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

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

Я почти в такой же ситуации сейчас, как и вы были. Тоже Java бэк. Тоже потихоньку закрываю пробелы в computer science, преимущественно через книги. Вот в данный момент, читал книгу "Операционные системы. Три простых элемента" и в перерыве наткнулся на ваш пост. Можете рассказать, как именно вы подходите к обучению?

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

Эхх.. а вот раньше люди с математическим образованием писали на ассемблере игру с графикой и многими локациями на 48 килобайт ;-)

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

В целом, кто угодно сейчас может написать на ассемблере игру с графикой и многими локациями на 48 килобайт.


Разница только во времени. На сраном Юнити аналог займет пару месяцев, на асме с требуемыми ограничениями - пару лет, как и раньше.


И, как и раньше будет работать только в 8 битах, в разрешении 400p, и на windows 95.

раскрыть ветку (7)
0
Автор поста оценил этот комментарий
А на unity эта хрень будет весить в пару гигов, и с торможением на всех железках, где её запустят.
раскрыть ветку (6)
1
Автор поста оценил этот комментарий

Да и похуй на размер. Какая разница потребителю, 30мб, 300мб или 2гб?

раскрыть ветку (5)
0
Автор поста оценил этот комментарий
Вот оригинальный пост об этом.
нихера в оптимизации не могут и не хотят. Хотя функционал, в общем линейный.
раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Да кому это нужно-то?


Вот я серверное ПО пишу, например. У меня код мегабайт 200, и вендоров мегабайт 600. И 12 терабайт база, что нивелирует размер кодовой базы полностью


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


Скорость внедрения фичи - вот самый главный показатель.


Потому что проект без развития сейчас - мертвый проект, который денег не приносит.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Согласен. Но оригинальный пост, больше о потребительском/игровом ПО, т.е. ПО для пользователей и игры. Вот там с оптимизацией вообще проблемы.
Сам работаю в команде инноваций и прекрасно понимаю, что скорость и стабильность внедрения играет большую роль.
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

больше о потребительском/игровом ПО

Да и там размер исполняемого файла никакого принципиального значения не имеет.


Оптимизация скорости работы, да, имеет. Расширяемость и стабильность - да. Размер исполняемого файла - да похуй вообще.


2 тыщи картинок в высоком качестве значительно важнее 300мб занятого диска.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Добрый день) подскажи, какие курсы по cs?)
Автор поста оценил этот комментарий

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


Дело тимлида - грамотно настроить кривую сложности обучения любым вещам.

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

Как вот научится настраивать себе кривую сложности

раскрыть ветку (2)
11
Автор поста оценил этот комментарий
Себе? Очень сложно.

По факту способ один - тупо браться за все и забивая на провалы, продолжать изучать все подряд.

В какой-то момент начнет получаться понимать заранее насколько сложно то или иное.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Понятно

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

ну не знаю. Что простого в распределенных системах, многопоточности, сложном UI, системах хранения (SQL, NoSQL, Object storage), облака с их IaC и кучей приколов.

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

А что сложного в операторе SELECT?


Разделяешь задачу на маленькие задачки, и мало-помалу их изучаешь. Подходит для изучения вообще чего угодно сложного.

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

Сложность в том как и в какие операции с хранилищем этот select превращается. Ничего сложного, но изучать нужно долго.

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

Ничего сложного, но изучать нужно долго.

Ну так я про это и говорю

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

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну конечно. Именно поэтому зарплаты айтишников такие высокие - людей со знаниями сильно меньше, чем мест где они нужны.
1
Автор поста оценил этот комментарий

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

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

А когда всё раскопал понимаешь что за использование многопоточности надо бить по голове. И за "нестандартные структуры" тоже.

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

Поняли и с умным видом написали такую хрень что без слёз смотреть на это не возможно

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Лучше так набить шишаки, а потом рефачить и хватануть экспириенса, чем всё делать через синглы и микросервисы
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества