« first day (533 days earlier)      last day (2498 days later) » 

A K
8:57 AM
Решил составить список того, что нужно знать и уметь c# программисту (миддл, поэтому можно не требовать асинхронщину), получилось пока вот что:
Базовые типы языка (строки, числа, даты, перечисления)
Работа со stream'ами
Работа с файловой системой (чтение-запись)
Классы, интерфейсы и основы ООП
Паттерны (синглтон, фабрики...)
Рефлексия
Аттрибуты
Сериализация данных в XML
Работа с JSON через Json.Net
Настройка конфигов app.config, их трансформация
Работа с EventLog
Локализация строк в приложении
Логирование в приложении (на базе log4net, NLog)
Отправка почты в приложении
Запросы к веб-сайтам (HttpWebRequest)
Написание служб ОС windows
Работа с MSSQL сервер (запросы, представления, триггеры, планы запросов, основы оптимизации)
Если у кого есть идеи, чем дополнить -- черните, у меня что-то иссякли идеи
 
@AK имхо, это должен уметь и джун, кроме WCF разве что
 
A K
@FoggyFinder Список вообще субъективен (отражает во многом требования которые были на тех работах, где я работал), а разница между уровнями программистов лежит не только в наборе тем и глубине их проработки -- но ещё и опыте, набитых шишках на реальных проектах
 
@AK безусловно
 
A K
9:13 AM
Не хотел бы (сейчас) ввязываться в вопрос, в чём разница между джуном, миддлом и синьором, меня другой пока вопрос интересует. Составить список тем, потом пооценивать друг друга в отделе (так-то все примерно знают кто в чём лучше), потом потихоньку выбирать темы дальнейшего самообучения
 
@AK не быть мне c# программистом похоже :)
 
A K
@Grundy О, вот ещё "написание бекендов и понимание, как устроен современный фронтенд" ;) Тут можно накидать всего... от html-css-js-жуквери до этих ваших ангуляров, ноды и прочего
 
@AK как html-css-js связаны с c# тут?:)
 
A K
@Grundy через asp.net mvc
 
@AK asp.net - просто выплевывает что у него попросили - для этого не надо знать ни html ни css ни js
 
A K
9:28 AM
@Grundy Меня не интересует программирование ради программирования, для удовольствия или ради победы на олимпиаде школьников. Я профессиональный программист, что значит -- зарабатываю программированием деньги. А на реальном производстве никого такие тонкости мало волнуют. Умение asp.net плавно переходит в умения-знания, на которых фронтендщики специализируются.
@Grundy вы вот хихикаете, а у нас есть парнишка, который специализируется по SharePortal -- так он поди вообще половины этих вещей не слыхал, он как сел на свой шарпортал -- так ему и достаточно. И ничего, тоже считается c# программистом
 
@AK ну если он программирует с использованием c# почему бы ему не считаться c# программистом?:)
 
A K
@Grundy Таааак ,теплее.... ))) Плавно подходим к вопросу, а приходится ли вам в работе использовать c#? )))
 
@AK ясен пень :) но как к этому относится список того, что нужно знать и уметь c# программисту (? :-)
вполне очевидно. этого знать не обязательно :-) чтобы быть c# порграммистом
 
A K
@Grundy А это как раз типовые штуки, которые приходится делать c# программисту. Какие-то реже, какие-то постоянно и на автопилоте... Но не будешь же над каждой задачей зависать на неделю для изучения матчасти?
 
@AK вот вообще ни разу не типовые:)
 
A K
9:39 AM
@Grundy Да ну? Аргументируйте, я чё-т не понимаю, к чему вы клоните.
Я вообще список составляю именно для систематизации и углубления знаний, то, что я являюсь каким-то программистом и даже конкретно c# программистом какого-то уровня -- для меня несомненно
 
@AK я клоню к тому что этот список надо по другому обозвать, типа: что @AK слышал про c# например
 
A K
@Grundy да пожалуйста. "Что А К считает необходимым знать типичному c# программисту". Эта, как её... субьективность в чистейшем виде.
 
@AK именно :-) а до этого была претензия на объективность:)
 
A K
Выйду завтра на работу -- всё, что в течение недели забыл внести в список -- должно всплыть, а не всплывёт -- значит, редкость и нечастое
 
