SlideShare a Scribd company logo
1 of 16
Software Engineering
Industry, Career Paths, and
Essential Skills
Fundamentals of Software Engineering – Lecture 2
Osamah Abduljalil
@2024
1
Topics Covered
2
 The Software Industry Landscape
 Software Engineering Career Paths
 Essential Skills for Success in Software Engineering
 Software Communities
 Software Learning Resources
Fundamentals of Software Engineering - Osamah Abduljalil
The Software Industry Landscape
3
Fundamentals of Software Engineering - Osamah Abduljalil
 Market Size and Growth
 The global software market size was valued at USD 583.47 billion in 2022 and is expected to grow at a
compound annual growth rate (CAGR) of 11.5% from 2023 to 2030. This growth is because more companies are
using a lot of data, automating their processes, and going digital.
 The COVID-19 outbreak positively impacted the global market, as it stimulated the demand for software solutions
for remote work, cybersecurity, e-commerce, and digital transformation.
 Key Players and Market Trends
 Some of the key players in the global software market include Microsoft, IBM, Oracle, SAP, Adobe, Salesforce,
VMware, Dell, Cisco, and Symantec1.
 Some of the key market trends include the adoption of cloud-based software, the emergence of artificial
intelligence (AI) and machine learning (ML) technologies, the rise of software as a service (SaaS) and platform as
a service (PaaS) models, and the increasing focus on cybersecurity and data privacy.
Software Engineering Roles
4
Fundamentals of Software Engineering - Osamah Abduljalil
 Front-End Engineer
Plan, design, and build the user-interface components of a software application. They
ensure that the interface meets both an organization’s goals and user needs.
 Back-End Engineer
Design, build, and maintain the server-side of web applications with a focus on speed, and
functionality. They write server scripts and work with application programming interfaces
(APIs) that are eventually used by front-end engineers.
 Full-Stack Engineer
As the name suggests, a full-stack engineer does it all—they are familiar with the full
software development cycle and can contribute to both the front-end and back-end.
Software Engineering Roles
5
Fundamentals of Software Engineering - Osamah Abduljalil
 Quality Assurance (QA) Engineer
QA engineers have in-depth knowledge of different testing processes and methodologies.
They are good in data management, bug reporting, and creating test environments.
 DevOps Engineer
DevOps engineers help make sure that new code gets released and deployed smoothly.
They work in the middle of software development and IT operations, knowing a lot about
testing how well things work, setting benchmarks, and finding ways to make the basic
infrastructure better.
 Security Engineer
Security engineers are cybersecurity specialists who are trained to detect security
problems within systems and build protections from malware and unauthorized entry. They
are also trained in digital forensics to determine how and when an attack took place.
Software Career Ladder
6
Fundamentals of Software Engineering - Osamah Abduljalil
 Intern
Internships provide an opportunity for individuals to apply their academic knowledge to
real-world projects, acquire hands-on experience, and develop skills under the guidance of
experienced professionals. Interns often work on specific tasks or projects within a team
and are exposed to the day-to-day operations of the software development process.
 Junior Developer (1-3 years)
Junior software engineers have an entry-level role. They typically assist the engineering
team with basic tasks such as writing code and debugging existing software.
Software Career Ladder
7
Fundamentals of Software Engineering - Osamah Abduljalil
 Mid-level Engineer (3-5 years)
Mid-level software engineers are competent in all stages of the software development
cycle and can usually work independently.
 Senior Engineer (5+ years)
Senior software engineers have the most independence. They usually have an area of
expertise (i.e. DevOps, full-stack development, back-end development), have
demonstrated leadership capabilities, and are able to lead a project from start to finish.
Essential Skills for Success in Software
Engineering
8
Fundamentals of Software Engineering - Osamah Abduljalil
 Soft Skills
 Organizational and Project Management Skills
 Technical Skills
Soft Skills
9
Fundamentals of Software Engineering - Osamah Abduljalil
 Communication and Collaboration
 Manage Time and Honor your commitments
 Problem-Solving
 Critical Thinking
 Analytical Thinking
 Attention to Detail
 Continuous Learning
Organizational and Project Management Skills
10
Fundamentals of Software Engineering - Osamah Abduljalil
 Coordinate with team members, vendors, and customers to solve problems
 Gather business and functional requirements
 Test different scenarios (Test Cases)
 Use project management tools such as Jira, Trello..etc.
 Use Version Control Systems Such as: Git, GitHub..etc.
Technical Skills
11
Fundamentals of Software Engineering - Osamah Abduljalil
 Programming languages: Software engineers need to be proficient in at least one programming
language, such as JavaScript, Python, Java, C#, or Ruby. Programming languages are the tools that
software engineers use to create instructions for computers to execute.
 Software development methodologies: Software engineers need to follow a systematic and
disciplined approach to developing software, such as Agile, DevOps, Scrum, or Waterfall. Software
development methodologies are the frameworks and processes that software engineers use to
manage the software development life cycle, from planning and design to testing and deployment.
 Testing and debugging: Software engineers need to ensure that the software they create is reliable,
secure, and error-free. Testing and debugging are the activities and tools that software engineers use
to verify, validate, and improve the quality of software.
 Containers: Software engineers need to be familiar with containers, which are software packages
that bundle up an application and its dependencies into a single unit that can run on any platform.
Containers are the technologies that software engineers use to create portable, scalable, and
consistent software environments.
Software Communities
12
Fundamentals of Software Engineering - Osamah Abduljalil
 Software communities are online platforms where developers and software engineers can meet,
connect, and interact with each other around their shared interests, challenges, and goals. Software
communities can help developers learn new skills, find solutions, get feedback, network, and
collaborate on projects.
 Where can I find Software Communities?
 Social Media Groups.
 Some popular software communities are:
o GitHub: A platform where more than 40 million people learn, share, and work together to build
software. You can join the GitHub Community Forum to share ideas and follow discussions on
topics that interest you.
o Stack Overflow: An open community for anyone that codes. You can get answers to your
toughest coding questions, share knowledge with your coworkers, and find your next dream job.
o Hacker News: A social news website focusing on computer science and entrepreneurship. You
can post anything that gratifies your intellectual curiosity and join the lively discussions with other
developers.
Software Learning Resources
13
Fundamentals of Software Engineering - Osamah Abduljalil
 Search Engines – software that allow users to search for information of interest.
• Examples: Google Search and Microsoft Bing
• Use algorithms that can predict or suggest your searches
• Finds documents on the Internet that closely align with the search terms entered by the user
 Recent development in artificial intelligence have enabled generating, testing, and debugginh code
capabilities Examples: Github Copilot, ChatGPT.
 User Generated Content Websites: users generate content that meets some specialized information
needs for other users such as: GeeksForGeeks, W3School, Medium..etc.
 Coding Challenge Websites: are platforms that offer programming problems and exercises to help
developers enhance their coding skills, practice problem-solving, and prepare for technical interviews.
Coding Challenge Websites
14
Fundamentals of Software Engineering - Osamah Abduljalil
 LeetCode: is a widely used platform for coding challenges that cover a variety of topics, including
algorithms, databases, shell, and more. It is commonly used for technical interview preparation.
 HackerRank: provides a diverse set of coding challenges in various domains, such as algorithms,
data structures, artificial intelligence, and databases. It also hosts coding competitions.
 CodeSignal: offers coding challenges, as well as interview preparation kits and coding arcade games.
It is known for its adaptive assessments that help users understand their skill levels.
 Codewars: focuses on providing coding challenges in the form of kata, where users can solve
problems and rank up based on difficulty. It emphasizes community-driven learning.
 TopCoder: is not just a coding challenge platform; it also hosts competitive programming contests. It
covers algorithmic challenges, and users can participate in single-round or marathon matches.
Software Learning Resources – Online Training
15
Fundamentals of Software Engineering - Osamah Abduljalil
 Popular sites like YouTube have become useful sources of information for learning:
 YouTube videos are rated by the community with likes, dislikes, and subscribes.
 YouTube algorithm constantly tunes its suggestions for videos which can most likely be used to
love your problem.
 Massive Open Online Courses (MOOCs)
Online educational courses open to anybody in the world
Some are free and some require payment
Examples: Khan Academy (https://www.khanacademy.org/) or Coursera (https://www.coursera.org/)
MIT Open Courseware offers a vast majority of their class materials for free (https://ocw.mit.edu/)
 Training by Industry-Specific Organizations
Example: Amazon Web Service (AWS) Training, Google, IBM..etc.
The End
16

More Related Content

Similar to Lecture 2 | Industry, Career Paths, Essential Skills

Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
omgadekar25
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
pchgmf
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
eqhnwl
 

Similar to Lecture 2 | Industry, Career Paths, Essential Skills (20)

26968 software developer career
26968 software developer career26968 software developer career
26968 software developer career
 
SE chp1 update and learning management .pptx
SE chp1 update and learning management .pptxSE chp1 update and learning management .pptx
SE chp1 update and learning management .pptx
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdfMaximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
 
Untitled document.pdf
Untitled document.pdfUntitled document.pdf
Untitled document.pdf
 
Unit1
Unit1Unit1
Unit1
 
Introducing Software Engineering
Introducing Software EngineeringIntroducing Software Engineering
Introducing Software Engineering
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
assignment help experts
assignment help expertsassignment help experts
assignment help experts
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Career opportunities
Career opportunitiesCareer opportunities
Career opportunities
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptx
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 

Recently uploaded

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Recently uploaded (20)

OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 

Lecture 2 | Industry, Career Paths, Essential Skills

  • 1. Software Engineering Industry, Career Paths, and Essential Skills Fundamentals of Software Engineering – Lecture 2 Osamah Abduljalil @2024 1
  • 2. Topics Covered 2  The Software Industry Landscape  Software Engineering Career Paths  Essential Skills for Success in Software Engineering  Software Communities  Software Learning Resources Fundamentals of Software Engineering - Osamah Abduljalil
  • 3. The Software Industry Landscape 3 Fundamentals of Software Engineering - Osamah Abduljalil  Market Size and Growth  The global software market size was valued at USD 583.47 billion in 2022 and is expected to grow at a compound annual growth rate (CAGR) of 11.5% from 2023 to 2030. This growth is because more companies are using a lot of data, automating their processes, and going digital.  The COVID-19 outbreak positively impacted the global market, as it stimulated the demand for software solutions for remote work, cybersecurity, e-commerce, and digital transformation.  Key Players and Market Trends  Some of the key players in the global software market include Microsoft, IBM, Oracle, SAP, Adobe, Salesforce, VMware, Dell, Cisco, and Symantec1.  Some of the key market trends include the adoption of cloud-based software, the emergence of artificial intelligence (AI) and machine learning (ML) technologies, the rise of software as a service (SaaS) and platform as a service (PaaS) models, and the increasing focus on cybersecurity and data privacy.
  • 4. Software Engineering Roles 4 Fundamentals of Software Engineering - Osamah Abduljalil  Front-End Engineer Plan, design, and build the user-interface components of a software application. They ensure that the interface meets both an organization’s goals and user needs.  Back-End Engineer Design, build, and maintain the server-side of web applications with a focus on speed, and functionality. They write server scripts and work with application programming interfaces (APIs) that are eventually used by front-end engineers.  Full-Stack Engineer As the name suggests, a full-stack engineer does it all—they are familiar with the full software development cycle and can contribute to both the front-end and back-end.
  • 5. Software Engineering Roles 5 Fundamentals of Software Engineering - Osamah Abduljalil  Quality Assurance (QA) Engineer QA engineers have in-depth knowledge of different testing processes and methodologies. They are good in data management, bug reporting, and creating test environments.  DevOps Engineer DevOps engineers help make sure that new code gets released and deployed smoothly. They work in the middle of software development and IT operations, knowing a lot about testing how well things work, setting benchmarks, and finding ways to make the basic infrastructure better.  Security Engineer Security engineers are cybersecurity specialists who are trained to detect security problems within systems and build protections from malware and unauthorized entry. They are also trained in digital forensics to determine how and when an attack took place.
  • 6. Software Career Ladder 6 Fundamentals of Software Engineering - Osamah Abduljalil  Intern Internships provide an opportunity for individuals to apply their academic knowledge to real-world projects, acquire hands-on experience, and develop skills under the guidance of experienced professionals. Interns often work on specific tasks or projects within a team and are exposed to the day-to-day operations of the software development process.  Junior Developer (1-3 years) Junior software engineers have an entry-level role. They typically assist the engineering team with basic tasks such as writing code and debugging existing software.
  • 7. Software Career Ladder 7 Fundamentals of Software Engineering - Osamah Abduljalil  Mid-level Engineer (3-5 years) Mid-level software engineers are competent in all stages of the software development cycle and can usually work independently.  Senior Engineer (5+ years) Senior software engineers have the most independence. They usually have an area of expertise (i.e. DevOps, full-stack development, back-end development), have demonstrated leadership capabilities, and are able to lead a project from start to finish.
  • 8. Essential Skills for Success in Software Engineering 8 Fundamentals of Software Engineering - Osamah Abduljalil  Soft Skills  Organizational and Project Management Skills  Technical Skills
  • 9. Soft Skills 9 Fundamentals of Software Engineering - Osamah Abduljalil  Communication and Collaboration  Manage Time and Honor your commitments  Problem-Solving  Critical Thinking  Analytical Thinking  Attention to Detail  Continuous Learning
  • 10. Organizational and Project Management Skills 10 Fundamentals of Software Engineering - Osamah Abduljalil  Coordinate with team members, vendors, and customers to solve problems  Gather business and functional requirements  Test different scenarios (Test Cases)  Use project management tools such as Jira, Trello..etc.  Use Version Control Systems Such as: Git, GitHub..etc.
  • 11. Technical Skills 11 Fundamentals of Software Engineering - Osamah Abduljalil  Programming languages: Software engineers need to be proficient in at least one programming language, such as JavaScript, Python, Java, C#, or Ruby. Programming languages are the tools that software engineers use to create instructions for computers to execute.  Software development methodologies: Software engineers need to follow a systematic and disciplined approach to developing software, such as Agile, DevOps, Scrum, or Waterfall. Software development methodologies are the frameworks and processes that software engineers use to manage the software development life cycle, from planning and design to testing and deployment.  Testing and debugging: Software engineers need to ensure that the software they create is reliable, secure, and error-free. Testing and debugging are the activities and tools that software engineers use to verify, validate, and improve the quality of software.  Containers: Software engineers need to be familiar with containers, which are software packages that bundle up an application and its dependencies into a single unit that can run on any platform. Containers are the technologies that software engineers use to create portable, scalable, and consistent software environments.
  • 12. Software Communities 12 Fundamentals of Software Engineering - Osamah Abduljalil  Software communities are online platforms where developers and software engineers can meet, connect, and interact with each other around their shared interests, challenges, and goals. Software communities can help developers learn new skills, find solutions, get feedback, network, and collaborate on projects.  Where can I find Software Communities?  Social Media Groups.  Some popular software communities are: o GitHub: A platform where more than 40 million people learn, share, and work together to build software. You can join the GitHub Community Forum to share ideas and follow discussions on topics that interest you. o Stack Overflow: An open community for anyone that codes. You can get answers to your toughest coding questions, share knowledge with your coworkers, and find your next dream job. o Hacker News: A social news website focusing on computer science and entrepreneurship. You can post anything that gratifies your intellectual curiosity and join the lively discussions with other developers.
  • 13. Software Learning Resources 13 Fundamentals of Software Engineering - Osamah Abduljalil  Search Engines – software that allow users to search for information of interest. • Examples: Google Search and Microsoft Bing • Use algorithms that can predict or suggest your searches • Finds documents on the Internet that closely align with the search terms entered by the user  Recent development in artificial intelligence have enabled generating, testing, and debugginh code capabilities Examples: Github Copilot, ChatGPT.  User Generated Content Websites: users generate content that meets some specialized information needs for other users such as: GeeksForGeeks, W3School, Medium..etc.  Coding Challenge Websites: are platforms that offer programming problems and exercises to help developers enhance their coding skills, practice problem-solving, and prepare for technical interviews.
  • 14. Coding Challenge Websites 14 Fundamentals of Software Engineering - Osamah Abduljalil  LeetCode: is a widely used platform for coding challenges that cover a variety of topics, including algorithms, databases, shell, and more. It is commonly used for technical interview preparation.  HackerRank: provides a diverse set of coding challenges in various domains, such as algorithms, data structures, artificial intelligence, and databases. It also hosts coding competitions.  CodeSignal: offers coding challenges, as well as interview preparation kits and coding arcade games. It is known for its adaptive assessments that help users understand their skill levels.  Codewars: focuses on providing coding challenges in the form of kata, where users can solve problems and rank up based on difficulty. It emphasizes community-driven learning.  TopCoder: is not just a coding challenge platform; it also hosts competitive programming contests. It covers algorithmic challenges, and users can participate in single-round or marathon matches.
  • 15. Software Learning Resources – Online Training 15 Fundamentals of Software Engineering - Osamah Abduljalil  Popular sites like YouTube have become useful sources of information for learning:  YouTube videos are rated by the community with likes, dislikes, and subscribes.  YouTube algorithm constantly tunes its suggestions for videos which can most likely be used to love your problem.  Massive Open Online Courses (MOOCs) Online educational courses open to anybody in the world Some are free and some require payment Examples: Khan Academy (https://www.khanacademy.org/) or Coursera (https://www.coursera.org/) MIT Open Courseware offers a vast majority of their class materials for free (https://ocw.mit.edu/)  Training by Industry-Specific Organizations Example: Amazon Web Service (AWS) Training, Google, IBM..etc.