Тарифы Услуги Сим-карты

Разработка программирование приложений для ios. Как создать приложение для iOS – от идеи до продажи

В 2015 году уже нельзя выйти на улицу, чтобы тут же не встретить человека, который соответствует двум критериям: 1. У него есть iPhone/iPad. 2. Он хочет быть программистом. Приведенная ниже подборка iOS-приложений составлена как раз для таких людей. С ней можно изучить один или несколько из 20 самых популярных в мире языков программирования.

Tiobe index

Tiobe Index - это рейтинг популярности языков программирования в мире. Он составляется на основе количества ссылок в результатах выдачи популярных поисковиков по запросу « + programming». Индекс строится каждый месяц, начиная с 1987 года. На данный момент для расчета рейтинга используют данные со следующих сайтов: Google, YouTube, Amazon, Baidu, Qq, Yahoo, Ebay, Hao123, Bing, Alieexpress, Alibaba и Cntv.

Значение индекса рассчитывается для языков, отвечающих двум требованиям. Во-первых, язык должен быть Тьюринг полным, а во-вторых, про него должна быть статья в англоязычной Википедии. Как определить, что язык является Тьюринг полным? Если на нем можно выполнить любую вычислимую функцию, то это Тьюринг полный язык. SQL не соответствует первому критерию, но тем не менее для него уже много лет рассчитывается значение Tiobe Index. Всего в рейтинге участвует 237 языков.

Аналитики используют Tiobe Index в своей работе, чтобы прогнозировать развитие IT-индустрии. Программисты сверяются с его значением, что не ошибиться с выбором вектора профессионального развития. 25 лет истории индекса позволяют уверенно утверждать: «хорошие специалисты по языкам, занимающим первые 10 строчек рейтинга непременно будут востребованы на рынке труда в ближайшие 3-4 года».

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

1. Java

Значение Tiobe Index для этого языка - 19.56%. Java используется в 80-90% процентах корпоративных приложений. На нем пишет абсолютное большинство разработчиков под Android. Java часто применяется в высоконагруженных веб-приложениях. На этом языке можно написать практически все. Чем с успехом и занимаются сотни миллионов разработчиков во всех уголках планеты. Приложение Java Develope Reference All In One содержит самую полную информацию об этом языке.

2. C

На этом языке пишут операционные системы и другое низкоуровневое ПО. Изучить язык поможет приложение C Reference.

3. C++

С++ - это основной язык разработки коммерческого прикладного ПО. Он сложнее для освоения чем Java, поэтому менее популярен. Для его изучения есть приложение - C++ Referecnce.

4. C#

Этот язык упрощенная версия C++ предназначенная для работы со средой разработки.NET Framework. Для освоения синтаксиса языка есть приложение C# Programming Language.

5. Python

На Python пишут десктопное и серверное программное обеспечение, высоконагруженные веб-приложения. Его используют в Google и BitTorrent. Приложение Python 2 Developer Reference поможет в изучении этого языка.

6. PHP

Это самый популярный язык программирования для создания веб-страниц. На нем написаны миллиарды сайтов. Сотни миллионов разработчиков по всему миру владеют им в той или иной степени. Порог вхождения для новичков крайний низкий. Создать страницу вида «Вот я, вот мой кот. Отправьте письмо через эту форму» можно через полчаса после начала изучения PHP. В освоении технологии поможет приложение PHP Reference.

7. Java Script

Этот язык предназначен для внедрения в веб-страницы динамических сценариев, выполняемых на стороне клиента. Редкий сайт обойдется хотя бы без пары строк кода на Java Script. Теоретически можно написать на этом языке практически все: серверные (Node.js) и мобильные (PhoneGap) приложения. Начиная с OS X Yosemite Java Script стал альтернативой языка макрос для OS X Apple Script. Ходят легенды об умельце, который переписал на JS ядро Linux. Изучить основы Java Script можно с помощью приложения Java Script Programming Language .

8. Visual Basic for .NET

Для написания программы на этом языке нельзя обойтись без платформы.NET Framework. Поэтому отдельного приложения для этого языка нет. Но его синтаксис идентичен с обычным Visual Basic, о котором будет рассказано чуть ниже.

9. Perl

Изначально создавался для обработки больших объемов текстовых данных. Сфера применения частично пересекается с PHP, а частично с языком C. Глубже ознакомиться с его синтаксисом и попробовать себя в написании скриптов можно в приложении - Perl Programming Language

10. Objective-C

Этот язык уже 32 года используется для разработки приложений работающих на устройствах производства компании Apple. На нем пишутся программы для OS X и iOS. Изучить Objective-C можно с помощью приложения Objective-C Programming Language

11. Assembly

Ассемблер - позволяет обращаться к командам процессора напрямую. Это самый низкоуровневый язык программирования. Его знание бывает нужно для создания языков программирования более высокого уровня, операционных систем, драйверов. Умение читать код на ассемблере пригодиться вирусным аналитикам и людям, занятым взломом лицензионного ПО. Для iOS есть учебная программа - Assembly Programming Language.

