سؤال

فقط فضولي، أنا أتساءل عما شهدت جميع مبرمجات المبرمجين أو المبتدئين (مثلي) قد فعلت هناك. إذن ما هو أصعب البرنامج الأكثر تعقيدا كتبته؟

هل كانت مفيدة؟

المحلول

يتيح التطبيق الذي أنشأته في 2005/6 في عام 2005/6 للناس إنشاء علاقات طبيعية من منازلهم / سياراتهم، إلخ رسموا بألوان مختلفة. الآن يمكن بالتأكيد القيام به في فوتوشوب، ولكن كان هناك الكثير مقابل ذلك.

Viresol output preview

نصائح أخرى

مترجم

الشخص الذي لم أكن أرغب فيه، أو المتعة، الكتابة.

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

كان علي أيضا كتابة نظام تشغيل بسيط في ASM وكان ذلك صعبا جدا.

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

مكتبة لحل المعادلات المختلفة غير الخطية المختلفة. استخدمناها في مجموعة الفيزياء النظرية لحل التكيف غير الخطي مع معادلة Schrodinger التي تحدث في بيئات درجات حرارة منخفضة للغاية.

كان من السهل نسبيا الحصول على عامل حلول بسيط ولكن تعميمه و جعلها بسرعة كان تحديا.

إنه مصدر مفتوح حاليا على رمز Google: FDTL.

تطبيق يقوم بتجميع وركض على كل من Windows و Mac مع رمز واحد.

أي شيء يتعلق بالتشفير والأمان هو دائما 1000٪ أصعب مما يظهر!

برنامج تشغيل مودم للأغراض العامة لخدمة Flaky عبر الإنترنت. كان عليه أيضا دعم 30 نوعا من المودم (قبل أجهزة مودم هايز). لديهم جميعا خصائص توقيت مختلفة.

يجب أن تكون مكتوبة في كل من مجمع 8086 و Z80 لإصدارات CP / M و DOS من منتجاتنا. لا يزال لدي كوابيس حول مودم نصف دوبلكس معين ...

أتمتة مع كوم، مع تنفيذ عبر الشبكة

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

ربما التعادل: مشكلة في حلول القرار من أجل مجموعات باستخدام ترضي النظريات modulo وسوء عملية عملية تعاونية في C / ASM التي ركضت أعلى نظام تشغيل UNIX. أول واحد كان مجرد بجد - لم يتم القيام به قبل استخدام SMT وترجم الورق النظري عالي النظري في التنفيذ الفعلي في سياق مختلف كان صعبا. الشخص الثاني يشارك في الحفر إلى هياكل بيانات نظام التشغيل لفهمها، ثم استبدال البتات والقطع للقفز جيئة وذهابا بين الوظائف في البرنامج كما لو كانت مواضيع مجدولة بشكل منفصل.

مصحح

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

كانت النسخة الأصلية 200KLoc من C ++ ولكن المشاكل النظرية التي شكلت أساس تصميمها استغرقني 2 سنوات لحلها.

2 الأشياء:

1) مترجم. كان اسم اللغة "3 كرات" (تكريم صديق كان يدير كرات)

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

بالطبع هذا هو الكثير من القائم بأفضل شيء ... ولكن يستحق كل بايت كتبته!

لقد كتبت عدة قطع من التعليمات البرمجية التي تقوم بالنمذجة في أبعاد مكانية متعددة (من 3 إلى أعلى مستوى أعلى تقريبا حوالي 7 أبعاد.) تصبح المشاكل أصعب عند العمل على شيء لا يمكنك رسمه أو حتى تصوره.

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

سئلت من هذا السؤال بالذات في مقابلة قبل بضعة أسابيع (لا يزال لم يسمع ما إذا كان لدي الوظيفة).

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

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

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

أنا أعمل على إطار PHP آخر، الذي كان رحلة ممتعة حتى الآن.

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

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

أيضا المواضيع تمتص ؛-)

لا شيء خاص، ولكن وظيفة يمكن أن ترسم "مجال" مع مثلثات، مع نقاط NXN واستكملت المثلثات betweeen اثنين من الألوان (وبالتالي كانت الإدخال هو دائرة نصف قطرها، وعدد التقدم الفرعي، color1، color2، color2، color1، color2). كان من الصعب ولكن ممتع للغاية عند العمل :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top