কোড পড়তে সক্ষম তবে এটিকে লিখতে মূলত লড়াই করছেন [বন্ধ]


22

আমি সম্প্রতি আমার প্রথম প্রোগ্রামিং পরীক্ষা করেছি ... এবং ভাল আমি এটি বেশ ফ্লপ করেছি। মোটেও দুর্দান্ত করেননি। কলেজের বাইরের হিসাবে আমি কেবল নিজেকে দোষ দিতে পারি, আমি অনেক কিছুই করি নি।

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

আমি প্রতিদিন মোটামুটি পড়া (গত এক মাস বা তার প্রায় for- hours ঘন্টার জন্য করেছিলাম) করেছি ... তবে আমার আইডিইটি খোলার সময় আমি সর্বদা ড্যামেজড বোধ করি এটি সত্যই ধ্বংসাত্মক। বিশেষত আমার কাছে নোড, তালিকাগুলি, অ্যারেলিস্টগুলি, ইন্টারফেসগুলি Ect ect সম্পর্কিত জ্ঞান আছে তবে এগুলি সম্পর্কে যে কোনও পৃষ্ঠায় সেগুলি পড়ার পাশাপাশি। একটি প্রোগ্রামে যা চলছে তা হ'ল আমি ঠিক উল্লেখ করতে পারি তাই একটি প্রাইমেল কোডটি বর্ণনা করে যা আমি ভাল দেখতে পাই ... তবে আমার নিজের কোড লেখা অন্য গল্প ...


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

10
কম পড়ুন এবং প্রোগ্রাম বেশি। সাধারণ প্রকল্পগুলি সন্ধান করুন এবং সেগুলি করুন। এটি নিখুঁতভাবে করার বিষয়ে চিন্তা করবেন না, তাদের যা করা উচিত বলে মনে করেন কেবল তা তাদের করুন। তারপরে আপনি কীভাবে আরও ভাল করতে পারবেন তা ভেবে দেখুন।
ফিলিপ

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


1
কোডিংয়ের বেসিকগুলি কীভাবে কোডিং করা এবং শেখানো যায় সে সম্পর্কে আমি এটি একটি খুব আকর্ষণীয় নিবন্ধ বলে মনে করেছি: উটের দু'টি কুঁড়ি রয়েছে । কিছু লোক তাৎক্ষণিকভাবে এটি পান, অন্যরা কখনই তা করবে না - তবে আমাদের বেশিরভাগই শিখতে পারে। আপনি যদি কোডটি পড়তে এবং বুঝতে পারেন তবে আপনি দুর্দান্ত শুরু করতে যাচ্ছেন :)
ব্রাইচিন্স

উত্তর:


45

আপনি প্রোগ্রাম লিখে প্রোগ্রাম লিখতে শিখেন।

কিন্তু আপনি ছোট শুরু করতে হবে, মানুষ।

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}  

সেখান থেকে, বিল্ডিং শুরু করুন ...

public class HelloWorld {
    static String test = "This is a test";

    public static void main(String[] args) {
        System.out.println(test);
    }
}

এবং তারপর...

public class HelloClass {
    String test;

    public void setTest(String str)
    {
        test = str;
    }  

    public String getTest()
    {
        return test;
    }
}

public class HelloWorld {
    HelloClass myHelloInstance;

    public static void main(String[] args) {
        myHelloInstance = new HelloClass();
        myHelloInstance.SetTest("Hello World.")
        String myResult = myHelloInstance.getTest();
        System.out.println(myResult);
    }
}  

... ইত্যাদি। একবার আপনি কীভাবে অবজেক্টগুলি কাজ করে তার বুনিয়াদি বুঝতে পারলে বৃহত্তর প্রোগ্রামগুলি লেখা আরও সহজ হবে।


8
আপনার দ্বিতীয় উদাহরণটি সংকলন করতে ব্যর্থ হওয়া উচিত কারণ আপনি স্থিতিশীল প্রসঙ্গে একটি অ-স্থিতিশীল ভেরিয়েবল অ্যাক্সেস করছেন।
ব্র্যান্ডন

34
@ ব্র্যান্ডন: তাহলে এটি একটি ডিবাগিং অনুশীলন সুন্দর এবং প্রথম দিকে early
ব্রায়ান বোয়েচার

এইভাবে সবাই কোড শিখেন, আমার ধারণা, বা কোড শেখা উচিত।
mrudult

1
আপনার অভ্যন্তরীণ নাইকে আলিঙ্গন করুন এবং "কেবল এটি করুন"।
নোটমে

15

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

আপনি সম্পর্কে শিখছেন ...

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

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

আমি আপনাকে একটি চ্যালেঞ্জ গ্রহণ পরামর্শ দিচ্ছি। অনুশীলন হিসাবে নিম্নলিখিতটি দেখুন।

