I've been thinking of making a concerted effort to learn how to make WildStar Addons. Thanks to the efforts of the generous developers before us, there exist many resources and example to follow! However, learning something new like this can be kind of a drag, so I'm wondering if there are others who are interested in learning.
There's at least three aspects to learning how to program things like this that are a challenge:
First, there's the basic syntax of the Lua language. This is pretty easy if you already know a computer language. It's also not so bad if the environment lets you experiment easily to see what the different commands (and there are not a lot of them generally) do and more important how they do NOT work. WildStar unfortunately isn't one of these kinds of environments as far as I have seen, so it may be a challenge for all but really dedicated people.
Second, there's the hard part of the environment itself, with all its various nooks and cranies. Although there's probably less than a couple dozen commands to know in Lua, there are hundreds of Apollo (the Carbine API for AddOns) routines organized around dozens of Hairy Concepts requiring an understanding of how a user interface is architected, along with the unique concepts that embody the runtime operation of a MMORPG. Think of it like a spoken language like English. You know English! Now go and talk to someone at the Department of Motor Vehicles about getting your license plate transferred to your cousin who is just getting their first car, but in your name, and you are missing the title. English won't help you there! You will need to discover and navigate the rich historical annoyance that is motor vehicle administration. Translating your simply-stated idea which does not yet exist, into something that works with what's available is demanding work!
Third, there is an understanding of algorithms, flow control, data representation and data structures, which are universal to nearly all computer languages in one way or another. While a lot of the basic ideas behind conditionals ("if X is this value, then do this") are in the basic language, there are a lot of more advanced structures that you'll have to manage by making use of code libraries that are included in the environment or you write yourself. A common one is maintaining a list of something, searching that list, adding to the list, removing from the list. Or the idea of responding to a system event like a mouse click or a friend logging in. This can be time consuming when it's a new idea to you, but it's very rewarding once learned! Think of that time you learned how to circle strafe when you were still used to keyboard turning! Your head might have hurt for days, but it was totally worth it.
There are a lot of other little disciplines that go along with this kind of development too, but the three things I mentioned---knowing the language features of lua, exploring the expansive system of actions that Carbine make available to developers and learning how they fit together, and learning the bread-and-butter data manipulation techniques that build on your experience as a programmer---are a big chunk of the challenge.
Typically, the huge scope of learning all this stuff is presented as a simple add-on example to get used to the mechanics of using the add-on development tools, making edits, and running it to see it do something. Then there's a GIANT GAP where you get to figure out everything else. A study group, as I am proposing, would be to help fill that gap with interested parties sharing their newbie experiences with each other, and hopefully ultimately learning a little faster with deeper understanding than the individual might achieve alone.
My typical approach to learning a new environment and language is to develop some key references: a high-level API call list grouped by intention and system purpose, a cheat sheet of key language-specific recipes for implementing common data transformations, and tracing through a few good examples of well-known addons to understand how they work. That's just me though...I'll share what I do somewhere in the add-on forum whatever I end up doing, but if there's anyone else that's taking this on as a first-time WildStar add-on developer maybe we can study together!
WSRP Chat on Discord