10 бесплатных онлайн-платформ, которые помогут вам стать программистом — хитрые советы

8 способов стать лучшим программистом

10 бесплатных онлайн-платформ, которые помогут вам стать программистом - хитрые советы

Эстер Шиндлер пишет о технологиях с 1992 года, переводя язык технарей на привычный английский. За годы работы в IT она вынесла несколько советов, которые могут стать руководством к обучению программированию. Приводим для вас перевод её статьи.

Настало время серьезно улучшить ваши навыки программирования. Давайте сделаем это!

Это простая карьерная цель, но нельзя просто сказать себе “я хочу стать офигенным программистом”. Говоря “я хочу стать лучше”, вы должны знать, что включает в себя понятие “лучше”. Более того, слишком много людей стремятся к совершенствованию без понятия о том, как это сделать.

Позвольте мне поделиться восемью осуществимыми советами, которые могут для вас выстроиться в схему обучения программированию. Эти кусочки мудрости собраны за 35 лет моей работы в компьютерной индустрии, пока я находилась у ног гигантов, которые определяли отрасль.

1. Напоминайте себе, как много вам нужно выучить

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

Слишком многие студенты выпускаются с высокомерной установкой “Я лучше знаю” уверенные в том, что знают всё и должны доказать это каждому новому коллеге.

Другими словами, позиция “Я знаю, что делаю!”, может встать на пути изучения чего-то нового.

2. Перестаньте пытаться доказать свою правоту

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

Мы все встречали программистов с восемью годами опыта… точнее, всего с годом опыта, но о котором они говорят в восемь раз чаще.

Чтобы избежать этого синдрома, посмотрите на всё, что вы делаете и спросите себя: “Как я могу сделать это лучше?”.

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

3. “Код работает” – это не конец, а начало

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

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

Часть этого процесса – понять, что значит “улучшить”. Нужно сделать её быстрее? Проще документируемой? Используемой повторно? Более надежной? Ответ меняется с каждым приложением, но сам процесс не меняется.

4. Напишите его три раза

Хорошие программисты создают работающие программы. Отличные – программы, которые работают безукоризненно. Это редко случается с первого раза. Лучшее программное обеспечение обычно написано три раза:

  1. В первый раз вы пишете программу, чтобы доказать себе (или клиенту), что решение возможно. Кто-то может не понимать, что это просто опытный образец, но не вы.
  2. Во второй раз вы заставляете программу работать.
  3. В третий раз вы заставляете её работать правильно.

Этот уровень работы может быть неочевиден, когда вы смотрите на работу лучших разработчиков. Всё, что они делают, кажется таким блестящим, но даже разработчики-звезды не показывают свои первые и вторые версии программ. Выбросить код и начать сначала – мощный способ совершенствования в работе.

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

5. Читайте код. Читайте много кода

Вы, вероятно, ожидали от меня этот совет, и это наиболее общая и наиболее ценная рекомендация для совершенствования навыков программирования. Менее очевидны причины, по которым чтение чужого кода так важно.

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

  • Как бы я написал этот блок? Что бы вы сделали по-другому, видите ли вы другое решение?
  • Чему я научился? Как я могу применить этот метод к коду, который я писал ранее?
  • Как я могу улучшить этот код? И если это open source источник и вы уверены, что ваше решение лучше, сделайте это.

Напишите код в стиле автора. Такая практика поможет вам попасть в голову человека, который писал программу. Это может улучшить вашу эмпатию.

Не просто думайте об этих шагах. Записывайте ответы в личный дневник, блог, обзор кода или на форум разработчиков.

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

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

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

Многие разработчики смотрят на открытые исходники или другие источники, пытаясь “найти ответ”, или просто копируя и вставляя код, решающий такую же проблему. Это сделает вас даже хуже, как программиста, потому что вы просто принимаете чужую мудрость без её анализа.

(Более того, этот код может быть полон багов, но так как вы его не разобрали, вы только что импортировали целую кучу багов).

6. Пишите код, а не выполняйте задания

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

Вносите ли вы вклад в open source-проект или занимаетесь безвозмездной работой для общественной организации, вы получаете навыки и уверенность.

Ваши персональные проекты показывают потенциальному работодателю, что вы самоучка, не прекращающий учиться.

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

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

7. Работайте один на один с другими разработчиками всегда, когда есть возможность

Слушать других людей – полезно. Это может быть совместное программирование, хакатон или группа программистов. Когда вы вносите вклад в проект с открытым исходным кодом, обращайте внимание на обратную связь от пользователей и других разработчиков. Что общего вы видите в их критике?

Возможно, вам повезет и вы найдете ментора, которому сможете доверить всё: от методов кодинга до карьерных решений. Не упустите такую возможность.

8. Изучайте методы, а не инструменты

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

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

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

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

Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Advertisement

Для этого курса, который стартует 3 сентября, специалисты devtodev разработали уникальную программу, которая охватывает основные разделы геймдизайна. Этот курс единственный в своем роде по структуре лекций, предлагаемому контенту и составу участников.

Авторы сделали курс более практическим: ушли от абстрактных примеров и сосредоточились на методах и решениях, которые были предприняты на самом деле.

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

Лекторами курса выступили звёзды русскоязычной игровой индустрии. Это 15 совершенно разноплановых спикеров с многолетним опытом: аналитики, основатели студий, продюсеры и геймдизайнеры, которые записали лекции на те темы, в которых их опыт максимально широк и полон.

Порядок лекций спланирован специально таким образом, чтобы участники могли пройти весь путь, который обычно проходит разработчик: от первых идей и прототипов игры до её запуска, монетизации, последующего оперирования и работы с игроками.

Вас ожидают 22 видео-лекции, которые разделены на 6 модулей:

  • Первый модуль – вводный, он нужен и для того, чтобы вдохновить вас на создание своей игры, и чтобы в деталях разобрать, из чего игра состоит, и, опять же, чтобы убедиться, что курс интересный.
  • Второй модуль посвящён жизни игры до запуска: начиная от дизайн-документа и прототипа, заканчивая выводом игры на soft launch.
  • Третий модуль в деталях разбирает все возможные игровые механики: от удержания до нарратива, а также игровые циклы (в процессе вы узнаете, что это едва ли не важнее всего).
  • Четвёртый модуль углубит ваше понимание о разработке игр с точностью до конкретных жанров, а также расскажет вам про user experience и левел-дизайн.
  • Пятый модуль – это баланс и экономика, самые чуткие элементы игры. Вы узнаете, как проектировать игровую экономику и балансировать время, ресурсы, боёвку.
  • Шестой модуль целиком посвящён монетизации: как она работает, из чего она состоит, как спроектировать игровой магазин и добиться от игрока повторных платежей.
Читайте также:  Kill monty: пристрели их всех - хитрые советы

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

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

Стоимость курса – 99 евро при оплате до 3 сентября.

После 3 сентября стоимость курса составит 149 евро.

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

GVA и GEF запускают третий набор на программу для подростков GVA TeenStart-3.

GVA TeenStart-3 – это интерактивная программа развития предпринимательских навыков для подростков 12-15 лет, которая включает ряд лекций от ведущих экспертов в отрасли, бизнес-игры, посещения интересных стартапов и технологических компаний, и, самое главное, разработку своего проекта в команде с другими участниками программы.

Организаторами программы выступают компания Global Venture Alliance (GVA) и Global Education Futures (GEF), являющаяся международной платформой в сфере профессионального и детского образования.

Цель GVA TeenStart – обеспечить возможность обучения детей и подростков предпринимательству, командной работе, на практике показать процесс создания бизнес-проекта от идеи до реализации с помощью бизнес-игр и тимбилдингов.

В процессе программы проходят практические занятия детей с экспертами GVA по работе с предпринимателями и экспертами детских образовательных проектов.

Программа стартует 19 сентября 2018 года и будет включать в себя 12 недель интенсивной работы над бизнес-проектами под руководством экспертов и бизнес-коучей.

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

Принять участие: http://teenstart.gva.vc/

Источник: https://apptractor.ru/info/articles/8-sposobov-stat-luchshim-programmistom.html

Неправильный, но быстрый способ стать программистом — «Хакер»

Содержание статьи

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

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

Разумеется, речь в статье пойдёт исключительно о моём личном опыте, который позволял мне проходить собеседования даже в такие топовые компании, как Luxoft.

С компьютером я впервые познакомился в 6 лет. В 13 лет у меня уже был свой персональный веб-сайт. В школе учился плохо, в универе тоже. На втором курсе мой друг нашёл работу Java-программистом и настоятельно рекомендовал мне сделать то же самое. Идея заинтриговала. Нужен был план.

