No - the skills come from writing Kix code every day to production level standards that we use for all of our development in Kix, C++, Python, and other languages. About 70% of our production / commercial code is written in Kix because it has no endpoint dependencies, produces tiny code, and is trivial to self-update via the web. Our Kix UDF library now contains over 750 discrete functions. We run Kix-based Windows Services, make API calls to multiple platforms to perform all manner of automated processing and endpoint monitoring.

I have an "Intro to Programming" course I used to teach at the local college adult-ed division. It featured Kix, but concepts apply to most languages. You can download it from https://www.barnas.us/programming where you will also find KGen (script link-editor), the KGen user guide, and my recent Kix UDF library.

Using parenthesis is not related to indenting code blocks, for which we always use 2 spaces per level as full tabs look horrible in complex code. See any of my posted UDFs for examples.

Your original function should use Exit 0 on success and Exit 1 on failure. You can use other codes to exit when appropriate, such as "2" for "not found". I would also use $FnName = 1 on success and $FnName = 0 on failure ($FnName is the actual name of your function). This allows you to easily check the response with
 Code:
If Not MyFunc($Var)
  'Function failed: ' @SERROR @CRLF
  ; possible recovery or second attempt
EndIf
This is where you would put your messages, rather than in the function. The function tells your main code if it was successful, and if not, the Error code tells it why it failed. We often use negative return codees (Exit -1) to report custom errors.
_________________________
Actually I am a Rocket Scientist! \:D