Aprender uma linguagem de programação sempre é importante.
Muitas escolas já incluem “codificação” e “lógica de programação” na grade curricular do ensino fundamental.
Se para a geração X era requisito saber inglês para algumas vagas de trabalho, em pouco tempo, será requisito também saber programação.
Para quem deseja trabalhar com Machine Learning e Data Science, linguagens como Python e/ou R podem ser diferenciais no currículo. Entretanto, saber o básico de HTML5 é importante para a área de marketing, até mesmo para fazer coisas simples como enviar email marketing.
Para a seleção de sites abaixo utilizei como referência o artigo original 12 Sites That Will Teach You Coding at a Low Cost, Even Free.
Para aprender linguagem de programação:
Livros grátis de programação
Livros de Programação Grátis disponível em GitHub / eBook Foundation
Cursos de programação de nível universitário.
A seguinte seleção abaixo foi retirada do artigo “Online Learning: An Intensive Bachelor's Level Computer Science Program Curriculum, Part II”
Cursos de Introdução
Intro to Computer Science:
- Introduction to Computer Science and Programming: MIT
- Intensive Introduction to Computer Science: Harvard
- Introduction to Computer Science and Programming Methodology: Stanford
- Programming Abstractions (Second Course in Unit): Stanford
Mathematics:
- Mathematics for Computer Science: MIT
- Discrete Mathematics: ArsDigita
Programming:
- Programming 1: University of Toronto
- Programming 2: University of Toronto
Theory of Computation:
- Introduction to the Theory of Computation: Stonehill
- Principles of Computing: Rice
Data Structures and Algorithms:
Cursos de fundamentos
Theory:
- Theory of Computation: UC Davis
- Theory of Computation: IIT Kanpur
Algorithms and Data Structures:
- Efficient Algorithms and Intractable Problems: Berkeley
- Data Structures: Berkeley
Mathematics:
- Linear Algebra through Computer Science Applications: Brown
- Discrete Math and Probability Theory: Berkeley
Operating Systems:
- Operating Systems and Systems Programming: Berkeley
- Introduction to Linux: edX
Computer Programming:
- Programming Paradigms: Stanford
- Object Oriented Programming: MIT
- Object Oriented Programming in C++: ITU
Software Engineering:
- Software Engineering: Berkeley
- Elements of Software Construction: MIT
Computer Architecture:
- Computer Architecture: Carnegie Mellon
- Computer Architecture: Princeton
Data Management:
- Introduction to Databases: Stanford
- Introduction to Modern Database Systems: Saylor
Networking and Data Communications:
- Fundamentals of Computer Networking: Manhattan College
- Introduction to Data Communications: Thammasat University
Cryptography and Security:
- Introduction to Cryptography: Ruhr University
- Introduction to IT Security: Thammasat University
Artificial Intelligence:
- Introduction to Artificial Intelligence: Berkeley
Cursos Intermediários e Avançados
Algorithms and Data Structures:
- Advanced Data Structures: MIT
- Analytic Combinatorics: Princeton
Systems:
- Computer System Engineering: MIT
- The Hardware/Software Interface: University of Washington
Programming:
- Design in Computing: UNSW
- Principles of Programming Languages: IIT
- C++ for C Programmers: UC Santa Cruz
- Heterogeneous Parallel Programming: University of Illinois
- Compilers: Stanford
Software Engineering:
- Mobile Software Engineering: Harvard
- Software Engineering for Scientific Computing: Berkeley
Mobile App Development:
- Building Mobile Applications: Harvard
- iPhone Application Development: ITU
- Android Application Development: ITU
Web Development:
- Building Dynamic Websites: Harvard
Databases and Data Management:
- Introduction to Database Management Systems: KU Leuven University
- Database Management Systems: Ars Digita
- Advanced Databases: Saylor
Security:
- Security and Cryptography: Thammasat University
- Designing and Executing Information Security Strategies: University of Washington
- Information Security and Risk Management in Context: University of Washington
Cryptography:
- Cryptography 1: Stanford
- Cryptography 2: Stanford
- Bilinear Pairings in Cryptography: BIU
Artificial Intelligence and Machine Learning:
- Artificial Intelligence: HRW
- Artificial Intelligence: Berkeley
- Machine Learning: Stanford
Natural Language Processing:
- Natural Language Processing: Columbia
- Natural Language Processing: Stanford
Digital Media:
- Digital Image Processing: Purdue
- Computer Graphics: Berkeley
- Computer Graphics: ITU
Networking and Communications:
- Computer Networks: University of Washington
- Internet Technologies and Applications: Thammasat University
Statistics and Probability:
- Statistics and Probability: Harvard
- Probabilistic Systems Analysis and Applied Probability: MIT
- Statistical Inference: Johns Hopkins
- Data Analysis and Statistical Inference: Duke