Backend Developer
Mohamed Elotmani
Just Programmer
I specialize in backend development,
primarily using Java and Spring. With Five years of industry experience, I have developed a strong foundation in building and maintaining robust backend systems.
My technical journey is fueled by a passion for creating efficient and scalable software solutions.
Throughout my career, I have focused on mastering Java technologies, contributing significantly to various projects with my expertise in the Spring framework.
My approach prioritizes performance optimization and security enhancements.
I am also dedicated to sharing my knowledge through blog posts and tutorials, aiding aspiring developers to navigate the complexities of backend programming.
بمنتهى السهولة ، تعلم اليوم أقوى إطار عمل للتطبيقات الضخمة
تعتبر لغة جافا من أشهر لغات البرمجة في العالم و الأكثر إستعمالا و طلبا لدى الشركات الضخمة و المتوسطة و كذلك الناشئة ، لتأدية مهامها بأكمل وجه
أما إطار عمل سبرينغ فهو الأشهر بين إطارات العمل طلبا في سوق الشغل و كذلك الأعلى أجرا
إذا كيف ستكون هاته الدورة سهلة و مفيدة ؟؟
تعتبر هاته الدورة أول دورة في العالم العربي و خصوصا للدراجيين ، أي الذين يتحدثون بالدارجة المغربية أو الجزائرية أو التنسية ، بتركيزها على جميع المستويات ، المبتدئ - المتوسط - المحترف
لا تردد أبدا في أن يكون في رصيدك لغة جافا و كذلك إطار العمل سبرينغ فطريقك تبدأ اليوم
نلتقي في الدورة لتتعرف أكثر على أهميتها و كيف سنجعلك تثقنها بجميع تفاصيلها
مجموعة لجميع المشتركين
جميع المشتركين يكونون ضمن مجموعات لتبادل الخبرات و الدخول في تحديات مع بعضهم البعض ، و الهدف إنشاء علاقات برمجية و إنشاء فرق عمل في نهاية الدورة
حصص مباشرة أسبوعية
كل أسبوع يكون هناك لقاء مع الأستاذ المدرس للمادة ، لحل جميع المشاكل التي صادفها الطلاب خلال مسار تعلمهم و الإجابة على جميع الأسئلة الخاصة بهم إضافة لحل التمارين و التطبيقات العملية
فيديوهات تعليمية مسجلة
الدورة تحتوي على أكثر من 600 فيديو تعليمي مسجل سابقا ، و يمكنك الوصول إليه بجميع الأجهزة الإلكترونية و في الوقت المناسب لك
محتويات الدورة
- Variables (5:30)
- Data Types (13:54)
- Make your numbers readable (2:07)
- Arethmic operations (5:16)
- Increament and decreament operations (4:50)
- Comparaison Operators (6:25)
- Naming Variables (5:11)
- String datatype (4:37)
- String manipulation (4:38)
- Understand Stack and Heap (3:49)
- Premitives vs Wraper classes (4:46)
- Pass By value or By Refrence (4:23)
- Arrays vs Variables (2:55)
- Create array of numbers (5:08)
- Reserve memory using arrays (4:29)
- Premitives vs Wrapper Classes in Arrays (6:49)
- Multi Dementional Arrays overview (1:36)
- Multidemeitonal Array example (3:45)
- What is Loops (1:52)
- For Loop (7:02)
- For Loop and Arrays (6:19)
- Enhanced for loop (3:12)
- While Loop (5:06)
- Do While Loop (5:02)
- If and Else Conditions (5:12)
- Conditions with Comparaison operatiors (6:15)
- Combine if_ELelse if_else (4:03)
- Use and_or with conditions (5:31)
- Switch cases (11:05)
- Switch return type (7:01)
- Understand packages (3:40)
- Recommanded way to name your packages (4:18)
- Import keyword (3:17)
- MultiPackages (4:53)
- Default package java.lang (4:49)
- Methods Introduction (4:41)
- Function Return (6:07)
- Method part 1 (6:48)
- Parametrized Mehthod (3:12)
- Combine method with if and enhanced loop (5:39)
- Underatand args of main method (7:06)
- Pass arguments using intellij (1:16)
- Var keyword usage (8:21)
- Break and Continue (5:30)
- Return keyword with void method (2:23)
- Assignment Operators (6:15)
- Type Casting (11:23)
- Variables scope (3:53)
- How Strings stored in memory (4:50)
- Immutability vs Mutability (3:49)
- Equality in String (8:49)
- LocalDateTime (5:55)
- LocalDate and LocalTime (4:38)
- Create custom date and time (4:53)
- Check the availabilty zones (5:39)
- DataTypes issues for storing money (4:02)
- Fix issues using BigDecimal DataType (5:39)
- What is threads (3:48)
- Default thread (2:06)
- Create your first thread (5:53)
- Diffrent Between run and start (5:59)
- Sleep Method (4:36)
- Runnable part 1 (4:19)
- Runnable part 2 (5:44)
- Convert runnable to lambda expression (4:33)
- Errors and Exceptions (5:21)
- Try Catch block (8:33)
- Handle all exceptions using Super class (9:01)
- Finally block (3:20)
- Throw keyword (4:43)
- Throws keyword (6:22)
- How to user scanner class (4:58)
- Control user data type (10:14)
- Deal with File Class (7:21)
- Read File Content (4:32)
- Write data to file (7:00)
- Understand classes and objects roles (2:36)
- Create your first class-object (5:25)
- Setter Method (6:09)
- getter Methodmov (3:26)
- Constructor (4:47)
- Multiple constructors (4:28)
- ToString method (11:59)
- This keyword (3:17)
- Object class (5:07)
- Override Annotation (2:12)
- Equal Methods part 1 (4:46)
- Equals method part 2 (5:58)
- Create class file (4:43)
- Static Keyword (5:39)
- Satatic keyword for memory management (7:17)
- Static Block (3:08)
- Instance Initializer Block (5:39)
- Access modifier public_ (5:51)
- Default access moifier_ (2:59)
- Private Access Modifier_ (2:50)
- Functional Interface (3:36)
- Lambda expression part 1 (6:54)
- Lambda expression part 2 (4:39)
- Lambda expression part 3 (5:36)
- Genercis part 2 (2:58)
- Genercis part 3 (4:15)
- Genercis part 4 (2:45)
- Predicate part 1 (10:09)
- Predicat part 2 (2:23)
- Function Interface part 1 (4:18)
- Function Interface part 2 (2:55)
- Consnumer Interface (3:38)
- Why Generics (6:33)
- Extends keyword with generics (3:09)
- Extends keyword with generics method level (2:31)
- Encapsulation Overview_ (5:26)
- Encapsulation Part 1 (12:51)
- Encapsulation Part 2 (12:27)
- Inheritance overview (3:54)
- Inheritance example (9:31)
- Super Keyword (5:39)
- Protected keyword_ (4:22)
- Override with inheritiance_ (5:55)
- Multilayer inheritance_ (2:49)
- Abstract class_ (2:44)
- Abstract Method_ (4:46)
- Interfaces overview_ (3:37)
- Interfaces Part1_ (6:41)
- Interfaces Part2_ (6:43)
- Interfaces Part3__ (5:48)
- Interfaces Part4_ (9:21)
- Final keyword on class_method (5:38)
- Enums part 1 (5:43)
- Enums part 2 (4:43)
- Enums part 3 (3:43)
- Use methods and constructors in enum (11:21)
- Anonymous Objects (3:53)
- Instance Inner class (6:02)
- Static inner class (0:58)
- Anonymous inner class_ (6:42)
- ArrayList Introduction (6:53)
- Physical Capacity vs Vitrual Capacity (5:46)
- ArrayList Methods (9:01)
- How to compare ArrayLists (8:32)
- Synchronize ArrayList (8:46)
- Arraylist integrated foreach (2:56)
- HashMap Introduction (8:14)
- Read values from HashMap (10:17)
- How to compare Hashmaps (9:27)
- SynchronizedMap vs ConcurrentHashMap (9:44)
- BiConsumer Interface with hasnMap foreach (3:47)
- Debug HashMap and ArrayList (11:35)
- Debug LinkedHashMap(Understand Head&Tail) (4:36)
- LinkedHashMap Internaly (4:41)
- HashSet (6:33)
- Stream API Introduction (7:42)
- ToIntFunction Functional Interface (2:56)
- Stream API Map Method (6:59)
- Collections Framework Hirarchy (6:01)
- LinkedList vs ArrayList (4:00)
- TreeMap Class (5:53)
- TreeMap Hirarchy_ (5:34)
- Collections vs Streams (7:27)
- Unmodifiable Collections(List,Set,Map) (9:30)
- Create Maven Project (3:34)
- Add Spring Dependency (6:53)
- Create your first bean(How IOC container works) (9:18)
- TightCoupling vs LoseCoupling original (9:54)
- XML Autowiring (10:38)
- Inject Using Index (Value vs Ref) (5:43)
- Inner Injection vs Ref Injection (XML) (4:03)
- Convert XML Injection to Annaotation Injection(@Autowired,@Qualifier) (10:18)
- @Component and @Bean Annotations (8:33)
- Migrate Beans Configuration form XML to JavaConfig(@Config,@Bean) (9:21)
- Read From files @PropertySource @Value (5:34)
- MultiConfigFiles (@Import) (9:35)
- Merge XMLConfig With AnnotationConfig(@ImportResource) (2:19)
- Singlton Design Pattern_ (10:27)
- Singlton State (3:35)
- Easger vs Lazy Loading in JVM (6:53)
- Easger and Lazy Loading in Spring(IOC Container) (9:35)
- Control beans loading using annotations (3:10)
- Understand SpringBoot Structure (13:22)
- Create your first API (4:09)
- MVC Design PATTERN (7:18)
- Controller vs RestController (7:26)
- Example of MVC vs REST API (6:32)
- Jackson databind (5:40)
- HttpMethods and @PathVariable and @RequestParam (22:14)
- PostMapping and @RequestBody (12:15)
- PutMapping (8:24)
- DeleteMapping (12:53)
- Request Mapping API version (8:07)
- HTTP Response Status (3:59)
- Control APIs Status (ResponseEntity) (5:43)
- Database Overview (5:23)
- What is ORM (8:09)
- Configure to H2 DB (10:23)
- Migrate from List to H2 Database part 1 (4:55)
- Monitor hibernate sql queries (1:26)
- Migrate from List to H2 Database part 2 (15:01)
- Spring data JPA (Specification vs Implementation) (4:32)
- Configure Postgres with data jpa (15:07)
- Trigger the insert and update date (8:17)
- Create custom constraints(@UniqueConstraints) (7:21)
- JPA Query Methods (14:53)
- Named parameters (@Query and @Param) (14:20)
- NamedQuery (14:41)
- Multiple JPQL NamedQueries (7:37)
- NamedNativeQuery and NamedNativeQueries (9:48)
- 10.Understand Embdede and Embdebdable (7:01)
- AttributeOverrides and Embedded (7:41)
- Understand Cascading in hibernate (10:45)
- Eager and Lazy Proxy Object (7:29)
- One to One relationship part 1 (14:02)
- One to One relationship part 2 (12:10)
- One-To-One BiDirectional (8:29)
- One-To-Many BiDirectional (12:07)
- Build One-To-Many Relationship (10:13)
- Many-To-Many RelationShip part 1 (6:19)
- Many-To-Many RelationShip part 2 (13:18)
- Introduction to Spring Security Internal flow
- Configuring users using InMemoryUserDetailsManager
- Configuring PasswordEncoder
- Checking the default configuration
- Modifying the security config
- How to disable formLogin and httpBasic
- UserDetailsService & UserDetailsManager Interfaces
- Custome UserDetailsService
- Understanding JdbcUserDetailsManager
- Creating JPA Entity
- Password Management
- Underatanding AuthenticationManager
- Understanding AuthenticationProvider
- Custome AuthenticationProvider
- Acceppt only https
- Register the user
- CORS and CSRF
- Create Custom filter
- JSON WEB TOKEN(JWT)
- Method level security
- Gnerate project
- Creating folder Structure
- SettingUp Application
- Visualazing data using postgres
- Build Barnd Entity
- Build Type Entity
- Build Product Entity
- Build The Associations
- Create the reposiotry
- Create Brand Service
- Creeate Type service
- Create Product Service
- Create product Controller
- Integrate Swagger (documentation)
- Implement pagination
- Create Specifications
- Create Brand Specification
- Controller Implementation using Specification Pattern
- Introduction to React Application
- Create Client Proejct Structure
- Understand React Folder Structure
- State Hood Example
- Understanding the State Hood code
- Calling Products API using useEffect hook
- Implementing Cors Config
- Fetching Products using Promise
- Adding a Typescript interface for Product
- Files and Folder Organization
- Fixing the import issue
- Creating React Component
- Create Catalog Component
- Adding Material UI
- Create Product List Component
- Create Product Card Component
- Finishing Product Card and Product List
- Creating AppBar
- Creating AppBar
- Creating ThemeBuilder
- Making AppBar Static
- Implementing React Router
- Installing React Router
- Create Home and Contact Page
- Create Router
- Create Product Detail Page and Activating Route
- Create NavLinks
- Activiating Account Links
- Understanding the NavLink Code
- Updating Product Card
- Loading Product
- Desinging the Product Page
- Centralizng Api Request using Axios
- Modifying the Catalog and Product Details page
- Create Not Found Page
- Create Server error
- Implementing Error Interceptors
- Route Changes
- Implementing Taost Notification
- Implementing Custom Error Exception
- Create Spinner Handler
- Add Basket Functionality
- Create Basket Class
- Create Basket item Class
- Making changes in Application file
- Create Basket and Basket item response class
- Cretae BasketResponse Mapping
- Basket Service Impelementation
- Create Basket Controller
- Implemente Basket Functionality - Client Side
- Create Basket and Basket Item type
- Create Redux Store
- Create Basket Slice
- Create Basket Skeleton
- Create Basket Service part 1
- Create Basket Service part 2
- Increment and Decrement Quantity
- Install CUID2 Package
- Update Agent Code
- Modify Basket oage
- Update Header with Basket Change
- Paging, Sorting Filtering
- retreive Type, Brands...
- Implementing Catalog Page State Hooks
- Loading Products, Brands , Types
- Change Agent List Logic
- Handle Sort Change
- Pagination Implementation
- Impelement Spring Security
- Implement UserDetail Service
- User Management Demo
- Impelement Authentication Entry
- Impelement Json web token
- Impelement Token Generation
- Impelement token Expiration
- Impelement JWT Authentication Filter
- Create Security Config
- Cretae Authentication Manager Bean
- Create the required Models
- Create Authentication Controller
- Impelement Security Client side
- User Model Creation
- Create Account Feature
- Update the Routes
- Creating Login Page
- Fixing the login Page Issue
- Wiring up Registration form
- Uising React Hook fron SignIn Page
- Create Account Slice
- Implementing Fetch User and Logout method
- Finishing the Account Action
- Finishing Login Page part 1
- Create DropDown Menu for SignIn User
- Finish Login page part 2
- Fetch Basket from Local Storage
- Persisitng Basket and Login Page Refresh
- Create Orders
- Create Embeddable Entity Shipping Address
- Creating Entity Order Status
- Creatte Order Item Entity
- Create Order Entity
- Create DTOs
- Add MapStruct Package
- Create Order Repository
- Create Order Mapper
- Create Order Service
- Create Order Controller
- Checkout Feature
- Update Cart quantity
- Create Basket Page
- Create Checkout Page
- Secure Checkout Page
- Instal Yup Schema
- Create Validation Rule Schema
- Create Address Form
- Create Payment Form
- Create Review Page
- Wiring checkout page
- Install Yup Resolver
- Cretae Order Method in Agent
- Finish Order Creation
- Finish Checkout Page
الأسئلة الأكثر شيوعا ؟
تبدأ الدورة عند الإشتراك مباشرة و تبقى في حسابك إلى الأبد و تبدأ التطبيقات العملية مع المجموعة مباشرة عندما تريد البدء بمراسلة أستاذ كل فصل من الدورة لكي يضيفك على مجموعة جديدة بدأت في نفس الوقت الذي تريد الدراسة فيه
لديك وصول غير محدود للدورة الخاصة بك على المنصة ، بإعتماد جميع الأجهزة الإلكترونية التي تمتلكها . أما بالنسبة للتطبيقات العملية فأنت تتابعها على مجموعة الواتساب للمستوى الخاص بك ، لكي تتوصل برابط البث المباشر لكل أسبوع
الدورة عبارة عن سلسلة من الفيديوهات التعليمية المسجلة سابقا بجودة عالية لا من ناحية الصوت و لا من ناحية الصورة ، و هي تبقى في حسابك إلى الأبد ، و يمكنك البدء في الوقت المناسب لك ، لأنها دورة تدريبية عبر الأنترنيت و تعتمد وتيرة ذاتية تماما ، و جميع التمارين و التطبيقات العملية التي يتم إسنادها للطلبة ، فهي مسجلة و يمكنك مشاهدة الحل على الموقع
لا نريد من طلابنا الأعزاء أن يكونو غير سعيدين أبدا ، إذا لم تكن راضيا على مشترياتك ، لديك ضمان لشهر بالكامل لتجربة الدورة لا من ناحية المحتوى و لا من ناحية الشرح ؟ و إذا كانت لديك أي من أسبابك لعدم متابعة الدورة ، راسلنا في الثلاثين يوم الأولى و سنرد إليك أموالك التي دفعتها بالكامل
الدورة يتم تحديثها بشكل مستمر ، لما نعرفه عن نزول نسخ بشكل مستمر سواء للغات البرمجة أو للتقنيات المستعملة ، فعندما تنزل تحديثات لكل ما ذكر ، يتكلف فريق المنصة بمتابعة الجديد بين الحين و الآخر و يتم تحديثها بشكل مستمر ، لكي تتوفر لدى طلابنا آخر التحديثات .
الدورة تم إنشاءها لتلائم جميع المستويات حتى و إن لم تكن لديك خبرة سابقة في مجال الويب أو في مجال البرمجة عموما ، خصوصا أنها تعمد نظام الأشطر في تدريسها للمواد لمواكبة الطالب خلال مسيرة تعلمه و كذلك مستويات متقدمة في آخر الدورة مع تطبيقات و مشاريع عملية من أرض الواقع ، لكي يتقدم الطالب في مسار تعلمه .
فريق المبرمجون العرب سعيد جدا بجعل دوراته مختلفة تماما عن باقي الدورات ، بتأمين العديد من المبرمجين لمتابعة طلابه من بداية معرفة الأبجديات إلى إنشاء تطبيقات فعلية بما في ذلك متابعة أسبوعية ليتمكن الطالب من طرح الأسئلة الخاصة به خلال بث مباشر مع أستاذ الفصل الذي ينتمي إليه .