12. Ruby

Язык Ruby - это усовершенствованная объектно-ориентированная версия языка Perl разработанная в Японии. Он применяется для создания веб-приложений с помощью фреймворка Ruby on Rails. Именно благодаря этому фреймворку, позволяющему очень быстро разворачивать веб-приложения, Ruby находиться на столь высокой позиции. Хоть язык и не входит в топ-10, классный спец по этой технологии 100% не окажется без куска хлеба в ближайшие пять лет. Для изучения есть приложение Ruby Programming Language .

13. Delphi

К сожалению, для этого языка нет iOS приложения. Оно и не удивительно. Во-первых, чтобы написать программу на Delphi не нужно знать его синтаксис. Достаточно открыть среду разработки, перетащить несколько кнопочек и полей для ввода на рабочее пространство, путем нажатия правой кнопки мыши прописать им параметры поведения и все. Умение разбираться в Delphi-исходникам пригодиться только пришедшим через десять лет молодым программистам, которых начальство попросить заставить эту программу работать под новую версию Windows. Во-вторых, на Delphi сейчас уже не пишут ничего нового, и его высокую позицию в рейтинге Tiobe обеспечивают страдальцы, которым приходиться дорабатывать софт 15-летней давности.

14. Visual Basic

Знание языка будет полезно большинству офисных работников. На нем можно написать множество полезных вещей: сбор данных из анкет в таблицу Excel, генерацию файлов по шаблону, автоматизированную рассылку в Outlook. Для изучения есть приложение - Visual Basic Programming Language .

15. Pascal

Основами этого языка владеют две трети россиян, школьные и студенческие годы которых пришлись на конец 90-ых и 2000-ые. Во многих странах мира сложилась традиция применять этот язык для обучения информатике. На рубеже тысячелетий, когда в школах по всей планете стали массово внедрять обучение компьютерной грамотности, одним из наиболее коммерчески успешных языков был Delphi. Синтаксис этого языка практически идентичен синтаксису Pascal. По этой причине составители учебных программ и выбрали его в качестве первого языка программирования для миллионов людей. В конце 2000-ых Delphi почти умер, но учебники по информатике в большинстве учебных заведений до сих пор не обновили. В детство плацкартный билет подарит приложение Pascal Programming Language .

16. Swift

Язык Swift был анонсирован весной 2014 года. Он применяется для разработки приложений для iOS и OS X. Позиционируется как более безопасная альтернатива Objective-C. Приложение Swift Programming Language - это полноценное учебное пособие по языку, составленное программистами компании Apple.

17. MATLAB

MATLAB - это язык для выполнения технических вычислений разной степени сложности в одноименном программном пакете, которым пользуются миллионы инженеров по всему миру. Приложение MATlAB Mobile - это упрощенная версия программного пакета MATLAB для iOS, включающая в себя полный справочник по языку. Незаменимая вещь для первокурсников технических вузов.

18. SQL


SQL - это процедурный язык для работы с базами данных. С его помощью можно заносить данные в базы, а потом читать, изменять и удалять их. SQL Programming Language позволяет узучить SQL и особенности его применения для самых распространенных систем управления реляционными базами данных: MySQL, SQL Server, PostgreSQL, Oracle и др.

19. R

R - это язык для статистической обработки информации. Он встроен во многие популярные в мире программы для анализа данных: SPSS, Statistica, SAS. Изучить его можно с помощью приложения R Programming Language.

20. COBOL

Язык COBOL существует с 1959 года. Это единственный среди 20 самых популярных языков мира, созданием которого руководила женщина - контр-адмирал американского флота Грейс Хоппер. Изначально проектировался под создание бизнес-приложений. Очень многие системы денежных переводов, разработка которых началась еще в 70-ых написаны на языке COBOL. В государственных и частных корпорациях США есть множество работающих систем, требующей технической поддержки и написанных на COBOL. В некоторых учебных заведениях Америки этот язык применяют для обучения студентов программированию. Ознакомиться с ним поможет приложение COBOL Programming Language .

Заключение

В App Store есть приложения для изучения и менее популярных языков. Если немного постараться, то там можно найти учебные приложения и для следующих 30 строчек в рейтинге Tiobe Index.

Основы программирования
Азы программирования, основные термины и понятия

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

Урок 3. Первая программа

Выбор языка программирования. Подготовка браузера. Программа «Hello, world!».

Урок 4. Переменные

Установка удобного редактора кода. Знакомство с переменными. Простой калькулятор.

Урок 5. Типы данных

Типы данных. Операции с разными типами данных. Преобразование типов данных.

Урок 6. Алгоритмы и блок-схемы

Алгоритмическое мышление. Визуальные блок-схемы.

Урок 7. Оператор ветвления if

Выбор вариантов в программе. Оператор ветвления if. Игра в загадки.

