خريطة الطريق لمطور جافا
كان أحد أصدقائي يتساءل عن سبب سعادة المطورين دائمًا. كان الجواب الذي جاءت به بسيطًا ومدهشًا: إنهم يفعلون ما يحلو لهم ويكسبون أموالاً طائلة. مرحبا بكم في عالم مطوري البرمجيات.
راتب مطور البرمجيات
أود أن أخبركم عن رواتب المطورين. كيف تقع الأرض مع الرواتب، وأين يجب أن تعمل، وأين لا ينبغي أن تعمل. إذا لم تكن مطورًا وحاولت حل المشكلة بنفسك، فقد تحصل على بيانات مثيرة للجدل إلى حد ما. النقطة الأساسية هي أن العامل الرئيسي الذي يؤثر على راتب المطور ليس المؤهل، بل مكان العمل. في بعض الأحيان، في ضوء مستوى المؤهلات المتساوي، يمكن أن يكون الفرق بين مكان العمل الجيد والسيئ من 2 إلى 10 مرات (!) في كل لحظة من الوقت تكون مؤهلاتك ثابتة. لا يمكنك أن تصبح مؤهلاً مرتين في شهر واحد وتحصل على أجر مضاعف. ولكن يمكنك تغيير مكان العمل خلال شهر والحصول على راتب أكبر بمرتين. مرة واحدة خلال شهرين، تضاعف راتبي بثلاثة (!) - تجربة لا تُنسى. لذلك، دعونا معرفة ما هو المكان الأفضل. فيما يلي العوامل الثلاثة التي تؤثر بشكل رئيسي على مستويات الرواتب في الشركات:- ما إذا كان العمل الرئيسي للشركة هو تطوير البرمجيات
- سواء كانت الشركة موجهة نحو السوق العالمية أو المحلية
- أين يقع المكتب الرئيسي: دولة متقدمة أو دولة نامية
أرقام محددة
نظرًا لاختلاف الرواتب في أجزاء مختلفة من العالم، أقترح أخذ راتب مطور Java كبير يتمتع بخبرة 5 سنوات كنقطة بداية وأطلق عليه "5 سنوات كحد أقصى". سيتم إعطاء جميع الأرقام أدناه كنسبة مئوية من هذا المبلغ. فيما يلي بعض الأمثلة على رواتب "5 سنوات كحد أقصى" في مدن مختلفة من العالم:


