• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: November 1st, 2023

help-circle

  • I think the key things to focus on here will be understanding the fundamental technologies and architectures that are common in the space.

    Some of the technologies that I would start with:

    • Microservice Architecture
    • Docker image design and building
    • MQTT networking
    • Zigbee and Zwave Protocols
    • Fundamentals of Embedded Programming
      • Learn a little C++ and C just so you can read examples and work from there.
      • Learn how to think about working with minimal memory and compute resources
    • Investigate ESP32 Based development boards.
      • They are inexpensive and allow you to fail fast and cheap

    The good new for you is that many of the major projects out there are written in python, so understanding and contributing will come quickly to you. One thing that I would recommend is to become aware of how professional development workflows can help you. Learn standards like PEP8, learn how to document your code with docstrings, learn branching, merging, pre-commit testing, unit testing, and how to maintain a good standard of quality. Each of these topics are not absolutely necessary, but they are incredibly valuable skill to develop as you are learning about HA topics.

    As for hardware, you will have to eventually get some tools like a logic analyzer or an oscilloscope when you are serious. You can get a really cheap Saleae clone logic analyzer to start with. Getting an oscilloscope is often a major commitment to device development. You will want to buy one good enough that you can actually use it. That can be expensive.

    If you want to design your own boards, you will need to both learn layout tools and the fundamentals of electrical design. A good book for electrical design is “The Art Of Electronics” This books is among the best I’ve read for actually communicating how circuits can be used and designed to suit your needs.

    A common professional board layout software is Altium. I believe it has some student edition options if you still have a university email. Outside of that I think it is prohibitively expensive, so you may want to look for opensource alternatives.