Урок 8. Логические операции

Комплексные условия выбора. Логические И, ИЛИ. Игра «Злые птицы».

Урок 9. Циклы do, while

Циклы do и while. Игра в русскую рулетку.

Урок 10. Цикл for

Цикл for. Финансовый калькулятор.

Урок 11. Массивы

Большие наборы данных и массивы. Игра в рулетку.

Урок 12. Функции

Функции. Подготовка к написанию игры «Black Jack (21)».

Урок 13. Игра «Black Jack». Часть 1

Написание полноценной игры. Основа – раздача карт и подсчет очков.

Урок 14. Игра «Black Jack». Часть 2

Завершение написания игры. Определение результатов и победителя.

Урок 15. Карьера программиста

Обзор основных направлений в программировании. Как выбрать язык программирования? Чему учиться дальше?

Git. Быстрый старт
Основы работы с Git

Видеокурс дает опыт командной разработки с использованием Git. Учит «с нуля» организовать совместное хранилище кода и эффективно его использовать. Студенты осваивают git-клиенты с графическим и консольным интерфейсом, учатся контролировать выпуск версий программы и «откатываться» к предыдущим версиям. Подробно рассматриваются распространенные ошибки командной разработки: при слиянии веток, создании commit-ов, хранении исполняемых файлов в репозитории.

Урок 1. Назначение и возможности

Узнаем, зачем нужен git и какие возможности он открывает для программистов.

Урок 2. Базовые операции

Создаем хранилище кода, доступное всем участникам разработки по сети. Осваиваем базовые операции: Clone, Commit, Push, Pull.

Урок 3. Откат изменений кода

Учимся откатывать изменения в коде с помощью git. Осваиваем операции Discard, Revert, Reset.

Урок 4. Работа с ветками

Работа с ветками.
Параллельно разрабатываем несколько версий программы. Осваиваем операции Add branch, Checkout, Merge.

Урок 5. Конфликты

Учимся разрешать конфликты при слиянии веток.

Урок 6. Распространенные ошибки. Часть 1

Боязнь создания новых веток. Хранение исполняемых файлов в репозитории.

Урок 7. Распространенные ошибки. Часть 2

Ошибки при работе с ветками. Ошибки при создании commit-ов.

Урок 8. Pull Request. Работа с Open-Source-проектами

Осваиваем Pull Request-ы на примере работы с Open-Source-проектами.

Урок 9. Pull Request. Сдача домашних заданий.

Сдача домашних заданий в GeekBrains с помощью Pull Request.

Урок 10. Консольный git-клиент. Базовые операции

Осваиваем базовые операции в консольном git-клиенте.

Урок 11. Консольный git-клиент. Работа с ветками

Учимся работать с ветками в консольном git-клиенте.

Урок 12. Работа с версиями программы

Учимся выпускать различные версии программного продукта с использованием git.

Урок 13. Итоги

Подводим итоги проделанной работы.

Основы языка Swift. 1 месяц.
Современные технологии программирования под Apple на Swift 4.1 - 4.2, xcode 9 - 10

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

Урок 1. Введение

Вводное занятие. Знакомство с языком. Основные типы данных. Xcode, Playground. Переменные, константы и коллекции данных. Дебаггер.

Урок 2. Синтаксис Swift. Основные операторы

Продолжение изучения синтаксических конструкций языка и основных операторов

Урок 3. Комплексные типы данных

Знакомство с комплексными данными. Структуры. Перечисления. Свойства и методы. Конструктор.

Урок 4. Введение в ООП

Как описывать объекты реального мира и создавать их по описанию. Классы и объекты. Наследование. ARC и введение в управление памятью.

Урок 5. ООП

Описываем требования к классам. Протоколы. Расширения. Полиморфизм. Композиция.

Урок 6. Продвинутое ООП

Техники настоящих гуру. Дженерики. Замыкания. Subscripting. Функции высшего порядка.

Урок 7. Обработка ошибок и исключений

Учимся искать ошибки и предсказывать их появление. Исключения try/catch. Error.

Урок 8. Змейка

Пишем простую игру с использованием SpriteKit

Пользовательский интерфейс iOS-приложений. 1 месяц.
Swift 4.1, XCode 9

Какие основные особенности большинства современных мобильных приложений? Взаимодействие с сервисом. Отображение и изменение данных на внешнем сервере! Не бывает приложений без пользовательского интерфейса. Это лицо вашего проекта. С его помощью можно привлекать и удерживать пользователей. Реализовав связь с сервисом, вы сможете организовать взаимодействие пользователей между собой, либо с вашим бизнесом.

Урок 1. Проектирование интерфейса. Часть I

Разбор основных сетевых возможностей и применение их на практике.

Урок 2. Проектирование интерфейса. Часть II

Добавление экранов. Переходы между экранами. UInavigationController. Segue.

Урок 3. Проектирование интерфейса. Часть III

Отображаем данные в виде таблицы. UITableViewController, UITableViewCell, UICollectionViewController.

