BEGINNERS: Where to start, and making life easier for yourself

A really good starting point for beginners, is to find someone you trust and respect as a collaborator on your early project & discovery.

You’ll learn, and also end up with your first complete working system.

(( Please don’t nitpick this guide, it is intended as a starting point for beginners.))

Developing systems requires a sequence of things to happen...

-> Requirements
—- functionality and interoperation
—- (experiment with specific functions before committing!)
-> Specification
—- program flow/ logic
—- block diagram followed by schematic
-> Assemble your Hardware platform
-> Software development
PROTOTYPE #1 -> Review & Rework

Only a confident developer would work out of sequence - with expectations of revisions and rework as the other elements come together.

DOCUMENTATION starts on day one, and ends about a week after the finished product is complete!

Most hobbyists don’t realise they’re processing all these steps, either because the project is too small, or it’s become habituated in their work.

Unfortunately, no two projects are the same, even if they use the same hardware to achieve the same outcome.
There are no rules HOW to write ‘sketches’, or code - but there are plenty of rules how NOT to write code. The compiler often catches these!

  • Footnote
    Your project is a ‘system’ of varied parts that need to operate together.
    Not just an Arduino and power supply, not just a sensor and a relay... but a critically tuned combination of all - that you may need to expand or repair in the future.

this is very helpful, thank you

lastchancename:
DOCUMENTATION starts on day one, and ends about a week after the finished product is complete!

This is so true. Particularly as a hobbyist, you never know when real life will get in the way and you'll have to put your project aside for a week or a month. Having everything documented can save you valuable time when you get back into it.

...and documentation includes MEANINGFUL pin, variable and function names - among others...

int x1, x2, pin3=3, and myoutputpin are no use in 3 months time!
Their function should be obvious in the code, there name should tell you what they’re connected to.