Боюсь, знать язык и знать среду разработки еще не знать как программировать.
У меня куча книжек по старому Delphi, где описывалась IDE и где не рассматривался язык, не говоря уже про что-то крутое. Поэтому я на это смотрю так - человек умеющий по настоящему программировать, должен разобраться в любом языке или среде (не сильно заумной конечно же). Одно понимание ООП чего стоит, а оно ведь кросс-языковое.
Язык и ООП: Подбельский, Язык Си++.
Кнута советовать или сами догадаетесь?
Правильность программирования как такового: Савченко, Разработка алгоритмов от простого к сложному.
Хорошо зная язык или ИДЕ, но не понимая что делаешь, это будет как у меня в универе, где учили день недели вычислять большим циклом со дня рождения Христа. Спрашиваю зачем, ответ - это просто пример. Из-за таких примеров я потом такие пёрлы у однокурсников видел. А потом еще и программы у нас много оперативки просят и глючат.