ماذا يعني أن تكون البرمجة هواية؟

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

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

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

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

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

هناك لغة البرمجة Processing التي صممت للأعمال الفنية ويستخدمها فنانون لأعمال فنية مختلفة وتستخدم في معارض فنية وفي متاحف كذلك، وسبق أن ذكرت لغة QB64 التي أراها مناسبة للمبرمج الهاوي.

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

هناك موقع أنصح بزيارته وهو 100R، هذا الموقع يكتب فيه شخصان عن تجربتهما في البرمجة واستخدام الحواسيب، كلاهما يستخدمان حواسيب قديمة وكلاهما يصنعان برامج لأنفسهم، الموقع بحاجة لوقت لكي تفهم أفكارهم ومشاريعهم التي تختلف عن المألوف.

كما قلت في أول الموضوع بأن هذه محاولة أولى للكتابة عن هذا المجال على أمل أن أجد المزيد لأكتب عنه لاحقاً.

6 thoughts on “ماذا يعني أن تكون البرمجة هواية؟

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

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

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

  3. سعيد بوجود بيسك حديثة لتطوير تطبيقات سطح المكتب في زمن انتشار تطوير الويب و تطبيقات الهواتف. ينقصها وسيلة لتطوير تطبيقات رسومية. على ذكر الحوسبة على ورق، ما أراه هو مجرد تعلم مفاهيم الحواسيب النظرية و محاكاة لما يفعله الحاسوب. في الواقع طلاب علوم الحاسوب يدرسون مقرر نظرية الآلات Automata Theory، و هذا المقرر يتحدث عن مفاهيم الحوسبة الأشمل (التي تتحدث عن الحوسبة عموماً مثل Turing Machine و غيرها من مفاهيم الحوسبة). لغة Processing هي لغة مجال محدد Domain-specific language. المميز في هذا النوع اقتصاره على هدف معين، و من يستخدمها يعرف بوضوح ما تفعله هذه اللغات.

Comments are closed.