أجهزة الكمبيوتر شبابيك إنترنت

خصائص وطرق لغة جافا. إنشاء تطبيقات للويندوز. لغة البرمجة C #

عمري 22 سنة ، لديّ تعليم اقتصادي. قبل عام (في شباط (فبراير) - آذار (مارس)) لم يكن لدي أي مهارات برمجية ، ولم أواجه سوى Java في الألعاب على Siemens القديمة (في شكل نافذة ترحيب "مدعومة من Java" عند بدء اللعبة).

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

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

ثم قررت أن الأمر متروك لي. لقد فهمت أنه سيكون من الصعب تعلم البرمجة من البداية ، وأن هذا تراجع مؤقت في مسيرتي المهنية (لم يكن لدي أدنى شك في أن Junior Developer قد تلقى أقل مما حصلت عليه في مكان العمل هذا) ، لكنني أخذته كخطوة للوراء بالترتيب لاتخاذ خطوتين إلى الأمام ...

نعم. سيتم التنفيذ قبل الانتهاء من سرد طلبك. نظرًا لأنني لم أفهم لغات البرمجة تمامًا ، كانت الفكرة الأولى هي تعلم اللغة التي سمعت عنها أكثر من أي شيء (تم استخدامها لتطوير البرامج في الشركة التي أعمل بها) - PHP. حسنًا ، تحدثت الفتاة عن ذلك. اقترحت أنه في شركتهم (تطوير تطبيقات الهاتف المحمول) ، يكتب androids بلغة Java + يبدو أن رواتبهم جيدة. بحثت في غوغل ، بحثت في غوغل ، فكرت وقررت أن أتعلم جافا.

وراء العناوين الرئيسية ، تحدث ثورة لغوية كبيرة. للوهلة الأولى ، قد تبدو التغييرات جليدية. ولكن في أعماق العالم السري لعلم دلالات البرمجة ، تتسارع الاختلافات في الرأي. سوف يغير اندلاعهم مشهد الإنترنت ، وأكثر من ذلك ، إلى الأفضل.

الكثير من اللغات الحديثةالبرمجة لها خلفية تطورية عامة. مع كل جيل جديد ، تميل لغات البرمجة إلى أن تصبح أكثر تجريدًا وبُعدًا عن الكمبيوتر الذي تتواصل معه. تحدثت لغات الجيل الأول إلى الكمبيوتر في شكل آحاد وأصفار من "كود الآلة" ، والذي تم تفسيره مباشرة بواسطته وحدة معالجة مركزيةكتعليمات لمعالجة البيانات المخزنة في ذاكرتها. تم تطوير لغات الجيل الثاني ، أو لغات "التجميع" ، لتسهيل كتابة وقراءة مثل هذه التعليمات باستخدام رمز يتكون من أحرف وأرقام ، والتي تُرجمت لاحقًا إلى 1s و 0s يمكن للجهاز فهمها.

كانت خطوتي الأولى هي المحاولات التقليدية لتعلم شيء جديد - تسلح نفسك بالكتب ، واتقان النظرية ، وانطلق! لذلك حصلت على كتاب هورستمان وكورنيل - جافا. أساسيات. كان ذلك في مارس 2014.

بشكل عام ، كنت طوال حياتي سيئًا للغاية في الدراسة من الكتب. ربما يكون هذا بسبب طريقة الإدراك السائدة لدى الشخص. لطالما تعلمت المادة حقًا فقط بعد أن عملت عليها عمليًا ، ودمجتها ، ولعبت بها. لذا فإن محاولاتي الأولى لتعلم جافا من كتاب محكوم عليها بالفشل. على الرغم من أن الكتاب جيد.

على عكس لغات الجيلين الأول والثاني ، فإن تركيب لغات الجيل الثالث ، من حيث المبدأ ، مستقل عن الكمبيوتر الذي تعمل عليه. يتم استخدام برنامج منفصل يسمى المترجم لترجمة الشفرة إلى لغة الآلة. تقدم هذه اللغات أيضًا للمبرمج شكلاً أكثر طبيعية للتعبير ، ولكن على حساب تضييق نطاق المشكلات التي يمكن للغة حلها بشكل كبير.

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

