• Что нужно знать для свободного владения C++ или C#?

    GavriKos
    @GavriKos
    Раз вы задаете такой вопрос - значит вы не свободно владеете этими языками.

    Это означает что при написании любой задачи у вас не будет возникать вопроса "как реализовать это на этом ЯП". Если проводить аналогию с иностранными языками - вы сможете любую возникшую в вашей голове мысль сказать на иностранном языке. Суть свободного владения - при разработке язык разработки вас не тормозит. Тормозят сложности алгоритмов, структуры проекта или чего то подобного.
    Ответ написан
    12 комментариев
  • Как сделать поиск на C# по директориям, с составлением списка файлов по указанным расширениям?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Используйте Directory.GetFiles.
    string[] fileNames = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);

    Для нескольких расширений можете либо вызвать метод несколько раз, либо использовать Directory.EnumerateFiles вместе с LINQ.
    string[] fileNames = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".txt") || s.EndsWith(".jpg"));
    Ответ написан
    2 комментария
  • Как лечится кризис начинающего программиста?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Доктор, что со мной?

    Волчанка

    или неправильно рассматриваю обучение в целом

    из того что вы расписали у вас в целом и нет этого процесса обучения. Теория это хорошо, но без практики вы не сможете усваивать полученные знания. Так что больше практики.
    Ответ написан
    4 комментария
  • Как правильно очистить память?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    в теории dispose должно быть достаточно, но это не гарантирует того, что не останется мусора, можно загрузить этот код бесконечный цикл и посмотреть на потребление памяти, если за пару минут память не утечет, то все нормально.
    Ответ написан
    Комментировать
  • Что такое олимпиадное программирование?

    barmaley_exe
    @barmaley_exe
    Олимпиадное и спортивное программирование действительно два имени одной сущности.

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

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


    Даже если вы не продаёте программный продукт, а, например, пишете opensource программу или библиотеку, Вас всё равно интересует бизнес-эффективность: хотелось бы иметь простой и надёжный код (чем алгоритм сложнее — тем проще допустить ошибку), возможность расширения и изменения программы спустя некоторое время (т.е. думать об архитектуре).

    Спортивное программирование, в свою очередь, сосредоточено лишь на решении формальных задач с максимальной эффективностью в плане времени исполнения и объёма затрачиваемой памяти. Самым эффективным способом практики этого вида программирования являются соревнования, проводимые, например на codeforces или topcoder. Такие соревнования длятся несколько часов и предлагают несколько задач различной сложности. Чем быстрее и больше участник решил — тем больше он молодец.

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

      Например, однобуквенные переменные пишутся гораздо быстрее длинных и осмысленных, однако их предназначение понятно лишь самому автору и лишь в течение крайне небольшого срока после написания программы.
    • поскольку программа невелика, нет необходимости в разбиении её между несколькими программистами
    Ответ написан
    Комментировать
  • Как в entity framework загрузить и обработать файлы?

    SergeyRodyushkin
    @SergeyRodyushkin
    .NET Developer
    Сделайте в модели свойство типа byte[], а таблице — столбец типа varbinary(max) или image. Вот здесь, например, есть ответ на подобный вопрос.
    Ответ написан
    Комментировать
  • Кто такой кодер? и чем он отличается от программиста?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Раньше, когда компьютеры были большими, экраны зелёными, а вместо флешек куски картонки, были две специальности (точнее три): математик-алгоритмист и оператор ВМ. Вот первый был типа программистом, а второй кодером - наборщиком (кодировщиком) перфокарт. Отсюда и пошло-поехало. Математик писал алгиритм на бумажке, оператор вводил это в ЭВМ (с бооольшой буквы), результат расшифровывал и передавал обратно математику.
    В общем, были хорошие кодеры (дырки правильно ставили), а были и не очень... https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D...
    Ответ написан
    2 комментария
  • Выбор литературы для изучения С#. Как быть?

    @velnick
    Не буду так категоричен как @God-emperor.
    Для изучения основ и написания примеров консольных приложений вполне подойдет и старая версия фреймворка.
    Другое дело, что между 3.0 и 3.5 достаточно большой шаг произошел из-за добавления LINQ. Фишки 4.0, 4.5 и 4.5.1 тоже пригодятся, но вряд ли в самом начале обучения.
    Поэтому, в дальнейшем, я бы рекомендовал все-таки использовать более свежие версии книг и фреймворка.

    Вообще, что нового добавлено в новый версиях, можно найти в интернете (например: www.dotnet-tricks.com/Tutorial/netframework/HJXU17...) или в книгах (например: у Рихтера в CLR via C#)
    Ответ написан
    Комментировать
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    @FoxInSox
    Все уже изобретено на stackoverflow. Рейтинги и прочие ограничители не вводятся по одной причине: 90% людей было бы просто забанено сообществом сразу же. На stackoverflow оставшиеся 10% это внушительная часть людей, на Тостере же это 20 человек.
    Ответ написан
    Комментировать
  • C# Reflection - скорость приемлемая или всё-таки медленно?

    Использовать в C# Reflection можно и нужно, не спешите с "улучшением" производительности пока в этом нет необходимости. А в случае необходимости изучите результаты Profiler, я думаю упретесь в IO а не в скорость работы Reflection.
    Ответ написан
    Комментировать
  • Вредно ли копирование в программировании?

    thestump
    @thestump
    программист PHP
    Вредно ли пользоваться калькулятором? Если вы школьник 1-9 классов - да вредно, если вы бухгалтер с 20 летним стажем - нет не вредно, если кассир в магазине - нет не вредно и т.д. Также и с программированием. Вам трудно будет запомнить структуру оператора for если вы новичок и постоянно пользуетесь копипастой, а если вы программист левела сеньор то копипаста оператора цикла (уверен что ни один сеньор так делать не будет) из соседнего класса вам сэкономит пору долей секунды которые будут направленны на размышление об алгоритме и т.д.
    Ответ написан
    Комментировать
  • Куда двигаться в веб-разработке?

    @rsi
    software engineer
    Перво наперво определитесь, хотите ли вы стать профессионалом или просто хорошо делать сайты. Я бы предложил выбрать путь профессионала.

    Во вторых определитесь, каким именно профессионалом вы хотите стать:
    1. web - мастером
    2. Front end
    3. Back end
    4. Desktop
    5. Другого направления


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

    Здесь вам советовали сменить язык, не слушайте этих советов. Да Ruby имеет некоторые преимущества перед php, но имеет и недостатки. Не думайте, что если вы выберите Ruby (python) ваша жизнь измениться, вы не получите ничего, что не может вам дать php и на оборот, эти увеличенные зп и прочее миф, язык не важен. Помните, ЯП это всего лишь инструмент, вы конечно должны иметь инструмент, и должны знать свой инструмент в совершенстве, но умение программировать заключается не в этом. Да, плотник алкоголик, который зарабатывает на жизнь забивая гвозди, может хвалить свой молоток и всем рассказать, что молоток его кормилец, но согласитесь настоящий строитель умеет не только гвозди мотком забивать, не говоря уже об архитекторе, который молоток и в руках мог вообще не держать.

    И так предположим, вы выбрали свой путь, вы выбрали направление и выбрали инструмент. Теперь вам нужно работать в этом направлении (как над собой, так и в буквальном смысле работать). Читайте статьи, читайте книги (я всегда рекомендую только одну книгу - "Совершенный код", ее без преувеличивания должен прочитать каждый программист), изучайте новые фреймворки, технологии, отрасль постоянно движется вперед, вам нужно двигаться вперед еще быстрее, что бы хотя бы не стоять на месте. В процессе работы над проектами вы будете чувствовать нехватку знаний (вы упоминали js, ООП), устраняйте эти пробелы книгами (не стоит бояться 900 страниц, книги вы ничем не замените, их необходимо читать), статьями и конечно практикой. Не переживайте по поводу отсутствия высшего образования, оно не дает глубокого знания, никто не расскажет вам ни каких трюков, если у вас не будет толкового преподавателя. Но толковый преподаватель, это не обязательно учитель в универе, это может быть автор книги (например Макконел), автор хорошего инструмента (например Taylor Otwell), большинство очень известных и авторитетных людей генерирует тонну информации, книги, статьи, записи в соц. сетях, код, все это можно читать и это даст вам куда больше чем ВО. И да, мы с вами живем в уникальное время, время интернета, где нет расстояний, и это дает намного больше возможностей, чем нагуглить очередной костыль для jquery от школьника, вы можете общаться лично например со Страуструпом или тем же Тейлором, ни в одном учебном заведении России у вас не будет возможности поговорить с такими людьми.

    Подведя итог:
    1. Определите путь (хотя бы примерно)
    2. Определите специализацию (хотя бы примерно)
    3. Выберите инструмент (один основной язык, один основной фреймоврк, одну основную cms и тд)
    4. Изучите свой инструмент в совершенстве
    5. Пробуйте другие инструменты (да я сказал один яп, один фреймворк, но один вы должны знать в совершенстве, остальные должны попробовать)
    6. Расширяйте кругозор
    7. Работайте над собой
    8. Работайте
    9. Выберите наставников и учитесь у них


    Следуя этим советам вы увеличите свой скилл, сможете сами отвечать на вопрос заданный в заголовке и станете профессионалом. И помните путь профессионала, это постоянная работа (как буквально работа, так и работа над собой, если просто писать сайты 24/7 вы тоже профессионалом не станете), гораздо больше чем 8 часов в день, 5 дней в неделю.
    Ответ написан
    Комментировать
  • Entity Framework. Как правильно использовать транзакции?

    Да, при таких условиях это правильный вариант.
    Если функции являются членами одного класса и их можно сделать не статическими, то можно сделать контекст также членом класса. Делать статическим контекст я бы не советовал.
    Ответ написан
    5 комментариев
  • Что реально означает термин "опыт работы"?

    @Lol4t0
    На практике это произведение ЧСВ на количество часов, проведенных за программированием.
    Ответ написан
    Комментировать
  • Что реально означает термин "опыт работы"?

    @mamkaololosha
    Стаж - это время вообще. Например, стаж вождения. Хотя права могли лежать на полке.
    Опыт - это применение знаний на практике и решение задач. Обучение это не опыт. Опыт это участие в опен-сорс проектах, работа, стажировки. Написание сайта для кафедры это опыт. Работа за деньги это опыт+.
    Ответ написан
    1 комментарий
  • Как поставить ограничение на ln в edit?

    @kalapanga
    Плохая идея - игнорировать ошибки. Ваши программы с таким подходом будут вести себя непредсказуемо. Уж если нельзя вводить отрицательные числа, значит нельзя! Проверяйте это до начала вычислений, выдавайте пользователю предупреждение и только при корректном вводе начинайте расчёт Ваших таблиц.
    Ответ написан
    Комментировать
  • Как поставить ограничение на ln в edit?

    @mayorovp
    Есть такая конструкция - try ... catch ... end. Почитайте про нее.
    Ответ написан
    Комментировать
  • Как сделать модальное окно с input text в C#?

    AxisPod
    @AxisPod
    Ну дык обычное окно. https://msdn.microsoft.com/ru-ru/library/c7ykbedk%...
    Ответ написан
    Комментировать
  • Как файлу передать параметры? И какая их максимальная длина?

    @Sumor
    Пример из MSDN
    using System;
    using System.Windows.Forms;
    
    class Sample 
    {
        public static void Main() 
        {
        String[] arguments = Environment.GetCommandLineArgs();
        MessageBox.Show(String.Join(", ", arguments));
        }
    }
    Ответ написан
    1 комментарий