http://en.wikipedia.org/wiki/Eight_queens_puzzle

এখন এটি একটি কঠিন চ্যালেঞ্জ। আপনাকে দাবা বোর্ডে আটটি কুইন স্থাপন করতে হবে যাতে কুইনদের প্রত্যেকটি একে অপর থেকে নিরাপদ থাকে।

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

চেষ্টা করার কৌশল এখানে ...

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

  2. একবার আপনি পদক্ষেপ 1 এ ছুরিকাঘাত করলে দুটি রানী এমনভাবে রাখুন যে তারা উভয়ই নিরাপদ।

  3. অবশেষে, বোর্ডে 2 টিরও বেশি রানী রাখুন যাতে তারা সবাই নিরাপদে থাকে।

উপরোক্ত পদক্ষেপগুলি স্টেপ-ওয়াইজ রিফাইনমেন্ট নামে পরিচিত একটি ডিজাইনের কৌশলটির একটি মোচড়। এটি ডিজাইনের দিক থেকে কিছুটা পুরাতন-স্কুল তবে এটি আপনাকে ফাঁকা স্ক্রিন থেকে কিছু আকর্ষণীয় কোডে নিয়ে যাবে time

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

সময় মতো আপনি এই কৌশলগুলি অস্ত্রাগারে যুক্ত করবেন এবং যখন প্রয়োজন হিসাবে এগুলি ব্যবহার করবেন। আপনি যত বেশি ডিজাইনের কৌশল অধ্যয়ন করেন এবং অনুশীলন করেন তত সহজ হবে।

উত্স আপনার সাথে থাকতে পারে।


ওও ডিজাইন কীভাবে ডিজাইন প্যাটার্ন থেকে আলাদা? নাকি আপনি দুজনকে একসাথে রাখছেন?
পিয়েরে আরলাড

1
পদক্ষেপের পরিশোধন এবং ওও পারস্পরিক একচেটিয়া নয়, তবে আপনি সম্ভবত এটি জানেন। উত্স আপনার সাথে থাকতে পারে। +1
গুডডর

15

একটি তাত্ক্ষণিক শব্দ

করণ দ্বারা শিখুন: জ্ঞান বনাম জ্ঞান-কীভাবে

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

এবং দ্বিতীয় অংশে পৌঁছানোর একমাত্র উপায় অনুশীলন। বসুন, একটি পাঠ্য সম্পাদক, একটি কমান্ড লাইন খুলুন এবং এতে নামুন।

ছোট মধ্যে প্রোগ্রামিং

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

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

বই

আপনি জাভাতে যেমন সেট করেছেন এবং আপনার যদি জাভা বইয়ের দরকার হয় তবে আমি সুপারিশ করব:

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

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


আপনার অধ্যয়ন প্রক্রিয়া

বেসিক ওয়ার্কফ্লো

এখন থেকে, আমি আপনাকে ক্লাসে দেখেছি এমন সমস্ত অনুশীলন এবং কোডের নমুনাগুলির জন্য এই 2-পদক্ষেপ প্রক্রিয়াটি অনুসরণ করতে পরামর্শ দেব:

  1. পড়া এবং অধ্যয়ন
    1. অনুশীলন পড়ুন
    2. আপনি সেগুলি বুঝতে পেরেছেন তা নিশ্চিত করুন
  2. কোড
    1. বই বন্ধ কর
    2. সেই কোড সম্পাদক এবং কমান্ড লাইনের সাহায্যে একটি কম্পিউটারের সামনে বসুন
    3. নিজে থেকে প্রোগ্রামটি পুনরায় লেখার চেষ্টা করুন

ব্যর্থতার ক্ষেত্রে

আপনি যদি ব্যর্থ হন এবং মনে করেন যে আপনাকে বইটি দেখে নেওয়া দরকার তবে আপনার ব্যর্থতা হয় হয়:

  • (সম্ভবত) আপনি সমাধানটি আসলে বুঝতে পারেন নি,
  • (কম সম্ভবত) যে আপনি ভুলে গেছেন যে সমাধানটির নির্দিষ্ট বিটটি কেমন দেখাচ্ছে: সিনট্যাক্স, এপিআই ব্যবহার, ...

প্রথম কারণটি সম্ভবত আপনি যা প্রায়শই মুখোমুখি হন। দ্বিতীয়টি হ'ল উপাখ্যান। উভয়ই পুনরাবৃত্তি অনুশীলন দ্বারা সম্বোধন করা হয়।

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

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

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

সাফল্যের ক্ষেত্রে: ছাড়িয়ে যান!

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

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


এটি জাস্ট লার্নিং - একটি তুলনা

আপনার সমস্যা আসলে প্রোগ্রামিংয়ের সাথে মোটেই সম্পর্কিত নয়। কয়েক হাজার মানুষ গণিত শেখার চেষ্টা করার সময় একই সমস্যা হয়।

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

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

