Задача сайта:
научить программированию в узком (основы программирования) и широком (методология разработки программ) понимании.
Программирование – это обширная область деятельности, описать которую во всем многообразии весьма сложно. Причем она постоянно развивается и видоизменяется. Возникает вопрос, по каким критериям, кроме специализации в конкретном направлении, оценивается квалификация принимаемого на работу программиста? Это, прежде всего – умение самообучаться, быстро адаптироваться в новой среде.
Несмотря на «многообразие» в программировании очень много «аналогий», на основе которых формируется умение самообучаться. «Нельзя объять необъятное», но можно подвести обучающегося к уровню, когда он приобрел достаточно навыков для самообучения и сможет самостоятельно черпать информацию из интернет для решения текущих задач и повышения своего профессионализма.
Тематика сайта:
заострена на графических приложениях, особенность которых – визуальное представление результатов работы программы. Это облегчает изучение основ программирования, поскольку можно наглядно видеть просчеты в создании программы.
При изложении материала теория тесно переплетена с практикой. Языки и технологии программирования, API программных систем, теоретические основы ООП, параметрического моделирования и геометрических преобразований изучаются на примерах подготовленных программ. При этом сложность программ минимальна – соответствует сложности раскрываемой проблематики.
На сайте объединяются темы одной направленности – рассматриваются задачи моделирования и распознавания 2D/3D образов. На основе ряда задач оцениваются возможности алгоритмизации интеллекта и создания компьютерного зрения. Программы реализуются вначале с использованием математического аппарата, затем – с подключением стандартных графических библиотек (OpenGL и OpenCV). Рассмотрены решения задач для различных платформ (WinAPI, WEB, Android). Для моделирования используются Autodesk CAD системы (AutoCAD, Inventor и Fusion 360) а также игровой движок Unity3D.
Порядок обучения:
в соответствии с кнопками главного меню слева направо. Языки и технологии программирования внедряются в курс обучения в порядке их усложнения. Первые приложения разрабатываются на сравнительно простом функциональном языке VLISP (в среде AutoCAD). При этом дается начальное представление о моделировании и распознавании образов. Изучение ООП начинается с VB, затем рассматриваются более сложные для понимания языки – С/С++, Java и Python. По мере накопления опыта программирования усложняются и задачи геометрического моделирования (2D/3D, CAD) а также распознавания образов. Последовательно реализуется переход от моделирования виртуальной реальности (Unity) к решению задач компьютерного зрения (CV) и их практического применения в робототехнике (Robotics). И наконец детально исследуется качественно новый шаг в программировании — моделирование искусственного интеллекта (AI) на основе нейросетевых технологий.
Рекомендации:
- Изучайте теорию на основе практических примеров.
- От чтения кода переходите к его модификации и самостоятельному программированию.
- Появляются вопросы, ищите ответы в поисковой системе Google.
- Находите и решайте интересные для себя задачи.
- Не изобретайте велосипед. Для ускорения процесса используйте готовые решения, шаблоны, библиотеки и движки.
- Расширяя свою квалификацию учитывайте тенденцию, например — по заказам работодателей на Frelance проекты.
- Не зацикливайтесь. Предпочитайте основы «многообразия» глубине «однообразия». Когда у вас есть основы, вы можете изучить детали в процессе работы.
- Сохраняйте результаты своих наработок, при этом структурируйте информацию о своих знаниях. Невозможно помнить всего, но можно знать, как быстро найти то, что нужно.
Автор: Николай Свирневский