• Каким путем развиваться как специалист в геймдеве?

    @mamkaololosha
    Тут есть одна проблема:"Вы не умеете программировать". Серьезно. Игры делают ~70 человек на протяжении ~3х лет. Применяя ~7 (C++/C, C#, Java, Python/Lua, simd/asm, ActionScript, bash/cmake/make/scons) языков программирования и скриптовых языков параллельно. Технологии меняются очень быстро. Раз в 3-5 лет всё меняется. Если не кардинально, то достаточно, что бы садиться за учебники опять. Учите классический Computer Scince, алгоритмы/структуры данных, GoF. Тонкости технологий будете учить на месте.
    www.targem.ru/vakansii/#job184
    Ответ написан
    2 комментария
  • "Запасная" профессия для программиста?

    sabramovskikh
    @sabramovskikh
    Увы, работа вам больше не понадобиться. Нужно будет делать абсолютно все, что можете и не можете. Искать еду и выживать. Просмотрите Беара Грилза
    Ответ написан
    Комментировать
  • "Запасная" профессия для программиста?

    kumaxim
    @kumaxim
    Web-программист
    Итак, сети нет, вокруг полно голодных бандитов с кольтами/калашниковыми. Пусть этот контингент будет основным клиентом(а их будет много, как мне видится). Для начала нам нужно завербовать с десяток таких ребят. Как? Думаю я служил с кем-то, с кем-то врагов бил, в общем берем своих людей в дело.
    Далее, вспоминаем, что кушать-то всем хочется... Следовательно нужно где-то достать как-минимум хлеба. Цепочка хлеба примерно такая: поле - пшеница - элеватор - мельница - пекарня - лавка магазина.

    Поле - тяжело ли найти кусок пригодной земли?
    Пшеница - посеять на поле и убрать - тяжело, но сильной подготовки не нужно
    Элеватор - в примитивном случае - амбар
    Мельница - пару жернов + пленные враги = мука
    Пекарня - костер и формы да дело в шляпе
    Магазин - прилавок и кассовый аппарат

    Собственно садись на любом этапе цепочки. Тут ты и братков своих сможешь прокормить и сам не помрешь да еще и бизнес иметь будешь.
    Ответ написан
    Комментировать
  • В чём польза readonly полей в C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Значения полей readonly можно менять динамически, в конструкторе класса. Последующие изменения невозможны.

    public class MyClass
    {
    
      public readonly int Value = 0;
    
      public MyClass()
      {
        this.Value = 123;
      }
    
    }


    Для чего это использовать - зависит от фантазии.

    Например, можно создать класс User и сделать readonly поле, содержащее идентификатор пользователя. Таким образом, идентификатор пользователя можно будет указать только при инициализации класса и, в последующем, изменить его будет невозможно. Это позволит избежать проблем в логике, которые еще предстоит придумать :-)

    Если сравнивать со свойствами и константами, то значения readonly свойств могут меняться в процессе жизненного цикла класса. Значения readonly полей, как уже было сказано ранее, можно указывать только при объявлении и в конструкторе класса.

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

    В дополнение, немного кода (Console Application):
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Timers;
    using System.Threading;
    
    namespace ConsoleApplication20
    {
    
      class Program
      {
        static void Main(string[] args)
        {
          // создаем экземпляр класса
          var t = new Toster(199065);
          // выводим значение константы ProjectName
          // доступ только через Toster
          Console.WriteLine(Toster.ProjectName);
          // доступа к локальным константам здесь нет
          // Toster.CounterPattern
          // t.CounterPattern
    
          // выводим заголовок вопроса
          Console.WriteLine(t.Title);
    
          // бесконечность - не предел!
          while (true)
          {
            // t.Id = 123;
            // мы не можем поменять идентификатор
            // следовательно, этот код, логически, будет работать правильно
    
            // выводим число ответов
            Console.WriteLine("Ответов: {0}", t.AnswersCount);
    
            // t.AnswersCount = 123
            // мы не можем менять значение readonly свойства,
            // но оно может меняться внутри экземпляра класса
    
            // пауза 10 сек.
            Thread.Sleep(10000);
          }
        }
      }
    
      public class Toster
      {
    
        // публичная константа, доступ через Toster
        public const string ProjectName = "Тостер";
    
        // локальная константа, доступна только в рамках этого класса
        const string CounterPattern = "<span class=\"section-header__counter\" role=\"answers_counter\">";
    
        // публичные поля только для чтения
        // значение может быть установлено в конструкторе
        public readonly string Title = "Нет данных";
        public readonly int Id = 0;
        
        // свойство только для чтения
        // значение может меняться в процессе жизни экземпляра класса
        // при помощи локальной переменной
        private int _AnswersCount = 0;
        public int AnswersCount
        {
          get
          {
            return _AnswersCount;
          }
        }
    
        // это просто таймер
        private System.Timers.Timer Timer = null;
    
        // а это конструктор<s>, но не Lego</s>
        public Toster(int id)
        {
          if (id <= 0) { return; }
          
          // получаем вопрос
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", id));
          // из шаблона url тоже можно сделать константу
          // либо в классе можно сделать readonly свойство, 
          // которое будет на лету формировать итоговый адрес:
          // return String.Format("https://toster.ru/q/{0}", this.Id)
    
          // устанавливаем значения для полей
          this.Id = id;
          this.Title = WebUtility.HtmlDecode
          ( 
            result.Substring
            (
              result.IndexOf("<title>") + "<title>".Length,
              result.IndexOf("</title>") - result.IndexOf("<title>") - "<title>".Length
            )
          );
          // выдергиваем число ответов на вопрос
          this.ParseAnswersCount(result);
    
          // запускаем периодическую проверку <s>Менделеева</s>
          Timer = new System.Timers.Timer(10000);
          Timer.Elapsed += Timer_Elapsed;
        }
        
        // обработчик истечения интервала времени 
        private void Timer_Elapsed(object sender, EventArgs e)
        {
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", this.Id));
          this.ParseAnswersCount(result);
        }
    
        // выдергиватель количества ответов
        private void ParseAnswersCount(string value)
        {
          int startstart = value.IndexOf("Ответы на вопрос");
          int start = value.IndexOf(CounterPattern, startstart) + CounterPattern.Length;
          int len = value.IndexOf("</span>", start) - start;
          _AnswersCount = Convert.ToInt32(value.Substring(start, len));
        }
        
      }
    
    }
    Ответ написан
    Комментировать
  • С помощью чего писать игру на C#?

    @JackBoner
    Знать Unity это определенно круче, чем знать MonoGame. Ну и смотря что за игра. MonoGame не пробовал, но вот 2D в Unity мне очень понравился.

    Решили делать первую игру - и сразу MMORPG? Уверены что осилите? Там ведь надо ещё и сервер писать. У юнити, кстати, тоже есть есть много готовых фич для работы с сервером.
    Ответ написан
    1 комментарий
  • Почему все новые устройства такие медленные?

    @onepavel
    Консультация и разработка мобильных приложений
    Раньше писали нативные приложения, не было виртуальных машин, фреймворков, DI и рефлексии в целом, не было 100500 сервисов проверяющих фейсбуки и твиттеры. У меня был палм от сони, черно-белый экран и никакой анимации. Ну и конечно качество кода упало.
    Ответ написан
    Комментировать
  • Вопрос касательно C#?

    @raincons
    Мне кажется, тут больше подходит Dictionary<string, string>
    Ответ написан
    Комментировать
  • Куда переехать для создания команды

    Cyapa
    @Cyapa
    А как вам Новосибирск, например? Технических ВУЗов валом, уровень образования хороший, одни только НГУ и НГТУ чего стоят. Программистов тоже полно, много хороших компаний. Цены приемлемы, квартиру можно найти за пару дней. Инфраструктура хорошо развита, крупнейший город России как ни как. Ну и, как плюс, гостей из южных стран практически нет.
    Ответ написан
    4 комментария