ما يمكنك تحقيقه إلا إذا قمت بأشياء غبية
إذا بدأت العمل على تعليمك الذاتي في البرمجة الآن، فقد يبدو راتبك كما يلي:
يخطط
0-3 أشهر (طالب)
أنت تعرف القليل جدًا عن البرمجة. ربما تكون قد درستها في المدرسة أو في الكلية على المستوى الأساسي. ما عليك القيام به هو تعلم كيفية البرمجة وتعلم جافا. هدفك هو الحصول على وظيفة كمطور Java Junior في شركة من المستوى 3 أو أعلى. خلال الأشهر الثلاثة الأولى من الخطة، لن تحصل على أي شيء، لأنك تتعلم فقط كيفية البرمجة. لكن كلما بدأت مبكرًا كان ذلك أفضل. أفضل وقت هو الآن. في المستقبل، عندما يكون لديك عائلة وكميات كبيرة من القروض، سيكون من الصعب إعادة تأهيلها. من أجل تصحيح خطأك، سيتعين عليك توفير المال لدفع تكاليف الحياة الطبيعية لمدة عام على الأقل. لا ترتكب أخطاء سخيفة.3-15 شهرًا (مطور Java Junior)
أنت تعمل كمطور برامج بالفعل وتنمو تجربتك يوميًا. لا تسترخي. لديك الكثير لتفعله قبل أن تستريح على المجاديف. ما عليك القيام به هو – دراسة التقنيات التي ستحتاجها كمطور متوسط. ما هي هذه؟ إن العالم يتغير باستمرار. سأزودك بالنصائح وستغير الحياة كل شيء. ابحث عن بعض الوظائف الشاغرة على الويب واطلع على ما تحتاج إلى تقديمه. تأكد من قراءة كتاب بروس إيكل "التفكير في جافا". هدفك في السنة الأولى من العمل كمطور Java Junior هو الوصول إلى مستوى Java Middle Developer. لا أحد يقول أن ذلك سيكون سهلاً، لكن هذا ممكن بالنسبة لشخص ذو هدف محدد. سيؤدي ذلك إلى زيادة راتبك في لحظة بنسبة تصل إلى 40% من "5 سنوات كحد أقصى" (50 ألف دولار لساو فرانسيسكو ولندن، 6 آلاف دولار لبنغالور).البرمجة لمدة عامين (مطور Java الأوسط، المستوى 1)
لقد قمت بعمل جيد في العام الماضي وأنت الآن مطور Java الأوسط. يمكنك العيش بشكل جيد مقابل 50٪ من راتب مطور Java الأول. يتم تكليفك ببعض المهام الجادة في العمل وتنمو خبرتك بشكل ملحوظ. ستصل إلى مستوى Java Senior Developer في غضون عامين أو ثلاثة أعوام. لا حاجة للعجلة. لن تحصل على مبالغ كبيرة في الراتب على أي حال. ما عليك القيام به هو تعلم أنماط التصميم، وقراءة - اكتمال كود ماكونيل. تحسين جودة الكود الخاص بك ومهارات الفريق. أنشئ قاعدة لقراءة كتاب واحد عن برمجة الكمبيوتر كل شهر. وبعد ذلك، خلال 4 سنوات، ستكون أكثر ذكاءً من الكتب الأخرى بـ 50 كتابًا. لا تؤجله: لن تحصل على قدر أكبر من وقت الفراغ، علاوة على ذلك، على الأرجح ستكوّن عائلة، أو إذا كان لديك عائلة، فسوف تصبح أكبر. هدفك هو اختيار عدد قليل من التقنيات للتخصص فيها كمطور Java كبير. لا يمكنك أن تتعلم كل منهم، كما تعلمون. ومن الجيد دائمًا أن تصبح خبيرًا في تخصص واحد.
برمجة ثلاثية الأبعاد (مطور Java الأوسط، المستوى 2)
أنت الآن مطور متوسط ذو خبرة وتفكر في أن تصبح مطورًا أول. إنها ممتعة ومرموقة. يتجاوز راتبك 60% من "الحد الأقصى لمدة 5 سنوات" (10 آلاف دولار في بنغالور، و25 ألف دولار في كييف، و40 ألف دولار في برلين، و80 ألف دولار في نيويورك). من هذه اللحظة، يزداد الطلب على المحترفين مثلك. ستتمكن دائمًا من العثور على وظيفة في غضون يومين، ولن تكسب أقل مما تكسبه الآن. هذا، بالطبع، إذا لم تفعل أي شيء غبي. ما عليك القيام به هو الاستمرار في دراسة التقنيات التي اخترتها. تعمل على نحو أفضل. ليس من أجل صاحب العمل الخاص بك، من أجلك. تقدم بطلب للمشاركة في المشاريع التي تتضمن تقنيات واعدة (مثل BigData، في وقت كتابة هذا المقال). ستقضي 8 ساعات يوميًا في المكتب على أي حال، فلماذا لا تحصل على المزيد من المال مقابل ذلك، والأهم من ذلك بكثير، الخبرة الأكثر قيمة التي ستحتاجها في المستقبل. هدفك هو العثور على وظيفة جديدة. يمكن العثور دائمًا على فريق جيد. ستواجه مشاريع وتقنيات جديدة. لا تحتاج إلى الجذر على كرسيك. إذا كنت لا تزال تعمل في شركة من المستوى الثالث، فكر في التوظيف في شركة من المستوى الرابع.برمجة السنة الخامسة (مطور جافا الأول، المستوى 1).
أنت الآن مطور أول. ربما أنت لا تستحق ذلك، وتشعر بذلك. ومع ذلك، تهاني. ليس من المهم أن تكون جديراً بمنصبك الآن، المهم أن تصبح جديراً به في المستقبل. أعتقد أنك ستوافق على أنه من الأفضل أن تحصل على وظيفة جيدة وبعد أن تصل إلى المستوى المطلوب ثم العكس. أتمنى ألا تنسى نصيحتي بقراءة كتاب واحد في الشهر؟ سوف يحسد أي طالب معرفتك ومهاراتك الآن. ولكي أكون أكثر تحديدا، فإنه سوف يصلي عليهم. مجرد التفكير في الأمر: لقد حصلت على أرباح كبيرة، ما يقرب من 90٪ من الراتب "5 سنوات كحد أقصى". ربما كنت لا تزال شابا. العالم تحت قدميك. ما عليك فعله هو إعادة تقييم التقنيات التي اخترتها. ربما تحتاج إلى تغيير التخصص. لقد تغير العالم، وتغيرت التقنيات، وقد اكتسبت بعض المعرفة في العامين الماضيين. ما تختاره الآن سوف يصبح عنوانًا رئيسيًا لبضع سنوات قادمة بالنسبة لك. حان الوقت لاختيار التقنيات المفضلة لديك. هدفك هو اختيار اتجاه النمو الخاص بك. إنهم كثيرون، ولا يمكن لأحد أن يذكرهم جميعًا، ولكن يجب أن يتم اختيارك الآن. إذا قمت بتغيير بسيط اليوم، فسوف تحصل على تغيير كبير في المستقبل.برمجة السنة السادسة (مطور جافا الأول، المستوى 2)
لقد قررت مستقبلك وتعمل على تحقيق حلمك. الاتجاه الذي تم اختياره بشكل صحيح مع الرغبة في المضي قدمًا – والنتيجة لن تكون طويلة. تهانينا. يسعدني أن أرى أن هناك شخصًا آخر حقق حلمه. هناك حقيقة واحدة عميقة. غالبًا ما يبالغ الناس في تقدير ما يمكنهم تحقيقه في عام واحد ويقللون من تقدير ما يمكنهم تحقيقه في خمسة أعوام. انظر إلى خمس سنوات إلى الوراء. إنه كذلك. ما عليك فعله هو تجنب القرارات غير الحكيمة وعدم الكسل. هدفك هو اختيار الاتجاه والمضي قدما. أو هل تعتقد أن الأمر ينتهي هنا؟ تذكر تخرجك إنها ليست النهاية، إنها مجرد البداية.تخصصك المستقبلي

