একটা আর্ট, কোড সবাই-ই লিখে, কিন্তু এটাকে ভালভাবে লিখা একটা শৈল্পিক ব্যাপার। অধিকাংশ কোডারকে কিছু একটা বানাতে বললে যেভাবেই হোক আপনাকে সেই এক্সপেক্টেড জিনিসটা বানিয়ে দেবে। কিন্তু কোডের অভ্যন্তরীণ ব্যাপারটাকে শৈল্পিক পর্যায়ে নিয়ে যাওয়া সবার পক্ষে সম্ভব হয় না।
সেই এক্সপেক্টেড জিনিসটা অনেকভাবেই বানানো যায়, কিন্তু আপনি কত সুন্দরভাবে প্রবলেমটা সলভ করছেন তা বলে দেয় আপনি কত এক্সপার্ট একজন কোডার। একটা প্রবলেম সলভ করতে গেলে সেটার টেস্টেবিলিটি, রিইউজেবল কিনা, একটা বিশাল বড় একটা কোডকে কতটা মাইক্রো চাঙ্ক-এ ভাগ করতে পারেন এবং সেই পার্ট গুলো রি-ইউজ করতে পারেন, সেই জিনিসগুলাই অন্য আরো দশটা প্রোগ্রামারের চেয়ে আপনাকে আলাদা করে তোলে। এইজন্যেই বলে “Code is poetry”.
এই ব্যাপার গুলা একদিনে তৈরী হয় না, অনেকটা সাধনার ব্যাপার। প্রোগ্রামিং জিনিসটাই একটা সাধনার জিনিস। প্রবলেমগুলা বিভিন্ন এডহক উপায়েই সলভ করা যায়, কিন্তু সবচেয়ে এফিশিয়েন্ট উপায়ে সলভ করতে জানতে হলে সেই ল্যাঙ্গুয়েজ নিয়ে অনেক এক্সপেরিমেন্ট করতে হবে, বিভিন্ন জিনিস বানাতে হবে, অন্যান্য ভাল ভাল প্রজেক্টের কোড দেখতে হবে। অন্যের কোড দেখা বিশাল একটা জ্ঞানার্জনের উপায়, অনেক নতুন নতুন টেকনিক শেখা যায়। এইজন্যে আমি সবাইকেই অন্যের কোড দেখতে বলি, স্টাডি করতে বলি, বিভিন্ন নতুন নতুন বিষয়ের উপর এক্সপেরিমেন্টাল প্রজেক্ট বানাতে বলি। কোন ওপেনসোর্স প্রজেক্টে ইনভলভ হতে বলি, অথবা নতুন একটা ওপেনসোর্স প্রজেক্ট শুরু করার কথা বলি। হয়ত নতুন একটা প্রজেক্ট, যা নির্দিষ্ট কোন প্রবলেম সলভ করছে। ভুলে যান আপনাকে টাকা রোজগার করতে হবে, সেই প্রজেক্ট একটা জায়গা পর্যন্ত নিয়ে যান, দেখবেন আপনাকে আর পিছনে ফিরে তাকাতে হচ্ছে না। সেই প্রজেক্টই যে কত অপারচুনেটি সৃষ্টি করবে ভাবতেও পারবেন না।
নতুনদের এই জন্যেই বলি, প্লিজ এইসব স্টেজগুলা পার হওয়ার আগে কখনো ফ্রিল্যান্সিংয়ে আসবেন না। যখন আপনি প্রথমেই টাকার পিছনে ছুটবেন, হয়ত সাথে সাথে কিছু টাকা ইনকাম করবেন, কিন্তু লং-রানে জিনিসটা খুব একটা ফলপ্রসু হবে না। টাকা বড় একটা লোভনীয় জিনিস, একবার হাতে টাকা আসা শুরু করলে আর এইসব এক্সপেরিমেন্টাল প্রজেক্ট করার কথা মাথায় আসবে না বা সময় হয়ে উঠবে না। ফলশ্রুতিতে আপনি হয়তো কখনোই আর সেই স্টেজে পৌঁছাতে পারবেন না।
স্টুডেন্ট লাইফটা এইজন্যে শেখা এবং এক্সপেরিমেন্ট করার খুব ভাল একটা সময়। নিজের উপর অতটা প্রেশার থাকে না, বাপের ঘাড়ে বসেই খাওয়া যায় (কারও কারও জন্যে হয়ত সত্য নয়) এবং নিজেকে গড়ে তোলার একটা সুযোগ পাওয়া যায়। বেজ-টা ভাল থাকলে পরবর্তী ধাপগুলাও সহজ হয়ে যায়।
ভালো লাগলো!
Nobody should wait to be a good programmer for freelancing, rather one should learn how to achieve goals.
Good code can be imagined, but while writing, it deceives. It also kills time. Focus on the features, write codes at your will. No matter how better you write, you will forget you own pattern in couple of months.
Check Yoast, horrible coding, but impressive outcome. Also check acf, how the improve the pattern by time.
Regs.