Skip to content

Sbai-Salah/IQC---Interview-Questions-Collection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

IQC---Interview-Questions-Collection

< star⭐ this repo/>

📈📊 This repo is subject to periodic updates to reflect insights gathered from ongoing reviews of past technical interviews.

It's worth noting that interview questions are gradually transitioning from French to English with each passing year.
Therefore, it's essential to anticipate and prepare for this linguistic shift.
Being proficient in both languages will be crucial for navigating the evolving landscape of technical interviews effectively.
Section Link
IMPORTANT INTRODUCTION ⚠️ IMPORTANT INTRODUCTION ⚠️
Using This Repository 🛠️ Using This Repository 🛠️
Software Engineer Interview Preparation Software Engineer Interview Preparation
A/ Data Structure Categories A/ Data Structure Categories
B/ Specific Questions Cagtegories B/ Specific Questions Cagtegories
Algorithmic Arsenal🧱 : Essential Problem Categories Algorithmic Arsenal🧱 : Essential Problem Categories
Additional Resources 📂 Additional Resources 📂
Practice Git By Contributing To This Repo 🤝 Contributing Guidelines 🤝

IMPORTANT INTRODUCTION ⚠️ : Choose Your Job

In the field of software engineering, achieving a solid standing within the IT community often entails specialization in a specific sub-field. This means choosing a sub-job to increase our chances of expertise, while maintaining knowledge in other domains. It's essential to understand that specialization enhances our depth of knowledge and allows us to excel in a particular area, ultimately contributing to our professional growth.

To attain this specialization, it's common practice to pass through broader roles, such as a Full-Stack Developer, before choosing between more focused positions like Frontend or Backend Developer. This progression provides an overview of each field, fostering a broader vision and deeper understanding of other related domains.

The Software Development Life Cycle (SDLC) encompasses various phases, each vital to the successful creation and deployment of software products. By navigating through different job roles and phases of the SDLC, individuals gain comprehensive insights into the software development process, ultimately shaping them into well-rounded professionals within the IT industry. Here's a breakdown of each phase along with associated job titles, sub-jobs, and the companies in Morocco and France that commonly require them:

Phase Job Title Sub-Jobs Companies (Morocco & France)
1. Planning Project Manager, Product Manager Project Coordinator, Business Analyst Capgemini, CGI, SII (Morocco), Thales, Dassault Systèmes (France)
2. Requirements Gathering Business Analyst, Requirements Engineer Systems Analyst, User Researcher Atos, Alten, Oracle (Morocco), Ubisoft, Airbus (France)
3. Design Systems Architect, UX/UI Designer Network Architect, Interaction Designer Société Générale, Novencia (Morocco), Schneider Electric, Capgemini (France)
4. Implementation Software Engineer, Programmer Frontend Engineer, Backend Engineer Ubisoft, Accenture, Inetum (Morocco), OVHcloud, Thales (France)
Full-Stack Developer, Mobile Developer Wipro, IBM (Morocco), Altran, Sopra Steria (France)
5. Testing Quality Assurance Engineer, Tester Automation Tester, Manual Tester Deloitte, HP, CGI (Morocco), Capgemini, Atos (France)
Performance Tester, Security Tester Orange, Capgemini (Morocco), Orange, BNP Paribas (France)
6. Deployment DevOps Engineer, Deployment Specialist Infrastructure Engineer, Release Manager Atos, Amadeus, Sofrecom (Morocco), Thales, Orange (France)
Site Reliability Engineer, Continuous Integration Engineer Capgemini, CGI (Morocco), Thales, Alten (France)
7. Maintenance/Support Software Maintenance Engineer, Support Engineer Bug Fixer, Technical Support Specialist CGI, SII, Atos (Morocco), Orange, Airbus (France)
Systems Administrator, Customer Success Manager Alten, Altran (Morocco), Capgemini, OVHcloud (France)

Read More About SDLC

Using This Repository 🛠️

Back To Top ⤴️

If you have an upcoming interview, especially an online technical test with a specific company, follow these steps to effectively prepare:

  1. Review Technical Question Categories: Navigate to the "Technical Questions Categories For Some Companies" section. Locate the company you're preparing for in the table. If it's listed, proceed to the next step.

  2. Practice Problem Categories: Focus on the problem categories listed for the company. Refer to the "Algorithmic Arsenal🧱" section for the most commonly asked questions in each category.

  3. Explore Additional Resources: If the company you're preparing for isn't listed, explore the provided drive folder Google Drive Folder for supplementary materials.

  4. Seek Assistance: If you're unable to find resources for your target company or have any questions, feel free to contact me directly. I'm here to assist you with your preparation journey. 😄 ( contact info in my github profile )

Software Engineer Interview Preparation

Technical Questions Categories For Some Companies 📑

Back To Top ⤴️

📈📊 This table is subject to periodic updates to reflect insights gathered from ongoing reviews of past technical interviews.

For more details about the problem categories check points A and B bellow. And for more examples of problems check Algorithmic Arsenal bellow.