Первый шаг — резюме

Первая и основная проблема, с которой сталкиваются новички, — резюме. Без адекватного, цепляющего резюме тебя не будут приглашать на собеседования. Но как быть тем, у кого совсем нет опыта работы? Для того чтобы «не с пустыми руками» идти к HR, мы с другом вписали мне в резюме целый год опыта работы над его проектом, над которым якобы вместе трудились.

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

Первые собеседования были провальными. Надо мной буквально смеялись. На первом же техническом собеседовании, где мне дали пару задачек на бумаге, меня раскусили в два счёта. Кто-то даже по-отечески посоветовал книгу Thinking in Java.

В конце концов меня пригласили на собеседование в филиал одной датской компании, где я ответил на фундаментальные вопросы и приятно удивил всех своим английским.

Меня взяли на должность Junior Java developer с одним условием — первые три месяца я буду проходить курс SCJP (Sun Certified Java Programmer), который восполнил бы мои пробелы и выковал бы из меня более подготовленного специалиста.

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

На основе своего горького, но всё же бесценного опыта я приведу список рекомендаций, которые помогут товарищам-авантюристам относительно быстро найти работу программистом.

  1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у тебя там написано JMS (Java Message Service), то как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь будет удобнее пускать пыль в глаза, вы ты и правда «работал с JMS».
  • Выучи азбуку программирования. Если ты ещё можешь позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы тебе никогда не простят. Если тебя ночью разбудить, то ты должен уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  • Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если ты не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях — порешать их дома самостоятельно.
  • Читай книги и проходи туториалы по Java только на английском Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском — себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым ты вряд ли являешься.
  • Выучи, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине — неудовлетворительный уровень разговорного английского. Нет, если ты, конечно, собираешься работать программистом где-нибудь в отечественной компании, то твой уровень языка не будет играть важной роли. Но если ты хочешь попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень твоего английского будет конвертироваться в дополнительные сотни долларов прибавки к зарплате.
  • Знай рынок. Походи по вакансиям, почитай требования, поспрашивай друзей-программистов, сколько они получают. Используй сервисы, которые позволят составить более полную картину о рынке IT. Ты был бы удивлён, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  • Торгуйся. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Твоим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Ты должен понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  • Найди себе ментора. Хорошо, если у тебя будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке ты будешь продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо сходить на какие-нибудь курсы по программированию, которые не только дадут более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать твоим ментором.
  • Начни свой проект. Даже если он будет образцом самых худших практик кодинга и ты его никогда не закончишь, по крайней мере, у тебя будет то дело, ради которого захочется разбираться в программировании и изучать новые технологии. Кроме того, у тебя появится дополнительная тема для задушевных бесед на собеседованиях.
  • Ищи работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что тебя позовут на собеседование. Во-вторых, поскольку твои конкуренты-соискатели тоже на отдыхе, у тебя опять-таки повышаются шансы быть замеченным HR.
  • Никогда не сдавайся. Даже если кажется, что ты заваливаешь собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть, тебя именно в этот момент проверяют на усердие в работе!
  • Избегай заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Твоя задача — постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если тебе дали бумагу и ручку и попросили записать решение, то попроси возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, ты не только убережёшь себя от каких-нибудь режущих глаз ошибок, но и покажешь, что способен мыслить абстрактно, не вдаваясь так уж сильно в детали.
  • Начинай говорить первым. Избегай ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, начинай рассказывать что-нибудь из того, что ты хорошо знаешь. Постарайся навязать интервьюеру свою игру.
  • Старайся говорить правду. Если ты никогда не писал PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для тебя будет минус, однако ты убережёшь себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслишь. Опытный интервьюер за версту почувствует твои пробелы в знаниях.
  • Бойся маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее тебя раскусят. Твоя цель — большая и неповоротливая корпорация, где ты сможешь выиграть для себя немного времени.
  • Соблюдай дресс-код. Если ты придёшь на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если ты явишься в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».
  • Конечно, кто-то знающий может отметить, что приведённый выше рецепт — это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».Такие люди существуют, я их сам видел. Но их слишком мало, чтобы полностью покрыть нужды вечно голодного рынка IT-специалистов. А это значит, что у тебя всегда есть шанс, эдакий ты авантюрист.