Урок 4. Создание кастомных UI-компонентов

Рисование с помощью CoreGraphics. @IBDesignable и @IBInspectable. CALayer: тени, границы, маска, градиент. Трансформация. Обработка пользовательских жестов. UIControl. UIAppearance.

Урок 6. Кастомизация коллекций

Создание кастомных ячеек таблицы, header и footer view. Создание кастомных ячеек коллекции, supplementary views. Работа с UICollectionViewFlowLayout. Создание кастомного collection view layout.

Урок 7. Анимации. Часть I

Простые анимации UIView. Анимации переходов между UIView. Анимации слоя. Пружинные анимации.

Урок 8. Анимации. Часть II

Keyframe-анимации. Группы анимаций. Кривые Безье и их анимирование. 3D-анимации. UIViewPropertyAnimator.

Урок 9. Анимация переходов между экранами

Анимация переходов между UIViewController. Интерактивные переходы между view controllers. Создание собственного segue.

Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL

Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.

Урок 1. Реляционные базы данных

Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.

Урок 2. Установка СУБД

Установка СУБД MySql и графического приложения Mysql Workbench.

Урок 3. Проектирование базы данных, нормальные формы

Проектирование данных в Excel; нормальные формы; первичный ключ.

Урок 4. SQL-команда CREATE

Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.

Урок 5. SQL-команда INSERT

Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT

Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.

Урок 9. Согласованность данных

Понятие согласованности или консистентности данных.

Урок 10. Внешний ключ

Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.

Урок 11. Создание таблиц с отношением “многие ко многим”

Добавление корзины в базу данных интернет-магазина.

Урок 12. Составной первичный ключ

Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.

Урок 13. Объединение данных из нескольких таблиц

Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.

Урок 14. Оператор INNER JOIN

Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.

Урок 15. Операторы LEFT JOIN, RIGHT JOIN

Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.

Урок 16. Оператор UNION

Объединение результатов нескольких SQL-запросов с помощью оператора UNION.

Урок 17. Агрегирующие функции

Агрегирующие функции COUNT, SUM, MIN, MAX.

Урок 18. Оператор GROUP BY

Группировка выбранного набора строк с использованием оператора GROUP BY.

Урок 19. Индексы

Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.

Урок 20. Транзакции

Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.

Клиент-серверные iOS-приложения. 1 месяц.
Swift 4.1, XCode 9

Вы освоите приемы разработки высоконагруженых приложений. Поработаете с файлами и архивами. Научитесь управлять процессами в фоновом режиме, оптимизировать работу приложения по загрузки больших объемов данных. Также вы освоите методы разработки приложений с универсальным интерфейсом. Получите опыт работы с популярным Backend сервисом Firebase от Google. А также поучаствуете в процессе публикации приложения в AppStore.

Урок 1. Применение паттернов «наблюдатель», «одиночка», «делегат»

Изучаем реализацию самых популярных паттернов в iOS. Знакомимся с NotificationCenter.

Урок 2. Работа с сетью

Учимся работать с сетевыми запросами. Анатомия HTTP-запросов. Обзор инструментов и библиотек для работы с сетевыми запросами. Отправка запросов с помощью URLSession.

Урок 3. Mapping json

Преобразуем json-ответ сервера в объекты приложения. Анатомия json-формата. JSONSerialization.

Урок 4. Хранение данных

Обзор инструментов и библиотек для постоянного хранения данных в приложении. UserDefaults, Файлы. CoreData. SQLite, Realm, Keychain.

Урок 5. Консультация с преподавателем

Урок 6. Realm

Детальный обзор Realm. Сохранение, извлечение, удаление, фильтрация данных

Урок 7. Realm Notifications

Отслеживаем изменения в Realm. Автоматическое обновление UI.

Урок 8. Backend – Firebase

Используем внешний сервер для хранения данных приложения. Осваиваем Firebase Framework. Подключаем механизмы «Регистрация» и «Авторизация пользователей».

Урок 10. Консультация с преподавателем

Основы языка C
Закладываем фундамент Ваших знаний

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

Урок 1. Введение. Зачем нужен С и как им пользоваться

Возникновение языка С. Возможности языка. Функции языка. Актуальность языка. Установка компилятора и среды разработки

Урок 2. Базовые понятия. Как всё устроено, и что с этим делать

Шаблон программы. Директива препроцессора #include. Функция main. Функция printf() и форматированный вывод. Переменные и типы данных. Операция & - взятие адреса. Ввод данных. Арифметические операции в языке С (если хватит времени)

Урок 3. Условия: первый шаг к принятию решений. Булева алгебра

Оператор if() и его вариации. Операции сравнения: арифметические сравнения, логические операторы, тернарный оператор. Вложенные условия. Блоки кода и области видимости. Булева алгебра.

Урок 4. Циклы. Отдаём программе рутинные задачи

Понятие цикла. Цикл while(). Цикл do {...} while(). Формат записи цикла do while

