কোনও শিক্ষানবিশকে প্রোগ্রাম শেখানোর সেরা উপায়? [বন্ধ]


324

মূল প্রশ্ন

আমি বর্তমানে আমার ভাইকে প্রোগ্রাম শেখানোর কাজে নিযুক্ত রয়েছি। তিনি মোট শিক্ষানবিশ, তবে খুব স্মার্ট। (এবং তিনি আসলে শিখতে চান)। আমি লক্ষ্য করেছি যে আমাদের কয়েকটি সেশনগুলি সামান্য বিবরণে জড়িয়ে পড়েছে এবং আমি মনে করি না যে আমি খুব সুসংহত হয়েছি। ( তবে এই পোস্টের উত্তরগুলি অনেক সহায়তা করেছে ))

তাকে কার্যকরভাবে শেখানোর জন্য আমি কী আরও ভাল করতে পারি? একটি যৌক্তিক আদেশ আছে যা আমি ধারণার মাধ্যমে ধারণার মাধ্যমে চালাতে ব্যবহার করতে পারি? পরে কি আমার এড়ানো উচিত?

পাইথন আমরা যে ভাষাটির সাথে কাজ করছি তা হ'ল কোনও ভাষার পরামর্শ স্বাগত।


কিভাবে সাহায্য করবে

আপনার যদি ভাল থাকে তবে আপনার উত্তরে নিম্নলিখিতগুলি যুক্ত করুন:

  • শিক্ষানবিস অনুশীলন এবং প্রকল্পের ধারণা
  • শিক্ষাদানকারীদের জন্য সংস্থানসমূহ
  • স্ক্রিনকাস্ট / ব্লগ পোস্ট / ফ্রি ই-বই
  • নতুন বইয়ের জন্য মুদ্রণযোগ্য বইগুলি মুদ্রণ করুন

দয়া করে সংস্থানটির লিঙ্কযুক্ত সংস্থানটি বর্ণনা করুন যাতে আমি একবার দেখতে পারি। আমি সবাইকে জানতে চাই যে আমি অবশ্যই এই জাতীয় কিছু ধারণাগুলি ব্যবহার করছি। আপনার জমাগুলি এই পোস্টে একত্রিত করা হবে।


শিক্ষাদানকারীদের জন্য অনলাইন সংস্থানসমূহ :


শিক্ষাদানকারীদের জন্য প্রস্তাবিত মুদ্রণের বই


কেন এটি বন্ধ করা উচিত তা আমি বুঝতে পারি না। কমপক্ষে ২৯৫ জন ব্যবহারকারী এই প্রশ্নটি (এবং ৯২ টি উত্তর) এটির ভোট দেওয়ার পক্ষে যথেষ্ট সহায়ক বলে খুঁজে পেয়েছেন, ২৯০ জন এটিকে তাদের পছন্দের অন্যতম বিবেচনা করে চলেছে। এই প্রশ্নের ফলশ্রুতিতে শিক্ষাদানের সংস্থানগুলির একটি খুব কার্যকর সংহত হয়েছিল। এটি 'আর্গুমেন্ট' বা 'বিতর্কস' এর ফলস্বরূপ আসে নি, তবে প্রোগ্রামিংয়ের ক্ষেত্রে যে কোনও কঠিন 'মানবিক বিষয়কে' কীভাবে মোকাবেলা করতে হবে সে সম্পর্কে সত্যিই অনেক দুর্দান্ত পরামর্শ। আমি মনে করি যে এ জাতীয় একটি প্রশ্ন বন্ধ করা স্ট্যাকওভারফ্লো সম্প্রদায়ের জন্য কঠোর এবং ক্ষতিকারক।
জাস্টিন স্ট্যান্ডার্ড

@ জাস্টিনস স্ট্যান্ডার্ড আপনি কি আপনার সম্পাদনাগুলিকে বেশ কয়েকটি মন্তব্যে উত্তরে রূপান্তর করার বিষয়টি বিবেচনা করেছেন? যেমন এখানে , এখানে এবং এখানে
জেসন প্ল্যাঙ্ক

উত্তর:


118

আমার বেশ কয়েকটি শিক্ষানবিশ (কোডের একটি লাইন কখনও লিখেনি) প্রোগ্রামারদের সাথে কাজ করতে হয়েছিল, এবং আমি এই শরত্কালে উচ্চ বিদ্যালয়ের শিক্ষার্থীদের সাথে স্কুল কর্মশালার পরে একটি কাজ করব। এটি ডকুমেন্টেশনের সবচেয়ে কাছের জিনিস। এটি এখনও একটি কাজ চলছে, তবে আমি আশা করি এটি সাহায্য করবে।

1) ফিজবজ কমান্ড লাইন প্রোগ্রাম দিয়ে শুরু করুন। আপনি খুব তাড়াতাড়ি কিছু মজাদার গেমস, বা সরঞ্জামগুলি লিখতে পারেন এবং আপনি জিইউআই সরঞ্জামগুলি প্রথমে না শিখে খুব তাড়াতাড়ি সমস্ত ভাষা বৈশিষ্ট্য শিখতে পারেন। এই প্রাথমিক অ্যাপ্লিকেশনগুলি যথেষ্ট সহজ হওয়া উচিত যাতে এগুলি কাজ করতে আপনাকে কোনও সত্যিকারের ডিবাগিং সরঞ্জাম ব্যবহার করার প্রয়োজন হবে না।

যদি ফিজবুজ-এর মতো আর কিছু না হয় তবে ভাল প্রকল্প। আপনার প্রথম কয়েকটি অ্যাপ্লিকেশনকে ডিবি, ফাইল সিস্টেম, কনফিগারেশন, ect এর সাথে ডিল করতে হবে না। এগুলি এমন ধারণাগুলি যা বেশিরভাগ লোককে বিভ্রান্ত করে এবং আপনি যখন বাক্য গঠন এবং বেসিক কাঠামোর বৈশিষ্ট্যগুলি কেবল শিখেন তখন আপনার আরও জটিলতার প্রয়োজন হয় না।

