Program Overview
Hustle into tech with an introduction to foundational tech skills and career pathways at Hack the Hood.
This program will teach you the fundamentals of Python, core skills in software development, and give you a primary understanding of data types and class structures, and sharpen your collaborative skills. The Hustle program balances lectures, career exposure panels with industry professionals, peer-to-peer learning, video tutorials, and workshops that will help you begin to see yourself in tech.
To bring your new skills to life, our unique #Tech4Justice curriculum will help ground your technical learning in current social justice topics and help you explore how to build solutions to social problems using technology.
Technical Content
Essential Python coding skills, introduction to and skill building in software development
Social Justice / Community
Weekly socio-technical problem exploration
Intersectional Tech Identity Development
Career and education exploration and mentorship
Practical Skill Demonstration
Development of a simple portfolio and presentations by learners.
Hack the Hood & Coding Integrity
The code you write should be your own original work that reflects your understanding of the concepts we discuss together. While computer science is a collaborative discipline, you should avoid just copying and pasting work you find from other sources. Programming is all about curiosity and exploration. You should always aim to come up with original, unique code. If you are studying reliable resources, read the code carefully, understand the logic/behavior behind it and then type your own code without copying and pasting. This way, you will retain the information much better and it may be easier for you to solve similar coding problems that you may see thereafter. Your understanding of the topics is far more important to us than just the completion of the assignment. Like academic writing, your code can incorporate the ideas of others but should reflect your own approach to solving the problem.
Coding can be difficult but if you apply critical thinking, lean on your peers, and use all your resources, there is little doubt that you will succeed! While it may be tempting to copy when you are struggling, don’t give in and don’t give up on yourself! Break complex expressions and tasks down into smaller, simpler steps if you are feeling overwhelmed. Embrace your creativity and trust your gut. If your work appears to present as more sophisticated than we would anticipate, you should expect follow-up questions seeking clarity. Make use of comments in your code to ensure you thoroughly understand anything you want to submit as your own original code.
Software Concept</td> | Description</td> | Related Skills</td> </tr> Intersectional Tech Identity | An intersectional lens offers us an opportunity to explore how different forms of oppression and privilege interact in people’s lives. This is a powerful opportunity to realize where we can increase equity and inclusion. In Hustle, Learners explore a wide range of socio technical topics from a point of power and are encouraged to reimagine what is possible when tech is inclusive. The socio-technical affirms the power in the lived experiences of our Learners and how that experience… | | Creating a Developer Environment | An integrated development environment is often used as a programming tool to assist the developer. It is the software suite used by developers and is designed to maximize productivity and efficiency for the developer. The purpose of a development environment is to have a place for a developer to test anything they want without worrying about it affecting any end-users or content editors working on a live website. Having experience working on projects in a development environment is a valuable skill for a programmer to have. | In Hustle, Learners work with VS Code an, IDE (Integrated Development Environment), as an introduction to the programming process. | Agile Development | Agile is an approach to project management that centers around incremental and iterative steps to completing projects. The incremental parts of a project are carried out in short-term development cycles. The approach prioritizes quick delivery, adapting to change, and collaboration rather than top-down management and following a set plan. The agile framework is incorporated in the Learner experience through sprints, stand ups, and collaboration. | | Software Development Lifecycle | SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. The software development life cycle adds value to software development in the following ways: It provides an effective framework and method to develop software applications. It helps in effectively planning before starting the actual development. SDLC allows developers to analyze the requirements. It helps in reducing unnecessary costs during development. During the initial phases, developers can estimate the costs and predict costly mistakes. It enables developers to design and build high-quality software products. This is because they follow a systematic process that allows them to test the software before it is rolled out. It provides a basis when evaluating the effectiveness of the software. This further enhances the software product. | | Data Types in Python | A data type is an attribute associated with a piece of data that tells a computer system how to interpret its value. The data type will also determine what logical, mathematical or relational operations and actions can be performed on it. Understanding data types ensures that data is collected in the preferred format and the value of each property is as expected. Learners get multiple opportunities to manipulate data through code-a-longs and labs. | Object Oriented Programming | Object-oriented programming (OOP) is a way of thinking about and organizing code for maximum reusability. With this type of programming, a program comprises objects that can interact with the user, other objects, or other programs. This makes programs more efficient and easier to understand. OOP follows four basic principles: encapsulation, abstraction, inheritance, and polymorphism. | | Python Operators | Python supports many operators for combining data objects into expressions. Operators are special symbols that are useful for doing computations like addition, subtraction, multiplication, division, and exponentiation etc.The values that an operator acts on are called operands. A sequence of operands and operators, like a + b - 5 , is called an expression. Python has so many built-in operators to perform different arithmetic and logical operations. | | Writing Quality Code | Code quality measures how well code can communicate between developers. Similar software may have an evident difference in code from developer to developer, but what matters most is that the quality of code remains the same throughout. A quality code is one that is clear, simple, well tested, bug-free, refactored, documented, and performant. In Hustle, learners are encouraged to improve their code readability through debugging, assessing coding errors, and pair programming. | | | Debugging | Every developer has to learn how to debug code in order to write efficient programs. It's a complementary process to testing, which involves learning how an error affects a program overall. In addition to fixing bugs, debugging is an important skill for improving the efficiency of an application by optimizing performance and improving the logic. Debugging is a complex skill that takes time and practice for a developer to gain as a capability. | </tr> |