@AK или просто у тебя сфера деятельности другая
 
A K
9:47 AM
Вот допустим, можно включить такую вещь, как кодировки 1251, UTF-8 и закопаться до Zalgo, который недавно Волынкин пиарил. Но можно и пропустить, считая некритичным. С датой-временем можно закопаться, как только брякнешь про таймзоны. Да хоть со строками
 
10:16 AM
@AK половина из списка не нужна
@AK даже 80%
@AK а вот асинхронщина нужна
 
@PashaPash а что тогда нужно?
 
@FoggyFinder умение видеть проблемы, умение быстро искать решения, умение звать на помощь как только не смог найти решение самостоятельно.
@FoggyFinder + стремление понять, как решение работает + способность доводить дело до конца
 
A K
10:38 AM
@PashaPash Это мы так двигаемся в сторону soft skills
И, если по EF можно почитать книжку и потренироваться на примерах, то как можно потренировать навык быстро звать на помощь?
И вообще, можно тогда свести весь список к базовому навыку "уметь учиться новому"
 
@AK никак нельзя натренировать. в том то и дело.
 
A K
@PashaPash очень любопытный, а главное -- спорный тезис.
 
@AK ок, смотрите - есть такое понятие - 10x developer
 
A K
@PashaPash да, в курсе
 
@AK вот можно ли "научиться" быть 10x?
 
10:44 AM
@PashaPash что за десятикратные девелоперы?:)
 
A K
@PashaPash Честно говоря, я вообще сторонник того, что можно перенять любые навыки. Вопрос в том, что не все хотят (мотивация): нахрена становиться 10х, если можно почитать вконтактик? Т.е. на словах-то все хотят, но оказывается что вконтактик лучше
 
@AK я работал с двумя 10x
@AK не одновременно :) и они ес-но не реально в 10 раз быстрее работают
 
A K
Напомню недавний пример: я разбирался с множественными связями в EF. Меня интересовал не только конкретный пример, но и КАК Майоров пришёл к этому навыку, который у меня отсуствовал. И потихоньку продолжаю копать эту тему дальше. Почему вы считаете этому нельзя научиться? Почему вы считаете что 10х нельзя научится? Я очень не люблю это вот "горбатого только могилой исправить", я считаю, что я (теоретически) могу всё, что угодно
 
@AK но это не вопрос мотивации и не вопрос обучения. они просто думают и принимают решения очень быстро. с ними тяжело работать в паре - приходится думать со 100% нагрузкой
тяжело - в смысле физически тяжело
@AK вопрос не в горбатости. вы работали с людьми, которые думают в полтора раза быстрее вас?
 
A K
@PashaPash т.е. нельзя сказать, что они знают больше, просто у них хард в голове процессор быстрее?
 
10:51 AM
@AK может быть процессор, может быть смеха поиска решений эффективнее
 
A K
@PashaPash Интересный вопрос. Я постоянно работал с людьми, которые знают больше чем я. И я постоянно "снимал" с них то, чего не знаю сам. Очень быстро, я даже сравниваю это с "сообщающимися сосудами". Некоторое время назад я стал замечать, что некоторые с меня снимают навыки (или просто вампирят "напиши вместо меня код") А чтобы именно быстрее меня....
Я могу сказать, что работал с людьми опытнее меня -- и они внешне просчитывали быстрее, чем я: потому что исходя из своего опыта отбрасывали те варианты, которые мне бы не пришло отбросить. Но можно ли это сказать, что они думали быстрее.... По сути, моё "опытнее" -- это то же самое, что и "знали больше".
 
@AK может быть у вас просто не попадались действительно быстрые люди. я вот всего двоих вживую видел в дикой природе. один из них у меня в команде работает
 
A K
Вообще, никогда не задумывался над вопросом, как распознать 10х разработчика. Вот у меня в конторе 500 программистов -- наверняка же есть таких хотя бы пара? Пойду погуглю статьи по теме, чтобы потом поприсматриваться к коллегам с этой стороны.
 
A K
@PashaPash И с какого момента начала их карьеры вы знаете? Они уже были 10х когда только делали первые джунские шаги или давно были сложившимися разработчиками?
 
