Задать вопрос
  • Как подтянуть английский за год?

    eugene_leshchinskiy
    @eugene_leshchinskiy
    я уже спрашивал подобный вопрос, теперь поделюсь опытом)
    1. Перевсти все свое окружение на английский: ос, телефон, вк, сервисы гугла и прочее
    2. Lingvist.io мне очень нравится, 150-200 слов каждый день прогоняю. Сайт хорош тем, что там можно прослушать и повторить за роботом и как-то тренировать свое произношение. штук 500 слов за 2 месяца добавил в словарный запас тут, честно. хайли рекоменд
    3. Перейти на англоязычную музыку, переводить понравившиеся треки, слушать желательно в наушниках и следить за словами, а потом открывать текст и сравнивать
    4. Подписаться на пару пабликов в вк по анлийскому (сомнительная эффективность, но там часто бывают подборки слов, иногда глаза зацепятся, уже неплохо)
    5. Перейти на англоязычный контент на ютьюбе.
    6. Добавить переводчик в закладки и ВСЕ непонятные слова туда вбивать.
    7. Я иногда себе устраиваю собеседование, задаю и отвечаю на вопросы по-английски.
    8. Пытайся писать на английском - статусы, на стене, в твиттере - где ты обитаешь, ты увидишь, что совсем ничего не знаешь, и придется лезть на форумы узнавать правила, как пишется та или иная конструкция.

    может быть что-то из списка пригодится, от себя добавлю, что книги мне не заходят. читать могу даже более-менее серьезное творчество, но не доставляет удовольствия, через силу не хочу.
    грамматику самому учить тоже гиблое дело, у меня нет денег на курсы / репета, но если у тебя есть - подтяни, я думаю очень поможет, если тебя завалят систематезированными знаниями и задачками.
    Ответ написан
    Комментировать
  • Как подтянуть английский за год?

    Igoorr
    @Igoorr
    Я как самоучка так же столкнулся с проблемой восприятия на слух
    Помогли сериалы и фильмы, вначале смотрел с сабами, потом без.
    Когда проблем с ТВ не будет, попробуйте послушать музыку на английском, что нибудь простое типа Битлз, потом можно что нибудь посложнее. Если будет трудно, то включите текст и пойте :)
    Так же помогают книги, газеты и прочее.
    Ответ написан
    Комментировать
  • Как стать профессиональным разработчиком WPF?

    Nipheris
    @Nipheris Куратор тега C#
    А у MVVM нет общих правил, каждый реализовывает его по-разному.

    Ну я б не говорил, что их прям нет. Есть привязки, есть INotifyPropertyChanged, есть рекомендации от MS. Да, вы правы в том смысле, что WPF это библиотека, но НЕ фреймворк для разработки, т.е. она не регламентирует структуру приложения.

    И у меня диссонанс — что сначала изучать, куда копать, что вообще делать, что стоит изучать, а что нет.

    Вот пару дней назад советовал книгу: Raffaele Garofalo, "Building Enterprise Applicatio... - если ничего не читали еще, начните с неё.

    И действительно хороших, многофункциональных и понятных проектов на WPF + MVVM я не видел.

    Неудивительно: WPF-приложения это обычно line-of-business, а это не open-source по определению.

    С чего начать изучение WPF?

    Убедитесь, что более-менее понимаете платформу .NET и ООП в ней, иначе будет тяжело.
    Вам надо будет разобраться:
    а) с системой зависимых свойств (dependency property);
    б) c MVVM и INotifyPropertyChanged;
    в) само собой с XAML и контролами, принципами написания своих контролов;
    г) со стилями и стилизацией;
    д) с системой команд (ICommand) и прочим.

    Нужны ли MVVM-фреймворки? Почему столько дискуссии возникает. Одни говорят да, другие — нет.

    Дискуссии возникают потому что а) некоторые вещи можно сделать разными способами; б) разработчики имеют дело с приложениями разного размера и сложности, но редко об этом задумываются в спорах; в) опытные разработчики нередко сами себя уже обеспечили нужным "библиотечным" пока разрабатывали приложения (ViewModelBase, хах :) ). Лучше пока разберитесь сами как что работает, потом поймете, какой фреймворк вам пригодится.

    Впоследствии еще советую познакомиться с IoC-контейнерами, если еще не пользовались. Это общий совет для крупных приложений, не только для WPF. Некоторые имеют спецальные интеграционные библиотеки для работы на пару с фреймворками, например Autofac: Prism.Autofac.
    Ответ написан
    1 комментарий
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

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

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

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

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

    Далее из модулей, как из кубиков лего пытаешься собрать функциональные блоки. Тут важно понимать, что чем более автономные модули и блоки у тебя получаются, тем лучше, особенно для целей тестирования. Если ты забиваешь болт на тестирование, то тебе нечего делать в разработке.

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

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

    Только так, только жесткий хардкор! Если ты не прошел эту фазу, то ты либо родился гением, либо тебе нечего делать в профессии... Это как детские болезни - ими нужно переболеть в детстве.

    Обрати внимание, самое главное качество во всем этом многабукафф - упорство на грани фантастики. Любой, кто не дойдет до конца, не треснет себя по лбу в соты раз с воплем, так вот же она где, эта запятая, пропущена - сломается в самый неподходящий момент на боевом проекте...

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Книга по шаблонам проектирования?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Если с паттернами только начинаешь знакомиться то очень последовательное изложение в книге Фримен, Фримен, Сьерра: Паттерны проектирования
    Её рекомендую читать в бумаге прямо с начала и последовательно.

    Для более продвинутого изучения рекомендую книгу Теплякова Паттерны проектирования
    Там помимо собственно самих паттернов хорошо описывается как научиться ими не злоупотреблять.

    Про классику - если уже очень хорошо знаешь что такое паттерны и имеешь по ним своё мнение - читать можно. Для изучения с начала - не очень подходит.
    Ответ написан
    Комментировать
  • Где найти интерактивное изучение js?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    nnmclub.to/forum/viewtopic.php?t=973073&start=45
    Единственный курс, в котором подробно изучается сам стандарт ES.
    Очень много практических заданий.
    Тем более обучение основано на изучении по учебнику Ильи Кантора.
    Тем более преподаватель бывший сотрудник Яндекса, нынешний сотрудник Lusoft
    Обучение длится 48 часов. Это только видеолекции, не считая времени на практику.
    По ES в курсе достаточно большое количество задач после каждой лекции, по JS также много задач из учебникак Ильи Картора, плюс выполняются такие работы как Слайдер, ToDo list, RSS ридер, корзина интернет магазина с local storage, а также выпускные проекты, сайт и игра.

    Этого курса + книги на learn.javascript.ru будет достаточно чтобы получить очень хорошую базу, конечно если выполнять все задания.
    Ответ написан
    1 комментарий
  • Codewars - поможет ли?

    @DanSorokin
    Full-stack developer at onvoya.com
    Пару раз туда заходил, не сказал бы, что там сложные задания. https://codefights.com/ и freecodecamp.com отличные ресурсы для тренировки. На 100% уверен, что стоит решать разного рода задачки, пусть даже они не относятся конкретно к предметной области javascript.
    Ответ написан
    6 комментариев
  • Как эффективно работать целый день?

    @apletnev
    По своему опыту выделил для себя следующие правила.
    Физика:
    1. Питание. Обрати внимание на сахар и быстрые/медленные углеводы. Например, если утром поесть овсяную кашу то энергии хватит на 4-5 часов, если бутерброды, - часа на два. Так по крайне мере у меня.
    2. Физические нагрузки, спорт отнимает много времени, хотя очень эффективен. Самый простой способ - побольше ходить, если пользуешься общ. транспортом, то выходить на несколько остановок раньше. Еще можно отжиматься, где-то читал что сто отжиманий в день - тонус для всех мышц тела.
    3. Сон. Как и другие рекомендую 7-8 часов, однако нужно обратить внимание на матрас, температуру и влажность в комнате - это намного улучшит качество отдыха.
    4. Жидкости. Я пью обычную воду, стараюсь выпивать 2 литра на работе (у меня есть вот такая фляга )
    5. Свежий воздух в офисе, яркость света. Стараться работать согласно нормам описаным в охране труда, т.е. должно быть много света, должен быть приток свежего воздуха.
    6. Эргономика стола. Обязательно нормальный стул, стол, монитор, клавиатура. Многие пренебрегают этими вопросами, а потом в 30 лет грыжи в позвоночнике, туннельный синдром, линзы/очки и половая дисфункция. (Я понимаю что в 18 лет это звучит как что-то далекое и не про тебя, однако если ты планируешь связать свою жизнь с разработкой, нужно думать о туловище, а не только о мозге)

    Психика:
    1. Будут дни когда работа не прет, абсолютно. Отпустить и забыть, но не увлекаться.
    2. Дисциплина. Так как мозг считай мышца, нужно постоянно тренировать ее; - писать код. В конце концов мозг привыкнет к нагрузке и сможет решать любые задачи и быстро, но будут дни как в первом пункте.
    3. Супер важные ежедневные задачи. Для меня это учеба и английский. Я этим занимаюсь не зависимо от дня недели, праздников, событий. Т.е. даже если я узнаю что через три дня конец света, все равно буду оставшиеся дни делать то что и делал раньше. Можно смеяться и крутить пальцем у виска, но нужно объяснить мозгу, что не может быть никаких проволочек, никаких отмазок. Иными словами “сдохни, но сделай”. Этот навык мне позволяет в случае аврала или какой-то мегалажи не паниковать и планомерно решать задачи. (Лучше начинать потихоньку иначе пункт первый на несколько лет)

    Через пол года у твоего мозга закончится адаптационный период и в этот момент начинай думать о своем туловище, оно не будет тебя отвлекать от решения любых умственных задач.
    Книги:
    https://pragprog.com/book/jkthp/the-healthy-programmer
    www.ozon.ru/context/detail/id/4320305
    Ответ написан
    3 комментария
  • Что делать дальше после изучения основ javaScript + jquery?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Совет - устройтесь на работу: Где можно найти работу для повышения навыков?
    Дальше само все пойдет.

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

    UPDATE: наткнулся вот на статью ain.ua/2016/06/22/656143 - Практическое руководство для тех, кто хочет стать профессиональным веб-разработчиком
    Ответ написан
    6 комментариев
  • На каких IT-специалистов выше спрос за рубежом?

    @qazqazasda
    Спрос на профи.
    И на рынке бьются друг с другом излишки непрофессионалов, которые работают за еду.

    Чтобы стать профи нужно очень много лет потратить.


    Чтобы тратить много лет и это не было скучно, чтобы не устать и не отступиться - всего-то заниматься нужно тем, что лично тебе интересно.
    Ответ написан
    2 комментария
  • Как обработать все ошибки (перехваченные и неперехваченные) в ASP.Net MVC?

    andrewpianykh
    @andrewpianykh
    Я предпочитаю следующий подход:

    1. Создаем контроллер ErrorController, например так:

    public class ErrorController
    {
    	public virtual ActionResult BadRequest()
    	{
    		return View();
    	}
    
    	public virtual ActionResult Forbidden()
    	{
    		return View();
    	}
    
    	public virtual ActionResult Index()
    	{
    		return View();
    	}
    
    	public virtual ActionResult NotFound()
    	{
    		return View();
    	}
    }


    2. Добавляем вьюхи

    3. Создаем свой расширенный HandleErrorAttribute, например так:

    public class ExtHandleErrorAttribute : HandleErrorAttribute
    {
    	//private readonly ILogger logger;
    
    	public ExtHandleErrorAttribute(/*ILogger logger*/)
    	{
    		//this.logger = logger;
    	}
    
    	public override void OnException(ExceptionContext filterContext)
    	{
    		if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled)
    		{
    			return;
    		}
    
    		if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500)
    		{
    			return;
    		}
    
    		if (!ExceptionType.IsInstanceOfType(filterContext.Exception))
    		{
    			return;
    		}
    
    		if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
    		{
    			filterContext.Result = new JsonResult
    			{
    				JsonRequestBehavior = JsonRequestBehavior.AllowGet,
    				Data = new
    				{
    					error = true,
    					message = filterContext.Exception.Message
    				}
    			};
    		}
    		else
    		{
    			var controllerName = (string)filterContext.RouteData.Values["controller"];
    			var actionName = (string)filterContext.RouteData.Values["action"];
    			var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
    
    			filterContext.Result = new ViewResult
    			{
    				ViewName = View,
    				MasterName = Master,
    				ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
    				TempData = filterContext.Controller.TempData
    			};
    		}
    
    		//var e = filterContext.Exception;
    		//logger.Error(e, e.Message);
    
    		filterContext.ExceptionHandled = true;
    		filterContext.HttpContext.Response.Clear();
    		filterContext.HttpContext.Response.StatusCode = 500;
    		filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
    	}
    }


    4. Регистрируем глобальный фильтр:
    public class FilterConfig
    {
    	public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    	{
    		var extHandleErrorAttribute = DependencyResolver.Current.GetService<ExtHandleErrorAttribute>();// new ExtHandleErrorAttribute();
    		filters.Add(extHandleErrorAttribute);
    	}
    }


    5. В Global.asax.cs добавляем метод Application_Error:

    protected void Application_Error(object sender, EventArgs e)
    {
    	var httpContext = ((MvcApplication)sender).Context;
    
    	var currentRouteData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));
    	var currentController = " ";
    	var currentAction = " ";
    
    	if (currentRouteData != null)
    	{
    		if (currentRouteData.Values["controller"] != null && !String.IsNullOrEmpty(currentRouteData.Values["controller"].ToString()))
    		{
    			currentController = currentRouteData.Values["controller"].ToString();
    		}
    
    		if (currentRouteData.Values["action"] != null && !String.IsNullOrEmpty(currentRouteData.Values["action"].ToString()))
    		{
    			currentAction = currentRouteData.Values["action"].ToString();
    		}
    	}
    
    	var ex = Server.GetLastError();
    
    	var controller = new ErrorController();
    	var routeData = new RouteData();
    	var action = "Index";
    
    	if (ex is HttpException)
    	{
    		var httpEx = ex as HttpException;
    
    		switch (httpEx.GetHttpCode())
    		{
    			case 404:
    				action = "NotFound";
    				break;
    
    			case 403:
    				action = "Forbidden";
    				break;
    
    			case 400:
    				action = "BadRequest";
    				break;
    
    			default:
    				action = "Index";
    				//var logger = DependencyResolver.Current.GetService<ILogger>();
    				//logger.Error(ex, ex.Message);
    				break;
    		}
    	}
    
    	httpContext.ClearError();
    	httpContext.Response.Clear();
    	httpContext.Response.StatusCode = ex is HttpException ? ((HttpException)ex).GetHttpCode() : 500;
    	httpContext.Response.TrySkipIisCustomErrors = true;
    	routeData.Values["controller"] = "Error";
    	routeData.Values["action"] = action;
    
    	controller.ViewData.Model = new HandleErrorInfo(ex, currentController, currentAction);
    	((IController)controller).Execute(new RequestContext(new HttpContextWrapper(httpContext), routeData));
    }


    6. В web.config добавляем в system.web
    <customErrors mode="On" />

    также в system.webServer можно добавить:

    <httpErrors>
      <remove statusCode="400" subStatusCode="-1" />
      <remove statusCode="403" subStatusCode="-1" />
      <remove statusCode="502" subStatusCode="-1" />
      <remove statusCode="501" subStatusCode="-1" />
      <remove statusCode="500" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="400" prefixLanguageFilePath="" path="/Error/BadRequest" responseMode="ExecuteURL" />
      <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound" responseMode="ExecuteURL" />
      <error statusCode="500" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="501" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="502" prefixLanguageFilePath="" path="/Error" responseMode="ExecuteURL" />
      <error statusCode="403" prefixLanguageFilePath="" path="/Error/Forbidden" responseMode="ExecuteURL" />
    </httpErrors>
    Ответ написан
    Комментировать
  • Туториал по разработке веб-приложения от начала до конца?

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

    ymatuhin
    @ymatuhin
    Front end разработчик
    Легко и непринужденно получится писать после пары лет опыта. Проще всего для старта научиться что-то делать на html, js, css.
    После этого имеет смысл накрутить инструменты и фреймворки. Я бы рекомендовал npm-scripts, webpack/rollup, postcss. Из фреймворков каждый выбирает что нравится или что востребовано. Вам рекомендую Angular 1/2 или React, с ними всегда найдете работу. Если для себя и своих проектов, то тут выбор побольше. Мне нравится Riot.
    А чтобы писать «красиво и легко сопровождаемо» тут вопрос совсем не в фреймворке, а в понимании паттернов, дебагинга, проектирования, тонкостей языка и кодстайла.
    Удачи.
    Ответ написан
    Комментировать
  • Как выучить английский начинающему программисту?

    sloboda
    @sloboda
    Java QA Automation
    Приложение на смартфоне duolingo
    Оно бесплатное
    Слушайте подкасты IT от Luxoft и др. Так как многие
    слова поймете из контекста, а спикеры все-таки не англоговорящие и потому говорят не так быстро,
    таким образом начнете понимать на слух.
    Найдите единомышленников и старайтесь общаться с ними на английском. Пусть будет криво. Зато в мозгу преодолеется барьер.

    Окружите себя языком.

    Не используйте русский в меню смартфона, в меню всяких программ и операционной системы.
    Всё, что возможно, замените на английский.

    Все эти способы бесплатны и эффективны.
    Ответ написан
    Комментировать
  • Делаете ли вы гимнастику для глаз?

    neochar
    @neochar
    PHP vs Python
    Я делаю гимнастику перед сном. Обычно не забываю, т.к. глаза сами напоминают.
    Выполняю круговые движения по часовой, против часовой. Затем полукруговые движения по часовой и против часовой сверху, затем снизу. Затем простые движения сверху-вниз и снизу-вверх, слева-направо и справа-налево.
    Не знаю, получится ли у вас это делать в темноте, но ещё очень эффективное упражнение, которое я выполняю в завершении, - это смена фокуса. Очень хорошо снимает усталость с глаз. Можно делать при освещении, можно делать в любое время суток и несколько раз в день. Просто берёте две точки фокуса на большом расстоянии друг от друга (это можно делать и мысленно, тогда получится совмещать с упражнениями перед сном) и медленно переключаетесь между ними, смотря сначала на ближнюю, затем на дальнюю точки.
    На каждое упражнение можно тратить около минуты.
    Ответ написан
    Комментировать
  • C# Троелсен и Шилд, поворот не туда?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Троелсен пишет профессионалам, тем, кто уже профессиональный разработчик в каком-либо языке, а теперь хочет разобраться с C#. Раз книга направлена на профессионала, то в ней не указываются общие основы программирования - например, нет ничего про паттерны, нет инфы, для чего нужен ООП, какие типы данных выбрать для конкретной задачи, какие типы массивов/списков взять, и т.п. Например, в книге описаны три разных способа работы с потоками. Каждый из типов хорошо описаны, но не указаны, какой из способов лучше использоваться. (хотя, конечно же, автор пытался показать, для чего нужны эти типы и в чем они отличаются, но выбор конкретного типа работы с потоками нужно выбирать разработчику.)
    Например, если разработчик хорошо знает Java. Тогда для него книга Троелсена идеальна. Можно понять, что в языке есть и как этим пользоваться.
    В итоге, эта очень сильная книга, которую легко можно использовать как справочник.
    Поэтому, эту книгу я не рекомендую как учебник программирования. Но когда вы пару-тройку лет поработаете с шарпом, то эта книга даст полное развёрнутое описание языка.

    P.S. Шилдта я не читал, не могу рассказать, на что она направлена.
    Ответ написан
    4 комментария
  • Где найти примеры проектов на asp.net mvc?

    Вот официальный репозиторий, там есть примеры:
    https://github.com/aspnet/Mvc

    Так же, там дается ссылка на хороший шаблон проекта:
    https://visualstudiogallery.msdn.microsoft.com/6cf...

    Еще ссылки из архива:
    https://github.com/imranbaloch/ASPNETIdentityWithOnion
    www.aspnetboilerplate.com
    https://genericunitofworkandrepositories.codeplex.com/
    Ответ написан
    Комментировать
  • Microsoft Dynamics CRM - как разобраться/потренироваться?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Можно заказать двух-недельный демо доступ у поставщиков этого решения. Я лично так делал. Погуглите такие компании.
    Ответ написан
    Комментировать
  • Какую запись делать в трудовой?

    @iv_k
    программист, если без ВО
    инженер-программист, если с техническим ВО
    Ответ написан
    Комментировать