مهنة مطور جافا
مهنة المطور تختلف عن أي مهنة أخرى. لست بحاجة إلى أن تصبح مديرًا لكسب أموال جيدة. غالبًا ما يحدث أن يكسب أحد كبار المطورين أكثر من مديره أو رئيسه. كلما زادت خبرتك، زادت قوة علاقات العمل مع رئيسك في العمل، وتغيرت من "رئيس مرؤوس" إلى "نجم ومدير".
مطور عمره مائتي عام
إذا كنت تستمتع بالبرمجة أكثر من أي شيء آخر، فهذه هي طريقتك: مطور أول، ثم مطور رئيسي تقني ومهندس معماري. بهذه الطريقة يمكنك العمل كمطور لمدة 50 عامًا وأكثر. في معظم الحالات، تتجاوز رواتب كبار المطورين والمطورين الرائدين في مجال التكنولوجيا رواتب مديريهم. حتى تحصل على قيمة أموالك.مدير. أنت محظوظ لأنك لست مثل الآخرين
لقد ذهبت إلى العدو. أنا فقط أمزح. إذا اكتشفت مهارات تنظيمية رائعة، فإن طريقتك هي: قائد الفريق، ثم مدير المشروع. سيعطيك فرصة لتصبح رئيس قسم وتفتح عملك الخاص. هذا ما تريد، أليس كذلك؟الوطن هو حيث القلب

شاهد نابولي ولا تموت.
ليس لديك عائلة بعد وتحبين السفر . oDesk هو كل ما لديك. ابحث عن عميل، ووافق على سعر يتراوح بين 20 إلى 50 دولارًا في الساعة، واصطحب معك جهاز كمبيوتر محمولًا وانطلق! راتبك يكفي للعيش في أي مكان في العالم. لماذا لا تبدأ في تحقيق أحلامك على الفور؟لا أريد أن أبرمج، أنا فتاة..
إذا كنت فتاة ، فقد تحتاجين إلى أخذ إجازة أمومة . يبدو الأمر وكأنه مزحة جنسية، وهو كذلك بالفعل. ومع ذلك، هناك الكثير من المنطق السليم في ذلك. على الأرجح، عند أخذ إجازة أمومة، ستتمكنين من الحصول على الكثير من أموال إجازة الأمومة (في البلدان التي تتمتع بحماية اجتماعية عالية). هناك شركات لا تدفع شيئا، وهناك شركات تدفع جيدا. حصلت إحدى طالباتي على ثلث الراتب السنوي أثناء إجازة الأمومة. وقد حدث هذا في ربيع عام 2009، أثناء تسريح العمال. وفي غضون عام ونصف قد تعود لتكون على الأقل المطور الأوسط.المستوى 6

1 اليلي. رؤية الكائن. باطل
- مهلا، أميغو! - مرحبا ايلي! هل ستخبرني بشيء مثير للاهتمام اليوم؟ - سأخبرك اليوم عن عمر الشيء . بعد إنشاء الكائن، يظل موجودًا (يعيش) حتى يقوم متغير واحد على الأقل بتخزين عنوانه (يوجد مرجع كائن واحد على الأقل). إذا لم يعد هناك أي مراجع، فسيموت الكائن. أمثلة:
2 أستاذ جمع القمامة