Читайте также:  Как настроить itunes home sharing для трансляции контента на ios-устройства - хитрые советы

Источник: https://xakep.ru/2014/11/17/programmer-job-hack/

5 ошибок, которые могут помешать вам стать программистом — Блог

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

Розовые очки

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

Во многом в этом виноваты продающие страницы курсов по программированию, основная цель которых зачастую — убедить вас, что нужно только отправить деньги за обучение, все остальное за вас сделают умные наставники, и вот уже скоро вы начнете работать мега-программистом и Яндекс с Гуглом будут за вас сражаться. Конечно же это вранье.

Первым делом нужно осознать, что за вас никто ничего делать не будет. И что получить эту профессию очень и очень непросто.

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

Придется учиться практически ежедневно на протяжении всей дальнейшей жизни. Обходных путей и каких-то тайных знаний тут не существует.

Нереальные/неконтролируемые цели

Цель “Стать программистом” — очень большая и серьезная. Типичный “слон”. А значит, есть его надо по кусочкам. Эту цель не взять с наскока.

Будут дни, когда вы будете впадать в депрессию из-за того, что результатов нет, вы весь день промучились с какой-нибудь задачкой, которую так и не получилось решить. рассылаете свое резюме джуниор-программиста, а в ответ тишина.

В такие моменты очень легко потерять мотивацию, разочароваться, сменить направление деятельности.

Чтобы поддерживать себя в мотивированном состоянии и плодотворно учиться, стоит ставить себе контролируемые цели.

Например, учиться программировать каждый день минимум по 2 часа (этого мало, если вы хотите получить быстрый результат, но это гораздо лучше чем три дня по 8 часов, а потом забросить на 2 недели). Можно разбить эти 2 часа на 4 “помидорки” по полчаса в течение дня.

(гуглите “техника Помодоро”) Еще лучше — если вы распишете, что конкретно будете делать, например заниматься на Хекслете, или по какой-то конкретной книге. В этом случае, если вам удастся придерживаться этого графика, вы 100% будете двигаться вперед.

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

Зубрежка функций

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

Типа: Ой, Руби классный. Ой нет, Руби умирает, вот Питон супер, его рекомендовали в какой-то статье которую я краем глаза читал. А пхп так вообще ужас, да и к тому же полумертв. О, так джависты оказывается получают в 5 раз больше других программистов, мне срочно нужна Java! И так далее. Эти попытки разобраться какой язык лучше занимают уйму времени и плодят сотни новых вопросов на тостерах.

Какое занятие может быть еще бесполезнее? Это не выучив даже синтаксиса языка, до посинения читать форумы и пытаться разобраться, что же блин лучше React или Ангуляр.

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

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

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

Дети Ютуба

Где брать эти знания? Кроме очевидного -Youtube, Coursera, Stepic, Openedu, курсы Хекслета, стоит начать активно читать книги (бумажные или электронные — разницы нет). Видеокурсы все больше движутся в направлении развлечений, народ хочет зрелищ. (и хлеба в виде больших зарплат).

А скучать никто не хочет. Под видео часто можно видеть отзывы типа “Скучно! Монотонно!”. Людей приучают развлекаться, и они постепенно привыкают.

А ведь обучение по книге гораздо более эффективно, потому что информация в книге сконцентрирована, а в видео наоборот, размазана, чтобы было подольше да повеселее.

Однако не зря говорят: “У бедных людей большие телевизоры, а у богатых большие библиотеки”. Поэтому, читайте больше, друзья. Даже 3 хороших книги уже вас прокачают. И если вы решили изучать программирование, то очень советуем вам вдобавок к любым курсам и менторам с первых дней начинать читать книги.

Что именно читать? Смотрите здесь, в книжной подборке Хекслета.

А вот отдельная статья про то, как выбирать и эффективно читать технические книги.

Перфекционизм

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

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

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

Реальность же такова, что практически невозможно к чему-то подготовиться “с дивана”. Нельзя научиться драться по книгам, невозможно на 100% подготовиться к собеседованиям, не посетив ни одного.

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

Не бойтесь ошибок, не бойтесь отказов, не бойтесь неудач — это путь к лучшей жизни.