কিছু প্রকল্প:

  • ওহে বিশ্ব!
  • আমার জন্মের বছরটি ধরুন এবং আমার বয়স গণনা করুন (ঠিক (এখন - তারপর) কোনও মাসের সংশোধন নেই)। (সাধারণ গণিত, ইনপুট, আউটপুট)
  • একটি দিক জিজ্ঞাসা করুন (উপরে, নীচে, বাম, ডান), তারপরে ব্যবহারকারীকে তাদের ভাগ্য বলুন (একটি গর্তের মধ্যে পড়ে, একটি কেক খুঁজুন, ect)। (বুলিয়ান যুক্তি)
  • ফিজবজ, তবে প্রতি সেকেন্ডে একবার গণনা করুন। (লুপস, টাইমার এবং আরও যুক্তি)
  • তাদের বয়সের উপর নির্ভর করে কিছু সত্যিই এমন অ্যাপ্লিকেশন পছন্দ করে যা ব্যবহারকারীরা কিছু বিরতিতে এলোমেলো অবমাননা বলে। (লুপস, অ্যারে, টাইমার এবং এলোমেলোভাবে যদি আপনি বিরতিতে এলোমেলো করে থাকেন)

2) সাধারণ প্রকল্প একবার তাদের ভাষার বৈশিষ্ট্যগুলি ভালভাবে উপলব্ধি হয়ে গেলে আপনি একটি প্রকল্প শুরু করতে পারেন (সহজ, মজাদার গেমগুলি ভাল কাজ করে))। আপনার প্রথম প্রজেক্টটি 6-12 ঘন্টার মধ্যে শেষ হতে সক্ষম হওয়া উচিত। তাড়াতাড়ি স্থপতি করার জন্য সময় ব্যয় করবেন না। এটি সফল হয় এমনকি যদি এটি এটিকে নকশা করুন। যদি এটি পৃথক হয়ে যায়, কী ঘটেছিল এবং কেন এটি ব্যর্থ হয়েছিল সে সম্পর্কে কথা বলুন, তবে অন্য একটি বিষয় বেছে নিন এবং আবার শুরু করুন।

আপনি এখানে আপনার সরঞ্জামগুলির ডিবাগিং ক্ষমতা প্রবর্তন করতে শুরু করেন। এমনকি যদি আপনি কোডটি পড়ে সমস্যাটি দেখতে পান তবে কীভাবে সরঞ্জামগুলি ব্যবহার করবেন সেগুলি তাদের শেখানো উচিত এবং তারপরে আপনি কীভাবে এটি দেখতে পেলেন তা তাদের দেখান। এটি ডিবাগিং সরঞ্জামগুলি শেখানো এবং কীভাবে সরঞ্জামগুলি ছাড়াই ত্রুটিগুলি আইডি করতে হয় তা শেখানোর দ্বৈত উদ্দেশ্য পরিবেশন করে।

একবার, বা যদি, প্রকল্পটি কার্যকরী হয়ে যায় আপনি এটিকে রিফ্যাক্টরিং সরঞ্জামগুলি প্রবর্তন করতে ব্যবহার করতে পারেন। এটি ভাল যদি আপনি তারপরে এমন কিছু সাধারণ বৈশিষ্ট্য সহ প্রজেক্টটি প্রসারিত করতে পারেন যা আপনি কখনও পরিকল্পনা করেন নি। এর অর্থ সাধারণত রিফ্যাক্টরিং এবং উল্লেখযোগ্য ডিবাগিং হয়, যেহেতু খুব কম লোকই তাদের প্রথমবারের মতো অর্ধেক শালীন কোডটি লেখেন।

কিছু প্রকল্প:

3) বাস্তব প্রকল্প একটি বাস্তব প্রকল্প শুরু করুন যা কিছুটা সময় নিতে পারে। যথাযথ উত্স নিয়ন্ত্রণ ব্যবহার করুন, এবং একটি সময়সূচী তৈরি করতে একটি পয়েন্ট করুন। বাস্তব প্রকল্পের মতো এই প্রকল্পটি চালান, যদি সরঞ্জামগুলির সাথে ডিল করার জন্য এর ভাল অভিজ্ঞতা না থাকে।

স্পষ্টতই আপনার প্রতিটি ব্যক্তির জন্য এটি সামঞ্জস্য করা প্রয়োজন। আমি যে সর্বাধিক গুরুত্বপূর্ণ জিনিসটি পেয়েছি তা হ'ল এমনকি প্রথম সাধারণ অ্যাপ্লিকেশনটি সেই ব্যক্তির আগ্রহের জন্য প্রয়োগ করা।

কিছু প্রকল্প:

  • Tetris
  • পাঠ্য ফাইল ভিত্তিক ব্লগ ইঞ্জিন
  • আরও উন্নত রোবোটিক্স কাজ করে

এটি একটি দুর্দান্ত গাইড। ব্যক্তিগতভাবে, আমি কোনও কাগজের ব্যাগ থেকে বেরিয়ে আসার উপায়টি কোড করতে পারি না (আমি বাস্তবে কাউকে বাস্তবে এটি করতে দেখতে চাই), তাই এটি নিজেকে শেখানোর জন্য একটি ভাল গাইডের মতো দেখায়।
কীফনাইট

এটি একটি খুব ভাল উত্তর। আমার একটাই আপত্তি হ'ল টেট্রিস প্রথম বা দ্বিতীয় গেমের জন্য ভাল পছন্দ নয়। এই স্তরে, সংঘর্ষ সনাক্তকরণ একটি কঠিন সমস্যা হতে পারে - তারা যদি এটিকে সমাধান করতে পারে তবে দুর্দান্ত।
phkahler