Урок 5. Циклы. Как придать уникальности простым вещам

Операторы break, continue, switch и цикл for

Урок 6. Функции. Пишем универсальные фрагменты кода

Понятие функции. Виды функций. Аргументы функции. Прототипы функций. Заголовочные файлы.

Урок 7. Указатели. Ещё один шаг к настоящему низкому уровню

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

Урок 8. Массивы. Собираем подобное к подобному

Директивы препроцессора. Понятие массива. Объявление массива. Обращение к элементу массива. Определение размера массива через директиву компилятору

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

Идентификатор массива. Выход за пределы массива. Арифметика указателей. Передача массива в функцию

Урок 10. Массивы. Почти безграничные возможности организации данных

Многомерные массивы. Двумерные массивы. Заполнение и вывод двумерного массива. Массивы указателей

Урок 11. Строки. Учимся говорить с пользователем

Понятие строки. Указатель и массив из переменных типа char. Функции puts(), printf(), gets()/
Конкатенация строк (функция strcat()). Сравнение строк strcmp(). Функция копирования строк strcpy(). Обработка символов.

Урок 12. Структуры данных. Уходим от примитивов к объектам, но не далеко

Понятие структуры данных. Ключевое слово struct для описания структуры. Описание структуры “простая дробь”.

Урок 13. Файловая система. Запоминаем результаты и читаем их обратно

Понятие файловой системы. Создание текстового файла. Чтение из текстового файла.

Урок 14. Динамическое выделение памяти

Процесс выделения памяти. Функция malloc(). Оператор sizeof(). Функция calloc() . Функция free(). Функция realloc() .

Алгоритмы и структуры данных. 1 месяц.
Эффективные решения вычислительных задач

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

Урок 1. Простые алгоритмы

Введение в C. Структуры. Алгоритмы.

Урок 3. Поиск в массиве. Простые сортировки

Поиск в одномерном массиве.Интерполяционный поиск. Сортировка массива.

Урок 4. Динамическое программирование. Поиск возвратом

Наибольшая общая подпоследовательность Динамическое программирование. Поиск с возвратом. Задача о восьми ферзях.

Урок 5. Динамические структуры данных

Стек, очередь. Создание стека с использованием массива. Динамические структуры данных.

Урок 6. Деревья

Двоичные деревья поиска. Хеш-функция. MD5. Хеш-таблицы

Урок 7. Графы. Алгоритмы на графах.

Графы, обход графа в ширину и глубину. Волновой алгоритм. “Жадные алгоритмы”.

Урок 8. Сложные сортировки

Сортировка Хоара (Quick sort). Пирамидальная сортировка (Heap sort)
Сортировка слиянием (Merge sort). Сортировка подсчетом (CountingSort). Алгоритм со списком (pigeonhole sorting). Блочная сортировка.

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

Урок 1. IT resume sample

Составляем резюме на английском.

Как стать программистом. 13 уроков.
Пошаговая инструкция по поиску работы

Карьера в сфере программирования - это увлекательное путешествие в мир современных технологий. У каждого разработчика своя история и свой опыт. Однако существует базовый алгоритм, который поможет правильно сделать первые шаги и приведёт к вашей цели. Мы подготовили 13 видео-уроков, в которых ответили на самые актуальные вопросы о карьере программиста в компаниях и на рынке фриланса. Часто думаете о трудоустройстве и чувствуете, что готовы начать зарабатывать? Тогда этот видео-курс для вас.

Урок 1. Профессия “Программист”

Особенности профессии; часто задаваемые вопросы; востребованность на рынке труда.

Урок 2. Профориентация

Стану ли я успешным программистом? Факторы успеха.

Урок 3. Начинаем составлять резюме

Самое важное - первое впечатление; как назвать должность.

Урок 4. Выбор языка программирования: веб-разработка

Обзор языков для разработки сайтов: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; правильный выбор.

Урок 5. Мобильная разработка. Универсальные языки программирования

Обзор языков: Java, Objective-C, Swift; C#, C++, Python: правильный выбор.

Урок 6. Правила эффективного резюме

Список технологий; портфолио; дипломы и сертификаты; личностные качества. Взгляд технического специалиста и HR.

Урок 7. Поиск работы: что, где, когда

Работа мечты, психологические аспекты; техника запроса.

Урок 8. Собеседование и испытательный срок

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

Урок 9. Фриланс: первые шаги

Обзор площадок для фриланса; особенности регистрации; оформление аккаунта; как выделяться среди большинства исполнителей.

Урок 10. Фриланс: начало работы и поиск заказов

Стратегия поиска заказов; приоритет заказов: что брать в работу; ведение переговоров; задания и подводные камни ТЗ; методы обращения к клиенту; написание ответов и привлечение внимания клиентов; правильные вопросы.

Урок 11. Фриланс: выполнение заказа и оплата

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

Урок 12. Специальности в сфере IT

