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

    zualex
    @zualex
    Senior Software Engineer
    Вот для начала, выбирай что понравится:
    • Программист-прагматик. Путь от подмастерья к мастеру (Эндрю Хант, Дэвид Томас)
    • Джоэл о программировании
    • Джоэл. И снова о программировании
    • Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)


    Если понравится, то вот чуть сложнее чтиво:
    • Совершенный код (Стив Макконнелл)
    • Рефакторинг(М. Фаулер)
    • Чистый код создание, анализ и рефакторинг (Роберт К. Мартин)


    Если еще нужно, что то зубодробительное, то вот:
    • Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)


    А так рекомендую еще читать, что то около программирования:
    • Мифический человеко-месяц, или Как создаются программные системы (Хилл Чапел, Фредерик Брукс)
    • Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)
    • Человеческий фактор. Успешные проекты и команды (Том ДеМарко, Тимоти Листер)
    Ответ написан
    Комментировать
  • Как изучить язык баз данных SQL?

    @poimanoo
    Я перед собеседованием на должность sql-джуна будучи полным нулем за ночь порешал задачки на этом сайте и на следующий день решил все предложенные задачи и был принят) Скажу так - я бы посоветовал порешать эти задачи, они там предлагаются по нарастанию сложности и подкреплены теорией, за которой вам не нужно лишний раз лезть в учебники. Уверяю, с каждым десятком решенных задач Вы будете чувствовать себя гуру sql) Спустя задачек 30, когда у Вас сформируется представление о том, что из себя представляет SQL на деле, тогда можно приступать к литературе, поверьте, после практики гораздо легче воспринимать материал, ибо уже имеется представление, о чем речь.
    По литературе(с небольшими пояснениями):

    1. Введение в системы баз данных(Автор C.J.Date) - на мой взгляд очень доступное и максимально компактное описание того, на чем базируется SQL, разжеваны основные понятия, рассмотрены нормальные формы, а после предлагаются задачки.

    2. SQL Полное руководство - тут понятно по названию, здесь можно найти описание всех возможностей. Ищите наиболее позднее издание(у меня третье, для примера, это 2015 год).

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

    Если вы выбрали MS SQL Server:

    1. Microsoft SQL Server 2012 Руководство для начинающих - там хоть и не сильно углубляясь, но описано почти все что нужно на начальных этапах. Там и про индексы, и про оптимизацию, и про бизнес-аналитику, в общем, рекомендую.

    2. Microsoft SQL Server 2012 Создание запросов - просто и исчерпывающе(на момент издания) о том, как можно и нужно писать запросы на t-sql(расширение sql для MS SQL Server) с закреплением материала предлагаемыми заданиями.

    Если Вы выбрали Postgresql, то официальное руководство там исчерпывающее.

    По Oracle и MySQL советов дать не могу, ибо дела не имел. Удачи!
    Ответ написан
    1 комментарий
  • Что обязательно нужно знать в PHP и что посоветуете выучить?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    > С какими общими понятиями нужно ознакомится?

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

    1. Автоматизированное тестирование.
    1. Автоматное программирование.
    1. DDD.
    1. Функциональное программирование (функции высшего порядка, библиотеки типа https://github.com/tightenco/collect)

    Мастхев книги: https://ru.hexlet.io/pages/recommended-books
    Немного умных слов: https://docs.google.com/spreadsheets/d/e/2PACX-1vS...
    Ответ написан
    6 комментариев
  • 44 года можно ли еще стать востребованным специалистом в IT?

    Bandicoot
    @Bandicoot
    Вась-программист
    С версткой точно много не заработаете, попробуйте сразу изучить PHP-MySQL с какой-нибудь CMS или фреймворком. Работа есть на всех уровнях.
    Ответ написан
    Комментировать
  • С чего начать карьеру ИТ?

    Мне 30 лет. Начал свою карьеру в ИТ в 27.
    У меня ИТшное высшее образование, но жизнь сложилась так, что во время учебы нашел работу не по специальности, которая сразу начала приносить неплохой доход (производство рекламы: наружка, полиграфия). В один "прекрасный" день, спустя 10 лет работы, я понял, что достигнут потолок и мне совершенно не интересно дальше развиваться в этом направлении. Тогда то я и начал искать чем заняться.
    Я прекрасно понимаю страхи и мысли, которые крутятся в голове у человека уже с семьей.
    "А не поздно ли?", "А с чего начать?", "А как на меня будут смотреть другие люди/друзья/коллеги?", "А на какой доход и через сколько времени можно рассчитывать?", "А откуда взять время на жену/детей и учебу?" и еще куча других...
    В 16-22 все эти вопросы совершенно не волнуют - ты еще юн, свободен от обязательств и в какой-то мере финансово не обременен...

    Немного порассуждаем :)

    Отвечу на самые-самые вопросы:
    А не поздно ли?
    Нет. Никогда не поздно! Звучит банально, но это работает.
    Нужно срочно забыть сколько тебе лет и оперировать только понятием жизненный опыт. А его к 30 уже порядком. Мозги еще не "заржавели", тело еще не барахлит.
    НО нужно сразу условится - любая сфера ИТ требует ПОСТОЯННОГО самосовершенствования и изучение нового материала. ЛЮБАЯ.

    Чем заняться-то?
    Я для начала для себя определил две области ИТ в которых возможен быстрый прогресс за короткий срок и достаточно быстрое трудоустройство. 1С-программирование и веб-программирование.
    Они были выбранные после тщательного анализа локального рынка труда + низкий порог входа + возможность быстрого прогресса. Долго сомневался, читал форумы и статьи, что бы выбрать окончательно, но в итоге победило направление веб-программирования. Решающим стали два критерия: возможность удаленной работы на зарубежных биржах и отсутствие привязки к конкретной узкой технологии. В финансовом плане 1Сники на начальном этапе получаю больше, но со временем Веб вырывается вперед.
    Многие написали выше, что надо учить основы основ. Разложить всю теорию по полочкам. Понять принципы ООП и паттерны проектирования. Это правильно, НО... время+семья+деньги накладывают некоторые свои ограничения. Как мне кажется главная цель - это смена сферы деятельности, т.е. добиться результата. Да, по началу будут жуткие "решения" и "ужасный вырвиглазный лапшевидный говнокод", НО плох тот программист, который не продолжает свое обучение ПОСТОЯННО. Но учиться уже на работе под руководством более опытных товарищей НАМНОГО проще.

    А с чего начать это ваше "веб-программирование"?
    Сразу оговоримся, что есть принципиально два разных направления: "фронт-энд" и "бэк-энд". "Фронт-энд" проще и дружелюбнее для совсем начинающих. Его изучение позволит быстрее прийти к выполнениюглавной цели. Поэтому дальше я буду рассматривать именно это направление.
    Да-да, конечно, потом можно и "бэк-энд" изучить и даже полностью перейти на него. Можно совмещать, обв.
    И еще одно отступление: уровень английского Pre-Intermediate. Это само собой разумеющееся. В любом случае придется читать, слушать и понимать.
    Итак по теме вопроса.
    Рекомендую начинать с: htmlacademy.ru - пожалуй лучший русский ресурс для новичков. Интерактивные задания с самых азов. Все основные курсы бесплатные. Платная подписка открывает доступ к продвинутым курсам - рекомендую покупать эту подписку уже после прохождения всех базовых курсов. Есть два платных месячных "интенсива" - весьма неплохие и стоят своих денег.

    Остальные ресурсы рекомендую проходить параллельно с HTML-академией, начинать где-то после 7 курса:
    www.codecademy.com - на английском. Помимо курса по HTML&CSS можно попробовать JavaScript и jQuery + неплохие ознакомительные курсы по "бэк-энду"
    https://dash.generalassemb.ly - на английском. Интересны тем, что имитируют выполнение реального заказа на фрилансе.
    Есть еще куча ресурсов и курсов, но для начала этого вполне хватит.
    В любом случае придется изучить JavaScript. В этом деле поможет уже упоминаемый выше www.codecademy.com + learn.javascript.ru

    И главное - больше практики. Применяйте свои знания.
    Верстайте псдшники хотя бы ради практики и портфолио. Прикручивайте к ним что-нибудь простенькое на jQuery.

    А откуда взять время на жену/детей и учебу? Как совмещать-то все еще же работа есть...
    Если уделять учебе хотя бы 1 час в день, то можно вполне все успевать.
    Я учился так:
    - на работе была возможность почитать и поделать небольшие занятия в течение дня ( в сумме полчаса)
    - еще часик уже ночью, когда все спят дома.
    - в выходные вставал пораньше и в субботу за два часа пока все спят повторял все сделанное за неделю, а в воскресенье подбивал итоги и планировал следующую неделю.
    Придется пожертвовать сериальчиками и какими-нибудь излишествами нехорошими - всегда есть что-то. Все время дисциплинировать себя первое время. Можно вести блог или поставить цель на смартпрогресе. Главное регулярно заниматься. даже 15 минут в день - это уже большой плюс.
    Еще очень важно, что бы домашние знали к чему вы стремитесь и чем заняты.

    А на какой доход и через сколько времени можно рассчитывать?
    Тут все ОЧЕНЬ индивидуально. Все зависит от усердия и желания.
    Можно грубо прикинуть "скоростное прохождение этого квеста":
    1) материальные вложения: 30-32 т.р. два интенсива(базовый и продвинутый) и помесячная платная подписка на htmlacademy.
    2) временные вложения: 5-7 месяцев на курсы и интенсивы от htmlacademy + 2-3 месяца на основы JavaScript и jQuery

    После этого вполне можно пойти работать верстальщиком с перспективами карьерного роста с окладом от 15 т.р. или попробовать себя на фрилансерских биржах.
    Почему так мало?В моем регионе именно столько получают стажеры-верстальщики в первый месяц, но это уже работа + на реальных проектах прогресс пойдет намного быстрее. А следовательно и вырастет доход.

    А не будет ли мне сложно "работать" в молодом коллективе?
    Возможно первое время будут какие-то сложности, но как мне кажется в любом случае ценятся базовые человеческие качества + профессионализм. А если учесть, что к 30 уже есть достаточно богатый жизненный опыт, то я не думаю, что возникнут проблемы.

    Как-то так :)
    Удачи. И главное помните - все зависит только от вас. От ваших желаний и вашего трудолюбия.
    Ответ написан
    3 комментария
  • Как учиться новому после рабочего дня?

    @svilkov87
    Здравствуйте!
    До чего же мне знакома Ваша ситуация!

    Я сам прошел через это. И вот как.
    Основная работа - 10 часов.
    Дорога до дома + ужин и хоть 5 минут отдохнуть - 2 часа 05минут.
    А дома семья - жена и дочь.
    Мне было трудно понимать и впитывать материал.... очень трудно. Все новое и незнакомое.
    От ощущения этой мысли становилось морально тяжело, а это все сказывалось и на физической усталости.
    По началу я занимался до 1-2 ночи и было труднее всего приучить себя к такому режиму.
    НО! Скажу Вам честно и откровенно - как только у вас будет определенный опыт( больший, чем сейчас), Вам сразу станет гораздо легче, я гарантирую это!
    На сегодняшний день я занимаюсь гораздо меньше, но все так же ежедневно.
    И при этом решаю задач гораздо больше.

    Могу посоветовать на на основе собственного опыта:
    1. Не отчаиваться;
    2. Старайтесь делать сначала небольшие и не трудные задачи;
    3. Успех (даже маленький) - порождает новый успех и наполняем оптимизмом;
    4. Планируйте задачи на следующий день. Например: завтра я начну то и закончу вон то...
    5. Не стесняйтесь задавать вопросы на форумах ( непример тут);

    Я желаю Вам удачи! У Вас все получится, вот увидите!
    Ответ написан
    Комментировать
  • Как учиться новому после рабочего дня?

    @Yarrs
    Привет, тоже кину пять копеек.
    Во первых задай себе вопрос, чего ты хочешь, и чего тебе надо. С этого надо начать.
    Мы что-то делаем не просто так, а ради чего-то. Задай себе простые вопросы, кто ты, где ты находишься, в чем твои цели и предназначение. Программирование само по себе отстой, но с него можно начать. Когда то в 80 годы меня обуял восторг, когда я в классе третьем смог понять смысл a=a+1 Но с тех пор много воды утекло. Пойми чем ты хочешь на самом деле заниматься. Что является твоей настоящей целью, заработать денег, вырасти в социуме, поднять детей, прожить интересную жизнь. Как правило в жизни не выйдет получить всё, время это такой ресурс, который можно пустить либо туда, либо туда, либо еще куда. Делай всегда это с умом.

    Когда поймешь что тебе нужно, составь список целей, цели это не что-то постоянное, но вполне себе динамичное и постоянно меняющееся, мы меняемся, мир меняется. Следуй своим целям. Запомни один хороший принцип - возьми сначала себе. Работа хорошо, ты лучше. Как и где взять дело твое. Способы есть разные. Я ниже напишу немного конкретики. Каждый день нужно осознавать свой список целей и учитывать его в текущем дне. Ставить себе задачи на день и назначать самую важную. Если ты не выполнил эту задачу, считай что день неудачен. Каждый день выдели 15 минут времени вечером и делай анализ дня. Это вместе с пониманием своих ценностей и целей самое важное.

    Теперь немного конкретики.
    Вариантом отщепить время себе масса.
    1) Сними комнату рядом с работой.
    2) Вставай раньше. Ложись раньше
    3) Усталость, это усталость от схожего вида деятельности. Усталость можно легко побороть если заняться чем-то иным. Умственно / физически например переключается будь здоров.
    4) Первый час на работе посвяти только обучению. Обычно люди первый час тратят на котиков, чатики и прочую п-нь, будь не как все.
    5) Поговори с начальником, и скажи что тебе нужно развиваться и обучаться. Посмотри на реакцию. Если он не монстр вопрос можно решить.
    6) Всегда думай перед тем как делать. Решения существуют, часто не на поверхности.

    Теперь несколько вредных советов. Как стоит жить и работать.
    1) Если решил связать свою жизнь с программированием, стоит понимать, что платят те у кого есть деньги, и платят столько сколько готовы заплатить. Отсюда выводы. Больше получают узкие специалисты, которые работают с чем то редким и нужным тем у кого есть деньги. Работая на бедных ты заработаешь ровно чуть больше чем на спасибо. Это как у врачей, стоматологи, к которым захаживают сытые бюргеры с зубной болью на коне, кокой-нибудь травматолог / хирург имеют 90 процентов своей обычной клиентуры бомжей и нищебродов. Но процентов 10 попадается людей с деньгами. А вот анестезиолог вообще с клиентурой не работает, денег дополнительно ему вообще не приходит. Отсюда обилие медицинских анекдотов про бедных анестезиологов.
    2) Собственники и заинтересованные в бизнесе люди на платят просто так, а платят за решение проблем. Чем страшнее на первый взгляд проблема, тем больше за нее можно попросить денег. Сложные проблемы решаются разбиением на более мелкие задачки. Но переоценивать свои силы тоже не стоит. Если сделал что-то крутое скромничать не надо. Тебя будут оценивать в том числе по тому, сколько ты просишь.
    3) У предыдущего пункта есть небольшое следствие. Владельцу главное решение и сроки, ему похрен на красоту кода и прочий глупый перфекционизм.
    4) Лучше место работы для получения стартового опыта, какая-нибудь программисткая контора, но она же худшая в плане роста. Ты окружен людьми примерно твоего уровня и способностей, которые будут неизбежно грызться за место под солнцем, каждый твой начальник будет воспринимать тебе как угрозу своему месту. Прорваться в такой системе сложно. Кроме того работать надо на первое звено в пищевой цепочке. Пока линейному программисту что-то перепадет от базовой ставки 10 человек отщипнут по цепочке.
    5) Если ты работаешь в обычной конторе, постарайся выйти со своими идеями на руководителя бизнеса (гендира), он единственный кто заинтересован в проекте в целом, и может воспринять что-то от твоих мыслей лично. Люди ниже просто попытаются тебя использовать в своих целях.
    6) Люди если смотреть поверх бла бла бла всегда действуют в своих интересах, но только так как сами их понимают. Людей можно предсказывать и читать.
    7) Руководители нагружают тех лошадей что тянут. Идеальный работник тот, кто просит мало работает много. Повышения? Не слышали. Зачем повышать того кто хорош на своем месте.
    8) Добиваются чего-то только те, кто выходит за флажки. Есть загон для стада, где всегда будет скучно, обыденно и тухло, но жить можно, есть и другие возможности.
    9) Самая тупая ошибка людей верить, что если будешь хорошо и долго работать что-то изменится. Ничего не изменится.

    Ну хватит в общем, что-то я увлекся, всегда думай головой, вот мой совет.

    ПС: Забыл добавить. Обязательно надо выбираться из провинции в Москву Питер, лучше в Москву. Дальше уже можно как остаться, так и двигать дальше. Если возраст и прочие дела позволяют.
    Ответ написан
    10 комментариев
  • Как учиться новому после рабочего дня?

    @Aw55 Автор вопроса
    Товарищи, большое вам спасибо. Я читал и был рад прочитать такое количество разных (хотя и имеющих что-то общее) подходов, которые при этом являются очень дельными. Чтобы как-то собрать воедино предложенное вами, я выделил главные идеи, уверен, тчо кому-то может еще пригоидиться.

    • Учиться перед с утра сразу после сна ( Петр )
    • Учиться и практиковаться (используя знания на практике) на работе (@f-end, Andrew Lewman, x67, cap_nemo, galliard )
    • Помнить о том, что и ты , и работодатель заинтересованы в твоем развитии ( Andrew Lewman )
    • Использовать время в пути на работу и с неё с пользой ( Макс, cap_nemo )
    • Заниматься спортом ( sim3x, Дмитрий, Jony1337 )
    • Систематизировать дела и задачи (@EvilsInterrupt)
    • Отдыхать после работы (@EvilsInterrupt, Петр )


    Попробую применить все эти методы и выбрать те, которые для меня оказались наиболее подходящими.
    От себя добавлю, что я предпринимал (и немного проложаю) попытки всё упорядочнить, сформировать график и списки дел и разной длительности планы на данный момент не привели ни чему существенному, а только лишь забитому инбоксу и расстройству по поводу того, сколько всего надо. А ведь кроме надо есть еще и "хочется". Вот, кстати, неплохое обсуждение.
    Я, отчасти, согласен ivkol и, по крайней мере у меня, есть некоторый лимит на усвоение новых знаний. В такие моменты, я часто не давал себе спуску - не разрешал отдыхать и, часто мозг просто отказывался рабоать, впадал в режим энергосбережения и в лучшем случае читал каку-то не слишком полезную статью, а то и вовсе ленту вк. После этого ложишься тихо ненавидя себя за то, что не отдохнул, не поработал и вообще непонятно зачем живешь. Научиться отдыхать, оказывается, тоже непросто и этому нужно учиться.

    Из темы обучения вытекает множество других вопросов и проблем (например, фильтрация инфомации), но это уже отдельная тема для обсуждения. Еще раз всех благодарю.
    Ответ написан
    3 комментария
  • LinkedIn, есть ли польза?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Линкедин это по большей части для западного рынка, когда вы уже поработали в нескольких неплохих компаниях, написали у себя в истории крутые должности с красивыми и офигенными описаниями и параллельно со всем этим обмазались всякими "коннекшенами" со всех тех же мест где вы работали (или с кем пиво на конференции пили). В общем такой себе Circle Jerk, на котором вас в основном будут находить ушлые HR, отправляющие слегка измененную копипасту с описанием вакансии.

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

    Я, как обычный разраб, просто принимаю почти все входящие коннект реквесты и любезно отвечаю эйчарам "сейчас позиция не интересует, но потом если что возможно напишу", ибо план B лишним не бывает (хотя, по ощущениям, все равно будет проще найти работу через друзей или какой-нибудь Hired если приспичет, чем ползти в эту жуть).
    Ответ написан
    Комментировать
  • Как составить план своего дальнейшего обучения?

    27cm
    @27cm
    TODO: Написать статус
    Думаю, отсюда можно добавить несколько пунктов в план:
    jstherightway.org
    superherojs.com

    ...желательно русскоязычные

    + Английский
    Ответ написан
    7 комментариев
  • Как изучить язык приближенно к 100%?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А зачем? Зачем знать язык до идеального состояния? Перфекционизм мучает?

    20% труда выдают 80% результата.

    Остальные 20% результата потребуют 80% труда. Оно вам нужно?

    Другими словами язык должен быть на таком уровне, чтобы вы могли решать задачи. У математиков есть замечательная фраза "Необходимо и достаточно".

    Я к тому, что знайте когда остановиться. Хорошее всегда будет врагом лучшего.
    Ответ написан
    1 комментарий
  • Какие есть обучающие ресурсы по фронтенд разработке?

    @Allan11
    Фронтенд
    Ответ написан
    Комментировать
  • Какие вы знаете русскоязычные сайты для изучения программирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Только есть одно условие - сайт и курсы на нем должны быть на русском языке.


    HSLivcueqro.jpg

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

    По программированию рекомендую книгу "структура и интерпретация компьютерных программ", она есть в хорошем переводе на русском, и по ней учат в MIT. Но для ученика школы может быть тяжелова-то. Потому лучше воспользоваться какими-то упрощенными штуками типа codeschool, а там уже нужен язык.
    Ответ написан
    9 комментариев
  • Какие ресурсы помогут в изучении английского языка для веб-разработки?

    hbuser
    @hbuser
    Как обычно - свои пять копеек. Истины и приемы элементарные, но тем не менее...
    Вы говорили, что не все слова встречаются в словарях. Бывает, но очень редко. И то, в большей степени зависит от словаря, а именно от его объема. Все времена знаете, словарный запас немаленький - это уже очень немало. Все зависит от автора, но, как правило (обучающая литература по определению должна быть простой по изложению, т.к. раскрываются неизвестные ранее для читателя темы и текст и без излишней академичности языка сложен для понимания; это мое личное замечание, не претендую на абсолютное знание всех существующих текстов), тексты достаточно просты для понимания. Основной непонятный момент при вашем уровне знаний может быть только вот в чем... Бывает, что знаешь перевод слова, но нет возможности провести параллель с русским языком, т.к. устоявшаяся терминология имеется и в одном языке и в другом, и не всегда ясно как одно связано с другим (либо какой-то речевой оборот, который сложно п ). В таком случае я бы посоветовал вот что. Поставьте на компьютер, например, Abbyy Lingvo (у него хорошие словари, многие переводчики им пользуются). Программа может показывать перевод слов в текстах. Это немного автоматизирует и упростит перевод неизвестных терминов. А параллели между терминами в языках поможет провести Google. Зачастую достаточно написать слово и намек на контекст его использования. А во многих случаях терминология в русском языке - это калька с английского. Так что не все так сложно.
    Если вернуться к вашему вопросу, то нельзя указать какой-то конкретный всеобъемлющий ресурс. Технических тем очень много. Каждую в рамках одного ресурса затронуть очень сложно. Единственным значимым источником информации могут служить словари. Важно, что все ваши попытки изучения должны иметь прикладной характер (нужно быть, наверное, гением, чтобы изучать что-то в вакууме). Т.е. сначала должен быть текст (тема) для чтения и понимания, и только потом работа с конкретным текстом и точечная работа со словами и оборотами. Не иначе... Хотя... можно и иначе, но это сложно, если заранее неизвестна предстоящая тема для чтения.
    Ответ написан
    Комментировать
  • Как построить, структурировать изучение и повторения анг. языка?

    Extremesarova
    @Extremesarova
    Биоинформатика, машинное обучение, анализ данных.
    1) LinguaLeo. Это онлайн-платформа для изучения и практики иностранного языка, на которой по данным сервиса, на сентябрь 2014 года на нём зарегистрировано 9 500 000 пользователей.
    С помощью этого сайта можно изучать грамматику, тренировать слова, читать тексты, слушать аудио, смотреть видео (все, конечно же, на английском языке). Грамматических курсов огромное количество для всех уровней владения языком (многие из них платные, но их цена равна 1-3 занятиям у репетитора). Написаны профессионально с примерами и заданиями для проверки знаний. При регистрации для нормального обучения необходимо будет купить годовой "золотой статус" за 700-1000 рулей (цена день ото дня варьируется), который позволит вам открыть доступ ко всей функциональности (кроме некоторых платных курсов).
    LinguaLeo постоянно начинает сотрудничества с крутыми международными образовательными онлайн-платформами. Последние из них: Coursera, British Council, TED. Эти платформы предоставляют, в основном, видео, в связи с этим, в видеоплеер был встроен специальный инновационный интерактивный перевод, который позволяет быстро добавлять слова из видео себе в словарь, а потом изучать и тренировать их.
    При регистрации будет проведен тест на знание английского языка и будут предоставлены индивидуальные рекомендации по изучению. Там есть огромное число тематических наборов слов для изучения. Более того, вы можете сами создавать такие наборы. Я вот уже давно это практикую, например, для разных книг у меня разные наборы слов.
    Сервис имеет мобильные приложения для всех популярных платформ.
    Уникальный сервис (я уже с 2012 года здесь занимаюсь). Не нужно жалеть 1000 рублей! An Education is Priceless.
    Также для lingualeo есть удобное расширение для браузера (у меня chrome), которое при нажатии на английское слово сразу дает перевод, озвучивает произношение и позволяет добавить его к себе в словарь для дальнейшего изучения.
    2) Duolingo. Отличный сервис для изучения языка. На десктопной версии сайта вы сможете тренировать грамматику (без теории, только практика), а так же сможете переводить тексты и загружать свои. То есть, если вы видите какую-нибудь интересную статью на каком-нибудь сайте, то можно ее загрузить на этот сайт и удобно переводить - будет предложен перевод для каждого предложения и каждого слова.
    Имеются приложения для iOS и Android. В мобильных версиях только грамматика.
    3) Memrise. Лондонский стартап. Тут можно тренировать слова. Реализован интервальный алгоритм запоминания. Кто будет заниматься рекомендую курс Upper-intermediate English от Cambridge (тут уже нужно знать базовые слова) и курс, который поможет выучить эти базовые слова.
    4) Anki. Невероятно мощная и бесплатная программа (windows, mac, android, для iOS платная), которая использует технику интервальных повторений, о которой говорилось в предыдущем пункте. Все можно настроить под себя :)
    Очень крутой сервис. С помощью интервального алгоритма слова запоминаются очень хорошо даже, если сначала вы их совсем не знаете.
    Видите незнакомое слово, добавляете его, пишите перевод, добавляете произношение, и пример использования.
    4) Cambridge - English Grammar in Use. Это приложение, основанное на знаменитой книге. Тут полный курс грамматики (есть британское произношение примеров - очень хорошее). Есть приложение и для iOS. Стоит ~ 600 рублей. Полностью на английском. И для его выполнения рекомендую пройти базовые слова (можно использовать пункт 3).
    5) BBC Learning Language. Отличный сайт, созданный специально для изучения английского языка. Можно выбрать уровень знаний. Там вы найдете курсы, видео, подкасты.
    Да, точно, подкасты.
    6) Подкасты. Есть, по крайней мере, 3 приличных подкаста по изучению английского языка.
    ESL Podcast - самый лучший подкаст (IMHO). Два типа выпусков : диалог и беседы на определенные темы.
    6 Minute English - часть проекта BBC Learning Language. Тоже очень крутой подкаст.
    British Council - слушайте подксаты, смотрите видео, все все все.
    Grammar Girl, The English We Speak, ...
    7) Видео и каналы на YouTube. Мне больше всего нравится группа каналов от сайта engvid. Там интересно рассказывают про разные вещи: и грамматика, и произношение, и идиомы, и фразовые глаголы и многое другое. На сайте можно выбирать видео по уровню владения языком. Если вы зарегистрируетесь на lingualeo, то у них есть специальный раздел при сотрудничестве с engvid с тем интерактивным плеером, про который я писал раньше. Очень мне эти видео нравятся.
    Видео - ororo.tv . Тут можно смотреть разные сериалы и мультики, но больше часа в день платно. Этим сервисом я не часто пользовался последнее время.
    8) Совсем недавно узнал про такую возможность обучения. Создателя этой системы зовут A.J. Hoge. А сама система называется Effortless English System.
    Во-первых, у него есть подкаст. Можно слушать тут. А, если у вас есть устройство на андроиде или iOS, то там можно скачать какой-нибудь проигрыватель для подкастов, найти там этот подкаст и многие другие, и слушать там. Называется он Effortless English Podcast.
    Во-вторых, у него есть курсы, которые описаны на сайте (рейтинг по 180 отзывам 4.73/5 - круто).
    Вот тут можно видео посмотреть на кого нацелен этот курс. Я не знаю какой у вас уровень по знанию слов и грамматики (его можно поднять с помощью предыдущих пунктов, для слов хорош memrise, для всего остального lingualeo), но вам должно подойти в любом случае (как и мне), потому что разговорный английский очень сложно развить, не разговаривая с носителями языка, а тут должно быть очень классно.
    Подкаст бесплатный, а сами курсы вы можете найти на популярных трекерах. Точнее здесь. И там еще есть ссылка на Power English. Вот я него я и хочу начать, а пока только подкасты слушал.
    Общие рекомендации:
    Английским рекомендую заниматься каждый день. Выделять, хотя бы, 20 минут (лучше час).
    Кроме специальных сервисов вы можете читать книги на английском (можно на сайте LinguaLeo). Для начала можно читать детские сказки (простая грамматика и слова), потом переходить к популярным книгам, сюжет которых вы знаете и читали не раз - к таким, которые больше всего нравятся. Мне вот нравится серия книг про Гарри Поттера и я её перечитываю на английском языке. Я еще скачал аудиокниги по этой серии и очень классно слушать, и одновременно читать - получается сразу два навыка тренируются. Как я уже сказал, что на lingualeo есть эта серия и я читаю там - удобно, видишь незнакомое слово, ткнул на него и оно добавилось в словарь, и потом можно проходить его на различных тренировках (слово - перевод, перевод - слово, собрать слово из букв, аудирование, и другие). Кстати, на lingualeo тоже добавили интервальную тренировку, но она чуть хуже, чем на memrise.com.
    Более того, я рекомендую вам читать новости на английском (лучше конечно британские) - The Guardian, The Telegraph; но и американские можно, например, Business Insider.
    Ну и, конечно же, читайте тематическую литературу. Там будет необходимая в профессии лексика.
    Ответ написан
    2 комментария
  • Что стоит изучать начинающему python-программисту?

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

    Как бы избито это не звучало, но забудь подходы к программированию, которые у тебя были в ВУЗе, тот опыт полезен, но пока его придержи. Начни с освоения контроля версий, разберись с пакетами, зависимостями, привыкай перед тем как приступить к задаче, сначала исследовать - никто ли до тебя не занимался ли решением такой же задачи? В общем старайся максимально использовать чужой код, анализировать его, смотреть с какими проблемами сталкивались люди при его написании и т.д. И старайся писать понятный, не только тебе, код.
    Анализ чужого кода - важная, недооценённая студентами, составляющая работы.

    Начал изучать Питон (взял на курсере "Intro to interactive programming in Python", сейчас перехожу ко второй его части), т.к. он используется в DSP и компьютерном зрении, а мне эти области интересны. Также полезной вещью в моём багаже будет MySQL, который у меня сейчас идёт в универе.

    Питон относительно спорное начинание. Да, в перспективе - он хорош, но, субъективно, найти работу на PHP без коммерческого опыта - проще(это если финансовое положение такое что надо вот сейчас найти работу). Спрос большой, ровно как и спектр задач. Когда в голове будет понимание спектра задач для языка и вообще того какие задачи возникают в коммерческой разработке, тогда уже можно примерять Python к тем задачам которые перед тобой стояли.
    Если есть время(3-6 месяцев) то можно подучить джангу/фласк(только что-то одно) и идти работать стажёром - бесплатно или же помогать в open source(тут как раз и поймёшь примерные задачи, которые будут вставать перед тобой в работе, потому как туториалы хорошо, а реальность отличается).
    Не знаю как у вас дают БД, у нас давали так себе, поэтому лучше дотягивай сам, хотя бы то как язык работает с базой.
    Если хочешь научное - компьютерное зрение и т.д., устраивайся на кафедру (вариант с натяжкой - работу где у тебя будет много свободного времени(сторож, продавец простаивающий)) и штудируй литературу пачками, т.к. минимальные требования там высокие и нужно больше фундаментальных знаний, нежели знания ЯП. Плюс ко всему - участие во всех олимпиадах по программированию, интересные курсовые работы, по актуальным темам.

    Среднесрочную задачу я перед собой поставил конкретную: через год устроиться на оплачиваемую стажировку, чтобы начать получать хотя бы какие-то деньги и опыт. Поэтому вариант с поступлением в ШАД, который я изначально рассматривал как основной, отпал, и я решил перенести эту затею на год вперёд.

    На год вперед после работы? Потому как ШАД+оплачиваемая стажировка+учеба = ничего. Нигде не будешь успевать. По большому счёту - не ШАДом единым, если год самообучения, плюс год работы, то лучше включить в эти 2 года ещё и изучение того что проходят в ШАД, чтобы быть подкованнее

    В итоге у меня вопрос: что посоветуете сделать/изучить? Сконцентрироваться на Django, мб html/css, и т.п. и гарантированно идти стажироваться в заданный срок? Или рискнуть, попробовать делать то, что интересно (изучить dsp на базе питона, либо opencv), и податься в какое-нибудь крутое место типа Яндекса, в надежде, что на тебя обратят внимание? (Наиболее туманный для меня вариант). Ещё недавно возникла идея попробовать себя в связке веба, и, например, машинного обучения, может тоже неплохо? В общем, помогите советом нубу)

    Выше писал. Тут стоит оценить риски и ситуацию в семье. В принципе, если попадётся хороший руководитель и ты сможешь его убедить цифрами что машинное обучение принесёт пользу бизнесу, то сможешь совместить и связку веба и машинное обучение, плюс подтянуть курсовые и дипломные на эту тему(заработать миллон долларов, прославиться, написать свой язык программирования)
    P.S. Не выпускник ШАДа, обычный человек-программист
    Ответ написан
    3 комментария
  • PHP vs. all. Имеет ли смысл учить (параллельно) что-то еще?

    @newpy
    web-dev
    все языки хороши, каждый предназначен для своих целей...у всех свои минусы

    это и есть ответ на все ваши вопросы. Плюс зависит от стоящих перед вами конкретных задач.
    вы по-моему задали кучу вопросов, и сами же дали на них кучу ответов. Употребляете фразы "...да оно и понятно...". Так если все понятно, не тратьте время и пишите приложения.

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

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

    Про Python и Django - я знаком и с тем и другим (PHP), могу писать на том и другом. Но лично мое субъективное ощущение что на Python мне писать приятнее. И нравится больше. И тут работает главный совет из начала, "на чем нравится на том и пишите", если это позволяет задача, и есть возможность выбирать. Просто если поступил заказ использовать PHP, то что вы откажетесь от денег и заказа и будете сидеть пока не прилетит волшебник с заказом на python+Django?

    Про скорость работы языка: я думаю, вам рановато думать о скорости работы того или иного языка. Если вы только прям сейчас не пишете свой фейсбук, например. К слову, например Instagram написан на Python и вроде не испытывает недостатка в нагрузке, и вполне работает. Все остальное вполне справляется со своими задачами.

    Про скорость работы (просто скорость работы): Django даже позиционируется как фреймворк "для перфекционистов с дедлайнами", что гласит даже заглавная страница фреймворка, т.е. позволяет вести разработку быстро. К слову тоже самое можно делать и с помощью того же Laravel. Если хочется "по-взрослому": то чаще всего это Symfony. Но в большинстве случаев нет смысла писать небольшие сайты на Симфони. Не потому что Симфони там плох, а потому что это можно сделать быстрее. А в коммерческой разработке, бытует мнение, что главный критерий для клиента сейчас -это скорость разработки.
    Если проект крупный, то там сроки тоже поставлены, но они довольно большие, и там чаще всего и используют Симфони.
    Опять же Django при этом подходит как для небольших проектов, так и для очень больших.
    Если вам нужно разработать API, то там чаще всего используют другие инструменты, которых много как со стороны PHP, так и со стороны Python. Различные микрофреймворки в качестве backend-а.

    Подводя итог, вы можете заметить, пару ключевых тезисов:
    1. Зависит от конкретной задачи, которая перед вами стоит, или требование клиента(руководства компании)
    2. Если есть возможность выбирать, если это позволит вам получить конечный результат, то выбирайте то, что вам по душе. Кому-то Python "не лезет", кому-то PHP.

    Хотелось закончить на веселой ноте =), поэтому скажу так: при всем вышесказанном, чаще всего, всех этих людей объединяет одно: "так или иначе все они используют JavaScript"
    :D
    Ответ написан
    7 комментариев
  • Как эффективно изучать JS?

    @Scribblex
    Я рекомендую изучать JS примерно таким путем:
    – чтение learn.javascript.ru (чтение и, естественно, практика);
    – параллельное прохождение модулей по JS на codeschool;
    – держите перед глазами актуальные вопросы для собеседования JS-разработчика (habrahabr.ru/post/239065/), стараясь на них ответить;
    – читайте хороших авторов: Дуглас Крокфорд, Джон Рейзиг, Стоян Стефанов;
    – найдите на GitHub людей, которые согласятся ревьюить Ваш код, я серьезно!

    Ну и не забывайте: чем чаще Вы пишите код, тем лучше получается; чем сильнее стараетесь разобраться в основах языка, тем легче будут даваться в освоении фреймворки и паттерны.

    Желаю успеха!
    Ответ написан
    10 комментариев
  • Как эффективно изучать JS?

    iliapro
    @iliapro
    Веб-разработчик
    По опыту знаю, что учишь-учишь, но без опыта экспертом не станешь. Придумай себе какой-нибудь проект, в ходе работы будут появляться вопросы, придётся ползти в справочники или искать решение на форумах, только так сможешь выучить язык в совершенстве.
    Ответ написан
    6 комментариев