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

Шаги

Часть 1

Выбор языка программирования

Часть 2

Разработка программы

Часть 3

Создание прототипа

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

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

    • В прототип можно вносить срочные изменения и тестировать их.
    • Разумеется, задача тестирования прототипа требует участия сразу многих людей.
    • Прототип может и будет меняться, это факт.
  1. Не бойтесь перерабатывать прототип снова и снова. В этом его суть - сперва эксперименты, потом релиз. Именно на примере прототипа вы сможете увидеть, все ли работает так, как надо. Если же прототип оказывается неудачным - не беда, просто перепишите его с нуля, начните все заново. Лучше так, поверьте.

Часть 4

Создание программы

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

    • Псевдокод, впрочем, использует тот же синтаксис, что и обычный код, поэтому писать псевдокод надо так же, как и программу.
  1. Усовершенствуйте прототип. Можете взять сам прототип, можете взять псевдокод - в любом случае, суть в том, чтобы сделать прототип лучше, совершеннее, быстрее!

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

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

Часть 5

Тестирование программы

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

    • Этот этап работы над программой часто называют “альфа-тестированием”.
  1. Протестируйте финальную версию программы. Итак, все функции, какие только должно были быть в программе, в нее добавлены. Что теперь? Теперь снова тесты. Долгие, придирчивые, тщательные тесты - и работа над ошибками, разумеется. Сейчас вашу программу должно тестировать даже большее количество человек, чем ранее.

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

Часть 6

Создание дополнительных материалов

    Подумайте, что вам нужно. Это будет зависеть от программы, так что подумайте, нужны ли вам, скажем, аудиозаписи? Графика? Контент? Задумайтесь об этом до релиза.

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

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

Шаги

Часть 1

Выбор языка

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

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

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

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

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

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

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

Часть 2

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

    • В этой области знаний для получающих степень предусмотрено множество стипендий и грантов. Не пугайтесь платы за обучение: это возможно!
  2. Обучайтесь в онлайн-университете. Учитесь ли вы в нормальном онлайн-университете за деньги и с получением диплома или просто участвуете в бесплатной программе вроде замечательной Coursera MIT (Массачусетского Технологического Университета), программирование все равно можно изучить.

    Попробуйте воспользоваться онлайн-ресурсами. Для изучения программирования можно воспользоваться бесплатными сервисами вроде University Consortium от Google или Developer Network от Mozilla. Этим компаниям для помощи с платформами нужны новые разработчики, так что их ресурсы - одни из лучших в интернете.

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

    • Many free online classes are available to learn coding from. The Khan Academy teaches computer coding, with easy tutorials and videos. Code Academy is another free site to learn from, with step-by-step tutorials.
  3. Если можете, лучше начинайте смолоду. Есть несколько программ для обучения детей программированию. Для тех, кто помоложе, особенно полезны программы вроде Scratch от MIT, кроме того, чем вы моложе, тем проще освоить язык программирования (да и вообще любой язык).

    • Avoid kits, as these rarely teach anything useful.

Часть 3

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

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

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

  2. Чтобы быть хорошим программистом надо идти в ногу с развивающимися технологиями. Это - непрерывный процесс обучения; изучать новые языки и новые подходы нужно постоянно и, самое главное, нужно постоянно программировать что-то новое!
  • Раздобудьте хороший справочник. Это обязательно должна быть самая последняя версия - языки продолжают развиваться.
  • Не надо сразу браться за сложные языки вроде Java, начните с python, в новичков он вселяет уверенность в собственных силах, кроме того, в нем есть практически любые аспекты программирования.
  • Начните с чего-то интересного, находите мотивацию для преодоления препятствий и развития навыков логического решения задач.
  • В Java есть очень важная концепция - многопоточность. Изучайте внимательно.
  • Если изучаете Java, попробуйте NetBeans 7.3.1, это прикольно и несложно.
  • Синтаксис на самом деле очень важен. Вы можете использовать его по своему. Изучите программы-примеры, потом начинайте писать что-то свое.
  • Для написания программы используйте Eclipse. Эта очень полезная программа может найти баги в коде, сразу его исправить, и, кроме того, для перехода между разными файлами кода можно использовать специальную программу анализа.

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

Энтони Фам , разработчик ПО в компании Isagenix

Я могу говорить только за себя. Так вот, я начал работать программистом только 3-4 месяца назад и мне до сих пор кажется, что я совсем ничего не знаю. Поэтому я считаю, что быстро научиться программировать почти невозможно. (Все зависит от того, какой промежуток времени вы имеете в виду под словом «быстро»).

В конце февраля этого года мне предложили место в команде, занимающейся разработкой ПО с открытым кодом. У меня было где-то 2 месяца на то, чтобы стать Java-разработчиком и разобраться с Java, Spring, JavaScript, CSS, HTML, AngularJS, а также научиться использовать XML, Babel, Nodejs, PostgreSQL и многое, многое другое. Поскольку мне удалось справиться со всем этим, меня устроили младшим full stack-разработчиком на базе.NET.

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

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

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

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

Мне нравится цитата Стива Джобса: «Каждый в нашей стране должен научиться программировать, потому что это учит думать». Слова «это учит думать», на мой взгляд, как раз-таки и подразумевают умение решать проблемы.

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

Эдака Морторей , более 20 лет работает с самыми разными языками и компаниями

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

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


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

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

Ульрих Роман , ученая степень по физике, разработчик ПО уже более 20 лет

Я думаю, многие совмещают здесь два разных понятия:

  1. Овладение новым навыком
  2. Изучение способов применения и дальнейшее развитие этого навыка

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

Теперь перейдем к программированию.

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

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


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

Итак, возвращаясь к вашему вопросу: как же люди столь быстро овладевают навыками программирования?

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

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

Гастон Фонтенла Нюнез , программист в компании Circo Studio

Я тоже достаточно долгое время задавался этим вопросом. Ответ на него я обнаружил совсем недавно.

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


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

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

  1. Обучение программированию – это сложный и многоступенчатый процесс. Это как изучение языка, когда для того, чтобы считать себя профессионалом, необходимо выучить как можно больше способов сказать какую-либо фразу. Все это требует времени и сил. Кроме того, есть уровни овладения. Нельзя сказать, что вы «научились программировать», если вы можете написать простейшую программку.
  2. Крайне важен изучаемый материал. Интернет предоставляет огромное количество источников; все, что вам необходимо научиться делать – это научиться различать конкретное и немногословное объяснение от просто краткого, а также отсеивать слишком завернутые, длинные и, в целом, бесполезные материалы. Кроме того, если у вас есть наставник, который может помочь вам с разъяснением, то тогда, возможно, ваше обучение будет проходить намного быстрее.

Я не считаю себя ни экспертом, ни «нубом». Я где-то посередине, при этом продолжаю учиться каждый день, уточняю непонятные мне вопросы и стараюсь помочь, если это в моих силах. Я знаю, как делать действительно крутые и сложные вещи на C++, обучение этому в рабочих условиях заняло у меня где-то 2-3 года. Если вы так же, как я, увлекаетесь тем, что делаете, то вам понадобится где-то 4-5 лет.


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

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