التخطي إلى المحتوى الرئيسي

تخصص فى لغة برمجة واحدة ولا تشتت نفسك .. لهــذه الأسبـاب


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

 خطوات تعلم لغات البرمجة

أي لغة برمجة حين تتعلمها تمر بثلاث مراحل:

1- المرحلة الأولى:إدارك المفهوم


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

2- المرحلة الثانية: تعلم طريقة استخدام مفردات اللغة


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

3- المرحلة الثالثة: التوسع فى اللغة

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

أسباب تدفعك إلى التخصص

السبب الأول: التضخم المستمر


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

SDK 3.0/3.1/3.2 (Honeycomb) for tablets only
SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich)
2012

SDK 4.1/4.1.1 (JELLY BEAN)
 SDK 4.2/4.2.2 (JELLY BEAN)
2013

SDK 4.3 (JELLY BEAN)
SDK 4.4 ( KITKAT)

السبب الثاني: زيادة الانتاجية


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

السبب الثالث: السيطرة على الكود:


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

السبب الرابع: الحصول على الوظيفة


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

أخيرا: لست بحاجة لتعلم لغتين يقومان بنفس الوظيفة:

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

تعليقات

المشاركات الشائعة من هذه المدونة

لهذه الأسباب ينبغي عليك أن تشارك معرفتك مع الآخرين

يقول الأديب والمفكر العالمي ليو تولستوى : “لا علاقة بالنجاح بما تكسبه في الحياة أوتنجزه لنفسك ،النجاح هو ماتفعله للآخرين”. قد يكون الكثير منّا يطبق هذا المصطلح لكن دون وعي مثل أشياء كثيرة نفعلها ولا ندري ما هو تعريفها، وعندما تتعرف أكثر على الشيء الذي تفعلهتجد متعة وشغف أكثر مما سبقعندما تفعله مرة أخرى. هذا ما سيحدث لك أيها القارئ الفاضل بعد قراءة هذا المقال. حاول علماء عدّة أن يضعوا تعريفًا واضحًا لمشاركة المعرفة، ولكن لم يكن لعملية مشاركة المعرفة مفهومًا واحدًا فيما بينهم. فقد رأى كل من(Ryu, Ho, and Han) عام 2003أن مشاركة المعرفة هي “سلوك الفرد نحو نشر المعرفة المكتسبة داخل المنظمة”.

6 سمات تجدها في شخصية المبرمج

عندما تجد أحدهم يسير في الطريق و أصابعه تتحرك بتلقائية فهو ليس بالضرورة أن يكون عازف “بيانو” – و ليس بالطبع نشال – .. فإعلم انك من الممكن ان تكون امام ممتهن مهنة العصر…انه المبرمج .. أتذكر عند أوراقي لجهة و عند سؤال المسؤول عن مهنتي .. أجبت بكل فخر: “مبرمج”.. وجدته أنفجر ضاحكا .. التفت حولي لأجد الجميع يضحكون أيضا ! .. ثم قال لي  ضاحكا: “يعني بتعمل ايه؟” ! تلك الشخصية الجديدة في مجتمعنا لها خصائصها الفريدة التي تم اكتسابها بحكم عمله اليومي.. سأحاول هنا سرد بعض تلك الخصائص….

لأصحاب القلوب الحديدية: الرياضات العشر الأخطر في العالم !

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