في مكان ما في أبريل ، صادفت مجموعة CodeGym في فكونتاكتي.
ثم بدأ كل شيء كما لو كان على القضبان. حل المشكلات ، العديد من المشكلات التي يصاحبها قدر ضئيل من النظرية هي بوضوح الطريقة المثلى لدراسة المادة (وفقًا لـ على الاكثر، لي). كنت جالسًا في المنزل ، كنت جالسًا في العمل وأقرر ، وأقرر ، وأقرر) عندها أيضًا تأكدت من أن البرمجة ممتعة بالنسبة لي. لم أستطع تذكر التحليق فوق شيء من هذا القبيل.

أصبحت هذه اللغات منتشرة لأنها مرنة للغاية وقابلة للتكيف مع احتياجات الإنترنت. من نواحٍ عديدة ، تنظر لغات البرمجة النصية إلى أفكار لغات الجيل الرابع كخطوة للأمام في اتجاه البساطة. تُعرف هذه اللغات باللغات "المفسرة". بمعنى آخر ، يفسر الكمبيوتر رغبة المبرمج في الحصول على تعليمات واحدة في كل مرة ، بدلاً من "تجميع" أو ترجمة البرنامج بأكمله أولاً قبل أن يتمكن من تشغيله. إن كتابة البرامج المفسرة يشبه إلى حد ما التخلص من الآيات المقفى. المقارنة ، كتابة البرامج المترجمة أشبه بتأليف سونيت.

استغرق الأمر ثلاثة أشهر حتى أصل إلى المستوى 20. بدا لي أن الدراسة الإضافية للغة ستسير بشكل أسرع إذا كنت قد حصلت بالفعل على وظيفة كمبرمج - فعندئذ ستكون في هذه البيئة لمدة 8 ساعات في اليوم ، 5 أيام في الأسبوع وستتطور بشكل سريع للغاية.

لذلك ، في أغسطس ، بدأت في إرسال سيرتي الذاتية. من مكانين أرسلوا لي مهام اختبار ، وفقًا للنتائج التي لم أتلق أي عروض عمل - بالنظر إلى الوراء ، لم أتفاجأ ولو مرة واحدة - المشكلة التي طرحتها ، ربما ، حللت ، لكن يا له من أسلوب سيء من الترميز لدي) هذا ، بالمناسبة ، هو ناقص صغير من CodeGym - طالما تم حل المهمة واجتياز الاختبارات ، يتم احتساب المهمة ، على الرغم من أن الكود الخاص بك قد يترك الكثير مما هو مرغوب فيه. يكفي تثبيت نفس البرنامج المساعد Checkstyle في Intellij IDEA ، وسيكون الموقف مختلفًا - سيؤكد على النقاط "المشكوك فيها" في الكود ، مما سيسمح لك بالكتابة ليس فقط ، ولكن أيضًا رمز جميل وصحيح.

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

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

مهما كان الأمر ، فقد تم استدعائي في سبتمبر لإجراء المقابلة الأولى. تحتوي الوظيفة الشاغرة على شيء من هذا القبيل - مطور من أي مستوى ، سوف نقدم راتبًا يتوافق مع المهارات.
في هذه المقابلة ، كانت المهام على النحو التالي تقريبًا - تم تقديم جزء من التعليمات البرمجية. هل تمت كتابته بشكل صحيح ، وما المشاكل التي يمكن أن تحدث؟
لا أتذكر كم منهم قررت بشكل صحيح. بشكل عام ، كان من الضروري تذكر Null ، كانت جميع الأسئلة تقريبًا تدور حوله - أنه لا يجب عليك الوصول إلى معلمة طريقة دون التحقق منها أولاً من أجل (if param! = Null).

في حالات استثنائية ، عندما يكون حجم المشكلة ، يمكن تصغير المكتبات. ميزة أخرى للبرمجة الموجهة للكائنات هي أن مجموعات المستخدمين يمكنها إنشاء ومشاركة فئات جديدة من الكائنات. هذا يجعل البرمجة الموجهة للكائنات مناسبة بشكل خاص لطبيعة المجموعة للشبكة.

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

نتيجة لذلك ، عُرض عليّ في الشهر الأول العمل مجانًا (كتدريب داخلي) ، ثم راتبي ، وهو أقل (وإن لم يكن كثيرًا) منه في مكان العمل الذي كنت فيه.

لقد فهمت جيدًا أنه لا يجب أن أتوقع مقترحات رائعة ، لأنني أعرف القليل من النظرية ، والممارسة فقط في CodeGym ، وخبرة صفرية ، وما إلى ذلك. لذلك ، وافقت على المغادرة بعد أسبوعين (الوقت المناسب للفصل في المكان القديم).

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