Как проходит разработка в крупных компаниях? Кто такие аналитики, дизайнеры, тестировщики, архитекторы, projectmanager-ы, team-lead-ы и пр.

Урок 13. Карьерная лестница в сфере IT

Как выглядит карьерная лестница в сфере IT? В каких специальностях проще начинать свой путь? Какие есть перспективы развития?

Стажировка в Geekbrains. 2 месяца.
В формате вебинаров

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

Урок 1. Начало проекта

Начало проекта; получение задачи от виртуального заказчика; работа менеджера по продажам, аналитика, проектировщика UI, архитектора.

Урок 2. Подготовка к разработке

Утверждение ТЗ, интерфейса и архитектуры; распределение задач; работа с Bug-tracker и GIT; правила хорошего кода.

Урок 3. Принципы KISS, YAGNI, SOLID

Анализ проделанной работы; разбор ошибок; постановка новых задач; принципы KISS, YAGNI, SOLID.

Урок 4. Работа с веб-сервисами

Анализ проделанной работы; постановка новых задач; работа с веб-сервисами; шаблоны проектирования: фабрика, репозиторий.

Урок 5. Тестирование

Анализ проделанной работы; постановка новых задач; тестирование; работа тестировщика; подготовка резюме.

И с этой статьи я начинаю вести блог по программированию для iOS . А в дальнейшем и для OS X!

Зачем мне это нужно? Не так давно я стал счастливым обладателем iPad Retina. Он достаточно сильно понравился мне и приятно впечатлил! Я даже начал понимать “яблокофилов” с их постоянным стремлением приобретать всю продукцию Apple, которая выходит в свет. Но одно дело приобретать чужое, а другое – создавать своё своими руками! И эта мысль навела меня на создание данного сайта о программировании приложений/игр для продукции от Apple.

Для кого этот блог? В первую очередь он для тех, кто любит программировать и творить. Вполне возможно, что вы никогда не программировали на Objective-C (именно этот язык программирования используется), но очень хотите начать. Однако, желательно, чтобы вы знали какой-нибудь язык программирования, например, Excel макросы, QBasic, С++, С#, 1С в конце концов. Т.е. Вам очень поможет математический склад ума. Если и это не так – ничего страшного. Блог создан для новичков, таких же как я. Голый энтузиазм Я буду стараться объяснять просто, доступно и интересно, как сам люблю.

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

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

Запоминаем: Интерфейс и Дизайн в наших приложениях должны быть на высшем уровне!

Для чего создавать приложения/игры на iOS? Тут есть два варианта:

1. Для себя. У вас есть iPhone/iPad и вы никак не можете найти приложение, которое бы удовлетворяло ваши потребности. Создайте его сами! Любые ваши “хотелки” вы сможете реализовать в своём приложении и радоваться ему!

2. Для всех. Этот вопрос уже интереснее. Ведь можно быть добрым молодцем и интересные приложения/игры раздавать бесплатно. А можно и за 1$-100$ продавать Если конечно его захотят купить:) Думаю последних будет большинство. Кстати, Apple забирает себе 30% выручки от продаж

Так или иначе, для разработки приложений есть 2 пути:

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

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

а. iOS Developer Program - 99$ в год, если желаете создавать бесплатные или платные приложения для iPhone, iPad, iPod touch, и распространять через AppStore. (то что нам нужно в дальнейшем!). А также тестировать их на своих девайсах.

б. iOS Enterprise Developer Program - 299$ в год, если желаете разрабатывать in-house приложения - приложения, для внутреннего использования в своей компании, без открытого доступа.

В итоге имеем: вначале нашего пути нам достаточно создавать приложения и смотреть, как они выглядят в эмуляторах. Как только мы почувствуем уверенность в себе, покупаем iOS Developer Program и, вперед, в мир AppStore. Инструкцию по регистрации я сделаю позже, как только это нам понадобится.

Для информации: Став подписчиком iOS Developer Program , вы обязаны ежегодно оплачивать эту подписку. Подписка может быть продлена в пределах 60 дней после окончания предыдущей. Если подписка не продляется, то вы теряете право распространять приложения через AppStore, ваши сертификаты разработчика будут удалены. В довершение, все приложения, которые вы загрузили на AppStore, так же будут удалены.

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

Об этом мы еще поговорим

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

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

Итак, вам тоже пришла мысль: «А как мне научиться писать программы для iPhone? «, «Как мне сделать свое мобильное приложение? «, «Как заработать миллионы ничего не делая? «. Постараюсь пошагово ответить на эти вопросы (кроме последнего).

Что нужно знать с самого начала

Чтобы создавать программы для iOS официально от вас требуется компьютер Apple (iMac или Macbook ). Но если говорить совсем честно, вам нужна операционная система OS X , поэтому многие по началу хитрят и умудряются использовать Хакинтош (Hackintosh ), то есть запускают OS X на обычных компьютерах — это экономный вариант, противозаконный и довольно хлопотный в плане настройки. Я вам рекомендую, раз уж вы твердо решили стать iOS-разработчиком, купить простенький Macbook или Mac Mini, можно даже б/у (любой, выпущенный с 2010 года).

