iCreatechs Logo

Icreatechs IT Curriculum and Training Guide

[![GitHub Stars](https://img.shields.io/github/stars/carlcastanas/IT-curriculum-guide)](https://github.com/carlcastanas/IT-curriculum-guide/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/carlcastanas/IT-curriculum-guide)](https://github.com/carlcastanas/IT-curriculum-guide/network/members) [![LinkedIn](https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=linkedin&logoColor=white&link=https://www.linkedin.com/company/icreatechs-aus)](https://www.linkedin.com/company/icreatechs-aus) ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=carlcastanas.IT-curriculum-guide)
[![GitHub Student Pack](https://img.shields.io/badge/GitHub_Student_Pack-Claim_Now-37a779?style=for-the-badge)](https://education.github.com/benefits?type=student)
# Summary Embarking on a journey in the field of Information Technology (IT) can be both exciting and daunting. This guide is designed to provide aspiring IT professionals with a structured curriculum, abundant resources, and valuable insights into various job roles within the IT landscape. Whether you're a newcomer or aiming to enhance your skills, this guide serves as a roadmap to success. ## Overview - Programming Fundamentals - [General Programming Languagess](#general-programming-languages) - [Courses You Need to Try](#free-courses-you-need-to-try) - [Concepts You Need to Know](https://www.educative.io/answers/what-are-the-basic-fundamental-concepts-of-programming) - [Roadmaps For Your Career](https://roadmap.sh) - [Git: Version Control Systems ](https://learn.microsoft.com/en-us/training/modules/intro-to-git/) - [Check This Resources You'll Love!](#training-resources) - Web Development - [Frontend Guide](#frontend-mini-guide) - [Backend Guide](#backend-mini-guide) - [Fullstack Guide](#fullstack-mini-guide) - Databases Management - Relational Databases - [PostgreSQL](https://www.postgresql.org/) - [MySQL](https://www.mysql.com/) - NoSQL Databases - [MongoDB](https://www.mongodb.com/) - [Redis](https://redis.io/) - Lightweight Databases - [SQLite](https://www.sqlite.org/) - [MariaDB](https://mariadb.org/) - [CouchDB](https://couchdb.apache.org/) - ORM (Object-Relational Mapping) - [Sequelize](https://sequelize.org/) - [Hibernate](https://hibernate.org/) - [Entity Framework](https://docs.microsoft.com/en-us/ef/) - Database Toolkits - [Prisma](https://www.prisma.io/) - [TypeORM](https://typeorm.io/) - [SQLAlchemy](https://www.sqlalchemy.org/) - [Drizzle](https://github.com/drizzle-db/drizzle) - Networking Basics - [TCP/IP Illustrated](https://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0321336313) - [Networking Basics - Cisco](https://www.cisco.com/c/en/us/training-events/training-certifications/certifications/entry/ccent.html) - [SubnettingPractice](http://www.subnettingpractice.com/) - [Wireshark](https://www.wireshark.org/) for network analysis - [Cybrary - Networking](https://www.cybrary.it/catalog/cybrary/courses/networking-fundamentals/) - Cybersecurity - Types of cyber threats: [OWASP Top Ten](https://owasp.org/www-project-top-ten/) - [Cryptography and Network Security](https://www.amazon.com/Cryptography-Network-Security-Principles-Practice/dp/0134444280) - [Metasploit Unleashed](https://www.metasploitunleashed.com/) - [HackerRank - Cybersecurity Challenges](https://www.hackerrank.com/domains/tutorials/10-days-of-cybersecurity) - [Cyber Security Courses on Coursera](https://www.coursera.org/browse/information-technology/cyber-security) - Cloud Computing - Introduction to cloud services: [AWS](https://aws.amazon.com/), [Azure](https://azure.microsoft.com/), [GCP](https://cloud.google.com/) - Cloud deployment models: [IaaS, PaaS, SaaS](https://www.redhat.com/en/topics/cloud-computing/cloud-service-models) - Virtualization and containerization: [Docker](https://www.docker.com/), [Kubernetes](https://kubernetes.io/) - [AWS Training and Certification](https://aws.amazon.com/training/) - [Azure Learn](https://docs.microsoft.com/en-us/learn/azure/) --- ## General Programming Languages Programming languages are the heart of software development. Each language has its strengths and applications. Here's a quick overview: - **Python**: A versatile language known for its readability and simplicity. It's great for beginners and has a wide range of applications, from web development to data science. [Learn more](https://python.org) - **JavaScript**: The language of the web, used for building interactive websites and web applications. It's also used for server-side development with Node.js. [Learn more](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - **Java**: A versatile and widely-used language for building robust applications. It's known for its portability and is commonly used in enterprise environments. [Learn more](https://www.java.com) - **C++**: An extension of the C language, C++ is used for system-level programming, game development, and high-performance applications. [Learn more](https://isocpp.org) - **Ruby**: A dynamic, elegant language often used for web development. It's appreciated for its clean syntax and developer-friendly environment. [Learn more](https://www.ruby-lang.org) - **Swift**: Developed by Apple, Swift is used for creating iOS, macOS, watchOS, and tvOS applications. It's known for its speed and safety features. [Learn more](https://swift.org) - **Rust**: A systems programming language that emphasizes safety and performance. It's gaining popularity for its modern features and memory safety. [Learn more](https://www.rust-lang.org) > **Remember!** Each language has its unique strengths, so pick one that matches your goals and interests. Happy coding! --- ## Free Courses You Need To Try - [Codecademy Python Course](https://www.codecademy.com/learn/learn-python-3) - [Coursera - Programming for Everybody (Python)](https://www.coursera.org/specializations/python) - [edX - Introduction to Java Programming](https://www.edx.org/course/introduction-to-java-programming) - [Introduction to Computer Science](https://pll.harvard.edu/course/cs50-introduction-computer-science?delta=0) - [Web Programming with Python and JavaScript](https://pll.harvard.edu/course/cs50s-web-programming-python-and-javascript?delta=0) - [Introduction to Programming with Scratch](https://pll.harvard.edu/course/cs50s-introduction-programming-scratch?delta=0) - [Introduction to Programming with Python](https://edx.org/course/cs50s-introduction-to-programming-with-python) - [Understanding Technology](https://pll.harvard.edu/course/cs50s-understanding-technology-0?delta=0) - [Introduction to Artificial Intelligence with Python](https://pll.harvard.edu/course/cs50s-introduction-artificial-intelligence-python?delta=0) - [Introduction to Game Development](https://pll.harvard.edu/course/cs50s-introduction-game-development?delta=0) - [CS50's Computer Science for Business Professionals](https://pll.harvard.edu/course/cs50s-computer-science-business-professionals-0?delta=0) - [Mobile App Development with React Native](https://pll.harvard.edu/course/cs50s-mobile-app-development-react-native?delta=0) - [Introduction to Data Science with Python](https://pll.harvard.edu/course/introduction-data-science-python?delta=0) --- ## Frontend Mini Guide - **Basics** - [HTML](https://www.w3schools.com/html/) - Tags - SEO - Accessibility - [CSS](https://www.w3schools.com/css/) - Layouts - Responsiveness - [JavaScript](https://www.w3schools.com/js/) - Fetch API/Ajax (XHR) - Handling Forms - **Intermediate** - **JS Frameworks** - [React](https://reactjs.org/) - [Vue](https://vuejs.org/) - [Angular](https://angular.io/) - [Svelte](https://svelte.dev/) - [Astro](https://astro.build/) - **CSS Frameworks** - [SASS](https://sass-lang.com/), [PostCSS](https://postcss.org/) - [Tailwind CSS](https://tailwindcss.com/) - [Bootstrap](https://getbootstrap.com/) - [Chakra UI](https://chakra-ui.com/) - [Material UI](https://mui.com/) - **Other Web Frameworks** - [Django](https://www.djangoproject.com/) - [Laravel](https://laravel.com/) - [Ruby on Rails](https://rubyonrails.org/) - **Cross-Platform Applications** - Android, iOS - [React Native](https://reactnative.dev/) - [Flutter](https://flutter.dev/) - [Xamarin](https://dotnet.microsoft.com/apps/xamarin) - Windows, macOS, Linux - [Electron](https://www.electronjs.org/) - [Qt](https://www.qt.io/) - [Avalonia](https://avaloniaui.net/) - [JavaFX](https://openjfx.io/) - [NW.js](https://nwjs.io/) - [Proton Native](https://proton-native.js.org/) - [Sciter](https://sciter.com/) - **Advanced** - **Frontend Cloud** - [Netlify](https://www.netlify.com/) - [Vercel](https://vercel.com/) - [Cloudflare](https://www.cloudflare.com/) - [AWS](https://aws.amazon.com/) - [Azure](https://azure.microsoft.com/) - **Server Side Rendering** - **Static Site Generation** - **Using Devtools** --- ## Backend Mini Guide - **Basics** - [Programming Languages](https://www.w3schools.com/) - Python - Ruby - Node.js (JavaScript) - Java - **Web Servers and APIs** - [HTTP Basics](https://developer.mozilla.org/en-US/docs/Web/HTTP) - [RESTful APIs](https://restfulapi.net/) - [GraphQL](https://graphql.org/) - **Databases** - [SQL](https://www.w3schools.com/sql/) - MySQL - PostgreSQL - SQLite - [NoSQL](https://www.mongodb.com/nosql-explained) - MongoDB - Redis - Cassandra - **Backend Frameworks** - [Express.js (Node.js)](https://expressjs.com/) - [Ruby on Rails](https://rubyonrails.org/) - [Django (Python)](https://www.djangoproject.com/) - [Flask (Python)](https://flask.palletsprojects.com/) - **Authentication and Authorization** - [OAuth 2.0](https://oauth.net/2/) - [JWT](https://jwt.io/) - **Advanced** - **Backend Cloud Services** - [Supabase](https://supabase.io/) - [Firebase](https://firebase.google.com/) - [Pocketbase](https://www.pocketbase.io/) - **Server Deployment** - [Docker](https://www.docker.com/) - [Kubernetes](https://kubernetes.io/) - **Serverless Architecture** - [AWS Lambda](https://aws.amazon.com/lambda/) - [Azure Functions](https://azure.microsoft.com/en-us/services/functions/) - **API Security** - **Caching Strategies** --- ## Fullstack Mini Guide After mastering the frontend and backend basics, it's time to combine them! Start creating fullstack applications that seamlessly blend user experience with server-side logic. ### Project-Based Learning FTW PBL is a dynamic approach to mastering new skills. Instead of just reading about concepts, you learn by rolling up your sleeves and building projects. It's like diving into the real deal straight away. By creating practical applications, you not only gain hands-on experience but also solidify your understanding of concepts in a more engaging way. So, it's a win-win situation where you learn and conquer at the same time ### Side Project Ideas - **E-commerce Platform**: Build a virtual shop with product listings, shopping cart, and secure checkout. - **Social Media App**: Create a platform for users to connect, share posts, and engage. - **Task Management Tool**: Craft a robust app to organize tasks, deadlines, and priorities. - **Real-time Chat Application**: Develop a chat app where users can exchange messages instantly. - **Portfolio Website**: Showcase your skills with an impressive portfolio site. ### Resources for Your Fullstack Journey - [FreeCodeCamp](https://www.freecodecamp.org/): Offers in-depth fullstack curriculum. - [The Odin Project](https://www.theodinproject.com/): A fullstack learning path with hands-on projects. - [Fullstackopen](https://fullstackopen.com/): University-level fullstack course with React, Node.js, and more. - [Project Ideas from GitHub](https://github.com/karan/Projects): A collection of coding project ideas to challenge yourself. --- ## Possible Job Roles | Job Role | Average Salary (PHP) | US Average (PHP) | AUS Average (PHP) | PH Average (PHP) | |----------------------------|----------------------|------------------|-------------------|------------------| | Software Developer | ₱1,200,000 | ₱5,720,000 | ₱4,110,000 | ₱500,000 | | Web Developer | ₱900,000 | ₱4,285,000 | ₱2,860,000 | ₱400,000 | | Database Administrator | ₱1,000,000 | ₱4,750,000 | ₱3,570,000 | ₱600,000 | | Network Engineer | ₱950,000 | ₱4,515,000 | ₱3,010,000 | ₱500,000 | | Cybersecurity Analyst | ₱1,300,000 | ₱6,185,000 | ₱3,935,000 | ₱700,000 | | Cloud Solutions Architect | ₱1,500,000 | ₱7,125,000 | ₱5,775,000 | ₱800,000 | | Data Scientist | ₱1,700,000 | ₱8,065,000 | ₱5,500,000 | ₱900,000 | | AI/Machine Learning Engineer | ₱1,600,000 | ₱7,600,000 | ₱4,950,000 | ₱850,000 | | DevOps Engineer | ₱1,300,000 | ₱6,185,000 | ₱4,150,000 | ₱700,000 | | UX/UI Designer | ₱1,000,000 | ₱4,750,000 | ₱3,800,000 | ₱600,000 | | IT Project Manager | ₱1,400,000 | ₱6,650,000 | ₱5,100,000 | ₱750,000 | | Network Administrator | ₱950,000 | ₱4,515,000 | ₱3,620,000 | ₱500,000 | | Software Tester | ₱800,000 | ₱3,800,000 | ₱3,080,000 | ₱450,000 | | Technical Support Engineer | ₱700,000 | ₱3,325,000 | ₱2,750,000 | ₱400,000 | **Note:** Salaries are approximate averages and can vary based on experience, location, and other factors. ## Training Resources ### Online Learning Platforms - [Udemy](https://www.udemy.com/) - [Coursera](https://www.coursera.org/) - [edX](https://www.edx.org/) - [Codecademy](https://www.codecademy.com/) - [FreeCodeCamp](https://www.freecodecamp.org/) - [Khan Academy](https://www.khanacademy.org/) - [LinkedIn Learning](https://www.linkedin.com/learning/) - [Pluralsight](https://www.pluralsight.com/) - [Google Developers](https://developers.google.com/learn) - [Microsoft Learn](https://learn.microsoft.com/) ### Coding Practice and Challenges - [LeetCode](https://leetcode.com/) - [HackerRank](https://www.hackerrank.com/) - [CodeSignal](https://codesignal.com/) - [Project Euler](https://projecteuler.net/) - [CodeWars](https://www.codewars.com/) - [Exercism](https://exercism.io/) - [Stack Overflow](https://stackoverflow.com/) ### Official Documentation and Tutorials - [MDN Web Docs](https://developer.mozilla.org/) - [W3Schools](https://www.w3schools.com/) - [DevDocs](https://devdocs.io/) ## Free Tier Offers - **Amazon Web Services (AWS)** - [AWS Free Tier](https://aws.amazon.com/free/) - **Microsoft Azure** - [Microsoft Azure Free Account](https://azure.microsoft.com/en-us/free/) - **Google Cloud Platform** - [Google Cloud Free Tier](https://cloud.google.com/free) - **IBM Cloud** - [IBM Cloud Free Tier](https://www.ibm.com/cloud/free) - **Heroku** - [Heroku Free Tier](https://www.heroku.com/free) - **Firebase** - [Firebase Spark Plan](https://firebase.google.com/pricing) - **Vercel** - [Vercel Free Plan](https://vercel.com/pricing) - **Netlify** - [Netlify Free Plan](https://www.netlify.com/pricing) - **MongoDB Atlas** - [MongoDB Atlas Free Tier](https://www.mongodb.com/cloud/atlas) - **Redis Labs** - [Redis Labs Free Tier](https://redislabs.com/redis-enterprise-cloud/try-free/) - **Auth0** - [Auth0 Free Tier](https://auth0.com/pricing) - **Twilio** - [Twilio Free Tier](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account) ## 2-Year Time Frame Roadmap | Year | Quarter | Subjects to Cover | Resources | |------|---------|------------------------------------------------------------|---------------------------------------------------------| | 1 | Q1 | Programming Fundamentals
Web Development (HTML, CSS, JavaScript) | [Codecademy](https://www.codecademy.com/learn/introduction-to-programming), [MDN](https://developer.mozilla.org/en-US/docs/Learn), [freeCodeCamp](https://www.freecodecamp.org/) | | | Q2 | Web Development (Frontend frameworks)
Databases (Relational databases and SQL) | [React](https://reactjs.org/docs/getting-started.html), [Angular](https://angular.io/docs), [Vue.js](https://vuejs.org/v2/guide/), [SQLZoo](https://sqlzoo.net/), [W3Schools](https://www.w3schools.com/sql/) | | | Q3 | Networking Basics
Databases (Database design and normalization) | [Cisco Networking Basics](https://www.netacad.com/courses/networking/networking-basics), [Database Design Tutorial](https://www.guru99.com/database-normalization.html), [Advanced SQL](https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=sql-server-ver15) | | | Q4 | Cybersecurity (Introduction)
Cloud Computing (Introduction) | [Cybrary](https://www.cybrary.it/course/introduction-cyber-security/), [Cloud Computing Fundamentals](https://aws.amazon.com/getting-started/fundamentals-overview/) | | 2 | Q1 | Web Development (Backend technologies)
Cybersecurity (Cryptography and Network Security) | [Node.js](https://nodejs.org/en/docs/), [Django](https://docs.djangoproject.com/en/3.2/), [Flask](https://flask.palletsprojects.com/en/2.0.x/), [Khan Academy Cryptography](https://www.khanacademy.org/computing/computer-science/cryptography) | | | Q2 | Networking Basics (IP addressing, subnetting)
Cloud Computing (Virtualization and containerization) | [SubnettingPractice](https://www.subnettingpractice.com/), [IPv6 Essentials](http://ipv6-essentials.com/), [Docker Documentation](https://docs.docker.com/), [Kubernetes Documentation](https://kubernetes.io/docs/home/) | | | Q3 | Cybersecurity (Ethical hacking, penetration testing)
Cloud Computing (Cloud services and deployment models) | [Metasploit Unleashed](https://www.metasploitunleashed.com/), [Amazon Web Services](https://aws.amazon.com/getting-started/), [Microsoft Azure](https://learn.microsoft.com/en-us/azure/), [Google Cloud Platform](https://cloud.google.com/) | | | Q4 | Finalize any remaining subjects
Enhance skills in specific areas of interest
Continuous learning and project building | - | **Note:** The provided resources are just starting points. Feel free to explore additional online courses, tutorials, and documentation. ## Tips for Improving IT Skills - **Consistent Practice:** Regularly practice coding, problem-solving, and hands-on projects to reinforce your skills. - **Project Building:** Create personal projects to apply what you've learned in real-world scenarios. - **Collaboration:** Join coding communities, forums, and open-source projects to collaborate and learn from others. - **Networking:** Attend tech meetups, conferences, and workshops to network with professionals in the field. - **Online Communities:** Participate in tech discussions on platforms like [Stack Overflow](https://stackoverflow.com/) and [Reddit](https://www.reddit.com/r/learnprogramming/). - **Stay Curious:** Explore emerging technologies and trends to stay updated with the rapidly evolving IT landscape. - **Continuous Learning:** Set aside time for continuous learning, even after you've covered the core curriculum. - **Company's Facebook Page:** Follow our [iCreatechs Facebook page](https://www.facebook.com/icreatechs) for additional IT tips and updates. - **Collaboration on Discord:** Join our [Discord group](https://discord.com/invite/44JBBe62fx) with 17k members to collaborate and code together. - **Facebook Group Community:** Become a part of our [iCreatechs Community Facebook group](https://www.facebook.com/groups/icreatechs.community) with 90k members that can help you improve your coding skills together. ## How to Contribute We welcome contributions to improve and expand this IT Curriculum and Training Guide. Your contributions can help make this resource even more valuable for aspiring IT professionals. Here's a step-by-step guide on how you can contribute: 1. **Fork the Repository:** - Go to the [IT Curriculum and Training Guide repository](https://github.com/carlcastanas/it-curriculum-guide). - Click the "Fork" button at the top right corner of the page. This will create a copy of the repository in your GitHub account. 2. **Clone Your Fork:** - Open a terminal on your computer. - Navigate to a directory where you want to store the project. - Clone your forked repository by running the following command: ```shell git clone https://github.com/carlcastanas/it-curriculum-guide.git ``` 3. **Create a New Branch:** - Move into the cloned repository's directory: ```shell cd it-curriculum-guide ``` - Create a new branch for your contributions. Choose a descriptive branch name that reflects the changes you'll make: ```shell git checkout -b add-new-resources ``` 4. **Make Your Contributions:** - Open the `README.md` file in a text editor of your choice. - Make the necessary changes. You can add new resources, update existing content, or contribute in any way you feel would be valuable. 5. **Commit and Push Your Changes:** - Save the `README.md` file. - Add your changes to the staging area: ```shell git add README.md ``` - Commit your changes with a clear and concise commit message: ```shell git commit -m "Add new resources for Web Development" ``` - Push your changes to your forked repository on GitHub: ```shell git push origin add-new-resources ``` 6. **Create a Pull Request:** - Visit your forked repository on GitHub. - Click the green "Compare & pull request" button. - Ensure the base repository is the original repository, and the base branch is `main`. The head repository and branch should be your fork and the branch you created. - Provide a descriptive title and detailed description for your pull request. - Click the "Create pull request" button. 7. **Review and Collaborate:** - Your pull request will be reviewed by the repository maintainers. - Be open to feedback and participate in any discussions or requested changes. 8. **Your Contribution Is Merged:** - Once your pull request is approved and any necessary changes are made, it will be merged into the main repository. - Congratulations! You've successfully contributed to the IT Curriculum and Training Guide.