Почему я хочу научиться программировать?
Программирование действительно открывает новый мир.
Как уже было написано
а) научиться программировать может каждый
б) самостоятельно
в) никогда не поздно
г) в современном мире это необходимый навык, и
д) делать это нужно путем изучения основ программирования, и последующего расширения знаний путем решения практических задач и реализации проектов, в которых есть большой личный интерес.
На Голосе был пост «Как научиться программировать» в котором сказано дословно следующее:
Многие люди, которые хотят научиться программировать идут по неправильному пути - они качают книги, читают теорию, пытаются повторять за кем-то несложные программы, а потом выясняется, что самостоятельно разработать какой-то проект они не в силах.
На самом деле инструкция по быстрому обучению любому языку программирования очень проста:
Получить базовые знания: Что такое переменные, и массивы; Операторы ввода-вывода; Что такое if else; Что такое циклы while и for;
Самостоятельно придумывать для себя задания и реализовывать их с помощью имеющихся знаний;
Если знаний недостаточно, искать в гугле необходимую информацию и внедрять ее в свой код.
Это всё. На самом деле, больше ничего не нужно.
Спасибо @pythono
Как считает Дмитрий Песков (#АСИ, #НТИ) ссылка программирование должно быть основным навыком, который дается каждому уже в раннем детстве, и ребенок должен начинать учиться программировать раньше, чем научится читать, потому что это его путь в современный мир и этот навык открывает дверь к карьере и успешной жизни больше, чем что либо еще...
В процессе обучения программированию по методу, описанному выше, я обнаружил, что одними из важнейших навыков на этом пути являются:
- действительно базовые основы описания алгоритмов, переменные, массивы, циклы, функции (классы, процедуры);
- умение строить элементарные математические вычисления и работать со строками;
- умение читать данные из файлов и внешних https:// источников, а также записывать данные в различном формате в файл, на сервер или отправлять на печать;
- умение находить на github нужные куски кода для реализации своих идей и встраивать их в собственные программы;
- умение использовать имеющиеся на рынке API для получения данных и обмена ими с внешними приложениями;
API (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах. Используется программистами при написании всевозможных приложений.
Готовые API в связке провайдер + github есть практически у всех наиболее популярных приложений: Google, Yandex, maps.google, finance.google, Facebook, Twitter, Telegram, Expedia, Uber, десятки и сотни других.
- наконец, хотя это не главное - умение строить пользовательские интерфейсы (GUI) для приложений.
Графический интерфейс пользователя (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
Одна из наиболее гениальных книг на тему правильного построения графических интерфейсов и того, что называется User eXperience (UX) - Microinteractions: Designing With Details, автор - Dan Saffer. По-русски про книгу хорошо написано здесь
По поводу языков программирования - мой выбор - Swift и Python, про их достоинства можно прочитать здесь и здесь.
Но в принципе любой современный язык достаточно хорош и удобен, и по возможности лучше освоить несколько. То есть, для примера, когда я занимался только Swift, мои возможности ограничивались им. Как только я добавил Python, я получил 2-кратное увеличение возможностей, в том числе по применению кода с github. Ну и в принципе при выборе языка хорошо обратить внимание на этот рейтинг
Какими проектами я занимаюсь и намерен заниматься в ближайшее время:
- создание приложения-тренажера для обучения кредитных инспекторов анализу рисков по розничным кредитам (на базе этого прототипа)
- создание торгового робота для работы с p2p кредитами на плаформе Bondora.com (нейронные сети + Bondora API + продуманный UX)
- создание "рейтингового агентства в облаке", обучение нейронной сети присвоению рейтингов, соответствующих или лучших, чем у S&P, Moody's и Fitch (пилотный проект - рейтинги для всех компаний на NYSE / NASDAQ)
- создание приложения для планирования туристических маршрутов (путешествий) на базе интеграции собственного опыта и API таких провайдеров, как Google, Expedia, Tripadvisor, Uber, Sygic, Facebook + Twitter, Dropbox.
Всем коллегам по обучению успешной учебы и хороших идей для проектов!