حسنًا، لقد وجدت وقتًا لمشاركة قصتي الصغيرة.
مقدمة
لنبدأ بحقيقة أنني أبلغ من العمر 30 عامًا، ولدي تعليم عالي في الكيمياء (لن أخوض في التفاصيل)، وعملت في أحد المصانع لمدة 8 سنوات تقريبًا. كان العمل في الواقع ممتعًا للغاية، ولكن بالنظر إلى زملائي في العمل، أدركت أنني لا أريد العمل هنا لمدة عشرين عامًا حتى التقاعد. هذه ليست الطريقة التي أريد أن أقضي بها حياتي. أريد أيضًا أن أضيف أن لدي عائلة، تضم طفلين (أكبرهم يبلغ من العمر 6 أعوام، وأصغرهم يبلغ من العمر عامًا واحدًا)، وكما هو متوقع، لدي رهن عقاري. أخيرًا، قررت أن أحاول الانتقال إلى مكان آخر، إلى مصنع آخر بأجر أعلى ونمو وظيفي حقيقي. لقد استقرت في المصنع الأول، لذا كان من الصعب أن أغادر، لكنني اتخذت قراري. استغرقت رحلتي إلى سان بطرسبرج شهرًا. كنت رسميًا في العمل هناك لمدة أسبوع عندما أدركت أن الوضع في المصانع في بلادنا (سفياتوسلاف من روسيا – ملاحظة المحرر) كان كئيبًا في معظمه. عدت إلى مسقط رأسي. لم أكن أرغب في العودة، لأنه بدا لي أن هذه كانت خطوة إلى الوراء. في هذه المرحلة، قررت أنه إذا قمت بتغيير حياتي – وتغييرها بشكل جذري! لمدة أسبوع تقريبًا كنت أفكر في لغة البرمجة التي سأختارها، ووقع الاختيار على Java. وبعد ذلك بدأت بالبحث عن الدورات. الحقيقة هي أن هناك الكثير من الدورات التدريبية الجيدة، وبعضها بأسعار معقولة، ولكن واجهت مشكلة: لقد كنت متحمسًا للغاية وكان لدي الكثير من الوقت للدراسة، لكن مساندتي المالية كانت تكفي على الأكثر لمدة 3-4 سنوات. شهور. جميع الدورات التي أعجبتني كانت لمدة نصف عام أو أكثر بواقع درسين في الأسبوع (في أغلب الأحيان). ولكن بعد ذلك نصحت لي إحدى صديقاتي بـ CodeGym بعد أن سمعت أنه مورد جيد جدًا. رأيت أن هذه الدورة تحتوي على كل ما أحتاجه:- الاشتراك بالمواد والمهام التعليمية؛
- لا توجد حدود زمنية - كان بإمكاني الدراسة بالقدر الذي يسمح به جدول أعمالي (الذي كان مفتوحًا على مصراعيه) ورغبتي (كما قلت أعلاه، كنت متحمسًا للغاية).
الجزء الأول: في طلب المعرفة
في 26 نوفمبر 2019 قمت بالتسجيل وبدأت دراستي. سأقول على الفور أنه كانت هناك أيام جلست فيها لمدة 14 ساعة متواصلة، أدرس، وأقرأ جميع الروابط ذات الصلة، وأحاول العثور على حلول أكثر جمالا (دون إلقاء نظرة خاطفة على المساعدة). فقط عندما اعتقدت أن الحل الذي قدمته هو الأفضل، نظرت إلى التعليمات. لقد اندهشت في كثير من الأحيان من الحلول التي كانت أكثر جمالا وإيجازا. في نهاية شهر يناير، عند وصولي إلى المستوى 17، قررت أن أبدأ في إجراء المقابلات، وإبراز مهاراتي، ورؤية ما يريده السوق. وكما حدث، لم يستجب لي أحد حقًا، ولكن كان هناك مكتب واحد استقبلني كمتدرب تحت الاختبار بدون أجر: الشهر الأول لم يكن مدفوع الأجر، وكان الشهر الثاني والثالث يتضمنان راتبًا صغيرًا. بعد ذلك، ستكون هناك مقابلة أخرى بناءً على أدائي بعد ثلاثة أشهر، وإذا كان التدريب ناجحًا، فسيتم التوظيف.الجزء الثاني: الاندفاع إلى المعركة
تضمن تدريبي الداخلي كتابة مكون إضافي لمتصفح Chrome مزود بواجهة خلفية Java لأتمتة المهام الروتينية لأحد الأقسام الداخلية للشركة. كان لدي مرشد رائع يتمتع بالكثير من المعرفة، وهو ما أعتقد أنه مهم أيضًا. بشكل أساسي، لتجنب الضياع في الأعشاب الضارة، سأخبرك الآن عن مجموعة التكنولوجيا التي استخدمتها، وبعد ذلك في نهاية المقالة سأقدم العديد من الروابط التي تبين أنها مفيدة جدًا بالنسبة لي.كومة التكنولوجيا:
Java 11 (تمت كتابة المشروع بالكامل من الصفر)، Spring (Boot, Security, OAuth2); لقد استخدمت MongoDB لقاعدة بيانات؛ بالنسبة للاختبارات الآلية، استخدمت AssertJ وMockito وSpring-boot-starter-test؛ واستخدمت تدفق GitHub المشهور إلى حد ما (راجع هذه المقالة ). راجع للشغل، إذا كنت تواجه صعوبة في اللغة الإنجليزية، فهذا هو الوقت المناسب لنصيحتك لتعلمها. مستوى طلاقتي هو A2، لكني أحاول دائمًا قراءة المقالات باللغة الإنجليزية (بدون الاستعانة بمترجم بالطبع). كانت هذه أكبر صعوبة واجهتني عندما بدأت مشروع التدريب الداخلي، لأنه كان علي العمل مع إدارة علاقات العملاء (CRM) التابعة لجهة خارجية، وكانت جميع وثائقها باللغة الإنجليزية. أيضًا، عند العمل مع Spring، من الأفضل قراءة الوثائق الأصلية. انها جيدة جدا ومفصلة. علاوة على ذلك، فإن جميع الوثائق تقريبًا باللغة الإنجليزية (قليلًا من Captain Obvious). أيضًا، طلب مني معلمي أن أكتب جميع التعليقات في الكود ووثائق واجهة برمجة التطبيقات باللغة الإنجليزية، لذلك أكرر مرة أخرى: تعلم اللغة الإنجليزية، إذا لم تكن متحدثًا أصليًا! حتى لو كنت لن تعمل مع عملاء أجانب أو تسافر إلى الخارج، فإن هذه المهارة ستعمل ببساطة على تبسيط دراستك وتطويرك إلى حد كبير.الجزء 3: النتيجة
سيكون هذا الجزء أقصر بكثير :) في نهاية التدريب، نجحت في اجتياز مقابلة تقييم الأداء وحصلت على وظيفة حيث واصلت العمل في هذا المشروع. كان من المقرر تنفيذ المرحلة الأولى كجزء من فترة تدريبي، ولكن كانت هناك ثلاث مراحل إجمالاً. بسبب ظهور الوباء، اختفت العديد من المشاريع التجارية، وقمت بتنفيذ جميع المراحل وكل فكرة/رغبة أخرى يمكن أن تكون موجودة لهذا المشروع. وكانت هناك مهام أخرى، ولكن، كما يقولون، تلك قصة أخرى.الجزء الرابع: كانت هناك نهاية سعيدة، على الرغم من أن الأمور لم تنته بعد ;)
في منتصف شهر يوليو، تلقيت مكالمة وسئلت عما إذا كنت أبحث عن عمل. لقد نشرت سيرتي الذاتية، على الرغم من أنها لم يتم تحديثها لفترة طويلة. قررت أن أختبر نفسي. لقد مررت بثلاث مراحل: مهمة اختبارية، ومقابلة فنية، ومقابلة مع المدير. لقد أرسلوا لي عرضًا و... كان هذا عرضًا لا يمكنني رفضه. أدرك، بالطبع، أنه في أول وظيفتين لك، ستحاول الوصول إلى أي مكان سيأخذونك إليه، ولكن مع ذلك. كانت وظيفتي الأولى عبارة عن وظيفة خارجية، لكن وظيفتي الحالية هي في صناعة المواد الغذائية. لقد قاموا أيضًا بتعييني كمطور مبتدئ، لكنني لست منزعجًا على الإطلاق، حيث أن هناك مجالًا للنمو من حيث المعرفة والمال.الخاتمة
لذلك أيها الأصدقاء، لا تثبطوا. الشيء الرئيسي هو اتخاذ قرارك وعدم الانحراف عن طريقك. في حالتي، كانت لدي مسؤولية كبيرة لرعاية أسرتي ورغبة في تغيير شيء ما في حياتي، والبدء في القيام بما أستمتع به حقًا. يعد تطوير البرمجيات أمرًا رائعًا بشكل خاص، لأنه يمكنك تسلق السلم الوظيفي، بغض النظر عما إذا كان هناك منصب شاغر أعلى في شركتك، وبغض النظر عما إذا كان شخص ما قد تقاعد بعد العمل لمدة عشرين عامًا، وبغض النظر عما إذا كان لديك اتصالات شخصية للحصول على الوظيفة. وظيفة أعلى. في مجالنا، كل شيء في أيدينا!فيما يلي بعض المقالات التي أود مشاركتها:
- فهم الهندسة المعمارية . لقد قرأت هذه المقالة شخصيًا 4 مرات بينما كنا نعمل على تصميم بنية التطبيق المستقبلي. أستخدم كلمة "نحن"، لأن مرشدي قام بفحص كل شيء وأرسله مرة أخرى لإجراء التصحيحات (على سبيل المثال، قام بمراجعة التعليمات البرمجية). في المرة الأولى لم أفهم الكثير. ثم قرأته بعد 3 أشهر، ووجدت أنني فهمت السبب بعد ذلك. لاحقًا، قرأته مرتين أخريين من أجل ترسيخ جميع المعلومات واستيعابها بالكامل.
- تعلم جيت التفاعلي .
- أوصي بأن يتعلم الجميع كيفية العمل مع التدفقات. إنها رائعة حقًا: يمكنك غالبًا استبدال كميات كبيرة من التعليمات البرمجية بتدفق صغير.
- وثائق الربيع.
- نظرًا لأنني عملت مع قاعدة بيانات غير علائقية، ولأن معظم الشركات (خاصة الكبيرة منها) تعمل مع SQL، فقد حاولت في وقت فراغي حل مشكلتين على الأقل تتضمن إنشاء استعلامات SQL. هناك الكثير من المواقع المختلفة لهذا الغرض.
- أوصي أيضًا بالقراءة عن اختبارات الكتابة (Assertj، Mockito)، لكنني لا أتذكر أي مقالات جيدة، فقط التوثيق.
- وعندما تقوم بتطوير تطبيق ما (لكننا الآن تجاوزنا مستوى المبتدئين)، حاول استخدام أنماط التصميم . على الأقل قم بإلقاء نظرة سريعة على الأنماط المعروفة. سيكون ذلك مفيدًا عند البدء.
GO TO FULL VERSION