# Computer Programing Resources It is a section dedicated exclusively to the topic of computer programming. A curated list of free and open source resources on computer programming. The reader can find here information on interviews, problems and algorithms, online platforms on programming, courses by language and information on competitive programming. ## Contributing .. ## Table of Contents - [Tech interviews] - [Algorithms, Data Structures Algorithms (DSA)] - [Android] - [C++] - [Java] - [Python] - [Competitive Programming Resources] - [Web development] - [CI/CD, Git, devops, cloud] ## Algorithms, Data Structures Algorithms (DSA) * [Erickson, J. (2023). Algorithms](https://jeffe.cs.illinois.edu/teaching/algorithms/). This web page contains a free electronic version of my self-published textbook Algorithms, along with other lecture notes I have written for various theoretical computer science classes at the University of Illinois, Urbana-Champaign since 1998. * [Kochenderfer, M. J., Wheeler, T. A., & Wray, K. H. (2022). Algorithms for decision making. MIT press](https://algorithmsbook.com/). * [Gan, G., Ma, C., & Wu, J. (2020). Data clustering: theory, algorithms, and applications. Society for Industrial and Applied Mathematics](https://haralick.org/ML/data_clustering.pdf). * [Open Data Strucutres An open content textbook](http://opendatastructures.org/). * [Super Study Guide Algorithms & Data Structures](https://superstudy.guide/algorithms-data-structures/). * [ Shaffer, C. A. (2011). Data Structures & Algorithm Analysis in Java. Courier Corporation.](https://people.cs.vt.edu/shaffer/Book/). This is the homepage for the paper (and PDF) version of the book Data Structures & Algorithm Analysis by Clifford A. Shaffer. The most recent version is Edition 3.2.0.10, dated March 28, 2013. * [OpenDSA](https://opendsa-server.cs.vt.edu/). OpenDSA is infrastructure and materials to support courses in a wide variety of Computer Science-related topics such as Data Structures and Algorithms (DSA), Formal Languages, Finite Automata, and Programming Languages. * [A friendly notebook on Data Structures and Algorithms](https://hdl.handle.net/10016/35994 ). The purpose of this document is to provide study material that can be used for independent study by the students of the subject ’Data Structures and Algorithms’. * [Algorithms](https://labuladong.gitbook.io/algo-en). * [Rosetta Code](http://www.rosettacode.org). Solutions to the same task in as many different languages. ## Android (WORKING) ### Android Courses (WORKING) ### Android Books (WORKING) * [Android's Architecture Components (JAVA)](https://commonsware.com/AndroidArch/). * [The Busy Coder's Guide to Android Development (JAVA)](https://commonsware.com/Android/). * [Elements of Android Q (KOTLIN)](https://commonsware.com/Q/) * [Android Internals: A Confectioner’s Cookbook](https://newandroidbook.com/). Book about the operating systems part. * [Elements of Android Jetpack (JAVA, KOTLIN)](https://commonsware.com/Jetpack/) * [Exploring Android (KOTLIN)](https://commonsware.com/AndExplore/) * [Elements of Android Room (KOTLIN)](https://commonsware.com/Room/pages/index) * [Elements of Kotlin (KOTLIN)](https://commonsware.com/Kotlin/) ## C++ * [Modern CPP programming](https://github.com/federico-busato/Modern-CPP-Programming). * [Programming in C++: A Hands-on Introduction Specialization](https://www.coursera.org/specializations/hands-on-cpp). * [IBM: Data Structures & Algorithms Using C++](https://www.edx.org/es/learn/data-structures/ibm-data-structures-algorithms-using-c) . * [IBM: Fundamentals of C++](https://www.edx.org/es/learn/c-programming/ibm-fundamentals-of-c). ## Java (WORKING) * [RedHat: Fundamentals of Java EE Development](https://www.edx.org/learn/java/red-hat-fundamentals-of-java-ee-development) . * [Spring MVC, Spring Boot and Rest Controllers](https://www.coursera.org/learn/spring-mvc-rest-controller). * [Building Scalable Java Microservices with Spring Boot and Spring Cloud](https://www.coursera.org/learn/google-cloud-java-spring) * [Code Gym](https://codegym.cc/es/). * [Java Programming](https://java-programming.mooc.fi/). A free online course on learning Java. . ## Python (WORKING) * [Think Python, 3rd edition](https://greenteapress.com/wp/think-python-3rd-edition/). * [Learning Scientific Programming with Python](https://scipython.com/about/the-book/) * [Estructura de Datos y Algoritmos (Python)](https://ocw.uc3m.es/course/view.php?id=311). ## Competitive Programming Resources ### Competitive Programming Books * [Competitive Programmer's Handbook](https://cses.fi/book.pdf). ### Competitive Programming Practice Some platforms to solve competitive programming problems. * [AtCoder](https://atcoder.jp/). Japanese platform focused in competitive programming. * [CodeForces](https://codeforces.com/). Competitive programming, contests and problems. * [USACO - USA Computing Olympiad](https://usaco.org/). * [Leetcode](https://leetcode.com/). It is a platform to expand knowledge and prepare for technical interviews. * [Fast I/O in Java in Competitive Programming](https://www.geeksforgeeks.org/fast-io-in-java-in-competitive-programming/) * [Dev.to](https://dev.to/). * [Kaggle](https://www.kaggle.com/). * [Hacker Noon](https://hackernoon.com/). * [Logic Mojo](https://logicmojo.com/). * [CodignGame](https://www.codingame.com). * [OPENEDG](https://openedg.org/). * [CODE REFINERY](https://coderefinery.org/). We train you in research software development. ### Cheatsheet * [Cheat-Sheets.org](https://www.cheat-sheets.org/). * [Pandas Cheat Sheet for Data Science in Python](https://www.datacamp.com/cheat-sheet/pandas-cheat-sheet-for-data-science-in-python). * [NumPy Cheat Sheet: Data Analysis in Python](https://www.datacamp.com/cheat-sheet/numpy-cheat-sheet-data-analysis-in-python?utm_source=google&utm_medium=paid_search&utm_campaignid=21057859163&utm_adgroupid=157296747017&utm_device=c&utm_keyword=&utm_matchtype=&utm_network=g&utm_adpostion=&utm_creative=705187007219&utm_targetid=dsa-2219652735736&utm_loc_interest_ms=&utm_loc_physical_ms=1011783&utm_content=DSA~blog~Python&utm_campaign=230119_1-sea~dsa~tofu_2-b2c_3-es-lang-en_4-prc_5-na_6-na_7-le_8-pdsh-go_9-nb-e_10-na_11-na-july24&gad_source=1&gclid=CjwKCAjwqf20BhBwEiwAt7dtdRO6JwGj3MFWYJEm0V63wlkqPeVa7Lv2SuLlxaZ9j1c52fPLVqNI4xoCC_UQAvD_BwE). * [SciPy Cheat Sheet: Linear Algebra in Python](https://www.datacamp.com/cheat-sheet/scipy-cheat-sheet-linear-algebra-in-python). ## Web development * [Deep Dive Into Modern Web Development](https://fullstackopen.com/en/). * [MDN - Server-side website programming](https://developer.mozilla.org/en-US/docs/Learn/Server-side) * ## CI/CD, Git, devops, cloud * [Introduction to Git](https://learn.microsoft.com/en-us/training/modules/introduction-to-github/). * [Git BRanch](https://learngitbranching.js.org/). * [Docker resources](https://www.docker.com/blog/how-to-dockerize-your-python-applications/). ## Tech interviews * [Tech-Interview: Important Topics and Techniques](https://github.com/Coder-World04/Tech-Interview-Important-Topics-and-Techniques). * [Developer Roadmaps](https://roadmap.sh/). Developers Roadmaps about technologies. ## Licenses License [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)