@ ফ্যাকাহেলার আমি আপনার বক্তব্যটি দেখতে পাচ্ছি, তবে আমি বিশ্বাস করি টেট্রিস আকর্ষণীয় কারণ আপনার কোড লেখার আগে এবং পরে বিশ্লেষণ করতে পারেন এমন অনেকগুলি ওএসএস / ডেমো বাস্তবায়ন রয়েছে।
এরিক হাসকিনস

30

আপনি অ্যালিস ব্যবহার করার চেষ্টা করতে পারেন । এটি একটি 3 ডি প্রোগ্রাম যা প্রাথমিক প্রোগ্রামিং ক্লাসে ব্যবহারের জন্য ডিজাইন করা হয়েছে।

নতুন প্রোগ্রামারদের জন্য দুটি বড় বাধা প্রায়শই:

  • বাক্য গঠন ত্রুটি
  • অনুপ্রেরণা (অবদানের পরিবর্তে অর্থবহ এবং মজাদার কিছু লেখা)

অ্যালিস প্রোগ্রাম তৈরির জন্য একটি টেনে আনুন এবং ড্রপ ইন্টারফেস ব্যবহার করে সিনট্যাক্স ত্রুটির সম্ভাবনা এড়িয়ে চলে। অ্যালিস আপনাকে 3 ডি ওয়ার্ল্ড তৈরি করতে দেয় এবং আপনার কোড নিয়ন্ত্রণ (সাধারণ) 3 ডি অক্ষর এবং অ্যানিমেশন রাখতে দেয় যা সাধারণত লিঙ্কযুক্ত তালিকাগুলি কার্যকর করার চেয়ে অনেক বেশি আকর্ষণীয়।

অভিজ্ঞ প্রোগ্রামাররা অ্যালিসকে খেলনা হিসাবে তাকাতে পারে এবং কোডের লাইনগুলি টেনে আনতে এবং নামানোর ক্ষেত্রে উপহাস করতে পারে তবে গবেষণাটি দেখায় যে এই পদ্ধতির কাজ করে।

দাবি অস্বীকার: আমি অ্যালিসে কাজ করেছি।


আমি এটি র্যান্ডি পাউশের শেষ বক্তৃতার মাধ্যমে জানতে পারি। এই প্রকল্পের পিছনে যুক্তি আমার মনকে উড়িয়ে দিয়েছে।
জেসভিন জোস

28

আমি মৌলিক ধারণাটি নীচে নেওয়ার জন্য লোগো (ওরফে কচ্ছপ) প্রস্তাব দিই। এটি তাত্ক্ষণিক গ্রাফিক্যাল প্রতিক্রিয়া সহ একটি ভাল স্যান্ডবক্স সরবরাহ করে এবং আপনি লুপগুলি, ভেরিয়েবলগুলি, ফাংশনগুলি, কন্ডিশনালগুলি ইত্যাদির ডিস্টোম্রেট করতে পারেন এই পৃষ্ঠাটি একটি দুর্দান্ত টিউটোরিয়াল সরবরাহ করে।

লোগোর পরে পাইথন বা রুবিতে যান। আমি পাইথনকে প্রস্তাব দিচ্ছি, কারণ এটি এবিসি ভিত্তিক, যা প্রোগ্রামিং শেখানোর উদ্দেশ্যে উদ্ভাবিত হয়েছিল।

প্রোগ্রামিং শেখানোর সময়, আমাকে অবশ্যই সহজ প্রকল্পগুলি এবং তারপরে জটিল প্রকল্পগুলির জন্য EHaskins এর পরামর্শকে দ্বিতীয় করতে হবে। শেখার সর্বোত্তম উপায় হ'ল একটি নির্দিষ্ট ফলাফল এবং একটি পরিমাপযোগ্য মাইলফলক দিয়ে শুরু করা। এটি পাঠকে কেন্দ্রীভূত রাখে, শিক্ষার্থীকে দক্ষতা তৈরি করতে এবং তারপরে সেই দক্ষতাগুলি তৈরি করতে সহায়তা করে এবং ছাত্রটিকে বন্ধুদের কাছে প্রদর্শন করার জন্য কিছু দেয়। কারও কাজের জন্য কিছু দেখানোর ক্ষমতাকে অবমূল্যায়ন করবেন না।

তাত্ত্বিকভাবে, আপনি পাইথনের সাথে লেগে থাকতে পারেন, যেহেতু পাইথন প্রায় কিছু করতে পারে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এবং (সর্বাধিক) অ্যালগরিদম শেখানোর জন্য এটি একটি ভাল বাহন। কীভাবে এটি কাজ করে তার অনুভূতি পেতে আপনি পাইথনকে একটি কমান্ড লাইনের মতো ইন্টারেক্টিভ মোডে চালাতে পারেন বা একবারে পুরো স্ক্রিপ্টগুলি চালাতে পারেন। আপনি আপনার স্ক্রিপ্টগুলি ফ্লাইতে ব্যাখ্যা করতে পারেন, বা তাদের বাইনারিগুলিতে সংকলন করতে পারেন। কার্যকারিতা বাড়াতে হাজার হাজার মডিউল রয়েছে। আপনি উইন্ডোজের মতো বান্ডিলের মতো গ্রাফিকাল ক্যালকুলেটর তৈরি করতে পারেন, বা আপনি একটি আইআরসি ক্লায়েন্ট বা অন্য কোনও কিছু করতে পারেন।

এক্সকেসিডি পাইথনের শক্তিটিকে আরও ভালভাবে বর্ণনা করে: "আপনি উড়ছেন! কেমন?"  "পাইথন!"

