O fato de haver essa picaretagem não deve te desanimar, mas fazer com que você entenda que nenhuma área científica hoje está livre de manipulação. A TI tem a vantagem de ser aberta e permitir, com pouco orçamento, aprender pessoalmente à revelia da academia. Minha formação como programador é auto-didata. Eu não fiz curso nenhum, porém, comecei em 1990. Eu vi quase tudo acontecendo pessoalmente. Desde a briga Token Ring x Ethernet e do Open Sistemes x Novell, até a chegada do linux. Trabalhei com super micros Cobra e Sid SMX 390. Então, eu tive a oportunidade de pegar o fio da meada. Mas não acho impossível que alguém consiga entender tudo por si só hoje. Ademais, há muita informação na internet, que é totalmente aberta. O importante são os fundamentos. Estude os fundamentos bem: estrutura de dados, lógica de programação, algoritmos, conceitos de OOP, versionamento de código, Banco de dados, Sistemas operacionais e redes de computadores. Hoje se consegue vasta documentação livre para estudar. Uma vez dominando minimamente estas disciplinas, se pode aprofundar em linguagens de programação. Só não pense que é simples e fácil, nem que é algo que precisa décadas pra começar. O campo é vasto, quando souber onde o galo canta, escolha uma área específica pra se aprofundar. Não se prenda a modinhas do momento. Em cajuzinhos do verão. Nunca vi isso funcionar por muito tempo. Sobre fontes: Em relação aos fundamentos, prefira bons livros sobre estes assuntos. Há dezenas deles na internet, dentre alguns clássicos. Segue uma lista: Lógica de Programação "Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados" de André Luiz Villar Forbellone e Henri Frederico Eberspächer Estruturas de Dados "Estruturas de Dados e Algoritmos em Java" de Robert Lafore "Algorithms, Part I and II" de Robert Sedgewick e Kevin Wayne (também disponível como curso online gratuito no Coursera) Algoritmos "Introduction to Algorithms" de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein "Algoritmos: Teoria e Prática" de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein Linguagens de Programação Python: "Python Crash Course" de Eric Matthes JavaScript: "Eloquent JavaScript" de Marijn Haverbeke (disponível online gratuitamente) Java: "Java: The Complete Reference" de Herbert Schildt C++: "Programming: Principles and Practice Using C++" de Bjarne Stroustrup Conceitos de Orientação a Objetos (OOP) "Design Patterns: Elements of Reusable Object-Oriented Software" de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides "Head First Object-Oriented Analysis and Design" de Brett McLaughlin, Gary Pollice e David West Desenvolvimento de Software "Clean Code: A Handbook of Agile Software Craftsmanship" de Robert C. Martin "The Pragmatic Programmer: Your Journey to Mastery" de Andrew Hunt e David Thomas Versionamento de Código "Pro Git" de Scott Chacon e Ben Straub (disponível online gratuitamente) Banco de Dados "Database System Concepts" de Abraham Silberschatz, Henry F. Korth e S. Sudarshan "SQL For Dummies" de Allen G. Taylor Redes de Computadores "Computer Networking: A Top-Down Approach" de James F. Kurose e Keith W. Ross Sistemas Operacionais "Operating System Concepts" de Abraham Silberschatz, Peter B. Galvin e Greg Gagne