بالتوازي مع هذا ، تقدمت بطلب إلى شركة أخرى. قدمت هذه الشركة ما يلي:
- شهرين من تدريب Java EE (مرتين في الأسبوع لمدة 4 ساعات)
- إذا أظهرت نتائج جيدة (دافعت عن مشروعك بنجاح ، والذي كنت تكتبه طوال هذين الشهرين) ، فعندئذٍ يُعرض عليك عمل.

الشركة جيدة جدًا ، أجنبية ، معروفة ، وظروف العمل ممتازة - باختصار ، أردت أن أذهب إلى هناك أكثر بكثير من المكان الذي قدّموا فيه بالفعل عرضًا لي.
اشتمل اختيار التدريب منها على 3 مراحل:
1. أداء المهام العملية في المنزل.
2. إذا نجحت ، فأنت مدعو إلى اختبار الكمبيوتر في المكتب.
3. في حالة نجاح الاختبار ، ستتم مقابلتك في نفس اليوم.

من الناحية المفاهيمية ، تمثل اللغتان رهانات مختلفة إلى حد كبير على مستقبل الإنترنت. السيد Hejlsberg ، ليس الوحيد الذي يتحدث عن رأيه ، يشدد على أن الإنترنت معنية بنقل البيانات ، وليس معالجة البيانات. أولاً ، لا يمكنها إجراء معالجة رياضية أو منطقية للبيانات.

يقوم المبرمج بإصدار التعليمات إلى الكمبيوتر بنفس الطريقة التي يصرخ بها رئيس العمال في موقع البناء على عماله. ومع ذلك ، هناك درجة أعلى من التجريد - على سبيل المثال ، يقضي المهندسون المعماريون وقتًا في تصميم مبنى بدلاً من إصدار الأوامر. إنها لغة نمذجة "الصورة الكبيرة" وقد تبناها العديد من المبرمجين ، على الرغم من أنها لا تقتصر على البرمجة.

لقد تعاملت مع المهام العملية دون أي مشاكل - وهنا شكراً جزيلاً لـ CodeGym ومهامهم ، وبعد ذلك بدت هذه المهام بسيطة للغاية. كانت هناك 3 مهام: لـ RegExp (ساعدت Google ، لأنني لم أستطع تحملها ولم أتذكرها) ، ولخوارزميات (بسيطة جدًا ، للتفكير بسرعة أكبر) وللكتابة / القراءة من ملف (هناك الكثير من هذه في دورة CodeGym). دعيت إلى اختبار الكمبيوتر.

حتى الآن ، لم تتم ترجمة هذه الأدوات بشكل كامل برنامج العمل... توقع رؤية مجموعة كاملة من اللغات الجديدة في العقد القادم. من غير المرجح أن يتعاطف المرضى الذين يقيسون النجاح من حيث سطور التعليمات البرمجية المكتوبة مع هذه الطريقة الجديدة لتطوير البرمجيات.

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

