добавлю немного про книги и чтение.
выше рекомендовали Макконнелла «Совершенный код», Роберта Мартина — «Чистый код», Э. Хант, Д. Томас — «Программист прагматик». я бы добавил к ним ещё и «Design Patterns: Elements of Reusable Object-Oriented Software» и убрал роберта мартина. Но эти книги стоит читать, когда у вас есть хотя бы год-полтора (а лучше — больше) чистого программерского опыта, на более раннем этапе все эти книги бесполезны.
читать учебники — спорное занятие. кому-то это помогает быстрее справиться, кому-то нет, тут нужно определять самому. но не позволяйте себе читать учебник по той причине, что читать вместо учебника официальный мануал вам мешает языковой барьер. учите английский, в вашем возрасте это проще.
читайте блоги. причём не только по «вашим» языкам и технологиям.
в сторону enterprise и тем более java даже не смотрите, как тут советуют. энтерпрайз подавляет в людях всё хорошее и доброе и забирает волю. вы всегда успеете перейти на тёмную сторону, если захотите.
на конкретный язык не завязывайтесь. возьмите любую задачу и сделайте её на нескольких языках — php, python, ruby, js на ноде. сами выберите, что лучше, но знать лучше как минимум 3 из названных языков.