Recommended training path, for advanced spreadsheet jockey
Service Studio Version
11.8.13 (Build 32892)

I'm looking for a recommended collection of online training resources (e.g. independently produced youtube videos; Outsystem's-produced online courses; specific Udemy course(s)) well suited for someone that's often described as a particularly technical business person -- a guy that writes complex technical, financial models using Excel.  I understand database fundamentals (table, field, key, foreign key, and the antique concept of 3rd normal form) and am fairly comfortable with writing SQL for the purposes of reporting and back-end manipulation of data....but of course, none of this makes me a, "developer". Nowhere near it.  I'm just a guy who is comfortable with pure application of logic, that's sick of making everything work in Excel...because that's the only tool I'm familiar with. I desire the control (data security and integrity), portability and ease-of-use of a phone/Web/"Reactive" app, instead. At the moment, I'm running a small inn entirely via a spreadsheet (daily pricing generation based on a variety of factors; bookings; various application and reporting associated with several taxes; calculation and tracking of occupancy rates and 'special' pricing; etc..). Excel is just a stupid choice for such an array of functions. I digress.....

What I've found so far, based on my experience with Outsystem's online training paths: the standard collections of courses are well suited for transitioning existing developers from their current favorite platform to Outsystems, or the courses are targeted to those who never intend to actually build stuff (e.g., project managers). I haven't seen a good collection of sources that seem suited for someone in between these two categories of people/roles i.e., a technically minded person that wants to become a "low code" developer.

Anybody have what they believe to be an excellent set of course-selections tuned to getting an advanced spreadsheet jockey productive with Outsystems development?  Note: as someone that's self is best :) 

P.S. i've got 11.8.13 up and running, and I've built a solid Outsystems data model (and simple forms) representing what I need to replicate the crazy spreadsheet I'm using to run my little business....but I'm stuck trying to replicate my Excel model's daily price-generation generation functionality (for example).  None of the training I've found weaves together the instructional info I need in order to understand when and how to use aggregates, 'structures', client operations, local variables, etc.... I'm stuck trying to replicate/represent logic that creates and modifies records based on user inputs and factors, both static and calculated. 


Hi Matt,

I started out with OutSystems about 8 years back, with a bit of Java background. The documentation was a little dry back then, but it evolved into a very robust set of lessons and good exercise material. It's true that there's a lot of target audiences for the current documentation - lessons on Agile development practices or test automation probably won't fit your current needs, but there's plenty of more development oriented lessons.

Would you mind sharing what documentation/training you've gone over? Knowing what you've already consumed will let us think of more adequate recommendations. Have you finished the Reactive or Traditional Web Guided Paths? Completing one or both of them will leave you equipped to experiment with OutSystems with more confidence.

If you feel that there's a topic that isn't fully explored during the Guided Paths, the assorted Courses also dive into several subjects. Reading over your thoughts I think that a good goal would be to go over the Training section, and checking out all the courses tagged as Intro (after finishing at least one of the Guided Paths, if you haven't done so already). You mention doubts about Aggregates, structures, and other elements, and I think these are very well covered in the Intro documentation. For instance, the Asynchronous processes course covers BPTs and Timers - elements that would be crucial for your daily price-generation logic.

I don't want this post to sound like "go back and read the manual", so I'd like to try and clear up some of your questions:

 - Aggregates are a way to simplify your database queries - they're used to visually represent more basic queries that you'd have to type out in SQL. You can't translate every SQL keyword and operation into an Aggregate, which is when you switch over to Advanced Queries for full SQL control: simply put, you should try to do all of your database queries with Aggregates, since they're easier to maintain and understand than actual SQL code, and once you require more complex operations, switch over to Advanced Queries - one of the Aggregate training videos will cover the SQL keywords/operations supported by Aggregates;

 - Structures are a way to combine and manage your data. You can use them as inputs/outputs in your logic, and they're a useful way to transfer information between Application Modules. Say that you have a complex Action that will need 5-10 simple elements (strings, integers, etc). You can combine all of these into a Structure and use it as an input instead of working with separate elements. There's few "absolutely correct" moments to use a Structure - you'll get a feel for it as you write and maintain your code;

 - Client operations are mobile/reactive exclusive elements. You can contrast them with "traditional" Actions, which are executed server-side: client Actions will be executed by the client. If you don't need data or logic from the server, they can improve the performance of your application. The Mobile/Reactive Guided Paths will go over these with a more thorough explanation;

 - Local variables are used when you want to perform operations with variables in your current scope. They should be used whenever you need to hold values for more complex logic, but that can be safely discarded once the operation is complete.

Other than that, this forum is also a prime location to get feedback and thoughts from other developers. If you're comfortable, sharing your current application architecture/data model is a good way to have multiple experts with dozens of years of experience to look it over and share their opinions. Best of all, it's also free. :)