لقد أعددت للاختبار باستخدام موقع ويب quizful (http://www.quizful.net/job-role/junior-java-developer). ساعدت هذه الاختبارات كثيرًا ، حتى أن بعض الأسئلة تداخلت في النهاية. لقد أجريت الاختبار بنجاح ، وبدأوا في إجراء مقابلة معي.

ربما لن أنسى أبدًا هذه المقابلة في حياتي.

كل ما أراد الشخص الذي يجري مقابلتي سماعه مني هو أساسيات نظرية جافا ، مثل:
- كيف تختلف الاستثناءات المحددة عن غير المحددة ؛
- ما هي طرق فئة الكائن ولماذا هناك حاجة إليها ؛
- ما هي المجموعات ولماذا هي ؛
- والقليل عن تعدد مؤشرات الترابط.

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

بدأت دورات البرمجة في ليتوانيا تتكاثر بعد هطول الأمطار. هذا ليس غريباً - في الوقت الحالي ، يوجد نقص في المبرمجين ، والبنوك وشركات رأس المال الغربية المختلفة في ليتوانيا تعمل فقط على زيادة مناطق البحث عن المبرمجين الموهوبين.

CodeGush هي دورة رائعة ، ستعلمك كيفية حل المشكلات والبرنامج ، لكن النظرية (للمقابلات) تحتاج إلى تعلمها بشكل منفصل ، وهو ما كنت مقتنعًا به ، السباحة في هذه الأسئلة مثل سمكة في حوض مائي.

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

لن تخذلك الدورات التدريبية ، لكنهم يتوقعون أنه سيكون من السذاجة شراء الكثير من المال للسداد. يتجنب بعض المبرمجين الطموحين أصحاب العمل لأنهم مضطرون إلى استثمار الكثير من الوقت والجهد. أكد Jankauskienė أن هذا يتم حله من خلال تبادل العمل من خلال وضع خطة عمل فردية. يمكن قبولها بعد التخرج من الرياضيات أو غيرها من العلوم الدقيقة ولديها معرفة منهجية.

المبرمجون الجدد ليسوا مهتمين بكل شيء

شدد إيفانوسكاس على أن كل شركة قد حددت تعريفًا مختلفًا للمبرمج المبتدئ. نحن مبرمجون مبتدئون يتمتعون بخبرة تصل إلى عامين. نحن نوظفهم ولدينا الكثير الآن. وفقًا لها ، قد يعمل مبرمج مبتدئ بعد إكمال دورة برمجة مدتها خمسة أشهر ، لكن هذا المتخصص قد يفتقر إلى المعرفة.

في شهرين ، تعرفنا على العديد من الموضوعات من Java EE ، مثل Servlets و JSP و Hibernate JSF و Spring وأكثر من ذلك بكثير - ونتيجة للتدريب ، كنا على دراية (كانت لدينا فكرة تقريبية) حول المجموعة الرئيسية لتقنيات Java EE. أيضًا ، خلال فترة التدريب ، كتبنا مشروعنا الخاص ، والذي كان لا بد من تقديمه للعمل بنجاح عند الخروج.

وفقًا لريمكوت ، عادة ما يتم التعبير عن الرغبة في البرنامج من قبل أشخاص غير راضين عن الوظيفة أو لا يحصلون عليها على الإطلاق. بالإضافة إلى ذلك ، هناك عدد من الذين يتقدمون للحصول على دورة برمجة لأفضل مكان يقدمه صاحب العمل أو أولئك الذين يحلمون بأعمالهم الخاصة. ومع ذلك ، فإن أهم شيء هو استعداد الشخص وموقفه من عملية التعلم.

يمكن للمبتدئين تلبية نصف ألف يورو

النتيجة تعتمد على الشخص. مطلوب ما لا يقل عن خمسة أشهر. في نهاية الدورة ، ينتظرك امتحان احترافي - شخص يتمسك به ولا يحاول حتى تجربته. يبدو أنه شخص بالغ ، لكن والدته تسجل الوصول وتتأكد من زيارة طفل بالغ. موسوي ، مشارك في دورات المبرمجين. وجادل بأن المبرمج المبتدئ يمكنه توقع راتب شهري يبلغ حوالي 500 يورو ، لكن يمكن للآخرين أيضًا الحصول على راتب أعلى لأن كل هذا يتوقف على كيفية تقديم الشخص لصاحب العمل وما هي دوافعه.

أنا فقط أتذكر مشاعري الأولى عندما كنت في المحاضرة الأولى. لقد نظرت إلى مهمة هذا المشروع (تم إصداره على الفور في المحاضرة الأولى) ولم أفهم عن كثب من أين أبدأ هنا وكيفية القيام بذلك.

أتذكر أيضًا تكلفة نجاحي. خلال هذين الشهرين ، كانت كل الأفكار التي تدور في رأسي تقريبًا هي أن التوظيف الناجح وتحقيق الأحلام كانا بين يدي وليس أكثر. لم يعتمد الأمر على أي شخص آخر فيما إذا كان بإمكاني القيام بذلك. فقط مني. كنت قد تركت وظيفتي بالفعل ، ولم أكن أجلس تقريبًا بلا نقود ، وكان الأمر صعبًا حقًا. جلست في الصباح ، وجلست بعد الظهر ، وجلست في المساء ، لكنني لم أتعب من الفرح - لا أتذكر عندما كرست نفسي لشيء بهذا الهوس. ساعدتني هذه المرة مرة أخرى على إدراك مدى استمتاعي بالبرمجة ومدى رغبتي في العمل في هذا المجال.

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

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

في التخرج ، قدمت مشروعي. لقد دافعت عنه جيدًا حقًا ، ويبدو أنه أفضل بكثير مما كان متوقعًا ، وكاستثناء لم يتم تعييني لمنصبي الأولي ، ولكن على الفور لمنصب مطور Java الأوسط. كان يوم 9 ديسمبر 2014. لم أصدق ذلك ، لكن عرض العمل كان أمامي على شاشتي. مهندس برمجيات. قد حدث هذا.

في 15 ديسمبر ذهبت إلى العمل. لم يخطر ببالي مطلقًا "اللعنة ، لا أريد الذهاب إلى العمل". كل يوم ، وأنا أغادر المنزل في الصباح ، أعرف لماذا أذهب إلى العمل ، وماذا سأفعل ، وكم أريد ذلك. هذا سعيد بجنون. إنه يستحق ذلك وكان يستحق الثمن الذي كان يجب دفعه لتحقيق حلمك.

أتمنى لكم جميعًا الذين يريدون حقًا أن يكونوا مبرمجين المضي قدمًا في تحقيق هدفهم. إنها أكثر من حقيقية ، إنها قريبة جدًا ، لكن عليك أن تدفع ثمنها. لدفع وقتك الضائع ، أعصابك ، لأن تعلم شيء ما من الصفر ليس في الحقيقة أسهل خطوة. ساعدني CodeGym في اتخاذ هذه الخطوات الأولى بسهولة ، ولم أتراجع عن البرمجة في البداية بسبب التعقيد الظاهري ووفرة النظرية. وهكذا ، تمكنت من الوصول إلى النهاية بفكرتي المجنونة عن تغيير جذري في مجال النشاط المهني (حتى في غياب التعليم الفني).

ويمكنك بالتأكيد.

يغطي هذا القسم أساسيات اللغة الشيئية. برمجة جافا... Java ليست اللغة نفسها فحسب ، بل هي أيضًا النظام الأساسي لإنشاء التطبيقات وتنفيذها بناءً على هذه اللغة. كانت اللغة تسمى في الأصل Oak ("oak") وتم تطويرها بواسطة James Gosling لبرمجة الأجهزة الإلكترونية الاستهلاكية. تم تغيير اسمها لاحقًا إلى Java وتم استخدامها لكتابة تطبيقات العميل وبرامج الخادم.

تم تسمية هذه اللغة على اسم ماركة قهوة Java ، التي يحبها بعض المبرمجين ، ولهذا السبب فإن الشعار الرسمي للغة يصور فنجانًا من القهوة المبخرة.

فيما يتعلق بالنطق باللغة الروسية ، كما هو الحال في عدد آخر ، تم تشكيل معيارين مختلفين - اللغة الإنجليزية المستعارة ("dʒɑːvə" - "java") و "java" الوطنية التقليدية ، المقابلة للنطق التقليدي لاسم الجزيرة جافا. يحافظ Sun على نطق يتحدث الإنجليزية في جميع أنحاء العالم. في بعض الأحيان ، تُستخدم الكلمة العامية "العلجوم" أيضًا في الحياة اليومية (على سبيل المثال ، تكون صورة الضفدع في تقاويم مجموعة مستخدمي Java).

لغة البرمجة الشيئية Java

تم تطوير لغة برمجة Java بواسطة Sun Microsystems وهي لغة موجهة للكائنات. مصدر تطبيقات جافاالمحولة من قبل المترجم جافاكإلى رمز بايت خاص للتنفيذ تحت سيطرة جهاز Java الظاهري.

Java Virtual Machine (JVM) هو برنامج يعالج الرمز الثانوي ويمرر التعليمات إلى الأجهزة كمترجم. من المزايا الرئيسية هذه الطريقةتنفيذ البرامج هو الاستقلال التام عن نظام التشغيلوالأجهزة التي تسمح بتشغيل تطبيقات Java على أي جهاز يوجد به آلة افتراضية مقابلة.

ميزة أخرى مهمة لتقنية Java هي نظام الأمان المرن ، حيث يتم التحكم في تنفيذ البرنامج بالكامل بواسطة جهاز افتراضي. ستؤدي أي إجراءات تنتهك الأذونات المعينة للبرنامج (على سبيل المثال ، محاولة الوصول غير المصرح به إلى البيانات أو الاتصال بجهاز كمبيوتر آخر) إلى الانقطاع الفوري للبرنامج.

تشمل عيوب مفهوم استخدام آلة افتراضية انخفاض في الأداء ، يتم مكافحته بطرق مختلفة:

  • تطبيق تقنية ترجمة كود البايت إلى كود الآلة مباشرة أثناء تشغيل البرنامج - تكنولوجيا JIT ؛
  • الاستخدام الواسع للشفرة الموجهة للنظام الأساسي (الكود الأصلي) في المكتبات القياسية ، على سبيل المثال SWT;
  • الأجهزة التي توفر معالجة سريعة للرمز الثنائي ، مثل تقنية Jazelle ، المدعومة من قبل بعض معالجات ARM.

إصدارات Java

جافا 1.0

بدأ تطوير Java في عام 1990. في عام 1996 ، أول الرواية الرسمية- جافا 1.0.

جافا 1.2

تم تطوير مواصفات JDK 1.2 المحدثة في عام 1998 وخرجت تحت اسم Java 2. لم تتغير اللغة كثيرًا ، لكن النظام الأساسي تلقى عددًا من الإضافات:
  • مكتبة سوينغ للتنمية واجهة المستخدم;
  • مجموعة من المجموعات
  • دعم ملفات السياسة والشهادات الرقمية للمستخدم ؛
  • مكتبة الوصول ؛
  • جافا 2D ؛
  • الدعم تقنيات السحب والإفلات;
  • دعم Unicode الكامل ، بما في ذلك اليابانية والصينية والكورية ؛
  • دعم تشغيل ملفات الصوت من عدة تنسيقات ؛
  • مترجم JIT.

جافا 5.0

في عام 2004 ، ظهرت مواصفات Java 5.0. منذ تطوير هذا الإصدار ، تم تغيير الفهرسة الرسمية ؛ بدلاً من Java 1.5 ، سيكون من الأصح استدعاء Java 5.0. بقيت فهرسة Sun الداخلية دون تغيير - 1.x.

يتم تضمين تغييرات طفيفة دون تغيير الفهرسة. يتم استخدام كلمة "تحديث" لهذا الغرض ، على سبيل المثال Java Development Kit 5.0 Update 25. من المتوقع أن تتضمن التحديثات كلاً من إصلاحات الأخطاء والإضافات الصغيرة إلى JVM API.

في الإصدار جافا 5.0تم إجراء عدد من الإضافات الأساسية:

  • الأنواع المعدودة تعداد;
  • التعليقات التوضيحية - القدرة على إضافة البيانات الوصفية إلى نص البرنامج التي لا تؤثر على تنفيذ الكود ، ولكن يمكن استخدامها للحصول على معلومات مختلفة حول الكود وتنفيذه ؛
  • طرق مع عدد غير محدد من المعلمات ؛
  • يسمح باستيراد الحقول والأساليب الثابتة ؛
  • في المجموعة التي يمكنك استخدامها التكرارأشياء ( foreach);
  • الاستخدام جافادوكتعليقات من أجل الإعداد التلقائي للوثائق ؛
  • أدوات البرمجة العامة الأدوية.

جافا 6

في ديسمبر 2006 ، تم إطلاق سراح آخر جافا 6... إلى جانب هذا الإصدار ، تم إجراء تغييرات على الفهرسة الرسمية - بدلاً من Java 6.0 ، تم إدراج الإصدار كـ Java 6. تغييرات طفيفة ، كما في إصدار سابقمضمنة في تحديثات الإصدار العادية مثل Java Standard Edition Development Kit 6 Update 25.

في الإصدار جافا 6تم إجراء التغييرات الرئيسية التالية "التي لاحظها" المطورون:

  • تأرجح أداء محسّن لبرنامج OpenGL و DirectX ؛
  • إضافة GifWriter للعمل مع ملفات .gif ؛
  • أصبحت تيارات الطبقات متاحة لقراءة ونقل البيانات المضغوطة ، مع القدرة على نقلها عبر الشبكة ؛
  • الأرشفة - تمت إزالة القيود المفروضة على عدد الملفات في الأرشيف (64 كيلوبايت سابقًا) ، وتمت زيادة طول اسم الملف (سابقًا 256 حرفًا)
  • تم رفع القيود المفروضة على الكمية في نفس الوقت الملفات المفتوحة(كان 2000 سابقًا).
  • نظّم نظام إدارة ذاكرة التخزين المؤقت وأضاف دعمًا لمعامل "no-cache" في طلب HTTP ؛
  • إلى جانب التقويمات الغريغورية والبوذية الموجودة بالفعل ، تمت إضافة دعم للتقويم الإمبراطوري الياباني ؛
  • يمكنك استخدام Java HTTP Server لإنشاء خادم HTTP كامل مع الحد الأدنى من الخصائص الوظيفية المطلوبة ؛
  • تم زيادة سرعة العمليات الحسابية وسرعة عمليات الإدخال / الإخراج.

جافا 7

إصدار الإصدار جافا 7في يوليو 2011. للأسف في النسخة النهائية جافا الإصدار القياسي 7لم يتم تضمين عدد من التغييرات المخطط لها مسبقًا ، والتي تقرر الإضافة إليها جافا الإصدار القياسي 8.

الخامس نسخة جديدةاسم الشيئ جافا الإصدار القياسي 7بالإضافة إلى إصلاحات الأخطاء ، تم تقديم العديد من الابتكارات:

  • تمت إضافة مدقق نوع جديد أسرع قليلاً ، يسمى مدقق التحقق من الكتابة ؛
  • في المجموعات (مجموعات البيانات) واجهات مضافة للاصطفاف ؛
  • تعديل محمل الفئة (محمل فئة) ؛
  • URLClassLoader - حرر الموارد التي يحتفظ بها محمل الفصل باستخدام طريقة close () ؛
  • تم تحديث JDBC للإصدار 4.1 ، مجموعة الصفوف إلى الإصدار 1.1 ؛
  • إضافة الجيل الجديد من الشكل والمظهر ؛
  • nio.2 - واجهات جديدة للوصول إلى نظام الملفات ، تفاعل IO قابل للتطوير غير متزامن ، عمل كامل مع أرشيفات مضغوطة / جرة كما هو الحال مع نظام الملفات;
  • دعم إصدار Unicode 6.0 ؛
  • عام - تغيير نوع الاستدلال عند إنشاء كائن ؛
  • الإعدادات المحلية - يتم فصل لغات المستخدم والواجهة الرسومية ؛ تنسيق النص وعرض الرسالة على الشاشة لهما "لغات" مستقلة.

جافا 8

إصدار الإصدار جافا 8في مارس 2014. قائمة الابتكارات:

  • دعم كامل لتعبيرات لامدا.
  • الكلمة الرئيسيةالافتراضي في واجهات لدعم الوظيفة الافتراضية.
  • مراجع الأسلوب.
  • واجهات وظيفية (المسندات ، الموفرون ، إلخ).
  • تيارات للعمل مع المجموعات.
  • واجهة برمجة تطبيقات جديدة للعمل مع التواريخ.

تقنيات جافا

هناك العديد من العائلات الرئيسية لتقنيات Java:

تقنيةوصف
Java SE - Java Standard Edition تقنية Java الأساسية بما في ذلك المجمعات و APIs و جافا وقت التشغيلبيئة؛ تستخدم لإنشاء تطبيقات سطح مكتب مخصصة.
Java EE - إصدار Java Enterprise تكنولوجيا تطوير البرمجيات على مستوى المؤسسة. تستخدم لتطوير تطبيقات الويب.
Java ME - Java Micro Edition تقنية لإنشاء برامج للأجهزة ذات قدرة الحوسبة المحدودة ، مثل الهواتف المحمولة.
JavaFX تقنية إنشاء واجهات رسومية لتطبيقات الشركات والأعمال.
بطاقة جافا تقنية لإنشاء برامج للتطبيقات التي تعمل على البطاقات الذكية والأجهزة الأخرى ذات الحجم المحدود للغاية.

أدوات تطوير Android ، Java لنظام Android

جافاتستخدم بنشاط لخلق تطبيقات الهاتف الجواللبيئة التشغيل ذكري المظهر... في هذه الحالة ، يتم تجميع البرامج في رمز بايت غير قياسي لاستخدامها في آلة افتراضيةدالفيك. لمثل هذا التجميع ، يتم استخدام أداة إضافية طورتها Google - مجموعة تطوير البرمجيات (SDK).

يمكنك أيضًا تطوير التطبيقات بتنسيق بيئة تطوير أندرويدأو NetBeans أو Eclipse باستخدام مكون إضافي أدوات تطوير Android (ADT)أو في IntelliJ IDEA. يجب أن يكون إصدار JDK 5.0 على الأقل.