Курс программиста

Я хочу научиться писать программы. С чего начать? Какой язык лучче учить?

Английский. Запишись на курсы английского языка, научись читать тексты на английском хотя бы со словарём (например, Wikipedia Science Portal, англоязычные комиксы вроде «TwoKinds» или «Suicide For Hire»), смотреть фильмы или лекции с английскими субтитрами (например, «The Quantum Conspiracy…» или «My Little Pony: Friendship Is Magic» в оригинале), играть в игры на английском языке. Вся литература по программированию пишется на английском, почти все курсы на крупнейшей образовательной платформе Coursera читаются только по-английски, все справочники по языкам программирования и программным библиотекам написаны на английском языке. В переводе есть только 3,5 безбожно устаревших книжки и 1,5 курса по PHP от Вована. Если ты не научишься читать английские тексты, то ты не сможешь продвинуться дальше учебных программ и скриптов «для себя».

О'кей, я знаю английский. Что дальше?

Это зависит от того, что ты хочешь конкретно.

Я хочу начать писать программы на чём-нибудь. Здесь. Сейчас.

Я хочу понять, как работает компьютер, как он внутри устроен, биты, байты — вот это всё.

  1. Петцольд Ч. Код: тайный язык информатики.

    Попрактиковаться можно в Electronics Workbench (под Windows) или в logisim (под Linux, в репозиториях Ubuntu есть одноименный пакет).

  2. Bartlett J. Programming from the ground up.

    Для практики под Linux тебе понадобятся binutils и gcc (в репозиториях Ubuntu есть одноименные пакеты). Обычно они идут в комплекте с дистрибутивом, но иногда их надо ставить отдельно. Для Windows есть MinGW (когда поставишь, не забудь в переменную окружения Path добавить папку «bin» установленного MinGW, иначе компиляторы не будут запускаться).

    Ой, она на английском…

    Я же предупреждал! Ладно, специально для тебя есть книжка «Персональный компьютер ZX-Spectrum — Программирование в машинных кодах и на языке Ассемблера». Для практики достань ZX-Spectrum (желательно модели 128K) или скачай какой-нибудь его эмулятор (например, ZX-Spin, со встроенным Ассемблером; только не забудь в опциях выставить модель 128K).

  3. Керниган Б., Ритчи Д. Язык программирования C.

Я хочу стать ученым-информатиком (computer scientist), изучать алгоритмы, математически доказывать их корректность.

Я хочу зарабатывать деньги программированием.

Есть два стувостребованных направления:
  1. Веб-дизайн. Изучай:
    • PHP
    • HTML
    • CSS
    • MySQL
    • JavaScript
  2. 1С. Изучай бухгалтерию и, собственно, 1С.