"أردت بالتأكيد تجربة نفسي في التطوير"
بعد الصف التاسع، عندما اضطررت إلى اختيار الاتجاه لمزيد من الدراسات (أي المسارات الفنية والإنسانية والاقتصادية والطبية)، كنت ممزقة بين المسار الإنساني والتقني. بالنسبة لي، كانت العلوم الإنسانية بمثابة مهنة صحفية، حيث أدين الشر ومناصر القضايا الخيرية في جميع أنحاء العالم. بينما كنت أفكر في المسار الفني، فكرت، إذا لم أحارب الشر، على الأقل لن أتطرق إليه. لقد اتبعت المسار الأقل مقاومة واخترت المسار الفني. بعد المدرسة، دخلت الجامعة وتخصصت في علوم الكمبيوتر وهندسة الكمبيوتر. للأسف، لم توفر الجامعة أي مهارات في أي لغة محددة. بطريقة مفككة، تعلمت بعض الأشياء حول تخطيطات C++ وC# وJavaScript وواجهة المستخدم. في عامي الثالث، أصبحت مهتمًا بشكل عشوائي بالإعلانات السياقية وحصلت للتو على وظيفة في شركة معروفة إلى حد ما. ونتيجة لذلك، بقيت في مجال الإعلان لمدة عامين. لقد استمتعت بنجاحات جيدة، لكنني أردت بالتأكيد تجربة نفسي في التطوير. كانت عودتي إلى البرمجة أيضًا بدون خطة مدروسة جيدًا: فقد تلقيت بريدًا إلكترونيًا في العمل حول خدمة جديدة تتطلع إلى توظيف متدربين من مطوري Java. قررت الذهاب إلى المقابلة. بالطبع، في ذلك الوقت لم تكن معرفتي الأساسية كافية للحصول على عرض، لكن هذه الحلقة دفعتني للبحث عن بعض الموارد حول Java. لقد عثرت على هذه الدورة التدريبية عبر الإنترنت. لم يجذبوني في البداية: كل الصور المضحكة وقصص الروبوتات جعلت الأمر يبدو غير جدي بالنسبة لي، لكنني أحببت حقًا فرصة التدرب على مهامي والتحقق منها. لقد تأخرت وقررت تجربتها، وبعد ذلك تم سحبي."لقد فشلت في المقابلات القليلة الأولى"
كنت أدرس دون جدول زمني صارم، بشكل متقطع: أثناء فترات الراحة في العمل، وأحيانًا في الليل. في المستوى 16-17 تقريبًا، بدأت أحاول البحث عن عمل. بحلول ذلك الوقت، كنت أدرس لمدة ثلاثة أشهر تقريبًا مع بعض فترات الراحة. إذا لم تكن لديك خبرة عملية، فإنهم يرغبون في السؤال عن الخوارزميات، لكنني أيضًا لا أعرفها تقريبًا. لذلك فشلت في المقابلات القليلة الأولى. كان علي الاستعداد أكثر والبحث عن الأسئلة الأكثر شيوعًا وحفظ الإجابات عليها. لقد تعلمت SQL بشكل عاجل، ودرست أنظمة إصدار التعليمات البرمجية (IMO، CodeGym يذكر Git بمستوى متقدم بشكل غير معقول، وليس حتى المستوى 30) ومبادئ SOLID، وتعلمت خوارزميات الفرز. وفي النهاية، تم تعييني كمطور مبتدئ في شركة صغيرة. كانت مهامي في وظيفتي الأولى تافهة للغاية: تطوير وظائف جديدة للنظام، وصقل الوظائف الحالية، وإصلاح الأخطاء. استخدمنا منهجية الشلال: يرسل رجل الأعمال مهمة، ويصفها المحلل بمزيد من التفصيل، وينفذها المطور، ويختبرها المحلل، ثم يقوم المطور بإدخالها في المنتج. لم نستخدم أي تقنيات خاصة: لقد كتبنا كل شيء بلغة Java النقية - وهي وحدة متراصة بدلاً من الخدمات الصغيرة. للعمل مع قاعدة البيانات، استخدمنا إطار العمل مغلق المصدر الخاص بنا. كان هناك محيط من الصعوبات في البداية - بدءًا من تعلم كيفية تحميل المشروع إلى المستودع، وحتى كيفية كتابة طلب إلى قاعدة البيانات حتى لا تنتهي مهلة المشروع. اضطررت إلى البحث في Google كثيرًا عن العمل مع JSON وSOAP وعن ماهية Maven وعن كيفية إنشاء مشروع Maven. ولم أتخلى عن التعلم. حاولت أن أدرس على الأقل كل يومين، ولكن كانت هناك عدة مرات اضطررت فيها إلى تأجيل الدراسة لمدة شهر. لكن هدفي كان إنهاء المستويات الأربعين العزيزة. بالتوازي، أخذت دورة تدريبية حول إطار الربيع. لقد فتح لي الربيع الكثير من الفرص الجديدة، وتضاعفت العروض التي أتلقاها بفضل سيرتي الذاتية عدة مرات. أثناء الحجر الصحي، قمت بتغيير وظيفتي وانتقلت إلى مشروع ذو بنية خدمات صغيرة. نحن نقوم بإنشاء خدمة للبحث عن العقارات السكنية والتجارية وبيعها وشرائها وتأجيرها، بالإضافة إلى تقديم طلبات الحصول على القروض العقارية وخدمتها. 80% من خدماتنا مكتوبة بلغة Kotlin. الـ 20% الأخرى مكتوبة بلغة جافا.خططي للمستقبل القريب هي:
-
الانغماس العميق في الهندسة المعمارية. أرغب في التعمق في تصميم البنية الخلفية.
-
تعلم لغة C++. أعتقد أن هذا سيكون بالتأكيد مفيدًا لأي مبرمج - ليتمكن، إذا لزم الأمر، من كتابة أجزاء التطبيق التي تحتاج إلى التشغيل بسرعة استثنائية. سيكون هذا مفيدًا لأية حسابات رياضية معقدة.
-
ديف أوبس. حتى أن بعض الشركات تجعل هذه المهارة متطلبًا إلزاميًا للمبرمجين. وسيكون بالتأكيد مفيدًا في أي شركة أخرى.
نصائح للمطورين المبتدئين:
- مواصلة البرمجة. يتكون عمل المبرمج بالكامل من حل مشكلات معينة، وإيجاد أخطاء معينة، وتصحيحها. في بعض الأحيان قد يبدو هذا (وبالتأكيد سيفعل!) صعبًا ومملًا ومربكًا بشكل لا يطاق، ولكن عندما تحل المشكلة أخيرًا، يبدو الأمر وكأنه إنجاز حقيقي، أو انتصار، أو اكتشاف تقريبًا. وهذه الدورة تكرر نفسها. الغضب والقبول والمحاولات الطويلة والإخفاقات التي لا تنتهي، ثم النصر. تكمن إثارة عمل المبرمج في توقع الاختراق والانتصار التاليين.
-
مواصلة التعلم كلما وحيثما كان ذلك ممكنا. قراءة المقالات والكتب. البحث عن الدورات التدريبية في مختلف مجالات تطوير البرمجيات وتلقيها. تأكد من تجربة التقنيات الجديدة. قم بتطبيقها على مشاريعك الشخصية. التفاعل مع الآخرين المتحمسين لتطوير البرمجيات. تبادل الخبرات والأفكار. ذات مرة، كان التحدث مع هؤلاء الأشخاص الطموحين هو ما ساعدني على عدم الضعف في شركتي الأولى وعدم الخوف من المضي قدمًا.
-
ومن هنا نصيحتي الثالثة - لا تخف من تغيير الأمور : وظيفة جديدة، إطار عمل جديد، لغة جديدة (سامحني، CodeGym). كل انتصاراتي الكبرى على نفسي حدثت في اللحظة التي غيرت فيها وظيفتي. في البداية، يبدو الأمر مخيفًا أن تذهب إلى مكان ما دون إتقان التكنولوجيا أو اللغة بشكل كامل، لكن هذا يحفز الكثير من النمو، حيث تقوم بدراسة هذه التكنولوجيا أو اللغة غير المعروفة. تهب رياحك الثانية، وستجد معنى خاصًا في فهم ودراسة شيء جديد.
-
كن معقولا في تقييم نقاط قوتك. حتى لو كان بإمكانك الجمع بين العمل والدراسة المستقلة في المنزل وبعض الدورات عبر الإنترنت والجامعة وربما الأسرة لبعض الوقت، فهناك احتمال كبير أن تشعر بالإرهاق. لسوء الحظ، أعرف عددًا قليلاً من الرجال الذين استنفدوا وتخلوا عن البرمجة بعد فترة طويلة من الجمع بين الجامعة والعمل بأجر والعمل أيضًا كمطور متدرب بدون أجر. لو أنهم أخذوا يومًا إضافيًا إجازة أو إجازة أكاديمية في الجامعة، ولو أخذوا يومًا واحدًا لقضاء إجازة وخصصوا الدراسة جانبًا، ولو أخذوا استراحة من دوراتهم عبر الإنترنت لبضعة أسابيع، فربما كان كل شيء قد انتهى بشكل مختلف.
GO TO FULL VERSION