আপনি কোড লিখতে শিখতে পারবেন না এমন কোনও কারণ নেই। আপনি "আহ আহ!" না পৌঁছানো অবধি চেষ্টা চালিয়ে যাবেন! / ইউরেকা মুহূর্ত। তারপরে পরবর্তী, আরও কঠিন, সমস্যার দিকে যান।


এগুলি পাশাপাশি (পরে) সহায়তা করতে পারে:


6

আমি জানি আপনি যে উত্তরটি শুনতে চান তা এই উত্তর নয় তবে: আরও কোড লিখুন!

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

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

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

শুধু বিশ্বাস রাখুন যে আপনি কোডটি যত বেশি লিখবেন এবং পড়বেন ততই তা উপলব্ধি হবে।


5

অন্যরা যেমন বলেছে, এটি এমন একটি ক্ষেত্রে যেখানে আপনাকে অবশ্যই অনুশীলন, অনুশীলন, অনুশীলন করতে হবে।

ছোট ছোট প্রোগ্রামগুলি লিখুন যা কেবল একটি সমস্যা সমাধান করে

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

  • 1000 এলোমেলো সংখ্যা তৈরি করুন এবং সেগুলিকে একটি সংগ্রহের মধ্যে সন্নিবেশ করুন (সারি, তালিকা, ইত্যাদি)। আপনার জন্য সংগ্রহকে বাছাই করে এমন কোনও সরবরাহিত পদ্ধতি ব্যবহার না করে সংগ্রহটি বাছাই করুন।
  • আপনার পরিচিত 10 জন ব্যক্তির তালিকা করুন। প্রথম নামের উপর ভিত্তি করে প্রথমে তাদের নামগুলি সাজান এবং তাদের প্রদর্শন করুন। তারপরে, তাদের শেষ নামগুলির উপর ভিত্তি করে তাদের নামগুলি বাছাই করুন এবং তাদের প্রদর্শন করুন। তারপরে, "শেষ, প্রথম" (যেমন স্মিথ, অ্যান্ড্রু স্মিথ, জেসিকার আগে থাকবেন) সেই ধরণের ভিত্তিতে তাদের সাজানোর চেষ্টা করুন।
  • 1 এবং 100 এর মধ্যে সমস্ত মৌলিক সংখ্যাগুলি সন্ধান করুন।
  • (উত্তরাধিকার) একটি বহুভুজ শ্রেণি তৈরি করুন এবং এটি ফাংশন দিন GetArea। এখন, বহুভুজ থেকে ত্রিভুজ এবং আয়তক্ষেত্রের ক্লাসগুলি তৈরি করুন এবং নিশ্চিত করুন যে তারা getArea বাস্তবায়ন করেছে। উচ্চতর অর্ডার বহুভুজ (পেন্টাগন, ষড়ভুজ ইত্যাদি) এর জন্য এটি চালিয়ে যান।
  • কোড গল্ফ স্ট্যাক এক্সচেঞ্জ * থেকে জিনিস বাছাই করে দেখুন

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

কিছু মজাদার কোড গল্ফ উদাহরণ:

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

সমস্যা সমাধানের প্রাথমিক কাঠামো:

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

void foo()
{
    // Set up X here

    // Do Y here

    // Display Z here
}

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

Z foo(input X)
{
    Z result;
    // Do Y to X
    return result;
}

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

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


4

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

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

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


1

এই প্রশ্নের ইতিমধ্যে কিছু সত্যিই ভাল উত্তর আছে, তবে আমি এখনও দেখা যায়নি এমন কয়েকটি চিন্তাভাবনা রয়েছে।

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

অন্যরা যেমন বলেছে, আপনি কেবল প্রোগ্রাম পড়া থেকে প্রোগ্রাম লিখতে শিখতে পারবেন না ।

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


1

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

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


1

ভেবেছিলাম আমি এই বিষয়টিতে ছিমছাম করব কারণ এটি সত্যিই বাড়ির কাছাকাছি চলে আসে।

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

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


এই কিছু সারগর্ভ এর উপর কি ইতিমধ্যে পূর্বে উত্তর পোস্ট করা হয়েছে যোগ করার জন্য বলে মনে হচ্ছে না
মশা

@gnat আমি ধরে নিচ্ছি আপনি বোঝাতে চাইছেন "না" এবং এটি আপনার মতামত। যদিও তিনি যাচ্ছেন ঠিক সেই একই পরিস্থিতিটি পেরিয়ে গিয়েছিলাম এবং আমি যা ভাগ করে নিয়েছি তা ভাগ করছি। আপনি যদি তাঁর প্রশ্নের ভূমিকাটি এখানে ভুলে যান তবে তা হ'ল: "আপনি কি কোনও পরামর্শ দিতে পারেন ..."
SeanWM

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

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