আপনি এর পরে সি # বা জাভাতে যেতে পারেন, যদিও তারা পাইথনের ইতিমধ্যে তেমন কিছু দেয় না। এর সুবিধা হ'ল তারা সি-স্টাইলের সিনট্যাক্স ব্যবহার করে, যা অনেকগুলি (আমি বলতে সবচেয়ে সাহস করি?) ভাষা ব্যবহার করে। আপনার এখনও মেমরি পরিচালনা সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই, তবে আপনি ভাষা অনুবাদকের কাছ থেকে কিছুটা বেশি স্বাধীনতা এবং কম হ্যান্ডহোল্ডিংয়ের অভ্যস্ত হতে পারেন। পাইথন হোয়াইটস্পেস এবং ইনডেন্টিং প্রয়োগ করে যা বেশিরভাগ সময় সুন্দর তবে সর্বদা নয়। সি # এবং জাভা দৃ strongly়-টাইপ থাকা অবস্থায় আপনাকে নিজের শ্বেত স্থান পরিচালনা করতে দেয়।

সেখান থেকে মানটি সি বা সি ++। এই ভাষাগুলিতে স্বাধীনতা প্রায় অস্তিত্বহীন। আপনি এখন আপনার নিজের মেমরি পরিচালনার দায়িত্বে আছেন। আপনাকে সাহায্য করার জন্য কোনও আবর্জনা সংগ্রহ নেই। এখানেই আপনি সত্যিই উন্নত অ্যালগরিদমগুলি শিখিয়েছেন (যেমন একীভূতকরণ এবং কুইকোর্ট)। এখানেই আপনি শিখলেন কেন "বিভাগকরণ ত্রুটি" একটি অভিশাপের শব্দ। এটিই আপনি লিনাক্স কার্নেলের উত্স কোডটি ডাউনলোড করেন এবং অতল গহ্বরে দেখেন। একটি বৃত্তাকার বাফার এবং স্ট্রিং ম্যানিপুলেশন জন্য একটি স্ট্যাক লিখে শুরু করুন। তারপরে আপনার পথে কাজ করুন।


আসলে, আপনি সি তে মেমরি পুরোপুরি পরিচালনা করেন না আপনার কাছে ম্যালোক ইত্যাদি পাওয়া যায় এবং এটি আপনার জন্য নিখরচায় পরিচালনা করে manage আপনি যখন আরও বেশি মেমরি চান এবং যখন আপনি মেমরিটি ব্যবহার করে চলেছেন তখন আপনাকে কেবল সিস্টেমটি বলতে হবে।
52

15

পাইথন ব্যবহার করে প্রোগ্রামিংয়ের জন্য এমআইটির একটি জেন্টল পরিচিতি হ'ল একটি অজগর কোর্স । এটি নিখরচায় অনলাইনেই রয়েছে এবং এটি বুঝতে আপনাকে এমআইটি চূড়ান্ত হতে হবে না।

[ জাস্টিন স্ট্যান্ডার্ড ] সম্পাদনা করুন

এই কোর্সটি এই নিখরচায় অনলাইন বইটি ব্যবহার করে: কম্পিউটার বিজ্ঞানের মতো কীভাবে
ভাবতে পারি তা আমি অবশ্যই এটি বেশ কার্যকর বলে মনে করি।


12

পাইথন প্যাকেজ ভিপিথন - সাধারণ মর্টাল ( ভিডিও টিউটোরিয়াল ) জন্য 3 ডি প্রোগ্রামিং ।

কোড উদাহরণ:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

ভিপিথন বাউন্সিং বল http://vpython.org/bounce.gif


তারা প্রাথমিক ধারণাটি শিখার পরে ঠিক আছে। প্রোগ্রামিং শিখতে মানুষকে অনুপ্রাণিত করার জন্য ভিজ্যুয়াল তৈরি করা দুর্দান্ত উপায়।
phkahler

12

পাইথনে টার্টল গ্রাফিক্স দিয়ে শুরু করুন।

আমি কচ্ছপের গ্রাফিক্সটি ব্যবহার করব যা পাইথনের সাথে মানক। এটি ভিজ্যুয়াল, সাধারণ এবং আপনি এই পরিবেশটি ব্যবহার করতে পারেন অনেকগুলি প্রোগ্রামিং ধারণার মতো পুনরাবৃত্তি এবং পদ্ধতি কলগুলি যেমন সিনট্যাক্সে অনেক দূরে আসার আগে introduce পাইথনে নিম্নলিখিত ইন্টারেক্টিভ সেশনটি বিবেচনা করুন:

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

শেষ দুটি কার্য সম্পাদন করার চেষ্টা করার জন্য, তাদের অনেক ব্যর্থ প্রচেষ্টা থাকবে, তবে ব্যর্থতা দৃশ্যত আকর্ষণীয় হবে এবং তারা কী প্রত্যাশা করেছিল তা কেন টানেনি তা নির্ধারণের চেষ্টা করার সাথে সাথে তারা শিখবে।



11

মূল বিষয়টি হ'ল প্রশ্নযুক্ত ব্যক্তির কিছু সমস্যা হওয়া উচিত যা তারা সমাধান করতে চায়। যদি আপনার কাছে এমন কোনও প্রোগ্রাম না থাকে যা আপনি লিখতে চান (এবং বুদ্ধিমান এবং ভাল সংজ্ঞায়িত কিছু, "আমি পরবর্তী ভূমিকম্পটি লিখতে চাই না!") তবে আপনি প্রোগ্রাম শিখতে পারবেন না, কারণ আপনাকে প্রেরণা দেওয়ার মতো কিছু আপনার নেই । আমি বলতে চাইছি, আপনি একটি বই পড়তে পারেন এবং কোনও ভাষার বাক্য গঠন এবং শব্দার্থবিজ্ঞানের সম্পর্কে মোটামুটি বোঝাপড়া করতে পারতেন, তবে আপনি এমন কোনও প্রোগ্রাম না লিখেছেন যা আপনি লেখার চান যাবেন আপনি কখনই ফাঁদে ধরবেন না।

যদি সেই অনুপ্রেরণা বিদ্যমান থাকে তবে বাকি সমস্ত কিছুই কেবল ছোটখাট বিবরণ।


আমার মনে হয় যে কোনও প্রযুক্তিগত বিষয় শেখার সর্বোত্তম উপায় হ'ল ছোট, বর্ধনমূলক সমস্যাগুলি সমাধান করতে শেখা।
cednarski


7

http://tryruby.hobix.com/ "> রুবি চেষ্টা করুন (আপনার ব্রাউজারে)


নিস! এটি রুবি ব্যবহার করা সহজ এবং শক্তিশালী বলে মনে হচ্ছে
লুচ এম


5

এটি একটি দুর্দান্ত বই যা আমার ছোট ভাইরা শিখতেন:

http://pine.fm/LearnToProgram/

অবশ্যই, সর্বাধিক গুরুত্বপূর্ণ বিষয়টি বইটি শেষ করে অবিলম্বে কোনও ধরণের বাস্তব, কার্যকর প্রোগ্রাম শুরু করা start


4

যদি সে আগ্রহী, না কি ছোটখাটো বিবরণগুলি ভাল অংশগুলি নয়? অজগর ব্যবহার করে, আপনি ইতিমধ্যে এটির জিইউআই কেটে ফেলেছেন যাতে বিভ্রান্তি দূর হয়। কোনও প্রকল্প, একটি খেলা বা কিছু বাছাই করে কেন তা বাস্তবায়ন করবেন না। ক্লাসিক হাই-লো নম্বর অনুমান করার গেমটি 20-30 লাইনের কোডের (অবশ্যই ভাষার উপর নির্ভর করে) কমান্ড লাইন থেকে কার্যকর করা যেতে পারে এবং আপনাকে ভেরিয়েবল, শর্ত, লুপ এবং ব্যবহারকারীর ইনপুট দেয়।


Wrt হাই-নিম্ন: stackoverflow.com/questions/811074/...
Stephan202

4

আমি শুধু তাকে প্রচুর কোড লিখতে দেব। আপনার ছেলেরা যা কিছু করেন তার মধ্যে তাকে চালনা দিন এবং কেবল প্রশ্নের উত্তর দেওয়ার জন্য উপলভ্য হন।

বিশ্বাস করুন বা না রাখুন, কয়েক মাস লেখার পরে ক্রেপি কোড টন, তিনি ধারণা পেতে শুরু করবেন এবং আরও ভাল প্রোগ্রাম লিখতে শুরু করবেন। এই মুহুর্তে, আপনি বিশদ বিবরণে (স্মৃতি ইত্যাদি) জড়িয়ে যেতে পারেন এবং সাধারণ নকশার নীতিগুলি সম্পর্কেও কথা বলতে পারেন।

আমি শুনেছি যে বড় শিল্পীদের মাঝারি থেকে আলাদা করে তোলে, তারা যতবার অনুশীলন করে, তারা কোনও কিছুতে উন্নতি করে, তা যতই ছোট হোক না কেন। আপনার ভাইকে অনুশীলন করতে দিন এবং কীবোর্ডে বসার সময় তিনি উন্নত হবেন।

সম্পাদনা: [জাস্টিন স্ট্যান্ডার্ড]

এস্তেবান, এই একটি সাম্প্রতিক আমাকে মনে করিয়ে দেয় কোডিং ভয়াবহ পোস্টে , আর আমি না আপনি ঠিক মনে করি। তবে আমি অনুশীলনকে গাইড করার জন্য পদ্ধতিগুলি খুঁজে পাওয়া এখনও উপযুক্ত বলে মনে করি । কোনও প্রশ্ন নেই, আমি চাই যে তিনি যতটা কোড লিখবেন তিনি কীভাবে জানেন। আমি নমুনা প্রকল্পের জন্য জিজ্ঞাসা করছি এক কারণ।


হ্যাঁ, আমি জানি আপনি কোন পোস্টের বিষয়ে জাস্টিনের কথা বলছেন। এটি পড়া আমার মনে করিয়ে দিয়েছিল যে আমি শিখেছি বেশিরভাগ জিনিস আমার নিজের ভুল থেকে চেষ্টা করে শেখার থেকে এসেছে। আমি আসলেই শেখার গুরুত্বকে জোর দিয়ে জোর করতে পারি না!
এস্তেবান আরায়া

2

সবার আগে, সবার মতো করে শুরু করুন: হ্যালো ওয়ার্ল্ড প্রোগ্রামের মাধ্যমে। এটি সহজ, এবং এটি তাদের প্রোগ্রামের বিন্যাসের জন্য একটি প্রাথমিক অনুভূতি দেয়। আপনি প্রথম প্রোগ্রামিং করার সময় এবং কীভাবে কিছু ধারণাগুলি কতটা কঠিন ছিল তা চেষ্টা করুন এবং মনে রাখবেন - সহজ শুরু করুন।

হ্যালো ওয়ার্ল্ডের পরে, কিছু বুনিয়াদি ভেরিয়েবল, পাটিগণিত তৈরি করার দিকে এগিয়ে যান, তারপরে বুলিয়ান লজিক এবং যদি / অন্য বিবৃতিতে যান। যদি আপনি আপনার পুরানো প্রোগ্রামিং পাঠ্যপুস্তকগুলির একটি পেয়ে থাকেন তবে প্রাথমিক কয়েকটি উদাহরণ দেখুন এবং তাকে সেগুলি দিয়ে চালিয়ে যেতে বলুন। শুধু একবারে খুব বেশি পরিচয় করানোর চেষ্টা করবেন না বা এটি অপ্রতিরোধ্য এবং বিভ্রান্তিকর হবে।


2

আপনার ভাইকে প্রোগ্রামে শেখানোর সময় আপনার খুব মনোযোগ দেওয়া উচিত তার পক্ষে এটি আপনার উপর খুব বেশি নির্ভর না করা। প্রায়শই যখন আমি নিজেকে অন্যদের সাহায্য করতে দেখি তখন তারা আমাকে তাদের সমস্ত প্রশ্নের উত্তর বই হিসাবে ভাবতে শুরু করবে এবং উত্তর সন্ধানের জন্য পরীক্ষার পরিবর্তে তারা কেবল আমাকে জিজ্ঞাসা করবে। প্রায়শই সেরা শিক্ষক পরীক্ষা-নিরীক্ষা করেন এবং প্রতিবার আপনার ভাইয়ের এমন প্রশ্ন থাকে যে "আমি যদি একটি স্ট্রিংয়ের সাথে 2 যোগ করি তবে কী হবে?" আপনার উচিত উচিত এটি চেষ্টা করে দেখুন এবং নিজের জন্য দেখুন। এছাড়াও আমি লক্ষ করেছি যে যখন আমি কারও কাছে ধারণাটি পেতে পারি না, এটি এমন কিছু নমুনা কোড দেখতে সহায়তা করে যেখানে আমরা প্রতিটি বিভাগকে স্বতন্ত্রভাবে দেখতে এবং এটি টুকরো টুকরো ব্যাখ্যা করতে পারি। সাইড নোট হিসাবে প্রোগ্রামিংয়ে নতুন লোকেরা প্রায়শই অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের ধারণা নিয়ে সমস্যায় পড়ে,


2

আমি প্রোগ্রামিং শেখাতাম এবং আমার ভাইয়ের শিখতে চাইলে আমার বেশিরভাগ শিক্ষার্থীর মধ্যে তার ভাইয়ের একটি প্রধান সুবিধা রয়েছে :)

আপনি যদি সি এর সাথে যাওয়ার সিদ্ধান্ত নেন তবে কোনও বন্ধুর একটি সাইট রয়েছে যা পুরানো প্রজন্মের থেকে তাদের ব্যবহারের প্রোগ্রামগুলি বুনিয়াদি টাইপ-ইন হিসাবে মনে করে। এর মধ্যে আরও জটিল এনক্রোস ব্যবহার করেন যা কোন ধরণের একটি শিক্ষাদান সহায়তা হিসাবে তাদের ব্যবহারকে কিছুটা উপেক্ষা করে তবে তাদের মধ্যে কিছু ছোট ছোট জিনিস এবং আপনি শেখানো না থেকে বোঝা শিখতে পারেন।

ব্যক্তিগতভাবে আমি মনে করি পাইথন এবং রুবি দুর্দান্ত প্রথম ভাষা তৈরি করবে।

সম্পাদনা: প্রাথমিক প্রোগ্রামিং অ্যাসাইনমেন্টের তালিকা রাতারাতি হাজির হ'ল আপনি যা খুঁজছেন তা হতে পারে।


2

এটি সত্যিই আপনার ভাইয়ের শেখার স্টাইলের উপর নির্ভর করে। অনেক লোক তাদের হাত নোংরা করে এবং কেবল এটিতে প্রবেশ করে, ধারণাগুলি এবং বড় চিত্রটি স্ফটিক করে যখন তারা উন্নতি করে এবং তাদের জ্ঞান তৈরি করে দ্রুত শিখছে।

আমি, আমি বড় ছবিটি দিয়ে শুরু করতে এবং নীড়-কৌতুকপূর্ণ মধ্যে ড্রিল করতে পছন্দ করি। প্রথম জিনিসটি আমি জানতে চেয়েছিলাম যে এটি কীভাবে সমস্ত কিছু একসাথে ফিট করে Ob অবজেক্ট-ওরিয়েন্টেড গাব্বলডিগুক, তারপরে ক্লাস এবং দৃষ্টান্তগুলি এবং আরও কিছু সম্পর্কে। সিনট্যাক্স শেখার আগে আমি অন্তর্নিহিত ধারণাগুলি এবং কিছুটা তত্ত্ব জানতে চাই। আমার কিছুটা সুবিধা ছিল কারণ আমি 20 বছর আগে বেসিকের কয়েকটি গেম লিখেছিলাম তবে এর পরে আর কিছুই হয়নি।

সম্ভবত সামগ্রিক মিশনের বিবৃতি দিয়ে শুরু করে কোনও প্রোডাকশন প্রক্রিয়া ছায়া দেওয়া দরকারী, তারপরে একটি পরিকল্পনা এবং / অথবা ফ্লোচার্ট, তারপরে আসলে কোডটি লেখার আগে কিছু সিউডো কোডে বিস্তৃত করা (সিনট্যাক্সের দিকে ঝুঁকে যা আপনি শেষ পর্যন্ত ব্যবহার করবেন)।

এখানে আপনার স্বর্ণের নিয়মটি হ'ল আপনার শিক্ষার্থীর ঝুঁকির স্টাইলটি খুঁজে বের করা।


2

যদি আপনার ভাইয়ের আইটিউনস অ্যাক্সেস থাকে তবে তিনি নিউ সাউথ ওয়েলস ইউনিভার্সিটিতে রিচার্ড বাকল্যান্ডের দেওয়া একটি প্রবর্তনীয় কম্পিউটার সায়েন্স কোর্সের ভিডিও লেকচার ডাউনলোড করতে পারেন। তিনি একজন আকর্ষক প্রশিক্ষক এবং কম্পিউটিং এবং সি ভাষার মৌলিক বিষয়গুলি অন্তর্ভুক্ত করেন। অন্য কিছু না হলে, আপনার ভাইকে পটভূমিতে এইচআইডি খেলতে বলুন এবং কিছু ধারণা অসমোসিসের মধ্যে ডুবে যেতে পারে। :)

COMP1917 উচ্চ কম্পিউটিং - 2008 সেশন 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

লিঙ্কটি যদি কাজ না করে, তবে এখানে একটি পথ রয়েছে:

বাড়ি -> আইটিউনস ইউ -> ইঞ্জিনিয়ারিং -> COMP1917 উচ্চতর কম্পিউটিং - ২০০৮ সেশন ১


2

একটি উইকিবুক রয়েছে যা অজগর শেখার জন্য বেশ ভাল

আমি জানি না যে উইকিবুকগুলি অন্যান্য ভাষার জন্য কীভাবে হয় তবে আমি ব্যক্তিগতভাবে উইকিবুক থেকে পাইথন শিখেছি ফেব্রুয়ারী 2007 এর মতো

পিএস - আপনি যদি উইকিবুকের সাথে অপরিচিত হন তবে এটি মূলত বইয়ের লেখার উইকিপিডিয়া সংস্করণ। এটি বর্ণনা করার মতো কঠিন, তবে আপনি যদি সেখানে কয়েকটি বই পরীক্ষা করে দেখেন তবে এটি কীভাবে কাজ করে তা আপনি দেখতে পাবেন



2

আমি পাইথন একটি দুর্দান্ত ধারণা। আমি তাকে নিজের মতো করে কিছু বেসিক অ্যাসাইনমেন্ট দেব এবং তাকে বলব যে কোনও মৃত প্রান্তে সে আঘাত করে তবে গুগলে ভ্রমণের মাধ্যমে সমাধান করা যেতে পারে। আমার পক্ষে কমপক্ষে, নিজে থেকে কোনও সমস্যা সমাধান করা আমাকে সমাধান বলার চেয়ে সর্বদা এটিকে আরও ভাল করে রাখে।

কিছু সম্ভাব্য প্রকল্প (কোনও নির্দিষ্ট ক্রমে):

  • কয়েন ফ্লিপ সিমুলেটর। মুদ্রা উল্টানোর জন্য ব্যবহারকারীকে কাঙ্ক্ষিত সংখ্যক পরীক্ষার ইনপুট দেওয়া যাক। এটি সম্পাদন করুন এবং মাথা বা লেজগুলির শতাংশের সাথে ফলাফলগুলি প্রদর্শন করুন।

  • কোনও মেনু দিয়ে একটি তাপমাত্রা রূপান্তরকারী করুন যা ব্যবহারকারী কোনও ধরণের রূপান্তর করতে চায় তা চয়ন করতে ব্যবহারকারীদের ইনপুট লাগে। রূপান্তরটি চয়ন করে এবং এটি করার পরে এটি মূল মেনুতে ফিরে আসবে।

    এখানে একই ধারণা সহ একটি বর্ধিত রূপান্তরকারী উদাহরণ: http://pastebin.org/6541

  • এমন একটি প্রোগ্রাম তৈরি করুন যা একটি সংখ্যার ইনপুট নেয় এবং যে অক্ষর গ্রেডটি অনুবাদ করে তা প্রদর্শন করে। এটি এবং যদি এলিফ স্টেটমেন্টগুলি কোথায় এটি ফিট করে তার বিপরীতে ইনপুটটি মূল্যায়ন করবে।

  • একটি সাধারণ কুইজ তৈরি করুন যা বেশ কয়েকটি বহু পছন্দ পছন্দ করে বা খালি প্রশ্নগুলি পূরণ করে। শেষে এটি প্রদর্শন করবে যে ব্যবহারকারী কীভাবে কাজ করেছিল। তিনি যে কোনও প্রশ্ন বাছাই করতে পারেন।

  • কয়েকটি (সম্ভবতঃ বৃহত) পেনিগুলির একটি ইনপুট নিন এবং এটিকে বড় সংখ্যায় রূপান্তর করুন। উদাহরণস্বরূপ, 149 পেনিস = 1 ডলার, 1 ত্রৈমাসিক, 2 ডাইমস এবং 4 পেনি।

  • একটি সাধারণ তালিকা পরিচালক তৈরি করুন। তালিকাগুলি যুক্ত / মুছতে এবং সেই তালিকাগুলিতে প্রবেশ / মুছতে সক্ষম হবেন। এখানে ক্রিসমাস তালিকার পরিচালকটির একটি উদাহরণ: http://pastebin.org/6543

  • এমন একটি প্রোগ্রাম তৈরি করুন যা তৈরি করবে এবং তারপরে সন্নিবেশিত সংখ্যাগুলি ম্যাজিক স্কোয়ার গঠন করে কিনা তা পরীক্ষা করে (2D অ্যারে সহ)। এখানে কিছু নমুনা কোড দেওয়া হয়েছে তবে ব্যবহারকারী বর্গক্ষেত্রকে চালিত করার ক্ষেত্রে এটি কোথায় রয়েছে তা দেখানোর জন্য এটি প্রতিটি ধাপে সত্যই স্কোয়ারটি মুদ্রণ করতে হবে: http://pastebin.org/6544

আমি জিনিসগুলিকে মিশ্রিত করতে এবং তাকে বিরক্তিকর হওয়া থেকে বিরত রাখতে xTurtle বা অন্য কোনও গ্রাফিক্স মডিউল দিয়ে কিছু স্টাফ করার পরামর্শ দেব। অবশ্যই এটি প্রচুর অনুশীলন প্রোগ্রামিং এবং স্ক্রিপ্টিং নয় যে প্রচুর লোকেরা সত্যই পাইথন ব্যবহার করে, তবে আমি যে উদাহরণগুলি দিয়েছি তা পাইথন পাইথন যখন আমি পাইথনের মাধ্যমে শিখছিলাম তখন এটি আমার পক্ষে দুর্দান্ত কাজ করেছিল। শুভকামনা!



2

আপনার ভাই যদি ধাঁধা পছন্দ করেন তবে আমি পাইথন চ্যালেঞ্জের প্রস্তাব দেব । আমি 1 টি 1 টি টিউটোরিয়ালে এটি একটি আনুষ্ঠানিক শিক্ষার সরঞ্জাম হিসাবে ব্যবহার করব না, তবে যখন আপনি একসাথে নিজেকে চ্যালেঞ্জ করতে এবং কিছুটা মজা করার চেষ্টা করবেন না তখন তিনি কিছু করতে পারেন।



2