Дальше — на чем писать. Приложения для iOS пишутся на языках программирования Swift или Objective-C , а все магическое действо происходит в программе Xcode (бесплатная). Swift — это очень новый язык, который Apple представила буквально недавно (середина 2014 года) и теперь активно доносит мысль, что программировать нужно только на нем, за ним будущее, он более современный и быстрый. И они правы, учите Swift . Objective-C напротив язык с давним прошлым, поэтому понять его значительно сложнее начинающим, что не отменяет его мощь и богатство существующих наработок и книг по нему (чего не скажешь в данный момент про Swift). И тем не менее, повторяю, учите Swift .

Если хотите делать кроссплатформенные приложения (одновременно под iOS и Android) — учите C# и используйте среду разработки Xamarin (платная). Хотите делать кроссплатформенные игры — качайте среду разработки Unity3D (условно-бесплатная), учите уже упоминавшийся выше C# .

А еще, чтобы запускать свои приложения на iPhone/iPad (даже на этапе разработки) и затем выкладывать их в AppStore, вам нужно купить статус Apple Developer за 100$ в год. После покупки это лишний раз мотивирует как минимум отбить эти деньги 🙂

Когда я задался этим вопросом, то подумал, что нужно просто взять хорошую толстую «библию» по Objective-C (напомню, Swift тогда еще не было) и постигать тайные знания языка программирования главу за главой. Все советовали книгу Стивена Кочана «Программирование на Objective-C «. Wrong! Не повторяйте мою ошибку. Да, азы языка были постигнуты, книга хорошая, но это справочник и он далек от реальной разработки приложений с нуля. Чтобы научиться программировать вам нужно «запачкать руки», пытаясь написать первые, пусть совсем простые, но работающие приложения. Вам нужны уроки с примерами. От простого к сложному. А еще важно поставить реальную цель, первое приложение, которые вы хотите написать и выпустить в AppStore. Каждый урок или книга должны давать вам знания, которые вы можете применить в своем проекте. Не совершайте ошибку «вечного студента», который только то и делает, что изучает-изучает-изучает, но откладывает момент начала настоящей работы. К примеру, я ставил себе цель сделать приложение-радио и выпустить его в AppStore за месяц — и у меня получилось.

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

The iOS Apprentice

Лучший англоязычный обучающий сайт — RayWenderlich.com . Он мега-крут по трем причинам: 1) можно бесплатно прочитать море уроков от азов до попытки повторить существующие успешные приложения (в том числе на Swift), при этом все написано душевно и с юмором; 2) там есть видео-уроки (правда, платные); 3) Важнейшая причина — у них есть книги для начинающих, которые обучат вас с нуля на примере создания приложений, очень доходчиво, с картинками (ну, как мы любим). Книги платные (дают бесплатно только первую часть), но они того стоят. Купил их все и они давно окупились, так как они строят хороший фундамент кирпичик за кирпичиком. Это не сравнить просто с чтением разных уроков вперемешку на этом же сайте. Начните с покупки книги The iOS-apprentice (первую часть которой можно скачать бесплатно). Она научит вас создавать первые приложения на Swift. Также у них есть книги по разработке игр на SpriteKit (фреймворк Apple для разработки игр).

Второй по-полезности ресурс — AppCoda . Он попроще RayWenderlich, но суть та же — читаем уроки по Swift, учимся на примерах. У них тоже есть собственные книги (платные), кроме бесплатных уроков.

А что, если не знаете английский — упс, подобных российский интернет-ресурсов просто нет. Книги на русском? Конечно, вы найдете какие-то книги на Ozon, но все они устаревшие и не научат вас языку Swift (на данный момент все только по Objective-C).

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

Где найти ответ, что-то не получается

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

StackOverflow — самый большой кладезь готовых ответов на английском. 80% ответов я нахожу там.

Google — банально, просто вбив в поиск вопрос, можно найти ответ. Если сразу не получается, поиграйтесь с формулировкой вопроса.

Тостер — аналог StackOverflow, но на русском. Здесь пока сложно находить ответы, так как база вопросов еще не очень большая. Зато можно спросить — на ресурсе достаточно профессионалов, которые вам ответят.

Ну или можете спросить меня. Пока бесплатно 🙂

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

Цели урока

1.С чего начать программирование для iPhone.
2.Джентльменский набор разработчика.
3.Домашнее задание.

Введение

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

С чего начать? Вопрос скорее риторический. Конечно, если вы, дорогой читатель, юрист или, скажем, строитель – вам будет очень сложно начать и скорее всего не стоит этого делать всерьёз, потому, как мне кажется, лучше делать хорошо одно дело, чем несколько и плохо. Однако, не будем исключать и тот момент, что вам хочется программировать для души, что это ваше новое хобби. Тогда в добрый час. Однако, если вы, мой дорогой друг, уже имеете опыт разработки приложений, неважно на каком языке – Си, Паскале, Ассемблере, Делфи или наконец Бейсике или даже Лого (в моем учебнике по информатике в начале 90х был и такой), то вам непременно надо попробовать себя на ниве приложений для айфона.