Company Problem Categories
Novelis Array Manipulation, Programming Language questions, String Manipulation, Two Pointers Technique, Bit Manipulation, Frameworks Specific Questions, DevOps Basic Questions(Git)
SQLI Array Manipulation, String Manipulation, Sliding Window Technique, Trees, Programming Language questions
Oracle String Manipulation, Graphs, Dynamic Programming, DevOps Questions
SII Programming Language questions,Frameworks Specific Questions, DevOps Questions
Capgemini String Manipulation, Arrays, Dynamic Programming, Trees
... ...

⚠️⚠️ Engaging in coding problems through platforms such as HackerRank and LeetCode fosters the development of problem-solving skills, cultivating a mindset primed to efficiently tackle a wide array of challenges. ⚠️⚠️

A/ Data Structure Cagtegories

Back To Top ⤴️

  1. Array Manipulation:
    • Practice problems related to array manipulation, such as Kadane's Algorithm, rotating arrays, and finding duplicates.
  2. String Manipulation:
    • Focus on problems involving string manipulation, like reversing strings, checking for palindromes, and finding common prefixes.
  3. Sliding Window Technique:
    • Study problems that require sliding window techniques, including finding maximum subarrays, longest substrings without repeating characters, and minimum window substrings.
  4. Two Pointers Technique:
    • Explore problems that can be solved using two pointers, such as container with most water, three-sum problems, and removing duplicates from sorted arrays.
  5. Bit Manipulation:
    • Learn about bit manipulation problems, including finding single numbers, counting bits, and solving XOR-related challenges.
  6. Dynamic Programming:
    • Practice dynamic programming problems, like coin change, longest increasing subsequences, and edit distance.
  7. Trees:
    • Understand tree-related problems, including binary tree traversals, validating binary search trees, and finding lowest common ancestors.
  8. Graphs:
    • Explore graph-related problems, such as course scheduling, word ladders, and counting islands.

B/ Specific Questions Cagtegories:

Back To Top ⤴️

  1. Programming Languages Specific Questions :
    • Java/C#/PHP Basics questions, OOP questions.
    • Javascript questions.
    • SQL questions.
  2. Frameworks Specific Questions :
    • Spring Boot questions.
    • .NET questions.
    • Frontend questions: React or Angular.
  3. DevOps Basic Questions:
    • Git
    • Docker

Algorithmic Arsenal🧱 : Essential Problem Categories

Back To Top ⤴️

📈📊 This table is subject to periodic updates to reflect insights gathered from ongoing reviews of past technical interviews.

Category Problem Title
Array Manipulation Kadane's Algorithm
Rotate Array
Finding Duplicates
Product of Array Except Self
Majority Element
Container With Most Water
Three Sum
Trapping Rain Water
Missing Number
Best Time to Buy and Sell Stock
String Manipulation Reverse String
Valid Anagram
Longest Palindromic Substring
Valid Parentheses
Group Anagrams
Parenthesis Checker
Longest Common Prefix
Sliding Window Technique Longest Substring Without Repeating Characters
Minimum Window Substring
Longest Repeating Character Replacement
Two Pointers Technique Remove Duplicates from Sorted Array
Valid Palindrome
Container With Most Water
Bit Manipulation Single Number
Counting Bits
Maximum XOR of Two Numbers in an Array
Dynamic Programming Coin Change
Longest Increasing Subsequence
Edit Distance
Trees Binary Tree Level Order Traversal
Validate Binary Search Tree
Lowest Common Ancestor of a Binary Tree
Graphs Course Schedule
Word Ladder
Number of Islands

Additional Resources 📂

Last update : Added E-challenge Java 2024

Google Drive | Interviews

more content will be added later ...

Contributing Guidelines 🤝

We welcome contributions to enhance the content and functionality of this repository. Whether it's fixing a typo, adding new content, or suggesting improvements, your contributions are valuable. Please follow these guidelines to ensure smooth collaboration:

1. Fork the Repository

Click on the "Fork" button at the top right corner of the repository's page to create a copy of the repository in your GitHub account.

2. Clone the Repository

Clone the forked repository to your local machine using the following command:

git clone https://github.com/your-username/IQC---Interview-Questions-Collection.git

Replace your-username with your GitHub username.

3. Create a Branch

Create a new branch to work on your changes:

git checkout -b feature/your-feature-name

4. Make Changes

Make your desired changes to the repository. You can modify existing files, add new content, or fix bugs.

5. Commit Changes

Once you've made your changes, commit them to your branch with descriptive commit messages:

git add .
git commit -m "Add your descriptive commit message here"

6. Push Changes

Push your changes to your forked repository:

git push origin feature/your-feature-name

7. Create Pull Request

Go to your forked repository on GitHub and create a Pull Request (PR) from your branch to the main repository. Provide a clear title and description for your PR, detailing the changes you've made.

8. Review Process

Your PR will be reviewed by the repository maintainers ( for instance : Salah Sbai ). Be responsive to any feedback or requests for changes.

9. Merge Changes

Once your PR is approved, it will be merged into the main branch of the repository. Congratulations on your contribution 🎉!


About

IQC - Interview-Questions-Collection

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors