/computer-engineering-practice

A repository dedicated to daily hands-on experiments in Computer Engineering. This repo helps organize and track learning across core skills like coding, systems design, hardware programming, and more. Each day focuses on a different aspect of engineering for continuous learning and growth.

Primary LanguageHTMLMIT LicenseMIT

Daily Computer Engineering Experiments

Welcome to the Daily Computer Engineering Experiments repository! This repository serves as a central hub for conducting and documenting daily experiments related to the field of computer engineering. Below, you'll find some guidance on the core skills that are crucial for any computer engineer. There is also a folder structure that helps you organize your daily experiments.

This project is the result of asking OpenAI's GPT-4: "As a Computer Engineer, what are the core skills I should practice everyday? Give me concrete examples and time frames."

Folder Structure

- practice/
  - load-balancers/
  ...

You can continue to add folders within the practice directory to categorize your experiments by topic, such as coding-challenges, system-design, hardware-programming, and so on.

Core Skills and Daily Practices for Computer Engineers

Here are some core skills, along with concrete examples and time frames for daily practice:

Coding and Software Development

  • Concrete Example: Solve a coding challenge on platforms like LeetCode or HackerRank.
  • Time Frame: At least 30 minutes daily.

Systems Design

  • Concrete Example: Study a component of a distributed system and design a mini-version.
  • Time Frame: Spend about 30-45 minutes daily.

Hardware Programming

  • Concrete Example: Work on a Raspberry Pi or Arduino project to control a simple circuit or sensor.
  • Time Frame: Dedicate 20-30 minutes daily.

Networking

  • Concrete Example: Experiment with a simple client-server model using protocols like HTTP or TCP/IP.
  • Time Frame: 20-30 minutes daily.

Cybersecurity

  • Concrete Example: Learn and practice penetration testing techniques using platforms like Hack The Box.
  • Time Frame: 20-30 minutes daily.

Version Control

  • Concrete Example: Make regular commits to a personal or professional project on GitHub.
  • Time Frame: At least 10-15 minutes daily.

Data Structures and Algorithms

  • Concrete Example: Pick a data structure or algorithm and implement it from scratch.
  • Time Frame: 30 minutes daily.

Scripting for Automation

  • Concrete Example: Write simple shell scripts to automate mundane tasks on your computer.
  • Time Frame: 15-20 minutes daily.

Mathematics and Problem Solving

  • Concrete Example: Practice mathematical problems related to calculus, linear algebra, or statistics.
  • Time Frame: 20-30 minutes daily.

Technical Writing and Documentation

  • Concrete Example: Document one component of a project you're working on.
  • Time Frame: 15-20 minutes daily.

Additional Notes

The time frames are just recommendations; you can adjust them based on your schedule and needs. Practicing these skills regularly will not only make you proficient but will also keep you ahead in the ever-evolving field of Computer Engineering.

Feel free to expand on this basic setup to better fit your specific use-cases.

Happy hacking!