Как научиться языку программирования с нуля


10 способов научиться программировать самостоятельно, с чего начать программировать

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

10. Выясните, почему вы хотите программировать

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

9. Выберите правильный язык программирования

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. Приводим инфографику для сравнения нескольких популярных языков программирования.

8. Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django. Взяв учебник, он удалял написанный код и снова проходил обучающий материал с нуля. Начните с основ и будьте терпеливы к себе. Взяв первый проект в программировании, разделите его на несколько этапов. И если один из способов обучения вам не подходит, не опускайте руки — попробуйте другой.

7. Попробуйте приложения для детей

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

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты (Codecademy, Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento. Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

5. Пройдите онлайн-курс

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Существуют также другие возможности. Вы даже можете получить образование университетского уровня, выбрав один из 15 онлайн-курсов.

Курсы по Data Science 

Я написал язык программирования. Вот как ты тоже можешь.

Уильям Уолд

Последние 6 месяцев я работал над языком программирования Pinecone. Я бы не назвал его зрелым, но в нем уже есть достаточно функций, которые можно использовать, например:

  • переменных
  • функций
  • пользовательских структур

Если вам это интересно, посмотрите лендинг Pinecone page или ее репозитория на GitHub.

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

И все же я все же сделал совершенно новый язык. И это работает. Так что я должен что-то делать правильно.

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

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

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

Начало работы

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

Скомпилированный и интерпретируемый

Есть два основных типа языков: компилируемый и интерпретируемый:

  • Компилятор вычисляет все, что делает программа, превращает ее в «машинный код» (формат, который компьютер может работать очень быстро), затем сохраняет это для выполнения позже.
  • Интерпретатор последовательно просматривает исходный код, выясняя, что он делает.

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

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

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

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

Выбор языка

Я знаю, что это немного мета, но язык программирования сам по себе является программой, и поэтому вам нужно написать ее на языке. Я выбрал C ++, потому что

.

Как выучить любой язык программирования

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

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

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

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

Понимание основ: Starter Pack

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

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

Стоит отметить, что HTML технически не является языком программирования; то есть вы не можете выполнять вычисления, как на традиционном языке. Наряду с CSS, это просто язык для обработки внешнего интерфейса веб-страницы. Но он действительно служит отличной отправной точкой, и очень важно изучить его, прежде чем создавать более сложные веб-сайты с такими языками, как PHP, Ruby on Rails и Python.

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

Создание набора для микрообучения

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

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

При изучении языка программирования я создаю папку или документ с отдельными разделами для каждой новой команды, с которой я сталкиваюсь.Это то, что я называю «комплектом для микрообучения». Здесь я включаю все полезные ссылки (с таких сайтов, как Quora, StackOverflow или другие форумы, связанные с программированием), которые я могу найти по этой теме вместе с моими личными заметками.

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

Интерпретация реальных сценариев

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

Давайте попробуем выучить, например, Python. Я выбрал это, потому что до сих пор не видел скриптов Python, поэтому я собираюсь выучить язык, пока пишу эту статью.

Теперь самое полезное место для изучения скриптов на любом языке - это GitHub. Эта ссылка предоставляет вам сотни скриптов, написанных на языке Python.

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

Щелкнув по исходным файлам, вы найдете страницу с именем face_detection_cli.py. Судя по названию файла, похоже, что это одна из самых важных страниц для программы.

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

Да, в этом случае мы правы. Перейдем к следующим строкам.

Они читают:

из в будущем import print_function
import click
Import os

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

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

Однако __future__ не имеет большого смысла, поскольку мы все еще изучаем этот язык. Это может быть база данных или папка, но здесь мы можем ошибаться.

Как только вы получите фундаментальный контекст кода, вы можете найти синтаксис из… import в Google, чтобы понять, что они означают и почему они помещены здесь в этот код.

На Quora я наткнулся на эту информацию, которая очень простыми словами рассказывает мне, что делает эта строка кода. По сути, это импорт определенной переменной или функций ( print_function в данном случае) из другого модуля ( __function___ ). Я обязательно записал это в своем наборе для микрообучения.

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

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

Написание собственных приложений

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

Перед тем, как приступить к написанию собственного приложения, очень важно правильно выбрать цель программирования. Вы всегда можете начать с простого кода «Hello, World», но это не поможет проверить ваши навыки программирования, поскольку все, что он делает, - это выводит строку текста.

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

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

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

Почему традиционного обучения недостаточно

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

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

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

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

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

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

.

Как научить детей программировать с нуля!

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

Объявление

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

How To Teach Kids Programming From Scratch! scratch logo Scratch - это новый язык программирования, разработанный в Массачусетском технологическом институте для детей от 8 лет и старше. Показаны основные логические операторы, и программист может затем перетащить их на место и ввести новые переменные. У меня программа работала примерно за 20 секунд! И если вы когда-нибудь видели, как я кодирую, вы знаете, что это чудо.

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

How To Teach Kids Programming From Scratch! dino program

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

How To Teach Kids Programming From Scratch! programming components

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

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

How To Teach Kids Programming From Scratch! different sprites1

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

Ознакомьтесь с частью программы для Virtual Dog.Да! Виртуальная собака! Жевательные жвачки из гимназии теперь могут творить жизнь!

How To Teach Kids Programming From Scratch! virtualdog2

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

Мой сын, семилетний король Lego, в последнее время проявляет интерес к программированию. Я думаю, это правильный путь.

Как вы думаете? Вы пробовали Scratch или другие приложения для молодых программистов? Я действительно хотел бы об этом услышать.

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

.

Как стать программистом: 8 шагов к созданию приложения с нуля

Введение

«Как лучше всего научиться программировать?»

«Как стать программистом»

«Как создать приложение»

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

Если у вас нет, или если вы почему-то думаете, что у меня есть что-то новое, и вы все равно хотите это услышать (я не знаю), вот короткий и почти бессмысленный ответ (я дам ему SEO-ориентированный клик - название приманки: «3 шага к тому, чтобы стать программистом»):

Шаг 1. Выберите язык

Шаг 2: Изучите язык

Шаг 3: Собирайте материал и продолжайте учиться

Эй, не бросайся в меня. Как бы я ни хотел сказать, что существует универсальный метод обучения программированию, на самом деле его нет.(Позвольте мне добавить Шаг 0: признаю, что все учатся по-разному).

Бесчисленные более подробные ответы на шаги 1 и 2 уже существуют в Интернете, но общий ответ на первый шаг - изучить Python или Ruby в качестве своего первого языка (не слишком зацикливайтесь на языке, вы никогда не получите началось). Если вам нужны учебные ресурсы, мы подготовили несколько руководств, которые вы можете проверить:

Некоторые из вас дойдут до этого момента:

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

Практически каждый раз, когда вы спрашиваете: «Как мне стать программистом?», Разработчики говорят вам создавать что-то, поскольку создание вещей - это то, как вы можете улучшить как программист, и это лучший способ учиться и так далее.

Но как создать собственное приложение?

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

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

Предварительные требования

Большинству приложений потребуется база данных, поэтому, если вы собираетесь создавать собственное приложение самостоятельно (например, интерфейсную и внутреннюю части), вам, вероятно, придется знать язык запросов к базе данных (обычно SQL). Если только вы не создаете что-то, что не требует взаимодействия с базой данных, например, Flappy Bird.

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

Если вы хотите стать только интерфейсным веб-разработчиком, вы можете отточить свои навыки HTML, CSS и JavaScript в Codepen или JSfiddle. Если вы знаете только JavaScript и не хотите изучать другой язык, вы можете попробовать Node.js, поскольку это платформа JavaScript для внутренней разработки (вы также можете использовать MongoDB в качестве своей базы данных, поскольку она также основана на JavaScript).

В противном случае вам также следует знать один из следующих языков (и обычно веб-фреймворк), если вы собираетесь создать полное веб-приложение:

  • Рубин
  • Python
  • PHP
  • Ява
  • Перейти
  • C #

Если вы хотите создавать игры, вы можете рассмотреть возможность изучения Lua, хотя C # также является очень хорошим выбором благодаря движку Unity 3D и его огромному сообществу.Что касается разработки собственных мобильных приложений, вам необходимо знать Swift / Objective-C для разработки под iOS и Java для разработки под Android.

Без лишних слов, давайте перейдем к созданию приложения с нуля.

Шаг 0: Разберитесь в себе

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

Например:

  • Какие приложения вам больше всего нравятся?
  • Без каких приложений вы не можете жить?
  • Вы любите играть в игры?
  • Вам нравится конструировать вещи?
  • и т. Д.

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

Шаг 1. Выберите идею

Теперь, когда вы, надеюсь, разобрались, пора выбрать идею для воплощения. Простой старт .

Да… даже если вы думаете о создании игры, прямо сейчас вам не следует думать о создании следующего CounterStrike, а вместо этого вы должны думать о том, как создавать игры, столь же простые, как печально известная Flappy Bird.Эй, не смотри свысока на Flappy Bird - это была сенсация, которая заставила людей во всем мире открыть для себя своего внутреннего мазохиста. Но я отвлекся.

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

Вот несколько указателей, которые помогут вам получить вдохновение:

  • Если вам нравится готовить, возможно, вы захотите создать приложение, в котором люди будут демонстрировать свои домашние рецепты.
  • Если вы всегда хотели знать, как работает Twitter, попробуйте создать суперпростой клон Twitter.
  • Если вы забывчивый человек, который полагается на менеджеров задач, попробуйте создать их самостоятельно.
  • Если вы пристрастились к League of Legends, вы можете попробовать использовать Riot API и создать сайт, который сможет получать и отображать информацию об игре.
  • Если вам нравится играть в карточные игры, попробуйте собрать простую (например, Блэк Джек).
  • Если вы сидите на диете, попробуйте создать приложение, которое будет регистрировать количество потребляемых вами калорий.

И так далее, и так далее. Вот список идей для проектов, если вам нужно больше вдохновения.

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

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

Шаг 2: Определите основные функции

Подумайте, что ваше приложение должно уметь делать, и перечислите их.Если вы в конечном итоге перечисляете кучу вещей, присмотритесь и спросите себя, ДЕЙСТВИТЕЛЬНО ли этому приложению требуется, например, вход в Facebook для работы? Неужели для работы ДЕЙСТВИТЕЛЬНО нужно загружать данные в какое-то облако?

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

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

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

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

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

Для образца основной список функций для клона Reddit:

  • пользователи могут создать учетную запись
  • пользователей могут восстановить утерянные пароли
  • пользователей могут менять свои пароли
  • пользователей могут размещать новые ссылки
  • пользователей могут комментировать ссылки
  • пользователей могут голосовать за / против ссылки
  • пользователей имеют профиль, показывающий их историю / активность

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

  • пользователей могут поделиться в социальных сетях
  • пользователей могут удалять комментарии
  • Пользователи могут редактировать комментарии
  • пользователей могут удалить свою учетную запись

Являются вторичными и могут быть сохранены для версии 1.x - работайте с ними только после того, как вы действительно сможете запустить версию 1.0

Шаг 3. Нарисуйте свое приложение

Лицензия CC

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

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

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

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

Шаг 4. Планирование пользовательского интерфейса вашего приложения

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

(лицензия CC)

Включите в блок-схему все действия, которые может выполнять пользователь. Например, если ваше приложение требует от пользователей входа в систему, как им создать учетную запись? Что делать, если пользователи забыли свой пароль? Что, если они ввели неправильный пароль? Что должен делать пользователь в каждом интерфейсе (добавить новый элемент списка> сохранить; изменить> сохранить / удалить)? И так далее. Быстрее всего это делается с помощью ручки и бумаги.

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

Шаг 5. Проектирование базы данных

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

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

Вы можете нарисовать диаграмму ERM (модель сущности-отношения), чтобы отобразить взаимосвязь данных.

Пример схемы Entity-Relationship Diagram сайта выбора курса Лицензия CC

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

Продвинутый

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

Из Википедии

Шаг 6. Каркасы UX

Хорошо, у вас запланирована внутренняя часть. А теперь пора спланировать интерфейс.

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

Лицензия CC

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

К счастью, в Интернете существует множество инструментов для создания каркасов и макетов, которые помогут вам спланировать свой UX / UI поток (например, Gliffy, Mockflow, Framebox, Wireframe.cc, Invisionapp).

Шаг 6.5 (необязательно): разработка пользовательского интерфейса

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

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

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

UI ​​Cloud
Graphicburger
UI Dock

Для игр:
Spriters Resource

Однако не слишком зацикливайтесь на внешнем виде приложения.Прямо сейчас вам следует сосредоточиться на создании функций приложения.

Шаг 7: поиск решений

Отлично! Вы закончили этап планирования ... но как вы должны кодировать все это?

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

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

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

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

Ищем решения

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

Какие вещи вы совершенно не представляете, как построить?

Например, нужно ли пользователям создавать учетную запись? Ваше приложение полагается на обновления в реальном времени? Какие функции вам нужны?

В большинстве случаев рекомендуется просто использовать существующее решение для больших функций, таких как обработка синхронизации в реальном времени (например, Firebase), работа в сети / маршрутизация (например, AFNetworking для приложений iOS), аутентификация и компоненты, связанные с пользовательским интерфейсом ( например, Flipboard или приложение в стиле pinterest).

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

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

Чтобы увидеть реальный пример процесса исследования опытным разработчиком конкретной функции, вы можете посмотреть этот пост о том, как создатель Angular-Plunker создал директивы перетаскивания Plunker'а.

Выбор инструментов для начала работы

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

Если вы создаете приложение React, вы также можете проверить стартовые комплекты и существующие реализации Flux. HTML5Boilerplate и Bootstrap - популярные интерфейсы

.

Смотрите также