Tag: প্রোগ্রামিং

  • মাত্র ১৫ মিনিট কোড করো

    ঘুম থেকে উঠেই ১৫ মিনিট প্রজেক্টে কাজ করবো।

    কোডিং প্রোজেক্ট/ক্লায়েন্ট প্রজেক্ট, যাই হোক যাস্ট ১৫ মিনিট, এর চেয়ে বেশি না।

    এই বলে এডিটরটা ওপেন করলাম, আর আজকে ১৫ এর যায়গায় ৫১ মিনিট কোড করে ফেললাম 😁

    অনেক সময় কোডিং করে কিছু বানানো এমন একটা নেশা যেটা একবার flow state এ চলে গেলে আর ছাড়তে মন চায় না।

    এইভাবে হুট হাট কাজ শুরু করে দেওয়া ভালো।

    মাত্র ২ মিনিট করবো; ৫ মিনিট করবো; যাস্ট এই ফাইলটা চেঞ্জ করবো ইত্যাদি।

    কিন্তু যখনি অনেক আয়োজন করে ভাবি, আজকে ২-৩ ঘন্টা কোড করে ফাটাইয়া ফেলবো, তখন আর সারাদিন এডিটর ওপেন-ই করি না।

    time tracker app: toggl

  • ৩০ দিনে কি প্রোগ্রামিং শিখা সম্ভব?

    এই প্রশ্নের সাথে অনেক গুলা যদি/কিন্তু আছে।

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

    তুমি কি তোমার প্রথম প্রোগ্রামিং ল্যাংগুয়েজ শিখছো নাকি ৬ নাম্বারটা শিখছো?

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

    চলো একটা বাস্তবধর্মী উদাহরন দেইঃ

    আগামি ৩০ দিনে ১০-২০ বার প্রতিদিন ১ ঘন্টা করে যদি Deliberate Practice করো, তাহলে হয়তো এখন যে জিরো লেভেলে আছো, সেখান থেকে অনেক উপরের লেভেলে চলে যেতে পারবে।

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

    এইটাই আসল গোল।

  • প্রোগ্রামিং ভালোভাবে করতে হলে ঠিক কেমন ইংরেজী জানতে হবে?

    উত্তরঃ- ভালো ভাবেই জানতে হবে। কেন সেটা বলছিঃ

    প্রায় প্রত্যেকটা মডার্ন ল্যাঙ্গুয়েজেই কিছু বেসিক ইংরেজী ওয়ার্ড আছে, যেমন form, submit, color, background, function ইত্যাদি। এই বেসিক শব্দগুলোর বানান ভূল করলে প্রোগ্রামে Error আসবে, যার ফলে অনেক বিরক্তি লাগবে।

    প্রায় সব প্রোগ্রামিং ল্যাঙ্গুয়েজই case-sensitive অর্থাৎ কোন বানানে বড় হাতের আর ছোট হাতের লেখা মিক্স করলে সেটা সে বুঝতে পারে না। তার মানে যদি ভেরিয়েবল এর নাম থাকে ছোট হাতের অক্ষরে address, আর তুমি রেফারেন্স করেছো বড় হাতের অক্ষরে Address, তাহলে আবার সেখানে Error দেখাবে। বড় হাতের + ছোট হাতের অক্ষরের যে পার্থক্য, সেটা বুঝার ভালো সেন্স থাকতে হবে।

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

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

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

  • টাইপিং স্পিড বাড়ালে প্রোগ্রামিং এও কাজে লাগে

    ইংরেজী টাইপিং টা শিখে রাখলে (10 finger typing) প্রোগ্রামিং সহ অন্যান্য অনেক যায়গাতেই সুবিধা পাওয়া যায়।

    ইমেইল লেখা, গিটহাব কমিট মেসেজ লেখা, সোশাল মিডিয়া পোস্ট, ব্লগ পোস্ট সহ সব যায়গায় কাজে দেয়।

    আমি একবার কষ্ট করে 10 finger typing টা শিখে ফেলেছিলাম। প্রথম ২ সপ্তাহ কাজ করতে অনেক কষ্ট হয়েছিলো। কিন্তু এখন আজীবন এর সূবিধা ভোগ করছি।

    এমন কিছু ইনভেস্টমেন্ট আছে যা একবার কষ্ট করে করলে তার রিটার্ন সারা জীবন পাওয়া যায়, তার মধ্যে এই টাইপিং স্কিল একটা।

    অনলাইনে অনেক ফ্রি টুলস আছে যেখানে রেগুলার টাইপিং শিখতে পারবে। TypingClub তার মধ্যে একটা।

  • গত ১ সপ্তাহে ৬৮০০ লাইন কোড লিখলাম!

    হ্যা শুনলে যে কেউই অবাক হবে 👀

    GitHub বলে আমার প্রোজেক্টে টোটাল ৬৮০০ লাইন কোড কন্ট্রিবিউট করা হয়েছে। আসলে যার মধ্যে ৪৮০০ লাইন কোডই এই কনফিগারেশন ফাইলের auto-generate করা।

    খেয়াল করে দেখো, প্রত্যেকটা ব্র্যাকেটকেও একটা নতুন কোড লাইন হিসেবে ধরেছে।

    এই রকম আরো কয়েকটা config ফাইল বাদ দিলে আমি হয়তো বড়জোড় ৫০০ এরও কম লাইন কোড নিজে লিখেছি, যার মধ্যে ৯০% ই আবার Github Copilot AI দিয়ে জেনারেট করা 😁

    কিন্তু autocomplete আর AI Generate ছাড়াও, প্রোগ্রামারের যেই আসল কাজটা করতে হয় সেটা হলো চিন্তা করা। এরপর কি করতে হবে, আর কিভাবে করতে হবে, সেটা চিন্তা করে বের করা।

  • HTML/CSS দিয়ে কি করা যায়?

    যত ওয়েব বেইজড ইউজার ইন্টারফেস বা ওয়েব এপ্লিকেশন আছে, সেগুলা HTML/CSS দিয়েই করা।

    তবে,

    আজকাল মডার্ন ডেভেলপারেরা খালি HTML/CSS এ কোড করে না। এর বদলে জাভাস্ক্রিপ্টের একটা স্পেশাল ফ্লেভার JSX দিয়ে এই জিনিসগুলো বানানো হয়।

    HTML এর যায়গায়, হয় JSX, HTMX অথবা astro এর মত কিছু superset ইউজ করে।

    CSS এর যায়গায় TailwindCSS এর মত একটা ফ্রেমওয়ার্ক ইউজ করে।

    এমনকি JavaScript এর যায়গায় TypeScript এর মত আরেকটা superset ইউজ করে।

    🤷‍♂️

    তাহলে কি বেসিক HTML/CSS এর আর কোন কাজ নেই?

    হ্যা আছে অবশ্যই।

    একজন ডেভেলপার এর HTML, CSS, JavaScript এর মৌলিক যত ধারনা থাকবে, সে মডার্ন টুলস আরো ভালো করে চালাতে পারবে।

    So keep learning!

  • প্রতিদিন ১ ঘন্টা করে নতুন একটা জিনিস শেখার অভ্যাস

    সফটওয়্যার ইঞ্জিনিয়ারিং ফিল্ডে কোন কিছু শিখে শেষ করা যায় না। বিশেষ করে জাভাস্ক্রিপ্ট Eco-System তো আরো বেশি পরিবর্তনশীল।

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

    বরং অন্য একটা মাইন্ডসেট করা আরো ভালোঃ সব সময় আমি নতুন কিছু শিখতে থাকবো।

    প্রতিদিন ১ ঘন্টা করে নতুন একটা জিনিস শেখার অভ্যাস, লং টার্মে অনেক কাজে দিবে।

    যেমন আজকে আমি TypeScript এর উপরে একটা ভিডিও দেখলাম। ReactJS এ TypeScript এর সব use-case এখানে দেখানো হয়েছে।

    এর পরে যখন আমি React প্রোজেক্টে কাজ করবো, তখন আমার স্কিল + কনফিডেন্স আরেকটু বাড়বে।

    BTW: TypeScript হলো জাভাস্ক্রিপ্ট এর Superset (আরেকটা উন্নত ভার্সন)