প্রোগ্রামিং নিয়ে নতুনদের জন্য কিছু কথাঃ কি, কখন, কিভাবে শুরু করব ?

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

১) আমি প্রোগ্রামিং শিখতে চাই, কিন্তু কি দিয়ে শুরু করব, অনেক প্রোগ্রামিং ল্যাংগুয়েজই তো আছে।

২) কিভাবে শুরু করব, মানে সঠিক way টা কি হবে ?

৩) আমি অনেক খোজাখুজি/ঘাটাঘাটি (Googling) করেছি , কিন্তু কোত্থেকে শুরু করব , বুঝতে পারছি না।

৪) কোথায় কোর্স করলে ভালো হবে ?

এগুলোই মোটামুটিভাবে নতুন যারা প্রোগ্রামিং শুরু করতে চান, তাদের কমন প্রশ্ন। আপনার যারা প্রোগ্রামিং শুরু করতে চান, তাদের জন্যই আমার আজকের এই লেখা।

 

প্রথমেই যা করবেনঃ

যেকোনো কাজে নামার পূর্বে কেনো সেই কাজটি করব, তা জানাটা সবচেয়ে বেশি প্রয়োজন। প্রোগ্রামিং এর ক্ষেত্রেও তাই । উপরের প্রশ্নগুলোর আগে তাই নিজেকে প্রশ্ন করতে হবে

১) কেন আমি প্রোগ্রামিং শিখতে চাই ?

২) প্রোগ্রামিং শিখে আমি কি করব, মানে আমার উদ্দেশ্যটা কি ?

প্রোগ্রামিং শেখার অনেক কারণই থাকতে পারে, কিছু কারণ হতে পারে এমন

১) আমি প্রোগ্রামিং করতে দেখেছি আমার বন্ধু, ভাই, বোনকে। জিনিসটা খুব ইন্টারেস্টিং, সত্যিই জাদুর মত। এই জাদু আমাকে ভীষণভাবে টানে।

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

৩) নতুন ক্রিয়েটিভ কিছু করতে আমি সবসময়ই আকর্ষনবোধ করি।

৪) খুব সম্ভাবনাময় একটি সেক্টর এটি, আমি আমার ক্যারিয়ার তাই এখানেই গড়তে আগ্রহী।

এই চারটি উত্তরের মধ্যে কোনোটি আপনার উত্তরের সাথে মিলে যাচ্ছে?

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

তবে উপরের প্রথম তিনতে কারণের যেকোনো একটি (বা একাধিক) কারণ এবং তাঁর সাথে চার নম্বর কারণ যদি আপনার উত্তর হয়ে থাকে তাহলে সোনায় সোহাগা 😉

 

Okay ! I am fit for Programming. Now what to do?

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

 

OKAY! Got it. What’s next?

শাখা নির্বাচন শেষে যে কাজটি করবেন তা হল, যেকোনো একটি প্রোগ্রামিং ল্যাংগুয়েজ নিয়ে বেসিক স্টাডি করতে পারেন। যেহেতু, সকল প্রোগ্রামিং ল্যাঙ্গুয়েজের কনসেপ্টই কমবেশি একই , শুধু মাত্র সিনট্যাক্স ভিন্ন। তাই, প্রোগ্রামিং কি? কিভাবে কাজ করে, কাজের ধারা কি, মোটকথা টোটাল বেসিক কনসেপ্টটা পাওয়ার জন্য একটা নির্দিষ্ট ল্যাংগুয়েজ নিয়ে চর্চা শুরু করুন। এক্ষেত্রে উল্লেখ্য, সি বা সি++ এক্ষেত্রে highly preferable. সি থেকে আপনি ফাংশনাল প্রোগ্রামিং এবং সি++ থেকে ওবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর ধারণা পাবেন।

সি এর জন্য http://www.tutorialspoint.com/cprogramming/index.htm

এবং সি++ এর জন্য http://www.cprogramming.com/tutorial/c/lesson1.html

দেখতে পারেন।

 

 পরবর্তী ধাপঃ

একেবারে সি/সি++ শিখেই যে শুরু করতে হবে এমন কোনো কথা নেই, আপনি যে শাখা নিয়ে কাজ করতে আগ্রহী, সেই শাখার কোনো ল্যাংগুয়েজ নিয়েও শুরু করতে পারেন। তবে সি/সি++ বেসিক জানার ফলে যে সুবিধাটা আপনি পাবেন তা হল, পরবর্তীতে যেকোনো ল্যাংগুয়েজ বুঝতে বা সহজে তাঁর ফ্লো বুঝতে আপনাকে তুলনামূলক কম বেগ পেতে হবে।

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

এইচটিএমএল , সিএসএস, পিএইচপি বা এএসপি এর টিউটোরিয়াল http://www.w3schools.com/ এ পাবেন।

 

যদি মোবাইল এপ নিয়ে কাজ করতে চান, তবে এন্ড্রয়েড ডেভেলপমেন্ট, বা ios এর জন্য objective c নিয়ে স্টাডি করতে পারেন। (এ প্রসংগে উল্লেখ্য, এন্ড্রয়েডের ডেভেলপমেন্ট এর জন্য জাভা বেসিক জানাটা আবশ্যক)।

জাভা বেসিকঃ http://www.tutorialspoint.com/java/index.htm

এন্ড্রোয়েড ডেভেলপমেন্ট বেসিক http://www.tutorialspoint.com/android/index.htm

ios ডেভেলপমেন্ট বেসিকঃ http://www.tutorialspoint.com/ios/index.htm

এছাড়াও জাভা শেখার জন্য আরেকটি চমৎকার প্লাটফর্ম হতে পারে, এই সাইটঃ  https://www.guru99.com/java-tutorial.html

 

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

 

এডিটর নিয়ে কিছু কথাঃ

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

পিএইচপি, এইচটিএমএল , সিএসএস নিয়ে কাজ করতে গেলে ফ্রি এডিটর হিসেবে নিচের লিঙ্কে দেয়া এডিটরের লিস্ট থেকে যেকোনো একটি আপনি বাছাই করতে পারেন। (অবশ্য আমি netbeans prefer করি)।

http://free-php-editor.com/

 

Java, Android development এর জন্য আপনি ফ্রী এডিটর হিসেবে eclipse ব্যবহার করতে পারেন। এটি অবশ্য IDE যাতে এডিটরের পাশাপাশি debugger, compiler, GUI builder ইত্যাদি সুবিধাও যুক্ত থাকে।

Eclipse এর লিঙ্কঃ https://eclipse.org/downloads/

গেম ডেভেলপমেন্টের ক্ষেত্রে আপনি যে গেম ইঞ্জিনে কাজ করতে চান, সেই গেম ইঞ্জিনেই তাদের নিজস্ব এডিটর থাকে সাধারণত। কিছু পপুলার গেম ইঞ্জিনের লিস্ট পাবেন এখানেঃ http://www.develop-online.net/news/the-top-14-game-engines-the-list-in-full/0114330

আজ এই পর্যন্তই। ভালো থাকবেন সবাই।  🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

19 − two =