Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый - родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант - модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант - хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ - собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.
Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python - язык широкого назначения. И он такой простой, что даже дети могут его выучить.
Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.
PHP - ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.
Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.
Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.
Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.
Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.
Вам нужно подготовить резюме. Не просто резюме, а . Не стоит писать там , но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд - к светлому будущему с новой профессией программиста.
Кто бы не хотел научится создавать сайты и всякие программы для души и может бить и для профессионального роста.
Да каждый!
И я в том числе не прочь подучится таких новшеств о которых слышал но полностью не владею. Поступать в учебное заведение уже как то неохота… и работа хорошая имеется. Так как быть?
Думаю что обучение через интернет самое то!
В сети существует достаточно бесплатных курсов, которые помогут сделать это достаточно легко и быстро. Все представленные ниже ресурсы предоставляют простые, понятные интерактивные уроки по HTML, CSS, PHP, Ruby, в течение которых вы будете получать не только теоритические знания, но и выполнять практические задания.
И так программирование бесплатно…
http://htmlacademy.ru/
Вы научитесь создавать современные веб-интерфейсы, работать с живым кодом, использовать новейшие технологии.
Минимум скучной теории и максимум практических упражнений, решение реальных задач и настоящие испытания.
Интересные, наглядные и затягивающие курсы, интерактивные интерфейсы, достижения - все для обучения с удовольствием.
http://hexlet.org/
Хекслет – свободный онлайн-университет. Мы проводим бесплатные курсы по программированию и смежным дисциплинам.
Видео-лекции (их можно смотреть на сайте или через iTunes), тесты, упражнения, домашние задания и активное сообщество студентов – все это наш с вами Хекслет.
Особенности Хекслета: активное участие преподавателей, живое общение со студентами и концентрация на практических занятиях.
Представленные ниже ресурсы на английском, для информации…. в программирование без английского не как!
ФАКТ!
http://www.codecademy.com
Codecademy, бесспорно, самый известный сайт для изучения программирования.
Обучение начинается буквально с главной страницы сайта, где в интерактивной консоли вы можете узнать принцип обучения на этих курсах. Затем можно выбрать один из языков, в котором вы хотите преуспеть и начать его освоение.
http://www.codeavengers.com/
Code Avengers создан для тех людей, которые боятся программирования, думая, что это бесконечно скучное и сложное занятие.
Здесь вы можете изучать HTML5, CSS3 и JavaScript и каждый из курсов тщательно разработан, чтобы по-настоящему увлечь вас и заинтересовать.
В конце каждого урока вам предлагается небольшая мини-игра, которая позволяет применить свои знания на практике.
http://www.codeschool.com/
Если вы закончили курсы Codecademy или Code Avengers и готовы к дальнейшему расширению своих знаний, то вам непременно надо обратить внимание на Code School.
В отличие от большинства интерактивных обучающих сайтов, Code School предлагает более углубленные курсы по подготовке и превратит вас из зеленого новичка в эксперта в выбранной области.
В отличие от других сайтов в этой подборке, которые полностью бесплатны, здесь доступ к некоторым разделам придется оплачивать из расчета 25$ в месяц.
http://teamtreehouse.com/
Эти курсы являются значительно более практически ориентированными, чем другие, обучающие просто одному из языков программирования.
Это значит, что перед вами ставится конкретная задача, например создание простого сайта или интерактивного веб-приложения, или даже WordPress темы и даются все необходимые знания, которые вам могут понадобиться.
Поэтому этот ресурс отлично подходит для начинающих программистов, перед которыми стоит какая-то конкретная практическая задача.
Начать обучение на этом сайте можно нажатием всего одной кнопки, а вот закончить так быстро не получится - ведь учебных материалов по JavaScript, Python и Ruby здесь огромное количество.
Есть и лекции для самых начинающих, и практические задачи, и примеры решения реальных проектов.
Сравнительная таблица
И в заключение замечательный ролик, в котором лучшие люди нашего времени расскажут вам о необходимости изучения программирования. Надеюсь, он придаст вам сил, уверенности и смелости прямо сейчас приступить к делу.
Удачи вам и много самостоятельно написанных программ!
В разделе «Программирование» собраны видео уроки по созданию программ и написанию алгоритмов на различных языках программирования. Программирование - это процесс создания и модификации компьютерных программ. Сюда входят проектирование программы в зависимости от поставленной задачи, разработка алгоритмов, написание текстов на специальном языке программирования, отладка и тестирование программы, составление документации, настройка, доработка и сопровождение. Программист (кодер) - это человек, который занимается написанием инструкций на определенном языке программирования по заданному алгоритму. Алгоритмист - это специалист в конкретной предметной области, математик, который разрабатывает алгоритмы. Эти онлайн уроки будут полезны как для начинающего пользователя, так и для более опытного программиста. Все онлайн уроки из этого раздела вы можете смотреть совершенно бесплатно. К некоторым из них прилагаются дополнительные материалы, которые можно скачать. Приятного Вам обучения!
Всего материалов: 9
Показано материалов: 1-9
Страницы: 1
В этом видео уроке вы узнаете основы языка программирования PHP, работа с переменными, массивами, условиями, циклами и многое другое. Во вступительной части данного курса по PHP рассказывается об истории языка и принцип работы сайтов в сети Интернет. Курс предназначен для обучения программированию на PHP с нуля и для тех, кто хочет научиться создавать сайты своими руками, но не знает с чего начать. Этот урок даст вам необходимый фундамент для изучения языка PHP. Для начала работы Вам...
Одним из самых необходимых функционалов для современного веб-сайта является регистрация пользователя и авторизация. В этом видео уроке вы узнаете как с помощью PHP и MySQL создать для своего сайта форму регистрации и авторизации пользователя. При этом пароли будут хранится в базе данных в зашифрованном виде, а процесс авторизации будет реализован с помощью сессий. Хранение паролей в зашифрованном виде позволит исключить их использование злоумышленниками, даже если они получат доступ к базе...
В этом видео уроке вы узнаете как создается простой блог на PHP. Это заключительная часть курса по изучению PHP + MySQL с нуля. В первой части урока будет в ускоренном режиме показано как создаётся шаблон сайта. Это больше относится к внешнему виду сайта, т.е. к вёрстке, поэтому подробностей здесь не будет. Вёрстку сайта необходимо изучать в других курсах, которые посвящены работе с HTML и CSS. Во второй части данного видео урока и уже более подробно будет рассмотрена работа с PHP и MySQL...
Здесь рассказывается о том, как работать с системой управления базами данных - СУБД MySQL, утилитой phpMyAdmin, которая позволяет с лёгкостью управлять базами данных и таблицами. Вы также узнаете как работать с MySQL с помощью PHP, а именно как подключаться к базе данных с указанием логина и пароля, а также как правильно писать запросы к базе данных для получения необходимых данных из конкретных таблиц. С помощью запросов к базе данных можно также добавлять новые записи в таблицы, а также...
В этом онлайн уроке рассказывается о принципе работы модулей системы 1С предприятие 8.2, обучение программированию на 1С с нуля. Здесь мы поговорим о том, какие модули имеются в системе 1С 8.2, подробно поговорим об их особенностях и о свойствах, которые имеются в настройках. В системе 1С предприятие имеются следующие модули. Модуль управляемого приложения - срабатывает при входе в систему в режиме управляемого приложения (Веб-режим). Модуль сеанса - выполняется на стороне сервера и...
Видео урок «SQL программирование для начинающих. Запросы к базе данных MS SQL Server Express» посвящен вопросу о том, как установить программное обеспечение, необходимое для изучения программирования SQL, как создать новую базу данных, как добавить и заполнить таблицу и как сделать выборку данных через SQL запрос. Работать мы будем на бесплатной редакции от компании Microsoft - MS SQL Server Express, которая идеально подходит для обучения работе с базами данных, а также для создания небольших...
Здесь рассказывается об основах программирования на Delphi, обучение для начинающих. В этом видео уроке мы познакомимся со средой разработки Delphi XE3, изучим её интерфейс и создадим в ней простенькую программку. Для начала работы нужно создать новый проект. Сделать это можно через меню File - New. В результате у нас появилась пустая форма бедующей программы. Теперь мы можем разместить на этой форме различные кнопочки, поля, для ввода данных и другие компоненты, которые имеются в составе...
В этом видео рассказывается о том, что собой представляет язык программирования Java и какое программное обеспечение нам понадобится для изучения Java. Основной принцип этого языка программирования - написано однажды, работает везде! Изначально Джава создавался для управления бытовых электронных устройств, затем он использовался для создания интернет-приложений. Java - это объектно-ориентированный язык программирования, который не зависит от архитектуры компьютера. Исходный код Джава...
Урок «PHP программирование для начинающих. Установка Denwer, функция echo» посвящен вопросу об установке среды, необходимой для изучения языка программирования PHP и проверка её работы на примере использования простейшей команды echo, которая предназначена для вывода текста. Denwer - это набор программного обеспечения для веб-разработчика, который достаточно легко устанавливается и содержит в себе все необходимое для работы PHP, MySQL и т.д. Последнюю версию Денвера вы можете бесплатно скачать...
Если у Вас есть качественные видео уроки, которых нет на нашем сайте, то Вы можете добавить их в нашу коллекцию. Для этого Вам необходимо загрузить их на видеохостинг (например, YouTube) и добавить код видео в форму добавления уроков. Возможность добавлять свои материалы доступна только для зарегистрированных пользователей.
Подборка для тех, кто привык воспринимать информацию в визуализированной форме: лучшие видео- и онлайн-курсы по С++ для разработчиков разных уровней от Библиотеки Программиста.
Видеокурс по основам языка, его основным принципам и структурам. Типы данных, динамическое управление памятью, работа с файлами, ссылки и указатели, шаблоны и основы ООП.
Фундаментальный курс по языку С и его тонкостям: структуры, функции, работа с памятью, потоки ввода-вывода, компиляция и сборка проекта. Три последние лекции посвящены ООП в С++.
Подборка из десяти коротких лекций, дающих понимание основ алгоритмизации и структурирования задач, а также эффективной реализации практических приемов их решения.
Курс посвящен разбору реальных математических, алгоритмических, логических и оптимизационных задач. Данная серия ориентирована на людей, имеющих некоторый опыт и глубокое понимание алгоритмов, поэтому может быть несколько сложной для новичков.
Кто из нас в детстве не мечтал делать игры? Данный курс состоит из 16 одно-/двухминутных видео, в каждом из которых под легкую музыку демонстрируется написание кода для классических игр вроде змейки, арканоида и Doodle Jump.
В целом подборка аналогична предыдущей, за исключением, пожалуй, того, что демонстрируемый код содержит больше комментариев и в общем более понятен интуитивно. Каждое десятиминутное видео научит, как написать простую игру: шашки, сапера, тетрис и др.
Серия для уверенных знатоков С++, которая позволит углубить и расширить свои знания техник, методик и фич языка. Из этого курса вы узнаете о различиях между логической и физической константностью, виртуальных функциях, функциях, генерируемых компилятором, и многом другом.
Англоязычный курс от поможет приобрести базовые навыки написания программ на языке C++, усвоить принципы объектно-ориентированного программирования, а также универсальные концепции разработки программного обеспечения. Курс подходит для подготовки к экзамену на получение сертификата CPA от C++ Institute.
Данный базовый курс, входящий в онлайн-программы по основам программирования и анализу данных , дает представление об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции.
Этот самоучитель создан для тех, кто хочет освоить основы программирования на C++. Уроки рассчитаны, в первую очередь на новичков, но будут полезны и тем, кто уже имеет небольшой опыт в программировании.
Курс рассчитан на школьников, интересующихся программированием. Для его освоения достаточно знания программы 8 класса. Слушатели начнут изучать C++ с нуля, напишут множество небольших программ и познакомятся с основными конструкциями языка. Полученные знания станут отличной основой для продолжения обучения программированию в вузе.
Сказал мне, что на курсе они научат программировать любого человека, даже с нуля. Я спросил его: «А с гуманитарием справитесь?» И мы задумались, были ли случаи, когда «гуманитарий» выучил язык программирования?
Во-первых
, есть живой преподаватель с хорошим бэкграундом в разработке. Виталий Куреннов, 6 лет пишет на Ruby и больше года обучает всех желающих этому навыку, работал над Ruby проектами для Nokia и Avaya.
Во-вторых
, есть группа единомышленников, работая бок о бок с которыми, у вас многократно повысятся шансы дойти до победного конца и освоить программирование до того уровня, когда оно начнет приносить прибыль.
- Никита, почему именно Ruby?
- Все просто, мы нашли очень хорошего преподавателя.
Про Ruby
Попробовать сделать первые шаги можно прямо сейчас, займет всего 5-10 минут.
Нашел шикарный ресурс с геймификацией и сразу из браузера tryruby.org
За 5 минут выполняем несколько заданий, получаем ачивку и переходим на следующий уровень.
А зомбяк не хотите ли? railsforZOMBIES.org
Про Lisp
«Однако я не думаю, что смогу убедить кого-нибудь (старше 25) выучить Lisp.» Пол Грэм, «Побеждая посредственность»
;; Welcome to L(λ)THW! (let ((llthw "(learn lisp the hard way))) (format t "~{~@(~A~)~^ ~}, because ~{~A~^ ~} is easier!" llthw (cddr llthw))) ;; Common Lisp: Powerful, Expressive, Programmable, General Purpose, Multi-Paradigm.
Нашёл для себя удобную браузерную обучалку Learn Lisp The Hard Way
«За те годы, что я проработал в Viaweb, я прочитал множество объявлений о найме на работу. Примерно каждый месяц появлялся новый конкурент. Первое, что я делал после того, как проверял, доступна ли онлайновая демонстрация работы их программы, - смотрел список их вакансий. Через пару лет я научился отличать опасных конкурентов от неопасных. Чем больше отдавало IT-мэйнстримом от описания требуемых кандидатур, тем менее опасна была компания. Самыми безопасными были те, кому требовались специалисты по Oracle. О таких не стоило беспокоиться. Также мы были спокойны, если требовались разработчики на C++ или Java.Если требовались программисты на Perl или Python, это уже было слегка пугающе - это значило, что компанией или, по крайней мере, ее технической частью заправляли настоящие хакеры. Если бы я когда-нибудь увидел объявление о найме на работу Lisp-хакеров, я бы обеспокоился не на шутку.» Пол Грэм, «Побеждая посредственность»
например
Общие упражнения:
Project Euler содержит более 500 математических задач (на теорию чисел, числовых систем и пр.), которые нужно решить, используя программирование на любом языке.
Code Abbey хранит более 200 задач по программированию. За решения 125 из них выдают сертификат, чем мотивируют многих студентов.
Rosalind - это ещё один сайт наподобие Project Euler, который предоставляет на выбор более 200 задач по биоинформатике.
Codingbat.com дарит упражнения по Java и Python, как для новичков, так и для продвинутых программистов.
codegolf.stackexchange.com – сайт, на котором публикуют и обсуждают программистские головоломки.
Ruby Quiz - серия головоломок, в которых вас просят написать короткие программы различной сложности. Исходные решения описаны на Ruby, но их можно реализовать на любом языке.