Привет от WEBDAD
Надеюсь, что ты, мой дорогой друг, был уже окрылен успехом после того, как создал свой первый сайт в html файле или скомпилировал свой первый "Hello world". Если после этого прошло достаточно времени, у тебя появилось больше опыта и в твоей голове сформировалась мысль, что работодатели крупных IT-фирм уже мечтают о тебе, то остановись на секунду... Этот пост я посвящу тебе.
Чтобы ты не тратил время зря, я сразу же опишу суть этого поста: "Язык — лишь малая часть того, что вам нужно знать. Может быть около 10%, а то и меньше." Да, да, да... Ты прав. Без знания и понимания основ программирования ты никому не нужен. Но доскональное знание фреймворка или библиотеки не гарантирует тебе успех на настоящем проекте. Привязываться ни к какому языку не буду и постараюсь выделить наиболее универсальные пункты: Английский язык. Если в школе ты прогуливал эти уроки, то сейчас придётся спешно все нагонять. Хотя бы до уровня понимания со словарем.
Зачем он нужен, когда есть великий и могучий русский язык? Чтобы понимать документацию, примеры на stackoverflow и бесконечные ошибки в терминале. POSIX-операционная система. Конечно, можно разрабатывать и под Windows. Не подумайте, что я призываю в срочном порядке расставаться с ней. Тем более с появлением docker и прочих vagrant'ов это стало не так критично как ранее, но все же работать на UBUNTU или MacOS на порядок комфортнее из-за нормальной нативной консоли с ее командами используемых ежедневно в работе. Оболочка bash, переменные окружения, ssh и ключи доступа к удаленным машинам — все это используется весьма и весьма часто.
Системы контроля версий. Уровень владения git должен быть чуть ли не выше, чем уровень владения вашего основного языка программирования. В тандеме с удаленным репозиторием спасёт вас от потери проекта, поможет проконтролировать изменения в проекте и синхронизировать разработку в команде состоящей из нескольких разработчиков и поможет контролировать качество кода. И НИКОГДА не используйте архивы и прочий PHP-style.
Лучше посмотрите и ознакомьтесь с github и bitbucket. Чтение чужого кода Если не умеете, то фактически вы не умеете пользоваться существующими ресурсами и каждый раз будете создавать велосипед. Как правило это не эффективно (ну давайте может быть еще язык программирования каждый раз снова создавать под каждую задачу?). Со временем вы поймете, что иногда быстрее написать что-то свое, но по началу — старайтесь учиться у других.
Даже если вы в итоге решите писать что-то свое, у вас будет уже хоть какое-то представление о том как надо или как не надо делать. Базы данных. Их можно изучать годами — настолько обширная тема и хорошее знание баз данных, умение оптимизировать структуру и запросы необходимы чтобы стать ведущим разработчиком с большой зарплатой. Но для начала вам нужен хотя бы минимум — уметь установить СУБД и знать что такое INSERT, UPDATE, SELECT, JOIN, GROUP BY для реляционных баз.
Лично мы рекомендуем PostgreSQL, так как она хорошо поддерживает гео-данные, которые нынче в каждом втором стартапе. Помимо реляционных, вам надо знать, что есть ещё noSQL типа Mongo (и зачем они нужны) и key-value хранилища типа Redis.