В самом начале пути программиста желательно прочитать книгу по базам языка программирования, который вы выбрали. Я в основном C# программист, поэтому посоветую книгу только по этому языку. Хотел бы посоветовать что-то по Java, но не могу, потому что с этой платформой я не связывался уже более 10 лет. Последний раз что-то читал более 10 лет назад.
Я уже давно увлекаюсь Arduino и понемногу делаю небольшие проекты. В прошлом году я начал собирать свою машинку, у которой в качестве мозга выступала бы плата Arduino. Для этого я купил пластмассовую платформу, на которую можно крепить все остальные детали, четыре двигателя и четыре колеса.
Бывают такие случаи, когда нужно написать код, который будет компилироваться в проект при определенных обстоятельствах. Например, при сборке проекта в конфигурации отладки (Debug) может возникнуть необходимость включить в проект определенные участки кода, которые будут сохранять в ваш журнал состояние выполнения программы. Или наоборот, в окончательную версию (Release) включать код, который будет отвечать за проверку легальности копии, а в отладочной версии этот код должен быть отключен, чтобы не загружал вас лишними проверками при старте программы.
Далеко не всегда удается писать код абсолютно без ошибок. Если ошибки компиляции нам помогает отловить компилятор, то с ошибками логики дело обстоит немного сложнее. Как узнать, почему какая-то переменная не изменяется или почему результат выполнения какого-то кода не такой, как вы ожидали? Все это сложно, если в вас нет мощного средства отладки программы, а в Visual Studio средства отладки достаточно мощные, чтобы найти любые ошибки.
Я обожаю использовать mac для web разработки и на php я пишу только на нем. На Surface Pro у меня нет ни PHP, ни MySQL, ни Apache. Давние читатели блога уже знают, что я когда-то пробовал MAMP, но потом перешел на чистый MAMP (Mac, Apache, MySql, PHP). Недавно получил письмо с просьбой расказать, как настроить Apache на маке. Выполняю просьбую.
Недавно получил письмо с вопросом о том, зачем нужны интерфейсы, если это всего лишь описание функций и там нет реализации кода. Наследование на много лучше, потому что можно создать объекты с нужной реализацией и просто наследовать их.
Самое сложное - это научится программировать на своем первом языке программирования. Когда только начинаешь свой путь профессионала клавиатуры, то приходится учить не только синтаксис языка, но и основные принципы программирования, понимать, как машина обрабатывает команды и как она мыслит. Необходимо научится понимать, как все работает, и как пишутся программы, а потом новые языки будут даваться легко.
Сегодня читал статью о git и там было написано немного неверное представление о команде checkout. Автор не совсем понимает идеологию git, поэтому допустил несколько досадных ошибок в описании. Статья и автор не имеют значения, потому что я не собираюсь обсуждать его и его работу. Но я решил написать эту статью о git со своей точки зрения и опыта работы.