Ладно это все общая болтовня, а вот конкретный совет. Если вы уже хотя бы несколько месяцев занимаетесь программированием, начинайте составлять резюме, читайте статью про алгоритм поиска работы и вперед!:)

Спасибо за то, что дочитали до конца и удачи во всех начинаниях!

Источник: https://ru.hexlet.io/blog/posts/wannabe-coders-mistakes

12 бесплатных ресурсов для обучения программированию в игровой форме

Устали от скучных книг и лекций? Мы сделали подборку ресурсов для обучения языкам программирования в интерактивной форме.

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

Hexlet

Hexlet — здесь собраны бесплатные курсы по C, PHP, JavaScript, Bash.

Главное отличие от других проектов (например, Codecademy или CodeSchool) в том, что здесь нет симуляторов: в каждом уроке пользователь работает с полноценной машиной, подключенной к сети. На сайте представлено 8 целиком бесплатных курсов.

HTML Academy

HTML Academy — курсы для тех, кто мечтает стать верстальщиком. В процессе обучения начинающий программист выполняет задания по образцу.

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

Их вполне достаточно, чтобы получить представление о вёрстке.

Codeacademy

Codeacademy — популярный ресурс для новичков, в 2014 году достигший отметки в 24 миллиона пользователей. Здесь собраны курсы по самым популярным языкам, инструментам и многому другому. Задания написаны максимально понятным языком, а если что-то не получается, можно воспользоваться подсказкой или поискать решение на форуме.

Codeschool

Codeschool — ещё одна популярная платформа для начинающих и тех, кто уже в процессе карьерного роста. Процесс обучения сводится к просмотру видеороликов и упражнений по ним. Здесь собраны более 60 курсов, в том числе по HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git, аналитике данных, из которых 13 доступны бесплатно.

CheckIO

CheckIO — онлайн игра для обучения программированию на Python или JavaScript, построенная в формате приключения.

CodinGame

CodinGame — онлайн-платформа для программистов, где решение задачи сопровождается визуализацией в стиле видео-игр, а IDE поддерживает 23 языка программирования. Кроме того, крупные компании принимают в качестве примера код, написанный в CodinGame, при устройстве на работу.

Codecombat

Codecombat — одна из лучших игр для изучающих программированию. Она позволяет игрокам получить базовые знания нескольких языков программирования, например JavaScript или Python. Приятно ещё и то, что игра локализована, а значит доступна и тем, у кого проблемы с английским.

Code Hunt

Code Hunt — игра от Microsoft Research, которая учит искать ошибке в коде. Решив проблему, игрок получает очки и может двигаться дальше.

Писать можно на Java, C#, или на обоих языках.

CodeFights

CodeFights — ещё одна платформа для решения задач. Можно сражаться с ботами, друзьями и неизвестными игроками. Интересно то, что участвуя в турнирах, которые, кстати, проходят довольно часто, можно попасть на собеседование в известную IT компанию.

Ruby Warrior

Ruby Warrior — забавная игра для изучения Ruby и искусственного интеллекта. Нужно писать сценарии, чтобы ваш герой сражался с остальными и достигал целей.

The AI Games

The AI Games — развивайте навыки программирования в соревнованиях с другими игроками, пишите своих ботов, выигрывайте призы, но главное — получайте удовольствие от программирования.

Codewars

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

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

Источники:

Источник: https://proglib.io/p/learn-programming-playfully/

5 бесплатных онлайн-платформ, которые помогут вам стать программистом

Я рассказывал вам о том, как расширить память смартфона, сегодня поговорим про бесплатные платформы для программистов.

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

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

Codecademy

Данная платформа предлагает всем желающим освоить основы программирования. Помимо «страшного и ужасного» JavaScript вы сможете познакомиться с такими областями, как HTML/CSS, PHP, Python, Ruby и APIs.

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

И самое приятное, что пользоваться данным ресурсом могут даже те, кто не владеет английским языком, поскольку создатели платформы запустили ее русскоязычную версию.

Skillshare

Пользователям этого ресурса открывается доступ к неограниченным возможностям дистанционного образования. Все обучающие материалы по программированию представлены в категории «Технология».

Здесь можно выбрать не только интересующую вас тему, но и уровень сложности материала. А если вы захотите получить расширенный доступ к ресурсам платформы, вам нужно будет зарегистрироваться и вносить ежемесячный членский взнос в размере 7,99$.

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

