معلومات مهمة قبل التعريف بالوظيفة
قبل الدخول في تعريف وظيفة ال Full-Stack Developer دعونا نرى أهم الوظائف الموجودة في أي مشروع والتي تزيد أو تنقص حسب المشروع وحسب الشركة
- UI/UX Designer
- Front-End Developer
- Back-End Developer
- Testers
- Business Analyst
- Dev Ops
- Sales And Marketing
- Project Manager
والآن نقوم بتقسيم المشروع نفسه لمجموعة من الطبقات
- Presentation Layer
- Business Logic Layer
- Database Layer
والآن نتحدث عن كل طبقة بكل ما يخصها.
Presentation Layer
هو الجزء الخاص بال Front-End Developer والذي يتعامل فيه مع ال User Interface والجزء الذي يراه زائر الموقع ويحتاج للتقنيات التالية حتى يستطيع عمل هذا الجزء بعد الحصول على ال Sketches ورحلة المستخدم من ال UI/UX Designer. وهذه بعض المعلومات البسيطة عن كل تقنية ولغة تخص ال Front-End Developer
HTML
حتى تستطيع عمل بنية الصفحة الأساسية Markup
CSS
لتتمكن من التعامل مع الألوان والخطوط وال Visuals بصفة عامة
JavaScript
حتى تستطيع عمل الجزء ال Interactive وال Calculation وكتابة ال Logic
Design Framework
اطار عمل من الموجودين على الساحة وأشهرهم Bootstrap لتوفير الوقت والمجهود في بناء تصميم متكامل
Pugjs
أو أي Template Engine آخر لتوفير الوقت كتابة أكواد ال Html وتستفيد بقوة ال JavaScript في كتابة ال Templates
SASS
أو أي PreProcessor آخر لتوفير الوقت في كتابة أكواد Css والإستفادة بقوة لغات البرمجة وللحصول على كود منظم أكثر.
JavaScript Framework
اطار عمل من الموجودين على الساحة وأشهرهم ( Angular, React, Vue ) مع المكتبات والإضافات المتاحة لكل اطار عمل مثل Redux, NuxtJs
jQuery
مكتبة تساعدك وتوفر عليك الكثير من الأمور وفي حالة اخترت اطار عمل معين من النقطة السابقة يمكن الإستغناء عنها.
Gulpjs
أو أي Task Runner آخر يقوم بتوفير الوقت ويقوم بعمل المهام التي تقوم بعملها يوميا في عملك ويجعل تركيزك فقط على كتابة الكود.
JSON
ال JavaScript Object Notation لتتعلم كيفية التعامل مع البيانات وال APIs الموجودة في المشروع.
AJAX
لتستطيع التعامل مع ال Requests وال Calls وكل ما يخص ال APIs
Jest
أو أي Testing Framework آخر لتقوم يعمل ال Unit Testing
Business Logic Layer
هو الجزء الخاص بال Back-End Developer والذي يتعامل فيه مع البيانات وال Validation وبناء ال Services والبنية الخاص بالنظام وكل ما يخص ال Logic وفي هذا المسار هناك الكثير من لغات البرمجة حسب المسار الذي تختاره وهناك بعض المسارات كالتالي.
- لغة PHP مع ( YII, Laravel, Symphony )
- لغة Python مع ( Django, Flask, Web )
- لغة Java مع ( Spring )
- لغة Ruby مع ( ROR )
- لغة C# مع ( .NET )
- بيئة Nodejs مع ( Express )
Database Layer
هو الجزء الخاص بالتعامل مع قواعد البيانات من انشاء وتعديل وعمل Tweaks وتحسين أداء ال Queries وهناك الكثير من قواعد البيانات التي يمكنك العمل عليها مثل:
- MySQL
- SQLServer
- Oracle
- MongoDB
بعض التقنيات الواجب تعلمها
- Git & Github
- GraphQL
- Rest API
- Linux
- Command Line
بعض المهارات الواجب تعلمها
- التفكير المنطقي
- مهارات التواصل
- الإبداع
- إدارة الوقت
في النهاية هذا المسمى عند الكثير له الكثير من المعاني وهناك من يضيف عليه مهارات وتقنيات أخرى مثل ال إدارة المشاريع وال System Administration وال Network وتختلف من بلد لبلد ومن شركة لشركة أخرى ولكن يبقى المعنى واضحا وهو أنك تقوم بالوظيفتين وحدك.
مقارنة الوظيفة بالنسبة للشركات
سوف نقيس هذه المقارنة على Full-Stack, Front-End, Back-End كلهم خبرتهم نفس عدد السنوات 5 سنوات على سبيل المثال, وهذه المقارنة لا تنفع في جميع الشركات ولكنها مقارنة عامة تحتمل الصواب في شركة ويمكن أن تكون خطأ في شركة أخرى ولكنها لعرض الفكرة فقط.
Full Stack Developer |
Front-End Or Back-End |
الشركة تقوم بتعيين موظف واحد |
الشركة تقوم بتعيين موظفين بدلا من واحد |
الشركة تتعامل مع شخص واحد في الطلبات |
الشركة تتعامل مع شخصين في الطلبات |
لا تحتاج لتوحيد طريقة العمل ومعايير ال Code لأنه شخص واحد |
تحتاج لوضع معايير وتوحيد طريقة العمل لأنه فريق وليس شخص واحد |
يمكن أن ينتقل لأي من المجالين ويتخصص فيهم لأنه يعمل فيهم بالفعل |
يحتاج لتعلم المجال الآخر من الصفر لأنه جديد عليه |
لو كانت الشركة تحتاج لمتخصص وخبرته خمس سنوات لن ينفع معها |
لو كانت الشركة تحتاج لمتخصص وخبرته خمس سنوات فهو مناسب لها |
يمكن أن يكون هناك خطورة في إتخاذ أي قرار بسبب أنه يخرج من شخص واحد |
إحتمال الخطأ ضعيف لأن القرار بيد أكثر من شخص يتناقشوا فيه |
0 تعليقات