المرحلة 1. التدريب
لقد جئت إلى JavaRush بوعي: قائمة أسعار شهرية مناسبة، وبنية واضحة للمادة، والكثير من الممارسات، ووجود مجتمعي الخاص. النقطة الأولى واضحة تمامًا، لكن تعلم لغة بدون بنية أمر صعب للغاية، ومن المؤكد أن مثل هذا التدريب سيترك الشخص يعاني من فجوات خطيرة في Java Core. تُظهر تجربة المقابلات والمواصفات الفنية أنه يمكن استخدام الأسئلة حول "الأساس" في كل شيء: بدءًا من تحويل البتات وصب الأدوية العامة إلى الإدخال/الإخراج والتسلسل. الممارسة أمر لا بد منه. ما زلت لا أستطيع أن أفهم وأتذكر نصف الأشياء إلا إذا كتبتها بنفسي. حسنًا، المجتمع: لقد قمت بحل المشكلة - تفاخر بها في التعليقات؛ إذا لم تكن قد قررت، فنحن نرحب بك لطرح الأسئلة، ولكن على الأرجح لن يقدم لك أحد حلاً جاهزًا. وعدت إلى المقالات المخصصة حول المواضيع المجانية حتى بعد الانتهاء من الدورة، هناك الكثير من الأشياء الجيدة للبدء بها (خاصة التجربة الأولى مع أطر العمل باستخدام أمثلة خطوة بخطوة + أسئلة للمقابلات). بشكل عام، أنا ممتن لهذا المشروع للقاعدة التي تلقيتها، لكنني لن أعتمد فقط على JavaRush - من الأفضل أن "يتداخل" نفس Shildt مع الموضوع الذي تتم دراسته، وغالبًا ما يكشف عن بعض النقاط. لقد قيل الكثير بالفعل في المراجعات حول المهام التي تتقدم أحيانًا على النظرية وتجبرك على البحث عن Google. بالنسبة لي، هذا أكثر من ناقص - وليس حقيقة أن الوضع الآن هو نفسه عندما كنت أدرس. نصيحة فورية لأولئك الذين، مثلي، يدخلون لغة Java "من الصفر" : في مرحلة ما قد تشعرون بالملل أو الصعوبة:-
الأمر صعب على الجميع البدء من الصفر، لا قدر الله، 5% فقط من الأشخاص يصلون إلى نهاية الدورة. مهمتك هي أن تصبح واحدا منهم.
-
أصبحت مهتمًا بعد شهر أو شهرين، عندما أصبحت المهام أكثر صعوبة وإثارة للاهتمام. كن صبوراً.
- الشيء الرئيسي هو التقدم الأسبوعي. بعد أسبوعين من الراحة، من الصعب بالفعل العودة، ولا يمكن للجميع الكتابة كل يوم لعدة أشهر متتالية. امنح نفسك حدًا لساعات الأسبوع - على سبيل المثال، 15. يمكنك البرمجة لمدة 1.5 ساعة كل يوم من أيام الأسبوع و3-4 ساعات أخرى في عطلتي نهاية الأسبوع، أو يمكنك أخذ إجازة لبضع أمسيات، ولكن "حد عطلة نهاية الأسبوع" سوف يزيد. بهذه الطريقة، سيكون الجدول الزمني مرنًا، ولكن منتظمًا. بالطبع، سيكون من الممكن قياس العمل حسب المهام والمشاريع، ولكن على مستوى بناء الجملة والنواة، ستفي الساعات بالغرض.
المرحلة 2. التعليم الذاتي
لذلك، لم أحصل على التدريب: لقد تركت بضعة أيام فقط للمتطلبات الفنية حتى نهاية التوظيف في المجموعة ولم يكن لدي الوقت لمعرفة المتطلبات - كان هناك الكثير من الكلمات غير المألوفة. لأن لم أكن أرغب في الانتظار ثلاثة أشهر أخرى، قررت المضي قدمًا بنفسي. لحسن الحظ، هناك أدلة ودروس فيديو لجميع الأطر الشعبية. خلال الأشهر القليلة التالية، تعاملت مع Spring MVC، وSpring Boot + Data، وSpring Security، وHibernate، وjUnit، وMaven، وGit، وRDBMS، وأتقنت SQL وحاولت تجميعها معًا في كل واحد. بعد ستة أشهر، كان لدي مشاريع مخيفة للنظر فيها الآن، لكنني اكتسبت خبرة عملية في استخدام أطر العمل "للبالغين" وGitHub، والتي يمكن عرضها بناءً على طلب صاحب العمل المحتمل. نصيحة :-
كلما أسرعت في التعرف على .gitignore، كلما كان ذلك أفضل. ;)
-
تتضمن العديد من الأدلة عدة أطر عمل في وقت واحد؛ استخدام هذا وإضافة بنفسك. لقد أنشأنا متجرًا عبر الإنترنت باستخدام Maven + Spring Boot + Data - أضف التفويض واختبارات الوحدة والتسجيل.
-
بالنسبة لمشاريع الويب، يمكنك الحصول على قوالب الواجهة الأمامية المجانية من الإنترنت - فهي أكثر متعة في العمل معها، وتبدو أفضل كلقطات شاشة في ملف README على Git. وفي الوقت نفسه، ستكون قادرًا على تذكر HTML وCSS - وربما ترغب في تصحيح الأنماط والتخطيط.
ما كنت في عداد المفقودين (في وقت لاحق تعرضت للحرق أثناء المقابلة)
-
الخوارزميات. لتجنب أخطائي، أوصي على الفور بقراءة كتاب قصير باللغة الروسية بعنوان "Grocking Algorithms". ما هو مدى تعقيد الخوارزميات، مما تتكون، لماذا لا يكفي الفرز السريع، مقدمة لنظرية الرسم البياني - كل شيء موجود وباللغة الأكثر مفهومة.
-
مجموعات "تحت الغطاء". لا أتذكر ما إذا كان هذا في JavaRush، ولكن من المفيد معرفة كيفية عمل HashMap.get() أو لماذا لا يتم ضمان HashSet للحفاظ على ترتيب العناصر. مرة أخرى، ما هي المجموعات الآمنة ولماذا.
-
SQL. أنت بحاجة على الأقل إلى ما يصل إلى JOINs - ما هي، وكيفية عملها، والقدرة على كتابة تحديد على جدولين على الورق بسرعة. أوصي بـ www.sql-ex.ru: سوف يأخذك إلى المستوى المطلوب خلال يوم أو يومين.
-
Spring Core: ما نوع التعليقات التوضيحية الموجودة، وما هو السياق، وكيف يتم إنشاء الحبوب، وما هو نطاق Bean الآمن، وكيفية حل الحقن المتبادل - جميع أسئلة المقابلة. كيفية إرجاع صفحة، وكيفية إرجاع JSON، وما إلى ذلك. أقرأ حاليًا "Spring 5 for Professionals" باللغة الروسية، ولكن بشكل عام يوصون بـ "Spring in Action".
المرحلة 3. البحث عن وظيفة
في الواقع، في أول شهرين بعد الانتهاء من المشاريع المنزلية، أرسلت حوالي 30 ردًا على العديد من الوظائف الشاغرة للمبتدئين/المتدربين (من خلال HH، LinkedIn، وكالات التوظيف)، وكانت النتائج قريبة من الصفر. لقد ركزت فقط على الوظائف الشاغرة بدون خبرة، وأشرت بصراحة إلى كومة مألوفة بالنسبة لي وكتبت عن قدرتي التعليمية العالية في رسائل الغلاف. والنتيجة هي مكالمتين (انتهت إحداهما على الفور بلغتي الإنجليزية قبل المتوسطة)، وأرسلت شركتان أخريان المواصفات الفنية، وكان هناك "اجتماع" واحد فقط، ثم كنت هناك بمفردي لأحل المشكلات المتعلقة بالخوارزميات على قطعة من الورق. وبعد ذلك قام قسم الموارد البشرية ببساطة بأخذ الأوراق و"سنتصل بك". حاولت الحصول على تدريبين داخليين (غير مدفوعي الأجر ومدفوعين بشكل مشروط): لقد قمت بالمواصفات الفنية، لكنني لم أتجاوز الضمان الاجتماعي النهائي؛ ولكن الآن أستطيع أن أقول إن المتدربين يتم تجنيدهم بالتأكيد بواسطة T-Systems وCFT وAndersen وEPAM (لديهم مراجعات مختلطة، قرر بنفسك). أما بالنسبة لي، فهي طريقة جيدة لدخول المجال إذا أتيحت لك فرصة الجلوس بدون دخل لعدة أشهر وعدم الموت =) بشكل عام، بعد هذه التجربة أصبحت مكتئبًا إلى حد ما، وأوقفت القصة بأكملها مع البحث مؤقتًا لمدة ستة أشهر تقريبًا - واصلت العمل على الملف الشخصي السابق، وكتبت بعض التطبيقات من أجل المتعة فقط، لكنني لم أنشرها حتى على Git. حتى التقيت بأحد معارفي، الذي أخبرته بشكل عرضي عن الإخفاقات في الوظائف الشاغرة: في ذلك الوقت كان يعمل بالفعل كمطور متوسط، لكنه بدأ بنفس الطريقة - بالدراسة الذاتية. أعطاني أحد معارفي بعض التوصيات ، والتي استخدمها بنفسه والتي ساعدتني كثيرًا في البحث عن عمل في المستقبل. سواء أتبعتهم أم لا، الأمر متروك لك، لأن... إنهم، بطريقة ما، ليسوا صادقين تمامًا. لذا، مزيد من الاقتباسات:-
بأي شكل من الأشكال، امنح نفسك أكثر من 6 أشهر من الخبرة التجارية في سيرتك الذاتية: التدريب الداخلي، ومشاريع التخرج، والعمل الحر، والعمل عن بعد - أي شيء. سيساعد هذا بشكل كبير في مرحلة الفحص الأولي للسير الذاتية من قبل قسم الموارد البشرية؛
-
قم بإزالة كلمة Junior والراتب المتوقع من سيرتك الذاتية؛ ما عليك سوى ترك الأمر كمطور Java، ومناقشة الأموال بشكل فردي مع كل شركة؛
-
حاول أن تجعل قسم الموارد البشرية يسمي "مفترق" الراتب المقترح قبل أن تحدد توقعاتك. إذا كانت الشركة تقدم ما بين 80 إلى 120 ألفًا، وأنت تبحث عن 40 ألفًا أو أكثر، فسوف يعاملك بعض المحددين بازدراء؛
-
تقدم بطلبك إلى جميع الوظائف الشاغرة التي تناسب مجموعتك، حتى لو كانت تتطلب خبرة تجارية تتراوح من سنة إلى ثلاث سنوات.
-
قم بتضمين سيرتك الذاتية المجموعة الكاملة من اللغات والتقنيات والأطر التي عملت بها.
-
قم بالتسجيل على LinkedIn - يوجد بالفعل الكثير من موظفي الموارد البشرية من شركات مختلفة. املأ ملف التعريف الخاص بك بعناية - في الواقع، هذه هي سيرتك الذاتية أيضًا. لتطوير شبكة جهات الاتصال الخاصة بك، أضف LIONs ذات الصلة بملفك الشخصي، فهم يقبلون الطلبات من جميع المستخدمين.
-
جرب نفسك في اختبارات Java المجانية - غالبًا ما يتم إجراؤها على الورق قبل مقابلة المبتدئين. من الأفضل الاستعداد مسبقًا.
-
يسألون دائمًا عن المجموعات: ما هي المجموعات الموجودة، وكيف تختلف، ومتى هو أفضل وقت لاستخدامها.
-
دائمًا على الفئات والواجهات المجردة - هل يمكن أن يكون لديهم أساليب، وحقول، وأي منها، وهل يمكن توريثها، وما إلى ذلك.
-
دائمًا ما تستخدم مؤشرات ترابط متعددة - ما الذي استخدمته في عملك، والكلمات الرئيسية، والأساليب، هل أنت على دراية بـ util.concurrent.
-
في كثير من الأحيان عند العمل مع الذاكرة - الكومة، والمكدس، وسوف تكون هذه السلاسل متساوية، وهذه الكائنات، لماذا.
-
في بعض الأحيان يتعلق الأمر بالخوارزميات - ما هي الخوارزميات التي تعرفها، وما مدى تعقيدها، ولماذا، هل يمكنك كتابة خوارزمية الآن.
-
في بعض الأحيان، بناءً على الأنماط - ما هي الأنماط التي تعرفها، وتلك التي تستخدمها، اكتب مفردة أو مصنعًا.
-
في بعض الأحيان في SQL - أنواع JOIN، ما هي المعاملة، وكيفية تنفيذها في JDBC، اكتب استعلامًا قصيرًا.
-
صفحة جهات الاتصال التجارية للملف الشخصي في Salesforce مع تحرير وإضافة سجلات جديدة؛
-
محاكاة مصعد في مبنى متعدد الطوابق باستخدام Spring State Machine مع وحدة التحكم؛
-
تطبيق Android يعتمد على مكتبة LibGDX مع إخراج نص حرفًا بحرف عند الضغط على زر؛
-
تقليد REST لمشاركة السيارة، مع إضافة عملاء عبر طلب HTTP وإرجاع JSON؛
-
مشكلة فرز الرسم البياني غير الموجه من خلال خلية حرة؛
-
البحث عن مثلثات متساوية الساقين باستخدام إحداثيات من ملف؛
-
إعادة هيكلة التعليمات البرمجية النهائية باستخدام Stream API؛
-
حاسبة واجهة المستخدم مع دعم التعبيرات الثلاثية؛
-
سباق المواضيع مع كتابة النتائج إلى ملف.
-
حاول ليس فقط إكمال المهمة، ولكن أيضًا التأكد من أن الكود يتوافق مع مبادئ OOP.
-
تحقق من كفاءة التعليمات البرمجية الخاصة بك - لقد تم رفضي ذات مرة لأنني، من بين أمور أخرى، استخدمت PrintStream بدلاً من BufferedWriter.
-
خطط لوقت التنفيذ بهامش 50% - من الأفضل أن تبدأ وتنتهي مبكرًا بدلاً من القيام بالدفع في الساعة الثامنة صباحًا من الموعد النهائي.
GO TO FULL VERSION