"হ্যালো, অ্যামিগো, আমার বন্ধু (বাহুল্য হওয়ার জন্য আমাকে ক্ষমা করো!)। তুমি হয়ত এ কথাটি শুনেছো: 'তুমি প্রশিক্ষণে যত বেশি ঘাম ঝরাবে, যুদ্ধে তত কম রক্তপাত হবে', শুনেছো?"

"হ্যাঁ, এটি সত্য, শেখা বেশির ভাগ ক্ষেত্রেই সহজ নয়! প্রোগ্রামার হিসেবে তুমি এক নতুন পেশার দক্ষতা অর্জন করছো, এবং খুব সম্ভবত তুমি তোমার কাজের ক্ষেত্র সম্পূর্ণভাবে পরিবর্তন করছো।"

"CodeGym এ প্রচুর অনুশীলন থাকে। পুরো শিক্ষালাভের প্রক্রিয়ার 80% এর বেশি জুড়ে তা থাকে।"

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

"কিন্তু প্রফেসর, চেষ্টা সত্ত্বেও আমি যদি পরের কাজটি বুঝতে না পারি, কিংবা আমার জীবন এর ওপরে নির্ভরশীল হলেও আমি যদি পরের বিষয়বস্তুর ব্যাখ্যা ধরতে না পারি, সে ক্ষেত্রে কী হবে?"

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

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

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

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

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

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

"সক্রিয়ভাবে সহায়তা বিভাগটি ব্যবহার করতে শুরু করলে অনেক বেশি ভাল হবে।"

"এটা ব্যবহার করা সত্যিই সহজ। শুধু কাজটির পাশে 'সহায়তা' বোতাম ক্লিক করো:"

"তোমাকে কোনো নির্দিষ্ট লেভেল থেকে ্কোনো নির্দিষ্ট কাজ খুঁজে বের করতে হলে কেবল সার্চ বারে এর নাম দেবে।"

"অথবা, ড্রপ-ডাউন তালিকা থেকে তোমার প্রয়োজনীয় অনুসন্ধান ও লেভেল বেছে নেবে।"

"তুমি 'Resolved' ফিল্টার নির্বাচন করলে সেসব প্রশ্ন দেখতে পাবে যেগুলোর উত্তর CodeGym কমিউনিটি ইতিমধ্যেই দিয়েছে।"

"কেবল 'Ask a question' (একটি প্রশ্ন জিজ্ঞাসা করো) বোতামে ক্লিক করো, কাজটির একটি লিংক সংযুক্ত করো এবং তোমার সমস্যা ব্যাখ্যা করো।"

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

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

কিন্তু CodeGym কেবল শেখার জন্য নয়! আমরা আমাদের সহযোগী প্রোগ্রামারদের সঙ্গেও (একইভাবে শিক্ষানবিস ও দক্ষদের সঙ্গে) মিথষ্ক্রিয়া করব।"

"সাধারণভাবে মানুষ সম মানসিকতার ব্যক্তিদের সঙ্গে সংশ্লিষ্ট হওয়ার জন্য সোশাল নেটওয়ার্কে গ্রুপ তৈরি করে। আমরা সিদ্ধান্ত নিয়েছি যে এটি একটি ভাল ধারণা, তাই আমাদের সাইটেও গ্রুপআছে"।

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

"আর আমাদের ওয়েবসাইটের তিনটি প্রধান গ্রুপে অবশ্যই যুক্ত হবে!

CodeGym গ্রুপে, আমরা ওয়েবসাইট, প্রতিযোগিতা, ও প্রচার সম্পর্কে সর্বশেষ সংবাদ প্রকাশ করি। সব নতুন ওয়েবসাইটের সাম্প্রতিক তথ্য ও পরিবর্তন প্রথমে এখানেই প্রকাশিত হয়।"

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

"এখানে একটি লিডারবোর্ড বিভাগও রয়েছে।"

"সবগুলো কাজ সফলভাবে সমাপ্ত করলেই তুমি হয়ত একদিন সবার মধ্যে সেরা শিক্ষার্থী হয়ে উঠবে! :)"

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

"এবং এখানে আরো অনেক গ্রুপ আছে। নতুন লেখকদের জন্য CodeGym হল সবচেয়ে ভাল জায়গা! কোনো বিষয়ে তোমার জ্ঞানকে সুচিন্তিতভাবে সংগঠিত করার একটি চমৎকার উপায় হল প্রবন্ধ রচনা করা।"

"ঠিক আছে, চমৎকার। অনুশীলনের মাধ্যমে ধারণা জন্মে। কিন্তু তত্ত্বের ভূমিকা কী?"

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

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

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

  1. "ক্যাথি সিয়েরা ও বার্ট বেট্‌স, হেড ফার্স্ট জাভা"

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

    "CodeGym এ তোমার লেভেল যাই হোক না কেন, তুমি এটি পড়া শুরু করতে পারো, এমন কি তুমি শূন্য লেভেলে থাকলেও। :)"


  2. "হারবার্ট শিল্ট (Herbert Schildt): জাভা: দ্য কমপ্লিট রেফারেন্স"

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


  3. "ব্রুস একেল, থিঙ্কিং ইন জাভা"

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

    "এটি পুরোপুরি শিক্ষানবিসদের জন্য নয়, তবে তুমি CodeGym এ 20তম লেভেলে পৌঁছানোর পর্যায়েই এটি পড়া শুরু করতে পারবে।"

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


  4. "চার্লস পেটজোল্ড (Charles Petzold), কোড: দ্য হিডেন ল্যাঙ্গুয়েজ অব কম্পিউটার হার্ডওয়্যার অ্যান্ড সফটওয়্যার"

    "অ্যামাজন-এ এই বইয়ের রেটিং (4.7/5) এবং অন্যান্য উচ্চ প্রশংসাও এর সপক্ষে রয়েছে।"

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

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


  5. "আদিত্য ভার্গব, গ্রকিং অ্যালগোরিদম্‌স"।

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

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

"বই পড়ো, কাজগুলো সম্পন্ন করো, আর কমিউনিটিতে অংশগ্রহণ করো: প্রোগ্রামার হয়ে ওঠার জন্য এগুলোই সঠিক কাজ!"