Thanks for your response, Afonso.  So far, I'm impressed with quick, thoughtful responses in this Outsystems domain :) Much appreciated.

I started with "Becoming a Mobile Developer" at ...paths/1/becoming-a-mobile-developer/

Today, I started going through the "Developing Mobile Apps (OutSystems 11)" at ...learn/courses/115/developing-mobile-apps-outsystems-11/

I'll finish both before asking any additional questions about training.

As a newbie (just an advanced Excel model builder), two things struck me: key terminology use in the training seems oriented towards people with history using other IDEs/programming platforms, rather than people entirely new to programming. For example, in Excel the concepts of local/remote (client/server), list/record/structure, local variable input/output  are  mostly irrelevant; there is only one "scope." I completely understand these things are fundamental to a developer, but they're entirely new to someone without programming history.  I mention this simply because one of the things that's so incredibly exciting about "low code" platforms like Outsystems is that it's providing a real opportunity for historically Excel-only guys to make the jump to creating rich, user-friendly, portable, USEFUL applications.

I don't expect it to be easier to use Outsystems...but I am hopeful that I'll find instruction that uses less domain-specific/programmer-centric terminology i.e., more plain language descriptions...and more click-by-click examples that show how to implement solutions to the top 20, 40, 100 (whatever) kinds of operations that a low-code developer *will* run into. Couple these examples/demos with *plain-language* dialog describing exactly what's happening behind the scenes, and I think that would be super helpful for newbies. Such explanations help the student understand the 'why', which is just as important as 'how'...assuming the student is determined to get truly productive with Outsystems.

Your plain-language description of Structure (in your response to my question) is helpful - more of this style of instruction is what works well for me, and I suspect other 'non-developers', too.

I'll finish the "Developing Mobile Apps (OutSystems 11)" training, and I'll keep banging on my current project (porting my nasty Excel model to an Outsystems app, that I'm using to run my little inn), and I'll come back to the forums when I'm reasonably confident I've got enough leaning under my belt that my questions will not irritate or piss anybody off :)

Thanks for your response. The pointers to specific tidbits of training were helpful.

P.S. My ultimate objectives: 1.) finish building my app, to run my little inn here in CA, and; 2.) provide independent Outsystems development and training services, in cooperation with a friend of mine (as a 'sub') that works for a boutique firm who recently became an Outsystems 'partner'

Now: Back to Work!  :)


Glad to hear it was helpful, Matt.

Your points on terminology are very interesting: they match what I experienced when starting with OutSystems as well - it's a bit of a learning curve to get into the lingo, but once you're more comfortable, learning and communicating with other developers becomes extremely easy, and it's much simpler to exchange ideas with others.

There's some good exercises mixed in with the documentation, and I remember a few being click-by-click. Since you checked out mobile development first, have you heard of Experience Builder? It's a good example of OutSystems automating away the most common development patterns, and it might be of interest to you. If you fit the requirements, give it a look.

Good luck with your objectives, and let us know if you have any questions!

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.