Вот мы и подошли к ответу на главный вопрос, с чего начать. Начните с основ, для этого далеко ходить не надо, я приведу вам всего несколько ссылок, которые вас в итоге «до Киева» доведут:

1.Для людей вообще незнакомых с языком Си – начните с этого

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

3.Если вы знаете основы Си, да и ООП не вызывает у вас затруднений, вам все же рекомендуется почитать отличие Objective-C применяемого в MacOS (и айфоне соответственно) от традиционных С и С++. Весьма неплохо это описано .

4.Также ответы на многие вопросы вы найдете на нашем форуме в .

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

б) Операционная система MacOS Leopard версии 10.5.5.

в) Инструментарий с сайта Apple, так называемый SDK, пакет разработчика. Данный пакет содержит в себе все необходимое для разработки. Скачать его можно тут: http://developer.apple.com/iphone , предварительно пройдя регистрацию.
г) А еще нам очень потребуется терпение и усидчивость. Без этого, увы, никак.

У многих после пункта А могут сразу опуститься руки. Я вам скажу честно, до знакомства с айфоном я вообще никак и никогда не пересекался с Апплом, да и свою первую программу под айфон я написал вообще не имея макбука. Я заядлый виндусятник, начавший свою сознательную жизнь с Windows 3.1 и доживший до Windows Vista, я был покорен удобством MacOS и ни сколько не жалею о таком приобретении, хотя до сих пор львиную долю времени провожу за компьютерами с ОС от Билла Гейтса.

Для тех, кого и эти слова не убедили, все равно есть выход. С момента перехода компьютеров от Apple на платформу с процессором Intel – появилась возможность (естественно не без танцев и бубнов) устанавливать MacOS на обычный РС компьютер, сознаюсь – я и сам так делал. В миру такая ОС известна под разными названиями Kaliway, Hackint0sh и т.п. На всех файлообменниках вы без труда найдете нужный образ и качнув его, сможете поставить на свой компьютер Макось. И даже при желании запускать потом ее в окне ВМвари (VMWare). Как это все это сделать я описывать не буду, не к лицу пропагандировать методы обхода лицензии на Маки, но возьму на себя труд предупредить вас от некоторых ошибок, избежав которые вы, возможно, не потеряете интерес к программированию еще на начальном этапе подготовки инструментария:

1. При установке ВСЕГДА используйте отдельный винчестер подключенный как мастер на нулевую шину IDE или SATA.
2. Не пытайтесь установить Леопарда из под VMWare – проверял много раз – это невозможно, хотя в сети есть люди которые утверждают что делали это.

3. После того как установите Макось можете попробовать запустить ее из под Виндов в ВМВаре, если хватит ресурсов. Также, отдельная проблема, это драйвера. Сетевая скорее всего схватится у вас сама, видео будет 800х600 – тупо VGA. А вот как быть с вашей 8800GTX картой, вайфай адаптером и голубым зубом, то тут как повезет (чаще не везет).

4. Сколько образов мне не попадалось – на всех была версия 10.5.1 или 10.5.2, нам же для работы потребуется не ниже 10.5.5. Свой мак я обновляю через интернет, а вот с хакинтошем при обновлении на 10.5.5 такой фокус не пройдет – словите яблоко, тоже проверено много раз. В сети есть алгоритм как обновить хакина до 10.5.5 сохранив работоспособность системы – ищете ибо обрящете.

И так, инструментарий описан, переходим к домашнему заданию.

Домашнее задание у нас будет простое, но очень важное, не выполнив его, все остальные уроки станут для вас бесполезным HTML текстом, а мой труд не будет стоить и выеденного яйца. И так, дорогие программисты айфонщики, пока я пишу Урок №2, вы должны:

А) Раздобыть Мак или установить хакинтош (исключительно в ознакомительных целях)

Б) Обновить его до версии 10.5.5.

В) Скачать и установить SDK от Apple. Накачать кучу примеров из сети, попробовать их все откомпилировать. В общем приступить к изучению методом тыка (наиболее распространенный в нашей стране метод, поражающий своей эффективностью).

Пишите отзывы.
Рашид (aka rashn).

сайт Уважаемые господа, данной статьей я открываю новую рубрику, посвященную программированию под iPhone, где будем затрагивать вопросы, интересные как новичкам и не посвященным, так и гуру от ObjC, которые, как мы надеемся, не преминут поправить наши ошибки своими комментариями. Сегодняшний урок носит ознакомительный характер. Цели урока 1.С чего начать программирование для iPhone. 2.Джентльменский набор разработчика. 3.Домашнее...