Многие работающие (или безработные) программисты кодируют постоянным методом проб и ошибок, а также копированием и вставкой фрагментов из StackOverflow, не понимая, почему и как это работает. Хорошие программисты сначала планируют «на бумаге», а затем с первой попытки пишут правильное решение. Мы поможем вам получить фундаментальные знания в компьютерных науках.
Присоединяйтесь к сообществу талантливых менторов, успешных разработчков и выпускников nFactorial School прошлых лет. Компании, где работают выпускники nFactorial: Google, Facebook, Amazon, Apple, HBO, Robinhood, Yandex, и другие.
Если вы еще не готовы начать курсы от nFactorial, где мы готовим из вас data science специалистов или учим создавать iOS или веб-приложения, текущая программа - единственная подготовка, которая вам необходима!
Даже если вы не планируете быть разработчиком, программирование поможет вам взглянуть на мир совершенно новыми глазами - как инженер, как человек, который может разбить сложную проблему на более простые подзадачи. Программирование поможет вам развить умение решать проблемы, логику, когнитивные и творческие способности.
«Программное обеспечение съедает мир». Программное обеспечение трансформирует все отрасли, даже если они не носят технический характер: от шопинга до сельского хозяйства. Начните свою карьеру в IT с правильного фундамента.
Введение в язык программирования Java. Основные концепции программирования. Анатомия программы. Встроенные типы данных. Преобразование типов. Шаги в разработке программы. Условные выражения: оператор 'if'. Циклы: оператор 'while', цикл 'for'. Вложенный код. Отладка (дебаггинг) программ.
Код для обработки массивов. Двумерные массивы. Стандартный ввод и вывод. Графика. Фракталы. Анимация.
Проект - «Симуляция и визуализация солнечной системы: 8 планет, вращающихся вокруг солнца с разными скоростями, ускорениями и силами притяжения, действующими между ними».
Решение leetcode задач вместе с менторами, чтобы перевести дух
Пример использования: цифровое аудио. Применение: распределение Гаусса. Модульное программирование. Классические примеры. Рекурсивная графика. Оптимизация: предотвращение "экспоненциальной" работы. Динамическое программирование.
Проект - «Фракталы, треугольник Серпинского, множество Мандельброта, плюс создание собственного фрактала / рекурсивной графики (будет конкурс на самый оригинальный фрактал)».
Цвет. Обработка изображения. Обработка строк. Создание новых типов данных. Примеры: электрический заряд, черепашья графика, комплексные числа.
Проект - «Распознавание рукописных цифр с помощью элементарного машинного обучения».
Математические модели. Асимптотическая сложность. Алгоритмы поиска: последовательный поиск, бинарный поиск. Алгоритмы сортировки: сортировка вставкой, сортировка слиянием, самая длинная повторяющаяся подстрока.
Проект - «Введение в машинное обучение и нейронные сети. Классический метод обучения перцептрона. Собственная реализация перцептрона и мульти-перцептрона для распознавания рукописных цифр».
Стеки, очереди, связанные списки и их реализация.
Проект - «Эвристики для решения задачи коммивояжера (классическая задача в комбинаторной оптимизации), где нужно найти самый выгодный маршрут для продавца, чтобы пройти все указанные города и вернуться в исходный город».
Git (интегральный инструмент для работы с кодом), HTML (язык разметки гипертекста), CSS (каскадные таблицы стилей), JS (мультипарадигменный язык программирования), VanillaJS (кросс-платформенный фреймворк для создания приложений JavaScript).
Как работает Интернет, браузеры, элементы, компоненты, веб-дизайн. Структура HTML-документа: doctype, html, head, body. Семантический html: HTML-формы, события HTM. CSS: layout и селекторы, примеры, инструменты. Введение в JavaScript: предмстория, спецификации, основа кода, главные переменные и инструменты. Основные функции: destructuring, arrow; rest, spread operators.
Введение в DOM, Events, Vanilla.js. Браузерное окружение и DOM. Как связать Javascript с HTML и CSS. Что такое окружение JavaScript. Разбор “ Объектной модели документа(DOM)”. Введение в JQuery. Основы JQuery и Bootstrap. Знакомство с Bootstrap, интеграция Bootstrap с другими инструментами с помощью JQuery.
Введение в NPM, Storage. Хранение данных в браузере. Примеры использования javascript в консоли браузера (browser console). Методы использования консоля, рассмотрение кейсов разного применения: console.log, console.error, console.warn
Браузерное окружение и DOM. Как связать Javascript с HTML и CSS. Что такое окружение JavaScript. Разбор “ Объектной модели документа(DOM)”. Введение в JQuery. Основы JQuery и Bootstrap. Знакомство с Bootstrap, интеграция Bootstrap с другими инструментами с помощью JQuery.
Введение в NPM, Storage. Хранение данных в браузере. Примеры использования javascript в консоли браузера (browser console). Методы использования консоля, рассмотрение кейсов разного применения: console.log, console.error, console.warn.
Изучение декларативной JavaScript-библиотеки React, ее свойств и применения для создания пользовательских интерфейсов. Основы React - JavaScript-библиотека для создания пользовательских интерфейсов. Разбор компонентов React, приложения и компонентов с использованием внешних плагинов. Введение в JSX, Styling. Знакомство с траспилятором Babel, виртуальным домом. Разбор компонентов и функций Map в React. Применение inline стилей и CSS в React. Разбор способов state, useState. Знакомство с элементами UI, создание стейта на обработку input и вывод в консоль. Библиотека UI Library.
Практическое применение инструментов Material UI, Material Kit UI 2, FontAwesome. Введение в Backend-разработку. Создание алгоритмов, расчетов и интеграций IT систем внутри веб-сайта. Ознакомление с Express - программной платформой/фреймворком веб-приложений для Node.js. Изучение процедур и способов API (Application Programming Interface — «программный интерфейс приложения») для взаимодействия компьютерных программ. Ознакомление с базами данных Database, их взаимодействие и правила применения средств моделирования данных. Введение в web APIs.
Применение полученных знаний фундаментальных принципов программирования. Создание функциональных веб-сайтов. Работа над собственными проектами участников. Тестирование знаний и навыков проектирования. Создание собственного веб-приложения. Обучение работы с клиент-серверной архитектурой и API.
Как опытные менторы и разработчики, мы знаем большинство современных языков, таких как Python, Ruby, JavaScript или Go. Мы выбрали Java, потому что он не такой низкоуровневый, как C (с ненужной сложностью для новичков), но также и не слишком высокоуровневый, как Python (который скрывает много чего 'за кулисами'). Java широко используется, доступна, охватывает полный набор современных абстракций, непрерывно развивается с начала 90-х годов и имеет множество автоматических проверок на наличие ошибок в коде. Это также отличный язык для обучения объектно-ориентированному программированию, который будет полезен в мобильной и полнофункциональной веб-разработке. Как заметил создатель C++ Бьярне Страуструп: «Есть только два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется».
Вы можете оформить рассрочку 0-0-12 у наших банков-партнеров. Оставьте заявку на сайте, наши консультанты свяжутся с вами и помогут с оформлением.
Данный курс разработан для новичков. Вам не нужны какие-либо предварительные знания или опыт в программировании.
Основываясь на предыдущем опыте Армана по ведению данного курса, многие студенты с опытом программирования находят этот курс нестандартным, увлекательным и чрезвычайно полезным для создания прочной базы в компьютерных науках. В этом курсе мы рассмотрим алгоритмическую сложность, алгоритмы сортировки и поиска, классические структуры данных.
15-20 часов в неделю. За одну неделю: 3 предзаписанные видео-лекции с поддержкой менторов в реальном времени,
2 живых семинара в режиме реального времени, выполнение еженедельного проекта.
Онлайн-занятия проходят каждый день с понедельника по пятницу с 19:00 до 20:30 по времени Алматы/Астаны. Каждое воскресенье проходят офисные часы с менторами в течение 3 часов.