... আমি কীভাবে প্রোগ্রামিং দক্ষতা বিকাশ করতে পারি যা কেবলমাত্র একটির পরিবর্তে সমস্ত ভাষার জন্য প্রয়োগ করা যেতে পারে?
এই প্রশ্নের কী ভাষা অতিক্রম এবং মনে হয় না আপনি যে ভাষায় কোডিং করা হয়।
WAT?
অভিজ্ঞ বহুবিদ প্রোগ্রামাররা ভাষার নিজস্ব মানসিক মডেলটির বিমূর্ত সিনট্যাক্স ট্রি (এএসটি) তে ভাবেন । কেউ "এখানে আমাকে লুপের দরকার আছে" বলে মনে করে না, বরং "আমাকে কোনও কিছুর উপর দিয়ে লুপ করা দরকার" এবং সেই ভাষাটির জন্য উপযুক্ত, বা যখন, বা পুনরাবৃত্তকারী বা পুনরাবৃত্তিটি অনুবাদ করে।
এটি একটি কথ্য ভাষা শেখার ক্ষেত্রে যা দেখতে পায় তার অনুরূপ। যে লোকেরা অনেকগুলি ভাষায় কথা বলে তারা অনর্থক অর্থটি মনে করে এবং এটি একটি নির্দিষ্ট ভাষায় প্রকাশ পায়।
আই ট্র্যাকিং ভিডিও কোড কমারহেনেন্স আই আই ট্র্যাকিং এবং আই-ট্র্যাকিং কোড এক্সপেরিমেন্ট ( নোভাইস) এর জুটিতে যে কেউ এই এএসটির কিছু সূত্র দেখতে পাবে যেখানে প্রবীন এবং অভিজ্ঞ প্রোগ্রামারের চোখের চলাচল দেখা যায়। একজন অভিজ্ঞ প্রগ্রেমার কোডটি তাদের মানসিক মডেলটিতে 'সংকলন' করতে এবং তাদের মাথায় 'চালানো' দেখতে পান, যখন শিক্ষানবিশকে কীওয়ার্ডের সাহায্যে কোড কীওয়ার্ডটি দিয়ে পুনরাবৃত্তি করতে হয়।
সুতরাং, সমস্ত ভাষায় প্রয়োগের জন্য প্রোগ্রামিং দক্ষতা বিকাশের প্রশ্নের মূল হ'ল একাধিক ভাষাগুলি শেখা যাতে কোনও একটি ভাষার মানসিক মডেল থাকা থেকে নিজেকে দূরে রাখতে পারে এবং নিজের মধ্যে একটি সমস্যার জন্য এএসটি তৈরি করার ক্ষমতা বিকাশ করতে পারে একটি প্রধান ভাষা যা পরে প্রদত্ত ভাষায় অনুবাদ করা হয়।
একজনের মাথায় এএসটি ব্যবহারের এই ক্ষমতা থাকলে, একই জাতীয় চিন্তার স্কুলটির মধ্যে অন্য ভাষা শেখা ( বেফুঞ্জে যাওয়া জাভা থেকে কিছুটা লাফানো, তবে ফোর থেকে যতটা নয় ) অনেক সহজ হয়ে যায় - এটি 'ন্যায়সঙ্গত' এটিএসটি একটি নতুন ভাষায় অনুবাদ করা যা তৃতীয়, চতুর্থ এবং 5 তম (ইত্যাদি ...) সময় শেষ হওয়ার চেয়ে অনেক সহজ।
এখানে একটি ক্লাসিক নিবন্ধ রয়েছে, রিয়েল প্রোগ্রামাররা প্যাসকাল ব্যবহার করবেন না । এর একটি অংশ পড়ে:
... নির্ধারিত রিয়েল প্রোগ্রামার যে কোনও ভাষায় ফোর্টরান প্রোগ্রাম লিখতে পারে
এমন কিছু বিট রয়েছে যার জন্য আপনি কেবল মানসিক এএসটি ব্যবহার করতে পারবেন না - আপনার ভাষাতেও ভাবতে হবে। এটি সম্পাদন করতে বেশ খানিকটা সময় সময় লাগে (আমি এখনও পাইথনে পার্ল কোড লেখার অভিযোগ এনেছি এবং আমার প্রথম লিস্প কোডটি "এটি খুব ভাল সি প্রোগ্রাম is" বলে পর্যালোচনা করা হয়েছিল))
এটির জন্য, আমাকে অবশ্যই এসিএম দ্বারা প্রকাশিত একটি নিবন্ধটি নির্দেশ করতে হবে, কোনও ভাষায় ফোর্টরান কীভাবে লিখবেন না । নিবন্ধের তৃতীয় অনুচ্ছেদ (যা উদ্ধৃতিগুলিতে শীর্ষস্থানীয় নয়) সরাসরি প্রশ্নটি সম্বোধন করে:
ভাল কোডিংয়ের বৈশিষ্ট্য রয়েছে যা সমস্ত সাধারণ-উদ্দেশ্যমূলক প্রোগ্রামিং ভাষা অতিক্রম করে। আপনি যদি নিজের কাছে এটি প্রয়োগ করেন তবে আপনি প্রায় কোনও কোডে ভাল নকশা এবং স্বচ্ছ শৈলী প্রয়োগ করতে পারেন। একটি প্রোগ্রামিং ভাষা আপনাকে খারাপ কোড লেখার অনুমতি দেয় বলেই আপনার এটি করা উচিত নয়। এবং একটি প্রোগ্রামিং ভাষা যা ভাল স্টাইল এবং ডিজাইনের প্রচারের জন্য ইঞ্জিনিয়ার করা হয়েছে এখনও কোডার যথেষ্ট সৃজনশীল থাকলে ভয়ানক কোড লিখতে ব্যবহার করা যেতে পারে। এতে একটি ইঞ্চি জল রেখে আপনি বাথটবে ডুবতে পারেন এবং ব্যতিক্রম হ্যান্ডলিং এবং জেনেরিক ধরণের এবং আবর্জনা সংগ্রহ ব্যতীত আপনি সহজেই কোনও গোটো বা লাইন নম্বরবিহীন ভাষায় একটি সম্পূর্ণ অপঠনযোগ্য এবং অবিশ্বাস্য প্রোগ্রাম লিখতে পারেন। আপনি ফোর্টরান বা জাভা, সি ++ বা স্মার্টটাক লিখছেন না কেন, আপনি খারাপ কোডের পরিবর্তে ভাল কোড লিখতে (এবং উচিত) বেছে নিতে পারেন।
এটি কেবলমাত্র এএসটি থাকা যথেষ্ট নয় - এটিএসটি থাকা দরকার যেটি অন্য একটি ভাষায় অনুবাদ করতে পারে। আপনার মাথায় ফোর্টরান এএসটি রাখা এবং জাভাতে ফোর্টরান কোড লেখা ভাল জিনিস নয়। ভাষাতে ভাবতে সক্ষম হওয়ার জন্য একটি ভাষা এবং এর মূর্খতাগুলির সাথে অবশ্যই যথেষ্ট পরিচিত হতে হবে (যা আমি একেবারে শীর্ষে বলেছিলাম তা সত্ত্বেও)।
আমি জাভা কোড দেখেছি এমন কেউ লিখেছেন যা সি কোড লেখা বন্ধ করেনি stopped একটি প্রধান পদ্ধতি সহ একটি অবজেক্ট ছিল। এই অবজেক্টে ডেকে আনা স্থির পদ্ধতিগুলির একটি গুচ্ছ ছিল main
এবং বেসরকারী অভ্যন্তরীণ শ্রেণীর পাবলিক ফিল্ড ছিল (এবং এটি অনেকটা স্ট্রটের মতো দেখায়)। এটি জাভাতে সি কোড লেখা ছিল। যা কিছু হয়েছিল তা হ'ল এক ভাষার বাক্য বাক্য অনুবাদ করে অন্য ভাষায়।
এই বিন্দু অতীত পেতে, এক একাধিক ভাষায় কোড লিখতে, চালিয়ে যেতে প্রয়োজন না ঐ ভাষায় মনে যখন কোড নকশা, কিন্তু তাদের মনে যখন কোডে নকশা অনুবাদ সঠিকভাবে ভাষা বাগধারার সঙ্গে কাজ করতে।
সেখানে যাওয়ার একমাত্র উপায় - প্রোগ্রামিং দক্ষতা বিকাশ করতে সক্ষম হওয়া যা সমস্ত ভাষায় প্রয়োগ করা যেতে পারে - তা হচ্ছে ভাষা শেখা চালিয়ে যাওয়া এবং সেই মানসিক প্রোগ্রামিংয়ের ভাষাটিকে একটি ভাষার সাথে সংযুক্ত না করে নমনীয় করে রাখা।
( তিনি যে উপস্থাপন করেছিলেন তার কাছ থেকে প্রচুর presentedণ নেওয়ার জন্য কওসপ্যান্ডিয়নের কাছে আমার ক্ষমাপ্রার্থী ))