3 اليلي، وضع اللمسات الأخيرة
- مرحبا مجددا! الآن سأقدم لك مقدمة مختصرة عن طريقة Finalize() . يتم استدعاء هذه الطريقة بواسطة جهاز Java الظاهري على الكائن قبل تدمير الكائن. في الواقع، هذه الطريقة معاكسة للمنشئ. في هذه الطريقة من الممكن تحرير الموارد التي يستخدمها الكائن. - كائن الفئة لديه هذه الطريقة، وبالتالي، كل فئة لديها هذه الطريقة ( جميع الفئات في Java تعتبر موروثة من كائن الفئة وتحتوي على نسخة من أساليبها ). إذا كتبت في فصلك طريقة Finalize() وسيتم استدعاؤها قبل تدمير كائنات هذه الفئة. مثال:
4 إلي، عمر الكائن
- أريد أيضًا أن أخبركم ببعض الأشياء المثيرة للاهتمام حول عمر الكائن. في Java، من الصعب جدًا فقدان الكائن عن طريق الصدفة؛ إذا كان لديك مرجع كائن، فهذا يعني أن الكائن حي بالتأكيد. - داخل مرجع كائن يخزن رقم - عنوان هذا الكائن في الذاكرة. ولا يمكنك تغيير هذا الرقم أو زيادته أو تقليله. لا يمكنك إنشاء مرجع عندما يكون لديك عنوان في الذاكرة فقط. يمكنك فقط إنشاء كائن جديد وتعيين مرجعه لمتغير. هذه هي الطريقة الوحيدة للحصول على مرجع جديد. - أرى. بمعنى، إذا قمت بتعيين قيمة خالية (محو) لجميع مراجع الكائنات، فلن أحصل أبدًا على مرجع الكائن وأتمكن من الوصول إليه؟ - نعم. ولكن في كثير من الأحيان يكون العكس هو الصحيح، فهناك الكثير من الكائنات الحية غير المستخدمة. تقوم معظم البرامج بإنشاء العشرات من الكائنات وتخزينها في قوائم مختلفة في وقت التشغيل، ولكنها لا تقوم مطلقًا بتنظيف تلك القوائم. - في الغالب، يقوم المبرمجون بتسمية الكائنات غير المرغوب فيها بأنها "محذوفة"، هذا كل شيء. لا أحد يهتم بإزالتهم من القوائم. تميل برامج Java الكبيرة إلى الانتفاخ - حيث يظل المزيد والمزيد من الكائنات غير المستخدمة حية في الذاكرة. - هذا كل شئ. سألفت انتباهك دائمًا في المستقبل إلى الأشياء غير المستخدمة والتخلص منها بشكل سليم. - حسنًا، شكرًا. لقد أوضحت بعض الأشياء المتعلقة بالمراجع.5 دييغو، مهام عمر الكائن
- مهلا، أميغو! إليك بعض المهام لك:مهام | |
---|---|
1 | 1. طريقة وضع اللمسات النهائية () لفئة Cat اكتب طريقة محمية باطلة نهائية () ترمي رميات قابلة للرمي في فئة Cat |
3 | 2. فئات Cat وDog وطريقة Finalize() لكل فئة في كل فئة Cat وDog، اكتب طريقة Finalize() ، والتي تعرض على الشاشة رسالة مفادها أن الكائن قد تم تدميره. |
3 | 3. 50000 كائن من فئة Cat و50000 كائن من فئة Dog أنشئ في حلقة 50000 كائن من فئة Cat و50000 كائن من فئة Dog. (سوف يقوم جهاز Java الظاهري بتدمير الكائنات غير المستخدمة، لذلك سيتم استدعاء الطريقة النهائية () مرة واحدة على الأقل). |
4 | 4. عداد القطط في مُنشئ فئة Cat [Public Cat()]، قم بزيادة عداد القطط (متغير ثابت catCount من نفس الفئة) بمقدار 1. في الطريقة Finalize() قم بتقليل بمقدار 1. |
6 إلي، الفئات والأساليب الثابتة
- هنا موضوع جديد مثير للاهتمام. أريد أن أخبرك عن المتغيرات والأساليب الثابتة. - أوه، لقد سمعت بالفعل عن المتغيرات الثابتة. حول الأساليب الثابتة أيضًا، على ما أعتقد. ولكن أود الحصول على مزيد من التفاصيل. - عند الإعلان عن المتغيرات في فئة ما، نحدد ما إذا كانت هذه المتغيرات قد تم إنشاؤها في نسخة مشتركة واحدة، أو ما إذا كان من الضروري إنشاء نسخها لكل كائن. بشكل افتراضي، يتم إنشاء نسخة جديدة من متغير الفئة لكل كائن من هذه الفئة. إليك ما يبدو عليه الأمر:



7 الريشة، الطبقات والأساليب الثابتة
- بالإضافة إلى الأساليب الثابتة هناك أيضًا فئات ثابتة . سننظر في هذه الحالة لاحقًا، وسأعرض لك مثالاً عليها:
8 دييغو، المهام على الطريقة الثابتة
- مهلا، أميغو! فيما يلي بعض المهام المثيرة للاهتمام حول الأساليب الثابتة:مهام | |
1 | 1. فئة Cat والمتغير الثابت catCount اكتب متغيرًا ثابتًا int catCount في الفئة Cat. قم بإنشاء مُنشئ [ public Cat() ]، حيث يجب زيادة المتغير المحدد بمقدار 1. |
2 | 2. الطرق الثابتة: int getCatCount() و setCatCount(int) أضف طريقتين ثابتتين إلى فئة Cat: int getCatCount( ) و setCatCount(int) حيث يمكنك الحصول على / تغيير عدد القطط (المتغير catCount) |
3 | 3. Class Util تنفيذ طريقة ثابتة double getDistance(x1, y1, x2, y2) . وينبغي حساب المسافة بين النقاط. استخدم الطريقة double Math.sqrt(double a) لحساب الجذر التربيعي للمعلمة التي تم تمريرها |
4 | 4. Class ConsoleReader اكتب فئة ConsoleReader، والتي سيكون لها 4 طرق ثابتة: - String readString () لقراءة السلاسل من لوحة المفاتيح - int readInt () لقراءة الأرقام من لوحة المفاتيح - double readDouble () لقراءة الأرقام الكسرية من لوحة المفاتيح - void readLn () لانتظار الضغط على زر الإدخال [استخدم readString ()] |
5 | 5. فئة StringHelper اكتب فئة StringHelper، والتي سيكون لها طريقتان ثابتتان: - يجب أن تقوم سلسلة المضاعفة (String s، int count) بإرجاع مرات العد المتكررة للسلسلة. - يجب أن تقوم سلسلة الضرب (String s) بإرجاع السلسلة المتكررة 5 مرات. مثال: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 أستاذ، نطاق الكائن الثابت وعمره

10 خوليو
- مهلا، أميغو! لقد قمت بعمل عظيم اليوم. لهذا السبب لا أستطيع أن أعطيك المزيد. هيا، اجلس، يبدأ العرض:11 الكابتن السناجب
- مرحبا أيها الجندي! - صباح الخير سيدي! - لدي بعض الأخبار الرائعة لك. إليك فحصًا سريعًا لتعزيز مهاراتك. افعل ذلك كل يوم، وسوف تعزز مهاراتك بسرعة. تم تصميم المهام خصيصًا للقيام بها في Intellij IDEA.مهام إضافية للقيام بها في Intellij Idea | |
---|---|
1 | فئة Cat والمتغير الثابت catCount اكتب متغيرًا ثابتًا public int catCount في فئة Cat. قم بإنشاء مُنشئ [Public Cat()]. دع المتغير الثابت catCount يزيد بمقدار 1 في كل مرة تقوم فيها بإنشاء قطة (كائن جديد Cat). أنشئ 10 كائنات Cat واعرض قيمة المتغير catCount . |
2 | 2. القطط الساكنة
لإنشاء متغير للقطط ، استخدم سطر التعليمات البرمجية: public static ArrayList<Cat>cats = new ArrayList<Cat>(); |
3 | 3. انقل معدّلًا ثابتًا واحدًا انقل معدّلًا ثابتًا واحدًا حتى يتم تجميع الكود. |
4 | 4. الحد الأدنى لعدد الكلمات الأساسية الثابتة أضف الحد الأدنى لعدد الكلمات الأساسية الثابتة لتجميع التعليمات البرمجية وإكمال البرنامج بنجاح. |
5 | 5. هل هناك أفكار جديدة؟ دعونا نفكر...
|
6 | 6. KissMyShinyMetalAss اكتب فصلًا باسم KissMyShinyMetalAss. قم بإنشاء كائن من هذه الفئة، ثم قم بعرضه على الشاشة. |
7 | 7. اسم ثلاثة متغيرات ثابتة اكتب 3 متغيرات ثابتة عامة: String Solution.name ، String Cat.name ، String Dog.name |
GO TO FULL VERSION