কয়েকটি ফ্রি ই-বইয়ের পরে, আমি প্রোগ্রাম শিখার জন্য সেরা বইটি পেয়েছিলাম হে'ই ফার্স্ট প্রোগ্রামিং ও'রাইলি প্রেস দ্বারা প্রকাশিত found এটি পাইথনকে ভাষা হিসাবে ব্যবহার করে এবং আপনাকে প্রথম থেকেই কাজ করার জন্য প্রোগ্রাম দেয়। তারা আরও আকর্ষণীয় যে 'হ্যালো ওয়ার্ল্ড'। আমি এটিতে যে অর্থ ব্যয় করেছি তা মূল্যবান এবং এটি যেহেতু অল্প সময়ের জন্য বাইরে চলে গেছে আপনি ইবে বা অ্যামাজনে সস্তায় ব্যবহৃত একটি অনুলিপি খুঁজে পেতে সক্ষম হতে পারেন।


1

আপনি যদি ভাষা নির্দিষ্ট না করে প্রোগ্রামিংয়ের প্রাথমিক বিষয়গুলি শিখতে চান তবে স্ক্র্যাচ নামে একটি অ্যাপ্লিকেশন রয়েছে যা এমআইটিতে তৈরি হয়েছিল। এটি প্রোগ্রামিং দক্ষতা বিকাশে লোকদের সহায়তা করার জন্য ডিজাইন করা হয়েছে। ব্যবহারকারীরা স্ক্র্যাচ প্রকল্পগুলি তৈরি করার সাথে সাথে তারা শর্তাদি, লুপগুলি তৈরি করতে শেখে।


1

আমি মনে করি যে একবার তার বুনিয়াদি (ভেরিয়েবল, লুপস ইত্যাদি) নিচে নেওয়ার পরে আপনার তাকে আগ্রহী এমন নির্দিষ্ট কিছু সন্ধান করতে এবং এটি ঘটতে প্রয়োজনীয়তা শিখতে সহায়তা করার চেষ্টা করা উচিত। আমি জানি যে আমার পক্ষে আগ্রহী কিছু করার জন্য আমি অনেক বেশি ঝোঁক এবং অনুপ্রাণিত। এছাড়াও, কিছু কঠিন সমস্যা হলেও তাকে লড়াই করতে দিন তা নিশ্চিত করুন, আপনি নিজেরাই যে মুহূর্তটি বের করেছেন তার চেয়ে বেশি সন্তোষজনক কিছু নয়।


1

ফ্লোচার্টস এবং পিডিএল (প্রোগ্রাম ডিজাইনের ভাষা) ব্যবহার করে কীভাবে ভাষা অজ্ঞায়িত পদ্ধতিতে সমস্যাগুলি সমাধান করতে হয় তা শিখিয়ে আমাকে শেখানো হয়েছিল । এর কয়েক সপ্তাহ পরে, আমি যে ভাষায় লিখিত পিডিএল রূপান্তর করতে শিখেছি। আমি আনন্দিত যে আমি সেভাবে শিখেছি কারণ আমি আমার বেশিরভাগ বছর প্রোগ্রামিংয়ে ব্যয় করেছি, কোনও ভাষার সাথে আবদ্ধ না হয়ে সমস্যার সমাধান করেছি। আমি কোন ভাষাটি ব্যবহার করি তা সর্বদা বাস্তবায়নের বিশদ এবং ডিজাইনের অংশ নয়।

সমস্যাটিকে একে মৌলিক পদক্ষেপে ভেঙে সমাধান করার একটি মূল দক্ষতা। আমি মনে করি এটি এমন জিনিসগুলির মধ্যে একটি যা তাদের পক্ষে পৃথক করে যেগুলি পারেন না তাদের থেকে প্রোগ্রাম করতে পারে।

আপনি যে কোনও ভাষার ধারণার ক্রমকে কীভাবে সামলাবেন তা আমি বিশ্বাস করি যে সবচেয়ে সহজ উপায় হ'ল এটি সিদ্ধান্ত নেওয়া যা একটি প্রকল্প মনে রাখা এবং ধারণাগুলি যেমন প্রয়োজন তেমনভাবে মোকাবেলা করা। এটি আপনাকে করতে আগ্রহী এমন কোনও কিছুর জন্য তাদের যেমন প্রয়োজন তেমন প্রয়োগ করতে দেয়। কোন ভাষা শেখার সময় বেশ কয়েকটি সহজ প্রকল্প মনে রাখা এবং কয়েকটি প্রগতিশীল জটিলতার সাথে রাখা ভাল। সেগুলির বিষয়ে সিদ্ধান্ত নেওয়া আপনাকে প্রয়োজনীয় ধারণাগুলি এবং তাদের ক্রমের মানচিত্র তৈরি করতে সহায়তা করবে।


1

আমি কিছু স্ক্রিনকাস্ট দেখারও সুপারিশ করব - এগুলি সাধারণত কোনও নির্দিষ্ট প্রযুক্তির প্রসঙ্গে তৈরি করা হয় কোনও ভাষা নয়, যদিও পাইথন কোড প্রদর্শিত থাকে তবে তা করবে :)। মুল বক্তব্যটি হ'ল - তারা কিছু ভাল প্রোগ্রামার তৈরি করেছেন এবং দেখছেন কতটা ভাল প্রোগ্রামার প্রোগ্রাম ভাল জিনিস। আপনি এবং আপনার ভাই পাশাপাশি কিছু পিয়ার প্রোগ্রামিং করতে পারেন, এটি আরও ভাল ধারণা হতে পারে। আপনি কেন এইভাবে কিছু করেন এবং সেভাবে নয় তা কেবল ব্যাখ্যা করতে ভুলবেন না। আমি মনে করি প্রোগ্রামিং শেখার সর্বোত্তম উপায় হ'ল ভাল উদাহরণগুলি এবং খারাপগুলি এমনকি দেখার চেষ্টা না করে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.