Treehouse

Treehouse прекрасно подойдет для тех людей, кто только делает свои первые шаги в области программирования, создания сайтов и мобильных приложений. Но есть одно «но»: бесплатный доступ к платформе возможен только в течение 14 дней. Для дальнейшего использования материалов ресурса необходимо оформить платную подписку: «серебряную» (25$) или «золотую» (49$).

Code School

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

Learn Code The Hard Way

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

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

Источник: http://gdebesplatno.ru/5_besplatnyx_onlayn_platform_kotorye_pomogut_vam_stat_programmistom.html

7 принципов, которые нужно знать начинающему программисту

Эта статья — не самоучитель по кодингу. И не пост о том, «какой язык программирования выбрать». Если вы хотите понять, насколько вам интересно изучать мир кода, то более важным вопросом будет: что такое программирование? Как выглядит программирование изнутри? Совместимы ли я и программирование?

Принцип «логика, а не математика»

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

По опыту из «чисто математических» вещей встречаются, например, порядок операций в выражении и система координат. Ничего особо сложного. Логики, напротив, очень много.

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

Если у вас есть способность к логике, то вам будет легко начать справляться с программистскими задачами.

Принцип «поймать падающую звезду»

На программирование можно смотреть, как на запуск множества «процессов» — как бы принуждение компьютера «делать работу за вас» — и управление этими процессами. В программировании процесс часто выдаёт некий результат. Результатом может быть файл, но может быть и нечто попроще, например строка, или число.

Проблема в работе с процессами заключается в том, что если вы ничего не делаете с их результатами, то они просто растворяются. Говоря литературно, «уходят в небытие», никогда не воссоздаются, очень похожи на звёзды, которые сверкают на небе и исчезают. Другими словами, вам надо «поймать их».

Если вы создаёте что-то с помощью процесса, вам надо схватить его, или вы его потеряете. Вот где в игру вступают переменные — как способ «запечатлеть» результаты процесса. Этот принцип сильно помогает понять, что такое программирование, на ранних этапах обучения. И если вы рано его ухватите, то найдёте его очень полезным.

Принцип «словаря»

В программировании есть много «типов». Представляйте типы как строительные блоки языка программирования. Один из типов — это строка, или коллекция символов внутри кавычек. И «яблоко», и «апельсин» — это строки. Их можно, например, объединить и сделать «яблокоапельсин».

Числа — это другой тип. Числа можно складывать, вычитать, умножать (помимо остальных действий). Затем идут «массивы» — множество объектов в определённом порядке.

[«Первое», «идёт», «перед», «вторым»], например, является массивом с первым элементом «Первое» и последним элементом «вторым».

Но, возможно, одним из самых мощных типов является «хэш», или пара «ключ-значение». Хэш имеет много названий. В Ruby это «hash». В JavaScript он называется «object» (объект). Возможно, лучшее имя ему дал Python: «dictionary» (словарь). Если немного подумать, то словарь это и есть набор ключей (слов), указывающих на свои значения.

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

{«first_name» => «Jonathan», «last_name» => «Richards», «nationality» => «British»
}

Есть ключи  «first_name» (имя), «last_name» (фамилия) и т.д. Это как бы свойства, или атрибуты человека. Можно ещё добавить «hair_colour» (цвет волос), «age» (возраст), или «gender» (пол).

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

И пары «ключ-значение» становятся ценнейшим оружием в арсенале, поэтому полезно понять, как они работают, как можно раньше.

Принцип «матрёшек»

В программировании полно объектов, которые находятся внутри объектов внутри других объектов. Программируя, вы часто обнаруживаете, что пытаетесь структурировать данные, и часто эти структуры содержат внутри себя другие структуры.

Добавим в предыдущий пример свойство «siblings» (братья/сёстры):

{«first_name» => «Jonathan»,
 «last_name» => «Richards»,
 «nationality» => «British»,
 «siblings» => {
               «brothers» => [Matthew, Pete, Simon],
               «sisters» => [«Fiona», «Mary»]
               }
}

Этот принцип вы будете встречать на протяжении всего программирования. В HTML одни элементы включают в себя другие элементы:

Источник: https://tproger.ru/translations/seven-principles-beginner-should-know/

Ссылка на основную публикацию