Задать вопрос

Язык программирования под конкретную задачу + с нуля + хорошая база?

Исходные условия:
25 лет
Хороший английский (легко читаю мануалы/воспринимаю на слух)
Слабый матан (не было мотивации/необходимости, при наличии - смогу улучшить)
Слабое знание статистических методов анализа (с универа - психфак)
7 лет назад КМС по шахматам :)
Знание html
Около нулевые знания языков программирования
Свободное время по вечерам, выходным

Мотивация:
Несколько простых проектов
Для "общего образования/развития)
Для работы (проект-менеджер - куча разных задач)*

Задачи:
1) Написать программу для себя. Программа - тренажер на n-back задачи. Есть много готовых вариантов, но мне нужен свой, с блекджеком и куртизанками.

А именно, программа должна:
Min:
работать на PC
Иметь стандартный функционал n-back тренажеров
Возможность использовать в кач-ве стимулов (картинка, звук, слово, символ) - собственные (этого не находил в существующих вариантах), легко менять их
Max:
+ версия для личного использования на android & iOS
+ web версия
+ опубликовать прогу в андроид маркет/iOS

Это основная задача, главный источник мотивации. Ресурс мотивации ограничен, лучше сделать с костылями, по-минимуму. Чем быстрее и проще, тем лучше.

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

3) Разнообразные задачи в сфере менеджмента проектов. Хорошо бы разбираться в азах, чтобы понимать веб-програмистов, програмистов 1С. Возможно программистов металлообрабатывающих станков (не уверен понадобится или нет). Близко к задаче номер 2.

4) Отдаленная цель (для которой полезна база) - научиться простому программированию контролеров.
Этой целью можно пожертвовать.

5) Работа с БД и обработка информации вообще.
Задачи типа парсинга, создания БД (например БД интернет магазина и заливка её непосредственно в БД CMS).
В принципе мне сейчас хватает знаний html для настройки готового парсера. Для работы с БД магазина с помощью спец проги тоже.
Но в целом больше понимать работу SQL и принципы БД вообще - было бы полезно.
Не уверен, что мне когда либо понадобится написать свой парсер. Но написать плагин к парсеру (datacol) - уже была потребность.

Вот такие цели. Основная первая, распыляться не хочу (может не хватить мотивации). Очень желательно написать функциональную прогу за месяц-два, если это реально.

Какой язык посоветуете?
В плане: сложности/времени освоения/хорошей базы для последующего развития?
Сколько времени и сил на какой языке может занять написание проги из первой цели c min функционалом?
К языку киньте пжл хороших мануалов (рус/анг). Понимаю, мануалов море, но какой хороший, а какой нет я на данном этапе не разберусь.
  • Вопрос задан
  • 3297 просмотров
Подписаться 3 Оценить Комментировать
Решение пользователя Deerenaros К ответам на вопрос (6)
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
На самом деле, можно выбрать JS или Python. В контексте Python'а поставленная первая задача решается на раз два, вот пару советов, которые могут помочь в дальнейшем (естественно, в контексте получения быстрого результата):
+ забейте на классы и красивый код, пишите как можно быстрее, итоговый вариант будет мерзким и ужасным, однако результат не заставит себя ждать
+ используйте мощь Python'а - генераторы, списки (и слайсы), лямбды и много-много сахара
+ начните с pygame: тут не будет красивых менюшек из коробки, однако, что важнее, будет достаточно удобный с точки зрения Python API, и рисование и звук.

К слову, Python можно относительно легко компилировать в JS, а есть ещё и on-the-fly парсер на JS. Так что сделать web-версию не составит огромного труда.

Окей, что до ресурсов, то codeacademy, coursera очень хорошие варианты. Ну и официальная документация тоже одна из лучших (по языкам).

Единственная сложность, так это выбрать двойку или тройку. Советую тройку - с либами в основном всё хорошо, да и разница не настолько колоссальна (в основном это print стал настоящей функцией, когда был невесть чем). Да и забавно - python 2.x очень легко конвертируется в python 3.x подключением пары либ и парой импортов из __future__.

Теперь о том, как это можно экстраполировать на остальные задачи. Матан совсем не обязательно и легко поднимается по требованию. Было бы не плохо быстро поднять технический английский (дабы понимать термины), хотя здесь проблем совсем не должно быть - сам технический IT-русский на 80% из английского. Программировать контроллеры на Python сложно, но можно. Понимать вэб и 1С-программистов не составит труда, так как в основном они и не программисты.

Относительно JS могу сказать, что он и простой и сложный одновременно. Задумывался он максимально простым, и отчасти он таким получился. Однако уродцем он получился ещё тем. В этом видео очень интересно показано. И там ещё много таких тонких моментов. Хотя на самом деле, он действительно очень интересен и многое умеет. Да и разработка идёт полным ходом, а браузеры спешно имплементируют новшества.
Ответ написан