Программист из Commodore 64 хочет вернуться к программированию - есть предложения?
Когда я был ребенком, я писал сотни программ на бейсике, но потом, когда я стал старше, я ушел из этого (когда я обнаружил девочек). Теперь я хочу вернуться к этому снова и не хочу, чтобы мои прежние знания и опыт были потрачены впустую - есть ли современный язык, который хотя бы несколько похож? Каждый раз, когда я пытаюсь выполнить поиск, меня подталкивает к Visual BASIC, но я бы лучше изучал современный язык, который более широко используется. Какие-либо предложения? Заранее спасибо!
2 ответа
Начинать с нуля.
Программирование на современном языке (объектном или функциональном) достаточно отличается от базового программирования на C64, так что вы, вероятно, перенесете больше вредных привычек, чем хороших.
Я бы выбрал язык, который вам нравится, но в основном думаю о том, что вы хотите сделать:
- Вероятно,Java - это "безопасная" ставка, особенно если вы хотите начать карьеру в программировании или хотите заняться разработкой для Android.
- Если вы хотите программировать для устройств Windows / Microsoft, то C#
- Если вы хотите писать для устройств Mac или iOs, тогда Swift.
- Если вам нравится идея функционального программирования, тогда Clojure - хорошая ставка.
- Если вы хотите заниматься веб-разработкой, тогда Javascript и, возможно, Ruby
- Если вы хотите работать над такими вещами, как машинное обучение или статистика, запустите Python, а затем, возможно, R
- Если вы хотите быть передовым и, возможно, работать над некоторыми вещами DevOps, я бы предложил Go
- Со всем этим я бы предложил также изучить некоторые разновидности SQL
Языки, которых я лично обычно избегаю, потому что они слишком сложны или склонны преподавать плохие практики программирования: Objective C, C++, Perl, Lisp, Ruby
Если вы хотите изучить другие, более эзотерические языки, я рекомендую две книги:
Имейте в виду, что если вы начинаете с нуля, это не означает, что ваш предыдущий опыт теряется, а может быть не так полезен, как вам бы того хотелось.
Я был в этом точном положении около восьми лет назад; в то время как я мог сделать некоторую сборку и бейсик, эти навыки, как правило, не были (и не требуются) в современном контексте. Поэтому я пошел изучать базовую степень в области корпоративных вычислений в Великобритании (принадлежащую MMU), потому что там была Java. Из-за правительственной смены в 2010 году, которая сократила финансирование высшего образования, третий год этого курса был отменен для всех дочерних заведений, поэтому я провел год в Университете Дерби, получив степень бакалавра по программированию игр, которая все программировала на C, C++, сборка MIP, C# и Java.
Я нашел следующее полезное:
- 6502 хорош, если вы хотите изучить более современные сборки, такие как MIP; Z80, вероятно, хорош для x86/64, хотя это скорее обоснованное предположение, чем факт (сегодня я использую и 65x, и Z80 в личных проектах, смешанных с C, когда у меня появляется такая возможность);
- Си - самый красивый язык, который я когда-либо использовал. Я занимался программированием на C под Windows и для PSP. С тех пор я делал игры для Sinclair ZX81 с C и немного экспериментального программирования для Commodore 64 и Sinclair ZX Spectrum. Я люблю C;
- Объектно-ориентированное программирование заняло у меня какое-то время, прежде чем я начал думать. Сначала я думал, что объект - это просто контейнер для компьютерной памяти. Может быть, это хорошая основа для размышлений, а может и нет;
- Поступить в университет - это хорошо, потому что вы всегда чему-то научитесь, если подадите заявление самостоятельно;
- 8-битный BASIC все еще может научить вас чему-то одному или двум, если вы сможете транспонировать свою логику без плохих практик, которые поощряет 8-битный BASIC;
- У меня были большие трудности с пониманием баз данных, в основном со стороны реляционной алгебры, но также и со всеми остальными вещами. Наконец-то я начал думать об отношениях M:M где-то в прошлом году после долгих лет рассмотрения этого вопроса. Если вы боретесь с SQL/ базой данных, не сдавайтесь;
Сейчас я работаю с разработчиком веб-приложений на PHP, используя специальные OO и процедурные платформы. Я также работал с более простыми готовыми решениями, такими как Magento, CodeIgniter, Joomla! и ExpressionEngine (построен на CodeIgniter).