I have received a message on LinkedIn:

I am a SAP ABAP DEVELOPER, I have some basic knowledge about Java Script, I want to have a career as a full stack ABAP developer, would you please guide me how to go ahead and or some insights you might have [...]

Disclaimer: I am implying here that in the SAP context "full stack" means ABAP + SAPUI5/OpenUI5 (and associated libraries or tools) + cloud. This is the most common understanding and desired expectation. I am not entering into the cave of a dragon titled "The One And Only Righteous Meaning of Full Stack".

The transition might be performed in many ways. Probably the quickest one is to grab some basic JavaScript knowledge, get familiar with OData and SAP Gateway, head to SAPUI5 Documentation and start doing things, learning by examples and tutorials. Is this a good way? It may be, perhaps you will never touch any advanced things or it is just enough to get things done. But I believe there is a better way.

When I was doing technical interviews with people for UI5 projects, I had my set of questions to check whether the candidate is this kind of person. It was not hard, as all of such candidates lacked the same thing: understanding of JavaScript and knowledge about tools like ESLint. Is it OK? Might be, as long as you don't need to do more complex things. It might be even enough to extend standard Fiori apps. But when the complexity is increasing and you want to put more and more quality not only into the code, but also around your project, then the lack of broader knowledge starts to be very problematic.

There is also a more personal perspective - when you go just trough basics, you can write your UI5 code, yes. But in many places you might not have the UNDERSTANDING. The more knowledge you have, the more aware you are why-how-what etc. You see some specific patterns, you use the framework more freely, you use the language and the tools more freely as you understand how it works under the hood.

Here is my personal view (with sources recommendations) how to jump to UI5 development armed more properly.

HTML & CSS - you don't have to be a master of CSS and draw a map of the world using styles, but you need to know why your SPA (single page application) looks like under the hood in terms of tags and styling. I would not recommend any particular sources here, as I completely don't remember what I was learning from. There are dozens of freely available resources in the web; I still tackle CSS issues with the help of sites like CSS Tricks.

Deeper dive: learn LESS

JavaScript - here you should spend a lot of time to really learn the language, get familiar with it quirks, ES* editions and features. For me at the beginning the book was "Object-Oriented JavaScript" by Stoyan Stefanov. It nicely describes basics and more advanced topics like prototypes.

Next, there is a fantastic source of up-to-date JavaScript knowledge delivered regularly by Dr. Axel Rauschmayer. Really, if you want to be in touch with latest features and news from the JS world, I highly recommend to observe him. His books are available online for free, like "JavaScript for impatient programmers". All books are listed here.

Deeper dive: go more and more into the language. I can highly recommend "JavaScript Allongé" by Reg “raganwald” Braithwaite.

A natural question here is "should I touch TypeScript?". In my opinion not at the beginning. TypeScript support in UI5 is a recent addition, it has some great benefits, but TypeScript IS a superset of JavaScript. It adds stronger typing and other features and - in the end - it compiles to JavaScript. If you want to touch this topic, I recommend again Dr. Axel Rauschmayer books and online & free "TypeScript Deep Dive".

JavaScript in modern web applications - having known the language, you should get familiar with JS libs, tools and other frameworks used widely within web projects like Node.js & NPM, Git, ESLint, JQuery, QUnit, test runners like Karma, what is RESTful API. You should get familiar with a "dictionary", so once you hear a term or tool type, you know what is it for and so on. The best is to see it all together in action. In Polish I highly recommend the book "JavaScript - programowanie zaawansowane" by Tomasz "Commandeer" Jakut.

In English - "Programming JavaScript Applications: Robust Web Architecture with Node, HTML5, and Modern JS Libraries" by Eric Elliot. You can also find a similar book, which will guide you through these topics.

Deeper dive: you can also go with a book like "Getting MEAN" to see more tools in action.

After such preparation you can jump into UI5 - here the official docs for me is the best source to learn from with additional tutorials for whatever topic you would like to explore deeper. Check the Nabisoft tutorials or UI5 Buzz blog series for some interesting topics.

You need to know how to use SAP Gateway, OData and what is Fiori & Fiori Launchpad. The good book about it is SAP Press one "SAP Gateway and OData". I also recommend to check the posts of one of the book's author (and SAP Gateway team) Andre Fischer. In this book you will also find and introduction to programming models...

...like ABAP programming model for SAP Fiori (FPM), its successor ABAP RESTful programming model (RAP) (these ones are using ABAP) and SAP Cloud Application Programming Model (CAP) (JavaScript or Java). These programming models offers some benefits (but also drawbacks in terms of app design). They are not needed at the beginning when you are learning just UI5, but later you will probably end using one of them; BUT I was in a team, where we did not touched any of them, as we were going with fully custom, freestyle apps. If you are an ABAPer, the first two ones will be easier for you to maintain. Please keep in mind, that even if "ABAP programming model for SAP Fiori" is not the future, it is still being used. I can't recommend any book about it, the best source to me is the online help. For learning RAP you can use OpenSAP course or tutorials. CAP has a nicely documented site and tutorials on developers.sap.com.

Speaking of cloud - if you end up with SAP BTP, you need to know how to use it, what is Cloud Foundry, learn about MTA apps and destinations. I did not any books from SAP Press from this area and I do not recommend any. The better source to me is - again - help.sap.com documentation, which is maybe more advanced, but at least up to date. There are also tutorials on developers.sap.com to get started with. If you are supposed to work with other hyperscaler, then you need to know how to connect the pieces you have in your project. Recently there was a course about SAP BTP and Azure. Cloud is a really huge topic here, also it can change fast - you can master in different areas like integration or extensions scenarios, not only "pure" web applications. It is very hard to learn everything "upfront" - rather get enough understanding to adapt to your project requirements and chosen technology & platform.

OK, it is already a lot 🤯🔫, I will stop here - some topics I skipped (CI/CD, mobile), others I am sure I forgot to mention. But I hope this list can help someone see the puzzles required to shape the final image of you, being able to work not only on the darkside backend side.