Загрузить PDF Загрузить PDF

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

  1. Запишитесь на вводный курс по одной (или по всем) из следующих дисциплин:
    • логика;
    • дискретная математика;
    • язык программирования (изучите различные парадигмы программирования, начав с параллельного и объектно-ориентированного программирования, а затем переходите к функциональному и логическому. Начинающим лучше подходит Ruby/ Python/Pascal, а после некоторой практики уже можно переходить к C++/C#/Java).
    СОВЕТ СПЕЦИАЛИСТА

    Gene Linetsky, MS

    Основатель стартапов и главный инженер
    Джин Линецки — основатель стартапов и инженер-программист из области залива Сан-Франциско. Проработал в индустрии технологий более 30 лет. В настоящее время является главным инженером в Poynt, технологической компании, производящей платежные смарт-терминалы для бизнеса.
    Gene Linetsky, MS
    Основатель стартапов и главный инженер

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

  2. Можно присмотреться к любому из следующих продуктов:
    • MS Access;
    • DB V;
    • Fox Pro;
    • Paradox;
    • MySQL также подойдет, поскольку это бесплатная распространенная система, и базы данных связаны с SQL-запросами.
  3. Есть несколько типов программирования:
    • веб-программирование ;
    • программирование приложений для компьютеров:
      • программирование операционных систем (специалист занимается разработкой одной операционной системы или набора систем);
      • программирование, не привязанное к конкретной платформе.
    • программирование прикладных распределенных систем;
    • программирование библиотек, платформ, фреймворков, ядер;
    • системное программирование:
      • программирование ядер;
      • программирование драйверов;
      • программирование компиляторов.
    • научное программирование .
  4. Изучите технологии и языки программирования, связанные с той сферой, которая вам нравится. В последующих разделах этой статьи пойдет речь о конкретных задачах в различных сферах программирования.
    Реклама
Метод 1
Метод 1 из 6:

Веб-программирование

Загрузить PDF
  1. Веб-приложения — это компоненты программного обеспечения, которые надстраиваются над архитектурой интернета. Это означает, что доступ к приложениям осуществляется с помощью веб-браузера (например, Firefox или Internet Explorer). Эта надстройка необязательно требует активного соединения с интернетом. Это лишь означает, что веб-приложения строятся на основании стандартных веб-технологий, включая следующие:
  2. Просмотрите самые разные сайты, чтобы понять, как они построены. (Нажмите правой кнопкой мыши по любой области, затем «Посмотреть источник» либо нажмите F12.) Обратите внимание на разнообразие информации и оформления и не гонитесь за количеством. Следует посетить хотя бы по одному из каждого вида сайтов:
    • корпоративный сайт (сайты торговых корпораций, некоммерческих, государственных организаций);
    • сайты, отвечающие за индексацию в сети (поисковые сайты, сайты с поиском по мета-данным, особые поисковые системы, директории);
    • сайты для интеллектуального анализа данных;
    • личные сайты;
    • информационные и энциклопедические сайты (вики-сайты, списки данных, технической информации, руководства пользователя с указанием директорий, блоги и дневники, новости и сайты новостных агентств, желтые страницы и так далее);
    • социальные сайты (социальные сети, сайты для создания закладок и заметок);
    • коллаборативные сайты (к этой категории относятся все страницы, упомянутые выше, включая вики-сайты и блоги).
  3. Ознакомьтесь хотя бы с одним методом или техникой мозгового штурма и приложением, которое было создано на основе этого метода. Например, мозговой штурм диаграмм и MS Visio.
  4. Сюда относится создание особых веб-диаграмм, карт сайта и навигации.
  5. Постарайтесь научиться пользоваться хотя бы одной программой для создания и обработки изображений (это необязательное требование, однако эти навыки вам будут полезны).
  6. Вам нужно будет иметь хотя бы базовые знания о:
    • основных протоколах веб-сервисов (HTTP, FTP, SMTP и POP3 либо IMAP4);
    • программах для веб-серверов (желательно для платформы, с которой вы будете работать чаще всего);
    • веб-браузерах;
    • серверах электронной почты и клиентском программном обеспечении.
  7. Для этих целей можно использовать программный пакет «What You See Is What You Get (WYSIWYG)».
  8. Делать это не обязательно, однако эти знания будут полезны.
  9. Начните создавать простые статические сайты и делайте это до тех пор, пока не освоите основы HTML .
  10. Чаще всего изучают JavaScript. Можно также заняться VBScript , однако этот язык несовместим с большинством браузеров.
  11. Займитесь выбранным вами клиентским скриптовым языком программирования. Постарайтесь добиться своего максимума с помощью одного этого языка. Переходите к следующему шагу лишь тогда, когда будете хорошо ориентироваться хотя бы одном языке этого типа.
  12. Если решите работать лишь с одним типом программного обеспечения сервера, изучите хотя бы один из языков программирования, который используется для написания этого программного обеспечения. Если будете готовы к большему, изучите как минимум по одному языку программирования на каждый тип программного обеспечения сервера.
  13. Изучив язык программирования серверной части, создайте тестовый проект.
  14. Создайте свой личный сайт и начните экспериментировать с ним.
    Реклама
Метод 2
Метод 2 из 6:

Программирование приложений для стационарного компьютера

Загрузить PDF
  1. Как правило, программисты пишут коды для приложений, которые используются в бизнесе, поэтому вам следует выяснить, как работает бизнес, как он организован и как построена его финансовая система, с тем чтобы сэкономить время .
  2. Будет полезно изучить основы построения цифровых схем и компьютерной архитектуры . Однако некоторые специалисты считают, что на начальном этапе это не нужно, поэтому достаточно будет прочитать 2–3 статьи на эту тему. Вы сможете вернуться к этому, когда освоите свой первый язык программирования.
  3. Изучите язык программирования базового уровня. Не стесняйтесь изучать то, что считается детским, лишь потому, что вы старше. Примером такого языка служит Scratch. Такие языки облегчат работу с вашим первым настоящим языком программирования. Тем не менее, этот шаг нельзя считать обязательным. Кроме того, заняться этим можно и до предыдущего шага.
  4. Запишись на вводный курс по процедурным языкам программирования . Какой бы язык вы ни выбрали позже, вам нужны будут знания процедурного программирования. Кроме того, многие специалисты считают, что для того чтобы понять программирование в целом, следует начать с этого.
  5. Изучите одну из систем продвинутого моделирования (к примеру, UML или ORM).
  6. Начните писать небольшие консольные или консолеподобные приложения. Можно использовать упражнения из учебников по программированию. Выберите инструмент для написания программ на том языке программирования, с которым вы работаете.
  7. Запишитесь на курс по программированию на выбранном вами языке продвинутого уровня. Вы должны понимать следующие концепции, чтобы уметь применять их с относительной легкостью:
    • ввод и вывод информации клиентами в программе;
    • логический поток и поток выполнения программ на процедурных языках программирования;
    • выбор, назначение и сравнение переменных;
    • создание ключевых конструкций, включая if..then..else и select/switch..case ;
    • закольцовывание конструкций, включая while..do , do..while/until , for..next ;
    • синтаксис вашего языка программирования для создания и названия процедур и функций;
    • типы данных и способы обработки данных;
    • типы данных, определяемые пользователем (записи, структуры, единицы), и их применение;
    • если ваш язык поддерживает функции перегрузки , вы должны в них разбираться;
    • способы анализа памяти в выбранном вами языке (указатели, звуки и так далее);
    • если ваш язык программирования поддерживает перегрузку операторов , вы должны знать это;
    • если в вашем языке есть указатели на функции, вы должны разбираться в них.
  8. Пройдите вводный курс как минимум по одному языку программирования в другой парадигме программирования. Следует выучить один язык в каждой парадигме, и, как правило, все хорошие программисты так и поступают, однако вам достаточно начать с одного, поработать с ним, потренироваться, а затем перейти к другим, когда у вас уже будет реальный опыт в программировании. Присмотритесь к одной из следующих сфер:
    • парадигма логического программирования;
    • парадигма функционального программирования;
    • объектно-ориентированная парадигма.
  9. Попробуйте сравнить два языка программирования, которые вы уже освоили. Оцените сильные и слабые стороны каждого из них. Обычно делают это так:
    • Возьмите простой пример вашей ранней работы на первом языке программирования и перепишите ее, используя второй язык.
    • Создайте новый проект и используйте там оба языка. Возможно, некоторые вещи вам не удастся сделать на одном из языков — все будет зависеть от выбранного вами проекта и языков.
    • Сделайте шпаргалки или сравните похожие конструкции в обоих языках и их отличия в сводной таблице.
    • Найдите способ повторить конструкции, которые есть в одном языке, с помощью другого языка.
  10. Изучите концепции визуального программирования с помощью одного из выбранных вами языков. Практически у всех языков программирования есть версии либо библиотеки, которые поддерживают визуальное программирование и другие виды консольного или консолеподобного программирования. Сделать это можно следующим образом:
    • Пройдите вводный курс по событийно-управляемому программированию. В основном визуальное программирование базируется на событиях и обработке событий (с помощью выбранного языка программирования).
    • Попробуйте поработать с большим количеством программного обеспечения для стационарных компьютеров, чтобы понять, что делают эти программы. Большинство компаний-разработчиков предлагают бета-версии приложений, которыми можно попробовать пользоваться. Следите за развитием пользовательского интерфейса.
    • Читайте статьи или руководства по работе с графическим пользовательским интерфейсом.
  11. Попробуйте использовать полученные знания для решения повседневных проблем. К примеру, пишите программы, которые будут массово переименовывать файлы, сравнивать текстовые файлы визуально, копировать названия документов в определенное место в отдельный файл памяти или текстовый файл и так далее. Для начала пусть все будет простым.
  12. Сделайте все до конца, применяя методы визуального программирования, которые вы уже освоили.
  13. Углубите свои знания визуальных схем, библиотек и программных пакетов, пройдя курсы для продвинутых, уделяя особое внимание более мелким вещам и старясь узнать как можно больше приемов работы со фреймворками из интернет-источников.
  14. Поищите другие программные пакеты и библиотеки визуальных элементов для ваших языков программирования и изучите их.
  15. Это будет очень полезно, если вы планируете создавать элементы с красивым пользовательским интерфейсом.
  16. Программирование компьютерных игр считается программированием для стационарных компьютеров. Если вы хотите создавать игры, вам нужно будет освоить основы этого программирования после завершения вышеописанных шагов. Вам обязательно нужно будет пройти курс программирования игр, а второй язык программирования, который вам следует выбрать, должен быть логическим/функциональным языком (желательно Prolog или Lisp).
    Реклама
Метод 3
Метод 3 из 6:

Программирование прикладных распределенных систем

Загрузить PDF
  1. Начните заниматься программированием прикладных распределенных систем. Это программирование считается одним из самых сложных и требует самых разных знаний в сфере компьютеров и информационных технологий.
  2. Пройдите экспресс-курс по телефонии и соответствующему оборудованию. Делать это не обязательно, однако благодаря такому курсу вы будете лучше понимать сетевую топологию.
  3. Ознакомьтесь с архитектурой сетевого оборудования и устройств, включая хабы, свитчи и маршрутизаторы.
  4. Вам нужно будет хорошо понимать модель OSI (Open Systems Interconnection — международная программа стандартизации обмена данными между системами различных производителей), Ethernet, IP, TCP, UDP и HTTP. Лишь после этого вы сможете начать работать.
  5. Если речь идет о программировании под Windows, подойдет любой язык, который поддерживает Windows Scripting Host. При программировании под Linux используются Bash и Perl. Рекомендуется изучить JavaScript для работы с обеими платформами по следующим причинам:
    • JavaScript поддерживается практическими всеми скрипт-хостами всех операционных систем (Windows Scripting Host поддерживает JavaScript по умолчанию, а у большинства дистрибутивов Linux есть пакет для поддержки JavaScript).
    • Считается, что изучить его проще.
    • JavaScript строится на синтаксисе ALGOL, а это позволит вам познакомиться со многими другими языками программирования, и выбрать второй язык вам будет проще ( C , C++ , C#, Java и J# имеют в своей основе синтаксис ALGOL).
    • Изучая JavaScript, вы знакомитесь с клиентским скриптовым программированием веб-страниц, а это означает двойную пользу!
  6. Сначала используйте только процедурное программирование на одном языке. Позже вы сможете применять более сложные приемы и парадигмы, соответствующие вашему скриптовому языку и тому, что он поддерживает. Все скриптовые языки используют процедурное программирование в той или иной степени.
  7. С помощью изученного вами скриптового языка начните писать скрипты, которые будут заставлять машины общаться. Узнайте, что вам для этого нужно. Будет достаточно простого обмена данными.
  8. Желательно выбрать язык с несколькими парадигмами — например Python . Изучите основы этого языка. Многие выбирают Java по самым разным причинам, однако в настоящий момент все более и более популярным становится язык C#. Причины, по которым лучше выбирать Java и C#, заключаются в следующем:
    • Это объектно-ориентированные языки, которые освобождают программистов в больших командах от необходимости думать о тонкостях внедрения, поскольку оба языка поддерживают компоненты (готовые объединенные единицы кода, которые позволяют выполнять определенные задачи и в других программах).
    • Они поддерживают событийно-управляемое программирование, а также объектно-ориентированное и процедурное программирование в определенной степени.
    • Фреймворк, на основе которого надстраивается язык, является распределенным по умолчанию (в случае Java).
    • Возможность использовать готовые пакеты, которые отвечают за сети, то есть пакеты для открытого кода и для встроенных во фреймворк пакетов. Благодаря этому программистам проще строить свою работу на основании уже существующего кода.
  9. Уделяйте больше внимания ключевым особенностям языка, особенно там, где речь идет о сетях. Меньше внимания можно уделить пользовательскому интерфейсу, включая такие элементы, как вывод данных, дизайн окон и прочие техники.
  10. Это можно сделать самостоятельно с помощью книг, интернет-источников или на курсах. Что бы вы ни выбрали, вам будет важно понимать основные принципы построения прикладных распределенных систем.
  11. Изучите разработку обслуживаемых компонентов и сервисов на выбранном вами языке.
  12. Рекомендуется знать хотя бы немного о них всех. Большинство программистов прикладных распределенных систем не ограничиваются одним или двумя языками, а учат как минимум по одному языку на каждую операционную систему. Это объясняется тем, что для того чтобы сделать приложение распределенным, вам нужно будет создать по версии этой программы как минимум для основных операционных систем.
    • Общая архитектура посредника запросов к объектам ( CORBA )
    • Простой протокол доступа к объектам ( SOAP )
    • Асинхронный JavaScript и XML ( AJAX )
    • Распределенная компонентная объектная модель ( DCOM )
    • .NET Remoting
    • Веб-сервисы XML
    Реклама
Метод 4
Метод 4 из 6:

Программирование библиотек, платформ, фреймворков, ядер

Загрузить PDF
  1. Программисты ядер — это опытные программисты, которые перешли от разработки приложений к программированию единиц кода, которые могли бы использовать другие программисты.
  2. Изучите язык программирования, поддерживающий разработку компонентов и пакетов, которые можно было бы использовать готовыми, если вы еще этого не сделали.
  3. Чаще всего используется либо что-то одно, либо и то, и другое.
  4. Изучите как минимум способы модулярного программирования, программирования на основе компонентнов, объектно-ориентированного и событийно-управляемого программирования и основные принципы работы в этих системах. Чем больше парадигм и языков вы будете знать, тем проще вам будет стать программистом библиотек и пакетов.
  5. Изучите различные операционные системы и фреймворки, которые работают в этих системах.
  6. Уделите особое внимание фреймоворкам, не зависящим от платформы, а также языкам программирования и технологиям.
  7. Если языки программирования, которые вы уже изучили, поддерживают стандартные версии ANSI / ISO / IEEE / W3C , освойте основы. По возможности используйте стандартный код.
  8. Попробуйте воссоздать простые готовые библиотеки, особенно с открытым кодом. Это будет очень полезно на первом этапе. Начните с простых пакетов (например, перевод единиц измерения или расчеты среднего уровня сложности). Если вы учитесь в университете, используйте информацию, полученную на других занятиях, и попробуйте применять уравнения и данные в качестве библиотек.
  9. Поищите пакеты с открытым кодом и попытайтесь поработать с ними в своей сфере программирования. Сначала скачайте двоичные и исполняемые файлы. Начните работать с ними, чтобы понять, в чем заключаются их сильные и слабые стороны. Затем скачайте исходный код и постарайтесь разобраться, как он был создан. Попробуйте воссоздать библиотеки или их части. Сначала делайте это после того, как увидите код, а потом — до этого. Когда начнете разбираться в этом, попробуйте улучшить библиотеки.
  10. Изучите различные подходы к распределению и развертыванию компонентов для программистов.
    • Как правило, программисты библиотек и пакетов пытаются представить все задачи в обратном порядке и/или итерационно. Попробуйте представить задачу как совокупность мелких задач (последовательность простых действий) либо как повторяющий процесс, который позволяет свести большой масштаб к маленьким, а потом наслоить полученное друг на друга.
    • Программисты библиотек и пакетов часто обобщают. Когда перед ними есть простая и понятная задача, они пытаются представить общую проблему и решить ее, что автоматически решит все более мелкие задачи.
    Реклама
Метод 5
Метод 5 из 6:

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

Загрузить PDF
  1. Системные программисты работают с научной стороной программирования, а не с конкретными задачами. Не привязывайтесь к определенной платформе.
  2. Следуйте рекомендациям в первых трех шагах для программистов приложений для стационарных компьютеров.
  3. Пройдите курс по расчетным методам .
  4. Это можно сделать следующим образом:
    • Выясните, как устанавливаются системы.
    • Научитесь устанавливать операционные системы на компьютер (рекомендуется).
    • Установите более одной системы. Не пользуйтесь вспомогательными пакетами — возьмите лишь основной функционал операционных систем.
  5. Пройдите курс по архитектуре компьютерного оборудования (либо прочитайте литературу по этой теме).
  6. Ознакомьтесь с основами языка ассемблера выбранной вами операционной системы или аппаратной платформы. Позже вам нужно будет изучить язык ассемблера других платформ и систем.
  7. Изучите языки ANSI C и C++, а также основные принципы процедурного программирования.
  8. Изучите стандартные библиотеки на C/C++ и начните использовать их на выбранной вами платформе. Особое внимание уделите библиотеке стандартных шаблонов ( STL ) и библиотеке активных шаблонов ( ATL )
  9. Чтобы понять, как C/C++ работает на вашей платформе, читайте интернет-источники, книги и курсы.
  10. Вам будет проще работать с операционной системой на основе Unix. Вам нужно будет очень хорошо разбираться в этой системе.
  11. Сначала создавайте небольшие системные утилиты. Будет полезно сделать следующее:
    • Воссоздайте небольшие инструменты, которые уже есть в вашей системе.
    • Попробуйте соединить утилиты, которые есть в других системах, с вашей системой.
  12. Лишь в этом случае имеет значение, какой у вас первый язык программирования. Лучше сначала изучить ANSI C, а не C#, Java или D. Затем переходите к C++.
    • Требование знания языка C и только C связано с тем, что системный программист должен владеть следующими знаниями:
      • Реальная и полная компиляция исходного кода.
      • Файлы выходных данных объектов нижнего уровня.
      • Связующие двоичные файлы.
      • Программирование на машинном языке нижнего уровня и программирование на ассемблере. На языке С многим проще изучать ассемблер. Кроме того, этот язык позволяет помещать языковой код ассемблера в основной код в любой момент, и это процедурный язык (как и ассемблер).
    Реклама
Метод 6
Метод 6 из 6:

Научное программирование

Загрузить PDF
  1. Научные программисты — это очень опытные специалисты, которые разрабатывают не приложения, а технологии: шифрование, языки программирования, алгоритмы по интеллектуальному анализу данных. Добиться этого уровня знаний без специального образования и упорства практически невозможно.
  2. Накопите научные знания, равноценные объему информации, даваемой в университете. Это можно сделать несколькими способами:
    • Поступите в университет (обычно все так и делают).
    • Узнайте, в чем заключается университетская программа в этой сфере в одном из современных университетов, и начните либо заниматься на курсах, либо учиться самостоятельно. Теоретически это позволит получить все нужные знания, однако лучше всего поступить в университет.
  3. Чем более узкой она будет, тем лучше. Все зависит от ваших личных предпочтений, но мы приведем список основных сфер в научном программировании:
    • разработка алгоритмов (поиска, сортировки, шифровки данных, расшифровки, определения ошибок в передаче данных);
    • разработка и оптимизация языков программирования и компиляторов;
    • сфера искусственного разума (распознавание повторяющихся элементов, речи, обработка естественного языка, нейронные сети);
    • робототехника;
    • собственно научное программирование;
    • суперкомпьютеры;
    • системы CAD/CAM (компьютерное конструирование);
    • виртуальная реальность;
    • компьютерная графика (компьютерную графику часто путают с графическим дизайном или дизайном графического пользовательского интерфейса. Компьютерная графика — это сфера знаний, которая позволяет узнать, как создавать графику и управлять ею в компьютерных системах).
  4. Попробуйте стать кандидатом в доценты или доцентом.
  5. Изучите технологии и языки программирования, связанные с выбранным направлением.
    Реклама

Советы

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

Об этой статье

Эту страницу просматривали 74 115 раз.

Была ли эта статья полезной?

Реклама