Ahmed Barabbud
Ahmed Barabbud

@ahmedbarbbud

24 تغريدة 85 قراءة Jan 02, 2020
هل تطمح لتكون مبرمج/مطور/مهندس برمجيات مميز وقادر على دخول سوق العمل؟
إليك أهم ١٢ مهارة تقنية ستضعك على خارطة تطوير و هندسة البرمجيات ??‍???‍?
#حزب_المبرمجين #تطوير #هندسة_البرمجيات
#ثريد #تقنية
1️⃣ لغة برمجية واحدة على الاقل
من البديهي لأي مبرمج اتقان لغة مبرمجة واحد على الاقل قادر على استخدامها لبناء وتطوير مشاريعه بشكل مناسب ومتقن.
اختر لغة تناسب توجهك البرمجي وابدأ مسيرتك بتعلمها.
راجع الصورة:
2️⃣ بناء هيكلية برمجياتك
بعد أن تعلمت لغتك الاولى أو أثناء تعلمك قد تواجه صعوبة بناء تطبيق بهيكلية مناسبة، مثلاً أين تضع ملفات الاتصال بقاعدة البيانات وملفات الواجهة وملفات المنطق البرمجي، بحيث تكون هيكلية المشروع تتمتع بالوضوح، سهولة الفهم، قابلية و سهولة التطوير والتوسع.
ولتعلم تلك المهارة عليك دراسة نماذج التصميم البرمجية (software design pattern) وإليك بعض أفضل المراجع :
Code complete
Design Patterns: Elements of Reusable Object-Oriented Software
Head First Design Patterns
Clean Architecture
جميعها متوفرة بموقع امازون ??
3️⃣ البرمجة كائنية التوجه (OOP)
لكي تكون مبرمجاً مميزين يجب أن تستطيع التعامل مع المشاريع ذات التعقيد العالي وتستطيع التعامل مع هيكليات برمجية متعددة وكل ذلك يوجب معرفتك بمفهوم البرمجة الكائنية والتي تساعد بذلك وأكثر فمن دونها ستبقى كاتب أكواد بسيطة ولن تتقدم خطوة للأمام.
إليك أبرز الكتب لتعلمها وتطبيقها بمشروعك القادم باذن الله:
Head First Object Oriented Analysis and Design
The Object-Oriented Thought Processes
Elegant Objects
4️⃣ الخورزميات وهياكل البيانات
أحد أهم المهارات لأي مبرمج هي قدرته على حل المشاكل البرمجية ومن دون الخورزميات وهياكل البيانات لن تستطيع، قد يقلل الكثير من أهميتها ولكن عند أول تحدي حقيقي سيفشلون من دونها ، لذلك لا تكون مثلهم ?.
بعض المصادر لتعلم الخورزميات وهياكل البيانات :
Problem Solving with Algorithms and Data Structures Using Python
Cracking the Coding Interview: 189 Programming Questions and Solutions
Data Science For Dummies
5️⃣ معرفة ببيئة التطوير والعمل والسيرفرات
قدرتك على كتابة كود جيد ويأدي المهمة لا تكفي أطلاقاً، فلابد مع ان تكون ذا معرفة بأنظمة التشغيل ( ويندوز ، ولينكس وربما ماك) ، ولابد من معرفتك بكيفية التعامل مع سطر الأوامر وصيانة وإدارة السيرفرات ( قد لا تكون مهمتك الاساسية ولكن تعلمها)
ولكي تطور خبرتك بذلك إليك مجموعة من الكتب والروابط الرائعة
Linux Pocket Guide: Essential Commands
Linux Administration: A Beginner’s Guide, Seventh Edition
superuser.com
6️⃣ إطار عمل او Stack او محرك
بسوق العمل الجميع ( ما عدا قلة) يستخدمون إطارات العمل البرمجية مثل إطار Laravel لتطوير الويب أو محرك Unity لتطوير الالعاب أو Stack مثل MEAN js وغيرها
بوصولك لهذه المرحلة قد تكون اخترت إطاراً او عملت على محرك او طبقت ما تعلمته باستخدام أحد الـ Stack
وأن لم تفعل فلا تتأخر كثيراً اختر ما يناسبك ويناسب مجالك البرمجي وأبد الان ??
7️⃣ معرفة بقواعد البيانات
لكي تتعامل مع بيانات المستخدمين وتدير بيانات اللاعبين وتسهل مراجعة سجلات المقترضين لابد من تخزينها وإدارتها وإدارة الوصول لها ، كل ذلك يتم من خلال قواعد البيانات .
بعض المراجع المفيدة بذلك :
Beginning Database Design: From Novice to Professional
SQL QuickStart Guide: The Simplified Beginner's Guide To SQL
Next Generation Databases: NoSQLand Big Data
8️⃣ نظام إدارة النسخ ( git )
عند العمل على مشاريع متعدة وكبيرة ومتشعبة والعمل ضمن فريق لن يكون عملياً ارسال الكود عبر الايميل خصوصاً بمرحلة التطوير ، لذلك تم اختراع نظام إدارة النسخ لتسهيل مشاركة وادارة الكود بجميع المراحل ،وإليك أبرز المصادر لتعلمه:
Pro git
Version Control with Git: Powerful tools and techniques for collaborative software development
وانصح بالكتاب التالي للتعمق بسطر الاوامر :
The Linux Command Line, 2nd Edition: A Complete Introduction
9️⃣ مهارات اختبار الانظمة وتصحيح الاخطاء (Testing & Debugging)
لا يوجد مشروع لم يواجه أخطاء ومشاكل برمجية لذلك لابد من صقل مهارتك بأختبار الانظمة وأتمتة الاختبارات، وصقلها بمراجعة الأخطاء وتدقيقها وكشفها وحلها وتحسين الاداء والفعالية ، بالتغريدة القادمة سأشاركم مصادر مميزة??
Working Effectively with Legacy Code
Code complete
coursera.org
1️⃣0️⃣ تدشين المشاريع (Build and Deployment)
قدرتك على تطوير وبناء المشاريع لا تكفي ، فلابد من وضع النظام ببيئة العمل الفعلية ( Production ) وضمان استقراره وإمكانية الوصول له بشكل دائم وحمايته وغيرها من الامور التي تتعلق بتدشين المشاريع التقنية ، وضعت لك بعض المصادر، تمعنها ??
Continuous Integration, Delivery, and Deployment
en.m.wikipedia.org
edx.org
Docker Quick Start Guide: Learn Docker Like a Boss, and Finally Own Your Applications
1️⃣1️⃣ منهجية تطوير برمجيات (Methodologies)
هي الاليات المنظمة لعمل فريق التطوير وتساعدهم بالتنظيم والتخطيط وبناء المشاريع باحترافية وفعالية عالية، ومعظم الشركات التقنية والفرق التطويرية تتبع منهجية ما ولذلك عليك تعلم أحدها لتواكبهم، سارفق لك مصادر مميز لابرز منهجية استخداماً.
edx.org
“The Lean Startup” by Eric Ries
Agile UX Storytelling: Crafting Stories for Better Software Development
1️⃣2️⃣ مهارة البحث
نظراً لما اشاهده يومياً من ضعف هذي المهارة لدى الكثير من المقبلين على المجال واحياناً العاملين فيه فجزمت بضرورة تعلمها واحترافها ، فالجميع يمر بمرحلة نقص المعرفة ولابد له من البحث والتعلم لسد ذلك النقص، وان كان لديك نقص بهذه المهارة فلابد من سده باسرع وقت??
يمكنك تعلم بعض التقنيات من هنا
ahrefs.com

بهذا نصل لنهاية السلسلة متمنياً من الله ان اكون وفقت بأثراء المطور العربي ومساعدته قدر الامكان، وسأكون سعيد بتلقي اقتراحاتكم للسلاسل القادمة ??

جاري تحميل الاقتراحات...