├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Michael Keller 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # :rocket: ABAP starter 2 | 3 | ## :pushpin: Motivation of this repository 4 | 5 | This repository is intended to provide all interested people with an initial overview of the requirements to become an ABAP developer and the options for getting started. The trigger for the creation of this repository were increased questions from trainees and students, job starters and job changers. Instead of giving a lot of single answers to everyone, this hub was created as a central starting point. 6 | 7 | The information given here is neither complete nor does it claim to be correct. It's much more a collection of information, experiences, considerations and expectations that is under constant revision. Anyone can and should help to improve the given information here. Take advantage of GitHub to collaborate. 8 | 9 | It should also be noted that this is general information. Since everyone is different, everyone has to find his own way based on this information. Of course, you don't have to do this alone. All ABAP developers should offer help to the best of their ability. 10 | 11 | ## :cloud: First online impressions of the programming language 12 | 13 | For a first online impression, some general information on the ABAP programming language can be found in this [Wiki article](https://en.wikipedia.org/wiki/ABAP). There is an [ABAP Exercism track](https://exercism.org/tracks/abap) where you can solve various programming tasks with ABAP online. Finally, very simple examples can be tried out with [Lars Hvam's](https://github.com/larshp) ABAP Online [Transpiler](https://transpiler.abaplint.org/). 14 | 15 | ## :house: First offline impressions of the programming language 16 | 17 | In order to experience the programming language, an accompanied course is recommended. There are often corresponding offers for students and trainees. 18 | 19 | If you know an ABAP developer, you should get a personal introduction to the programming language, the development tools and the execution environment. 20 | 21 | Reading a beginner's book is also recommended. You should make sure that the literature is as new as possible. A well-known publisher for ABAP literature is [Rheinwerk-Verlag](https://www.rheinwerk-verlag.de/) with the "[SAP Press](https://www.rheinwerk-verlag.de/sap/)" brand. Highly recommended. 22 | 23 | A good starting point might be the book "[ABAP - An Introduction](https://www.sap-press.com/abap_4955/)" by Brian O’Neill and Jelena Perfiljeva. For German-speaking readers, the book "[ABAP - Entwicklung für SAP S/4HANA](https://www.rheinwerk-verlag.de/abap-entwicklung-fuer-sap-s4hana/)" by Constantin-Catalin Chiuaru et al. could be interesting. 24 | 25 | As soon as you've made your first experience with ABAP, read the book "[Clean ABAP: A Style Guide for Developers](https://www.sap-press.com/clean-abap_5190/)". The book gives many tips and suggestions on how to write maintainable ABAP source code. And that's exactly what it's all about every day. 26 | 27 | ## :memo: Typical activities of an ABAP developer 28 | 29 | The following list is a mix of typical core tasks. 30 | 31 | Many mentioned tasks here are typical tasks of every developer and therefore do not represent anything special when working with a programming language. 32 | 33 | Please note: The term "applications" means also "interfaces" in this context. 34 | 35 | * coordinate requirements 36 | * write concepts 37 | * develop new applications 38 | * maintain existing applications 39 | * test applications 40 | * debug applications 41 | * find and fix bugs 42 | * clarify how something works 43 | * write documentation 44 | * work together 45 | * code reviews with colleagues 46 | * knowledge exchange in team 47 | * meetings with customers 48 | * training with users 49 | * continuous learning 50 | 51 | Maybe these tasks are also part of the work: 52 | 53 | * manage sub-projects 54 | * help to write quotations 55 | * support sales team 56 | * organize development 57 | 58 | ## :evergreen_tree: Tree view of usefull skills 59 | 60 | The following tree view is not meant as "complete". In addition, not every term automatically has to play a role in the working life of an ABAP developer. Furthermore, it's impossible to achieve mastery in every skill or talent. A good mix is sufficient - with strengths and weaknesses. The team you work in should do what you can't do yourself. Find your place in the team. 61 | 62 | ``` 63 | ABAP developer 64 | | 65 | +-- [ soft skills ] 66 | | | 67 | | +-- analyzing 68 | | +-- structured thinking 69 | | +-- speaking/discussing 70 | | +-- visualizing 71 | | +-- writing 72 | | +-- working in a team 73 | | +-- working independently 74 | | +-- self-organisation 75 | | +-- self-motivation 76 | | +-- open to new ideas 77 | | 78 | +-- [ hard skills ] 79 | | 80 | +-- [ programming/markup/scripting/.. languages ] 81 | | | 82 | | +-- ABAP 83 | | | | 84 | | | +-- object oriented programming 85 | | | +-- procedural programming 86 | | | +-- RESTful application programming 87 | | | +-- ABAP SQL 88 | | | +-- ABAP Core Data Services (CDS) 89 | | | 90 | | +-- HTML/CSS 91 | | +-- JavaScript 92 | | +-- XML 93 | | 94 | +-- [ programming methods/styles ] 95 | | | 96 | | +-- Clean ABAP 97 | | +-- database design 98 | | +-- design patterns 99 | | +-- Unified Modeling Language 100 | | +-- Vibe Coding 101 | | 102 | +-- [ tools ] 103 | | | 104 | | +-- ABAP Development Tools for Eclipse 105 | | +-- Visual Studio Code 106 | | +-- SAP Business Application Studio 107 | | +-- ABAP Test Cockpit 108 | | +-- ABAP Unit 109 | | +-- abapGit 110 | | +-- ABAP Formatter 111 | | +-- ABAP Cleaner 112 | | +-- AI coding assistant (e.g. GitHub Copilot or Joule) 113 | | +-- SAP GUI 114 | | +-- Data Dictionary 115 | | +-- Workbench 116 | | 117 | +-- [ interface technologies ] 118 | | | 119 | | +-- [ protocols ] 120 | | | | 121 | | | +-- HTTP/HTTPS 122 | | | +-- OData 123 | | | +-- REST 124 | | | +-- RFC 125 | | | 126 | | +-- [ formats ] 127 | | | 128 | | +-- CSV 129 | | +-- IDoc 130 | | +-- JSON 131 | | +-- XML 132 | | 133 | +-- [ business processes ] 134 | | 135 | +-- 136 | ``` 137 | 138 | Regarding hard skills, it's also worth taking a look at Tobias Hofmann's [SAP Development Radar](https://tobiashofmann.github.io/sap-dev-tech-radar/). The radar is divided into the areas of "User Interface, Framework, Technology, and Tools" according to the recommendations "Adopt, Use, Hold, and Stop." This can provide some guidance. However, the SAP Development Radar doesn't just focus on ABAP, but on SAP development topics in general. 139 | 140 | ## :footprints: Make your first steps 141 | 142 | First of all, check out the [ABAP Exercism Track](https://exercism.org/tracks/abap). You need nothing more than a browser to solve the tasks contained there. 143 | 144 | After that, there is a tutorial called "[Learning the Basics of ABAP Programming on SAP BTP](https://learning.sap.com/learning-journeys/learn-the-basics-of-abap-programming-on-sap-btp)". Since there is a lot to discover, you should take your time. 145 | 146 | Another good starting point could be this [blog](https://blogs.sap.com/2021/01/26/getting-started-with-abap-in-2021/) from Markus Haug, published on SAP Community. 147 | 148 | ## :computer: Get your ABAP Trial access 149 | 150 | Actually there are different options to get access to an ABAP Trial system. 151 | 152 | | Name | Description | Type | Link | 153 | | :--- | :--- | :--- | :--- | 154 | | ABAP Cloud Developer Trial 2022 | Docker image containing technical stack, no business functions | on-premises | [Blog on SAP Community](https://community.sap.com/t5/technology-blogs-by-sap/abap-cloud-developer-trial-2022-available-now/ba-p/13598069) | 155 | | SAP NetWeaver Application Server ABAP Developer Edition 7.52 SP04 | Installations files containing technical stack, no business functions | on-premises | [SAP Learning Free Trials and Downloads](https://developers.sap.com/trials-downloads.html) | 156 | | SAP BTP Trial | Shared Cloud-based ABAP runtime environment | Cloud | [Get a Free Account on SAP BTP Trial](https://developers.sap.com/tutorials/hcp-create-trial-account.html) | 157 | | Developer Appliance Templates | Trials like SAP NetWeaver 7.52 via SAP Cloud Appliance Library | Cloud | [Cloud Appliance Library](https://cal.sap.com/) | 158 | 159 | ## :business_suit_levitating: Start a career 160 | 161 | This is a proposal to start a career as ABAP developer: 162 | 163 | * Find a company that supports you. 164 | * Get to know and team up with your colleagues. They should write modern ABAP. 165 | * Take ABAP basic courses and learn the fundamentals. 166 | * Make your first experiences in small projects. Your colleagues should support you. 167 | * Build your skills. There is no end. 168 | * Take on more responsibility over time. 169 | * Share your experiences. 170 | 171 | ## :people_holding_hands: Become part of the family 172 | 173 | ABAP developers exchange information on different platforms. Below is a selection. 174 | 175 | Please consider the following points: 176 | 177 | * Always respect the [Netiquette](https://en.wikipedia.org/wiki/Etiquette_in_technology#Netiquette). 178 | * If you have a question, always search for an answer yourself first. 179 | * If you cannot find an answer after your search, please ask the question as precisely as possible. 180 | * Don't expect an answer to your question. The community works on a voluntary basis alongside their actual jobs. 181 | 182 | Here's the platform selection. 183 | 184 | * [SAP Community](https://community.sap.com/) 185 | * [LinkedIn](https://www.linkedin.com/) 186 | * [Bluesky](https://bsky.app/) (check [SAP Developer Starter Pack](https://bsky.app/starter-pack/marian.marianzeis.de/3lavxhk26r32a) by [Marian Zeis](https://github.com/marianfoo)) 187 | * [X (formerly Twitter)](https://twitter.com/) 188 | * [Stack Overflow](https://stackoverflow.com/) 189 | * [GitHub](https://github.com/) 190 | * [ABAP Blog](https://abapblog.com/) 191 | * [Tricktresor](https://tricktresor.de/) 192 | * [Die Codezentrale](https://codezentrale.de/category/sap/) 193 | --------------------------------------------------------------------------------