First Reason: You learn when you are working on any technology.
If you are reading about a technology and looking at learning videos then you are just getting a theoretical idea or knowledge about it. With Project Core, what we intend you to do is get a hands-on on the Platform and on the technology itself that involves all the stacks and how they link and merge together. When your mind is immersed in problem solving, the solutions will stick in your memory and they will be easily accessed when you need them, while working on the project.
For example, if you are only focusing on Angular4 or UI5 then, while learning the technologies, you will learn:
- The details involved in creating application
- How to integrate components
- What are those components
However, in a realistic project, the difficulty level is much higher and the kind of issues you will find are not straightforward. A normal case can be a customer who requires some of the changes in the API on the fly and they are changing the design every time, which leads to inconsistencies.
These kinds of problems are never covered in any training and that is what we intend to provide in Project CORE: a vast information on how you are going to work on enterprise project in reality.
Moreover, in an enterprise solution, we might have a number of solutions co-working together, each one with a different stack.
You can think this might be a planning issue but, if you look at it, you see that each solution is designed to solve its own set of problems with a particular framework.
For example, if you are using an ERP, the portal might be built with JAVA®, the front end might be built with JavaScript and the back end might be in HANA® or SAP® with some data in BI system for visualization. For Visualization only, higher and mid-level management might be using a separate tool like SAP Lumina or Business Objects. For vendor integration, there might be some PHP code running too in some server which sits in a remote location and again, it might be managed by a team which is sitting in your own building which you never knew existed.
Second Reason: True learning is experience
Definition of learning is change in behavior. After taking a video based training on SAPUI5 you don’t see how any web application can utilize the awesomeness of using a JavaScript library which has so many components in it and still the development is quite simple. Unless it is UI5CN’s awesome video content.
However, what you will get in return is information and more information. We already have Google where entire world’s information is available free at your disposal and one does not need to be another Google. So, what is it that one needs to do? From our experience, in any learning process, end result should be experience because if you are learning without examples it will just be theory. When you are implementing those concepts in projects to solve a real life problem, you will gain experience. While you implement your information into practice, you will not see the seamless blend of the inner working if you have never done it before. And these are the small things which will take a lot of time. According to 80-20 rule, 20% of the concept takes 80% of time and 80% of the concepts take 20% of the time.
The major part of the time should be spent on learning the implementation, how libraries work internally and where they don’t.
Also in the same terms, unexpected bugs that can take hours to solve, which you might never have heard of while acquiring the information, are common while you try to implement. These are mistakes that result into experience, so why not acquire the experience in first place.
For example, if you are going to install a third party plug-in to your visualization and later on you find that it cannot handle real time data streaming, the code will need to be updated and will suboptimal as it could have been done in a better way.
These mistakes can only be avoided if you are aware of the framework with a hands-on working on large projects that cover a vast scope, rather than just creating a to-do app or hello world app.
Third Reason: Real life problem solving involve working on multiple things
In real life projects, most of the systems we build are a combination of multiple tech stacks, solution interfaces and is more complex to integrate them than just to develop or build.
Imagine you are making a big building, the major work not only involves building the individual ceramic, glass, doors, elevator or balcony but how it fits together to form a solid building. Each part should be linked with other with solid linkage otherwise chances of mishap can come anytime.
In enterprise systems as well, the software is the central nerve. If it does not coordinate properly, then the business gets impacted. At the end, it is not the fault of the individual parts, which might have been built with quality, but the integration and connection of the parts that make the entire business RUN.
Imagine if you logon to your most favorite e-commerce store that always have your kind of products. The UI is awesome and you want to buy the yellow T-Shirt, which you saw last time in your nearby store, and now you are getting an 80% off on it. You cannot believe it is happening. You click on the prime for next day delivery and suddenly you realize that the payment gateway is down. The offer is ending in 2 hrs and you cannot believe that because of the payment gateway error you won’t finish your transaction, losing the opportunity of the week. Does it sound familiar? This is the reason why big companies hire experienced developers and pay them well so that they can make money by ensuring the business is always running.