Обновить
6
0

Пользователь

Отправить сообщение

как пример знаю одного сеньора C#, который мне заливали что общение с моей платой должно выглядеть так - он делает коннект, отправляет мне пакет и делает дисконнект и каждый пакет так, что такое listen он знать не знает, ему надо было после каждого пакета рвать соединение, на сколько это сильный программист на ваш взгляд?
Я пытался разобраться почему ему так надо, выяснил что у него там деструкторы зовутся при всякой маршелизации, я даже не стал ворошить это осиное гнездо, закончилось что я просто написал ему dll и so, которые адекватно работают

Вы определяете "силу" программиста по его способности решать системные задачи.
Но тот пример, который Вы привели, это не проблема отсутствия академических, как Вы сказали, знаний, а проблема неверного подхода того C# синиора к решению задачи. Ему надо было бы разобраться в причинах происходящего, вспомнить/разобраться, как работают TCP сокеты, как C# управляет памятью и неуправляемыми ресурсами. А что сделал он? Остался на своем уровне абстракции и придумал неэффективное "решение", которое просто работает в его искаженной картине мира.
Сильный прикладной программист не тот, который знает больше и из-за этого не допускает ошибок, а тот, который может загуглить "c# tcp socket keeps closing" и найти информацию про IDisposable, using и правильное управление жизненным циклом соединения. Сегодня с AI это так вообще делается за мгновения.
Большинство прикладных разработчиков не используют те же алгоритмы в сыром виде. Значит ли это, что они не нужны? Они должны понимать сложность алгоритмов не для того, чтобы применять ежедневно, а чтобы не написать случайно в коде цикл в цикле там, где это приведет к коллапсу системы при 1000 пользователях.
Поверьте, заказчику, если это не продуктовая компания, глубоко фиолетово, знаете вы упомянутые вами BWT-преобразование или нет, пишете код сами, или его вам приносит на блюдечке брат, сват, сосед или AI. Вы программируете, чтобы решить задачу заказчика, а не экзаменатора.
Я знаю сотни разработчиков, которые работают в геймдеве или вебе, и понятия о бинарном поиске не имеют. И производят результат, которым клиент доволен.
Программист на Python, который создал веб-сервис с миллионной аудиторией, не обязательно сможет написать драйвер. Это разные "виды силы".

мне ещё не встречался действительно сильный программист

Определите термины. Действительно сильный программист - это?

где-то в инете читал тоже такую тему, что надо знать из таких-то языков, и вобщем повторю частично, придётся знать С(и всю зависимость, это если разобраться) по другому сразу тогда (любой другой ЯП) алгоритмы/структуры данных, но по итогу истина по середине причем зная С/С++, что-то изучить проще
может быть даже сразу изучайте раст если вам нравится, всё равно по итогу вникать придётся во всё

Здесь скорее вопрос личного интереса и мотивации. Если ты мечтаешь разобраться, как работает процессор, тебе будет интересно. А если ты сайты хочешь делать, тогда такой метод приведет лишь к выгоранию.
Алгоритмы никто не отменял. Но вот я например, надо было мне разобраться, как работает экран, пиксели физические и логические, для решения конкретной задачи, я с большим интересом изучал. А с низу вверх...

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

Даже если человек погружен в низкий уровень, на то, чтобы разобраться в библиотеках, ему понадобится время. Если перед тобой стоит задача использовать более маленькую и возможно, производительную библиотеку, пожалуйста, сегодня есть AI, который проанализирует тысячи ссылок минут за 10 и даст результат.
Более того, если в тз или спецификации нет требования о маленьком размере бинарника, это не твоя забота, как разработчика.
Итак, каков смысл в том, чтобы тратить время на изучение каждой библиотеки внутри?
Time to market важен. И компания всегда заинтересована оставить не специалиста, который знает глубже, а того, который сделает быстрее и эффективнее. Компании не позволено держать зазнайку, который знает больше, а делает дольше.
Таким образом, постепенно специалисты делятся на тех, которые научились применять AI и на тех, которые не приспособились.
То же, что и с плюсами. Сайты на ассемблере делать можно. И делали. Пойди на рынок, заработай на этом...

То что программирование эволюционирует и развивается не говорит о том что программисты должны останавливаться в развитии и стагнировать

Развитие не лишь движение во внутренности. Это и движение (изучение новых фреймворков, архитектурных подходов, предметных областей) и "вверх" (от кода к архитектуре системы, к управлению проектом). Если Вы работаете/работали в компании, то быть может знаете, что в IT так бывает, когда в архитектора переходят из аналитики, иногда из QA.

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

Есть градации, такие как джун/мидл/синиор. Синиоры могут погружаться в платформу, но это не значит, что они даже знают информатику на высоком уровне.

Вы можете привести практические примеры, пожалуйста?

Ребенку пять лет понадобится не для изучения языка, а для развития. Или же Вы полагаете, что ребенок рождается с развитой нервной системой?
Есть дети, которые вполне сносно говорят в 2-3 года.
А по поводу труда, согласен. Когда Вы изучаете языки по классическим методикам, их надо долбить, долбить, и еще раз долбить. В моем случае, на новый язык я трачу от силы полчаса/час, и за несколько месяцев - B1. Правда эти полчаса/час должны быть ежедневными.

Салом!
Я уверен, что такое бывает. Например, мне не нравится китайский. Вот абсолютно. Но при этом, мне нравится японский. А потому я уверен, что у кого-то к английскому может быть отношение, как у меня к китайскому.
Здесь наверное можно мотивировать себя перспективами. А если их нет, так и смысл...
P.S.
До сих пор помню, когда узнал слово "дур" на персидском. Вот же я ухохатывался...

Так карточки нужно делать самому:
https://apps.ankiweb.net/

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

Так я же не говорю, что они сложные. Я говорю, что в Python их нет, а соответственно, код проще, время разработки сокращается))

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

Эээх, хотел бы я знать, насколько в тех банках сложная логика...

А про использование, ну знакомый Sinior Java говорит, что новое пилят на C#. Хотя до сих пор есть те, что искренни верят, что .NET это о Windows))

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность