In the first week at AltSchool, we got introduced to the LMS (Learning Management System); this platform contains all our courses i.e a comprehensive video learning content platform where the courses are uploaded for the semester which is actually released weekly. This in my opinion is good as they don’t want students to get overwhelmed if the contents are all released at once. We also had our first live class with our awesome instructor Oluwasetemi Ojo via the Air meet platform, an online platform for meeting just like Google meet or Zoom.
So here’s how the learning system works, we logging to the LMS for video contents on topics related to our applied Course and at the end of the week precisely on Friday we have live classes for 2hrs with our instructor. With that being said here are the topics we treated on our first class;
What is Software Engineering?
Why Web and Cloud?
Focus of this Class
Tools
Accounts
Algorithms and FlowCharts
Programming Paradigms
What is Software Engineering?
Software Engineering involves the systematic application of engineering principles to design, develop, maintain, test, and evaluate software. It emphasizes a methodical approach to analysing user needs, managing projects, and ensuring software systems are reliable, efficient, and maintainable. Success in this field requires a blend of technical skills, engineering methods, and project management expertise to produce high-quality software systems.
Why Web and Cloud?
Web and cloud technologies offer significant career advantages, including high demand and competitive salaries, as well as the flexibility of remote work and entrepreneurial opportunities. They provide technical benefits such as scalability, cost efficiency, security, and continuous integration/continuous deployment (CI/CD). Additionally, professionals can access advanced tools and services, enjoy global reach, and benefit from extensive learning resources and active community support. Embracing these technologies fosters innovation and adaptability, ensuring future-proofing in a rapidly evolving landscape.
Focus of this Class
HTML
CSS
JavaScript
Git and GitHub with Open Source
This class focuses on key web development technologies, including HTML for structuring content, CSS for styling and layout, and JavaScript for interactivity and dynamic features. Additionally, students will learn to use Git and GitHub for version control and collaboration, with an emphasis on contributing to open-source projects.
Tools
Visual Studio Code or any equivalent (JetBrains Webstorm IDE, Zed, Sublime Text)
Git and GitBash for windows, Git only for mac and linux
Nodejs, Python
This course utilizes various development tools, including Visual Studio Code or alternatives like JetBrains WebStorm, Zed, and Sublime Text. Version control is managed through Git and Git Bash for Windows users, while Mac and Linux users will use Git directly. Additionally, students will work with Node.js and Python for backend development and scripting tasks.
Accounts
We were advised by our Instructor to (Create || Have) the following accounts;
GitHub and any other equivalent like GitLab or BitBucket
LinkedIn
Twitter or X
Stackblitz or Codesandbox
Codepen
Stackoverflow
ChatGPT
Figma
Dev.to | hashnode | Medium
Slack or Discord
Netlify | Vercel | Render
Personal Website. We will teach you to create your own.
Students are expected to optionally create or have accounts on several platforms, including GitHub or alternatives like GitLab and BitBucket for version control. Additionally, accounts on LinkedIn, Twitter (X), Stackblitz, CodeSandbox, CodePen, Stack Overflow, and ChatGPT will be beneficial. Students will also explore Figma for design, blogging platforms like Dev.to, Hashnode, and Medium, as well as communication tools like Slack or Discord. Lastly, they will learn to create their own personal website and also use platforms like Netlify, Vercel, or Render for webhosting.
Algorithms
Algorithms are defined as structured sequences of instructions aimed at accomplishing specific tasks or resolving particular issues. For instance, the process of making tea can be broken down into clear steps: boiling water, adding a tea bag, pouring the water, letting it steep, and removing the tea bag.
To enhance problem-solving capabilities, recognizing patterns such as the two-pointer technique, sliding window, divide and conquer, and dynamic programming is crucial, as these methods simplify complex tasks. Cultivating these skills not only improves efficiency but also builds confidence and speed when facing algorithmic challenges. Regular practice and application of these strategies will lead to greater success in problem-solving.
Flow Charts
A flowchart is a graphical tool that illustrates the sequence of steps within a process or system using symbols, arrows, and descriptive text. This visual format simplifies the understanding of how a process progresses from beginning to end.
For example, consider a flowchart designed for logging into a website. It would begin with a "Start" symbol, followed by a decision point where it checks if the user has entered their username and password. Arrows would direct the flow to the steps "Enter username" and "Enter password," ultimately culminating in an "End" symbol once the login is successfully completed. This clear representation aids in grasping the login procedure efficiently.
Programming Paradigms
Programming paradigms are distinct approaches to programming that provide various methodologies for thinking about and solving problems. Key paradigms include:
Procedural Programming: Focuses on a sequence of instructions or procedures to perform tasks.
Object-Oriented Programming (OOP): Organizes code around objects and their interactions, promoting code reusability and modularity.
Functional Programming: Emphasizes the use of pure functions and avoids changing state, making it easier to reason about code.
Logic Programming: Centres on defining rules and relationships to derive conclusions, often used in AI applications.
Declarative Programming: Focuses on what the program should accomplish rather than how to achieve it, making it easier to express complex logic.
Concurrent Programming: Involves multiple processes executing simultaneously, enhancing performance in multi-core systems.
Event-Driven Programming: Responds to user actions or events, commonly used in graphical user interfaces.
Each paradigm offers unique advantages, making them suited for different tasks. Modern programming often employs a blend of these paradigms to take advantage of their strengths and optimize problem-solving.
Programming Concepts
Programming concepts are essential building blocks for mastering software development, encompassing a range of fundamental ideas:
Variables: Store data that can change during program execution.
Data Types: Define the nature of the data, such as integers, strings, or booleans.
Control Structures: Direct the flow of execution, including loops and conditional statements.
Functions (or Methods): Encapsulate reusable code blocks that perform specific tasks.
Data Structures: Organize and store data efficiently, with examples like arrays and linked lists.
Algorithms: Provide step-by-step procedures for solving problems.
Object-Oriented Concepts: Include principles like:
Encapsulation: Bundling data and methods within classes.
Polymorphism: Allowing objects to be treated as instances of their parent class.
Inheritance: Enabling new classes to adopt properties of existing ones.
Recursion: A method where a function calls itself to solve smaller instances of a problem.
Error Handling: Techniques to manage and respond to runtime errors.
Memory Management: The process of allocating and freeing memory as needed.
Concurrency: Managing multiple processes or threads simultaneously.
File I/O: Reading from and writing to files for data persistence.
Grasping these concepts is crucial for developing complex and efficient software solutions, enhancing both problem-solving abilities and coding proficiency.
If you have read all the way to this point thank you So much! I appreciate the effort. If you found this interesting and would love to take the next steps in the application process do use my referral link below;
Apply here or use this Code: W2jBG8 during the registration process and by so doing, you will be supporting me and also getting a discount!
Special Offer: By signing up through the link, you’ll receive a 10% discount!
Don’t miss out on this opportunity to transform your future and also save while doing it! Let’s grow together in the tech space. Also feel free to reach out if you need assistance or clarity regarding the program. You can also let me know what else I’m missing if you think I missed anything using the comment section below.
Disclaimer: The views expressed in this blog post about AltSchool are based on personal insights and research. They do not reflect the official stance of AltSchool or its affiliates. Please do well to verify information independently.
I am Ikoh Sylva a Cloud Computing Enthusiast with few months hands on experience on AWS. I’m currently documenting my Cloud journey here from a beginner’s perspective. If this sounds good to you kindly like and follow, also consider recommending this article to others who you think might also be starting out their cloud journeys to enable us learn and grow together.
You can also consider following me on social media below;