11:40 AM
@AK одного - с первого курса универа. второго - с момента, когда у него было 2 года опыта. оба сразу думали быстро, а не разгонялись с опытом
 
 
2 hours later…
A K
1:47 PM
0
Q: Кэшированый делегат в C#

QutrixЧто значит фраза "делегат кэшируется" в этом контексте: "В случае вызова SomeMethod(OtherMethod) — будет всегда создаваться делегат. В случае вызова SomeMethod(x => OtherMethod(x)) — делегат будет кешироваться."? Контекст отсюда

 
2:13 PM
@AK а почему именно "(число процессоров) + 1", или "(число процессоров)*2"? Есть какие-то обоснования? Как по мне - логично просто "(число процессоров)" чтоб было минимальное кол-во переключений контекста.
 
A K
@Qutrix Я же говорил, что не уверен в ответе. Не настолько хорошо представляю себе архитектуру современных процессоров, чтобы соваться в такие дебри. Считайте, что из практических замеров кем-то делалось на базе теоретических выкладок, которые я не воспроизведу без искажений.
 
@AK просто хотелось бы знать: когда ставить n, когда n+1, а когда n*2) Ну ладно, может кто-то знает - ответит)
 
A K
@Qutrix Давайте пример на пальцах. Есть такой сервер, apache называется. Он архитектурно состоит из основного потока и n дочерних. Головной только переключает n дочерних, создаёт новые и удаляет старые. Логично вам из этой архитектуры вытекает правило "на каждую башку проца по потоку плюс один головной"? Нужно смотреть конкретные архитектуры приложений, плюс понимать как устроены очереди в современных процессорах. Я в этом не силён, могу что-то сильно наврать.
 
2:32 PM
@AK думаю, что головной занимается не переключением а выделением ресурсов для обработки запроса. Хотя тут понятно: головной не максимально загружает ядро (я бы даже сказал, что почти не загружает), поэтому тут n+1 вполне обоснованно, да
 
A K
@Qutrix Кстати, перечитывая комменты на хабре обнаружил знакомые ники.
Попробуйте спросить у пользователя mayorovp, который писал в этой ветке комментариев на хабре, он есть и на ru-so: ru.stackoverflow.com/users/178779/pavel-mayorovA K 1 min ago
@Qutrix Чесслово, лучше поищите более глубоко разбирающегося в теме специалиста )) Я как-то не люблю на границах своей компетентности давать какие-либо советы.
 
@AK я уже в пятницу писал - он немного игнорит ;)
 
A K
@Qutrix Дык, никто никому не обязан отвечать на конкретные вопросы, никогда не знаешь, кому и на что захочется ответить.
 
@AK так я и понимаю: времени на всех не наберешься) я просто ответил Вам)
 
A K
@Qutrix Попробуйте ещё вот что. Если за полную неделю никто не захочет/не сможет ответить -- попробуйте начать конкурс по вашему вопросу с награждением выше 100 репутации. Возможно, кто-нибудь и подтянется на огонёк. Тоже без всяких гарантий, можете сразу рассчитывать, что эти баллы вы просто выкидываете на ветер.
Не раз видел такие конкурсы, например: ru.stackoverflow.com/questions/578998 -- просто так 500 баллов репутации за ответ, который не подошёл.
Можете пока походить по сайту, поотвечать на чужие вопросы, чтобы было чем расплачиваться ;)
Хотя я смотрю, у вас уже на вопросе 50 баллов наплюсовали, так что уж пятьдесят-то можно смело отдать не раздумывая.
И ещё три плюса минимум получите, пока вопрос будет висеть в топе
Так что -- сто, двести я бы отдал на вашем месте, если так интересно разобраться
@Qutrix Ну и всегда остаётся вариант -- перевести свой вопрос на английски и опубликовать на en-so. Может быть вам даже Джон Скит ответит, если заинтересуется вопросом ;)
Просто не всегда нужный человек бывает на сайте. У меня вот получается так, что я бывает на неделю застряну на ru-so, потом пропаду на пару месяцев. Дела домашние, хобби, работа...
 
2:55 PM
@AK за плюс вопросу дают 5 баллов не 10 как за ответ
 
A K
@Grundy Ну да, забываю всегда, потому что почти не задаю вопросы.
 
@AK спасибо, учту все Ваши советы)
 

« first day (533 days earlier)      last day (2498 days later) »