৩০ দিন কি শুধুই প্রোগ্রামিং করতে পারবে? আর কোন কাজ, পড়ালেখা, ফ্যামিলি কমিটমেন্ট আছে? যদি থাকে তাহলে হয়তো ৩০ দিনই ফোকাস দেওয়া সম্ভব না।
তুমি কি তোমার প্রথম প্রোগ্রামিং ল্যাংগুয়েজ শিখছো নাকি ৬ নাম্বারটা শিখছো?
আমি অলরেডি অনেকগুলা ল্যাঙ্গুয়েজ অনেক বছর ধরে ইউজ করে আসছি। আমার ক্ষেত্রে দেখা যাবে একটা নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ ১ মাস কেন, ১ সপ্তাহেই শিখে ফেলতে পারবো।
চলো একটা বাস্তবধর্মী উদাহরন দেইঃ
আগামি ৩০ দিনে ১০-২০ বার প্রতিদিন ১ ঘন্টা করে যদি Deliberate Practice করো, তাহলে হয়তো এখন যে জিরো লেভেলে আছো, সেখান থেকে অনেক উপরের লেভেলে চলে যেতে পারবে।
ল্যাংগুয়েজ শেখা আসলে কারো শেষ হয় না। শেষ করতে পারাটাও কোন ক্রেডিট না। সবাই সেই ল্যাংগুয়েজে মোটামুটি অভ্যস্থ হয় যেন সে কিছু বানাতে পারে।
প্রায় প্রত্যেকটা মডার্ন ল্যাঙ্গুয়েজেই কিছু বেসিক ইংরেজী ওয়ার্ড আছে, যেমন form, submit, color, background, function ইত্যাদি। এই বেসিক শব্দগুলোর বানান ভূল করলে প্রোগ্রামে Error আসবে, যার ফলে অনেক বিরক্তি লাগবে।
প্রায় সব প্রোগ্রামিং ল্যাঙ্গুয়েজই case-sensitive অর্থাৎ কোন বানানে বড় হাতের আর ছোট হাতের লেখা মিক্স করলে সেটা সে বুঝতে পারে না। তার মানে যদি ভেরিয়েবল এর নাম থাকে ছোট হাতের অক্ষরে address, আর তুমি রেফারেন্স করেছো বড় হাতের অক্ষরে Address, তাহলে আবার সেখানে Error দেখাবে। বড় হাতের + ছোট হাতের অক্ষরের যে পার্থক্য, সেটা বুঝার ভালো সেন্স থাকতে হবে।
প্রোগ্রামিং এ প্রায়ই Error আসে। এটা একটা নরমাল ব্যাপার। সেই এররটা পড়ে প্রোগ্রামটা ডিবাগ করা জানতে হবে। তার মানে ইংরেজী লেখা পড়ে বুঝতে পারতে হবে।
বেশিরভাগ সময় প্রোগ্রামিং এর এরর গুগলে লিখে সার্চ করে তার সলুশন বের করে আনতে হয়। এই ক্ষেত্রে কি সমস্যা হলো, সেটা খুব ভালো ভাবে ইংরেজীতে লিখে উপস্থাপন করা লাগে। তার মানে ইংরেজী ভালো লিখতে পারতেও হবে।
বেশির ভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো ইংরেজীতে বানানো হয়েছে, আর তাদের ইউজার কমিউনিটিও ইংরেজীতেই কমিউনিকেট করে। যতদিন না পর্যন্ত বাংলা ভাষায় আরো বড় প্রোগ্রামিং কমিউনিটি তৈরী হচ্ছে, ততদিন পর্যন্ত ইংরেজীতেই কোডিং করতে হবে।
pessimism মানে হতাশাবাদ। সব কিছুর মধ্যে সবচেয়ে খারাপ অবস্থাগুলো দেখা।
optimism আশাবাদী মনোভাব। আরো ভালো কিছু হবে।
আমরা ৩ বন্ধু মিলে মাঝে মাঝে পাবজি খেলি। খেলার সময় সবার মনোভাব থাকে, যে আমরা তো খালি হারি। কোন কিল করতে পারি না। শুধু বট মেরেই বাহাদুরি করি। রিয়েল এনেমির সামনে পরলেই মরে যাই।
Psychology of Money বই এ Morgan Housel বলেন, পেসিমিজম শুনতে রিয়েলিস্টিক এবং ভালো উপদেশ মনে হয়।
যেমন আমরা গত ১০০ ম্যাচ হেরেছি, এজন্য এখনো হারবো, কথাটা ১০০% বাস্তব মনে হয়। এর কারন statistic এটাই বলে যে আমরা মরবো, হারবো।
Housel পালটা বলেন যে পৃথিবীতে সব সময় নতুন নতুন ঘটনা ঘটে। যেটা আগে হয়েছে, তার মানে এই না যে সেটাই সব সময় হবে। কেউ কখনো অতীতের ঘটনাগুলো দেখে ভবিষ্যত বলে দিতে পারে না। তাই optimistic চিন্তা করা ভালো। এটা যতই আজগুবি মনে হয় না কেন, ফিউচারে যখন এটা ঘটবে, তখন সবাই এটা সাধারন ঘটনা হিসেবে মেনে নিবে।
এই কথাগুলোই আমার পাবজি বন্ধুদের বলেছিলাম যে পাবজি খেলায় optimism ভালো।
১) এই কথাগুলো সেদিন বলার পরে আমি অনেক সিরিয়াসলি খেলেছিলাম। DJ ভাই (ReviewRon) চিকেন নিয়ে নিয়েছিলো।
২) আমি আর জামি ভাই (BeastyMen) অনেক ফাইট দিয়ে অনেক কিল নিয়েছি। টপ ২ নিজের দমে হয়েছি।
৩) আমাদের কিল রেট আগের চেয়ে বেড়ে গেছে।
বলা যায় না এমন অনেক কিছু হতে পারে যেটা আমরা কল্পনাও করতে পারি নাই।
এর আগের দিন দুইটা ম্যাচ খেলে দুটাতেই চিকেন ডিনার পেলাম (#1), এর পর গতকাল রাতের এই স্ক্রিন শটে আমাদের কিল অনেক বেড়ে গেছে। আগে যেখানে খুব বেশি হলে ২-৩ টা হতো সেখানে ৯টা থেকে ১৫টা হয়ে গেছে। প্রথম ম্যাচে চিকেন, আর শেষের ম্যাচেও চিকেন।
Optimism আসলেই কাজ করে
এখন Optimism এর মানে এই না যে হটাৎ করে একদিন সব অনেক ভালো হয়ে যাবে।
Optimism মানে হলো প্রতিদিন ঘুম থেকে উঠে আমি কাজ করবো আর গতকালের চেয়ে অল্প একটু ভালো অবস্থা হবে। এইভাবে চালিয়ে গেলেই একদিন আগের চেয়ে অনেক ভালো ফলাফল পেয়ে যাবো।
ফেসবুকে লিঙ্ক শেয়ার করার চেয়ে ভালো হলো ফুল লেখাটা কপি করে পেস্ট করে দেওয়া।
এতে করে যে কেউ খুব সহজেই আইডিয়াটা জেনে গেলো, তার আর কষ্ট করে ওয়েবসাইটে যেতে হবে না।
তাই আমার প্রত্যেকটা ব্লগ পোস্টের নিচে এই কপি বাটন দিয়ে দিয়েছি।
বাটনে ক্লিক করার সাথে সাথেই মূল লেখাটা কপি হয়ে যাবে।
এরপর ফেসবুক, মেসেঞ্জার, হোয়াটসএপ বা অন্য কোন সোশাল মিডিয়া সাইটে লেখাটা পেস্ট করা আরো সহজ হয়ে গেলো।
ওয়ার্ডপ্রেস এমনিতেই লেখার মধ্যে অনেক নিউ লাইন আর কোড দিয়ে দিয়েছিলো, তাই আমি একটা regex ইউজ করে লেখাটা আরো ক্লিন করে দিলাম, জেনো কষ্ট করে আবার ফরমেটিং ঠিক করতে না হয়।
লেখা কপি পেস্ট করে শেয়ার করলে সাথে অবশ্যই লেখককে ক্রেডিট দেওয়া উচিত।
তাই আমি লেখার শেষে আমার নাম আর পোস্টের লিঙ্ক এড করে দিলাম।
GitHub বলে আমার প্রোজেক্টে টোটাল ৬৮০০ লাইন কোড কন্ট্রিবিউট করা হয়েছে। আসলে যার মধ্যে ৪৮০০ লাইন কোডই এই কনফিগারেশন ফাইলের auto-generate করা।
খেয়াল করে দেখো, প্রত্যেকটা ব্র্যাকেটকেও একটা নতুন কোড লাইন হিসেবে ধরেছে।
এই রকম আরো কয়েকটা config ফাইল বাদ দিলে আমি হয়তো বড়জোড় ৫০০ এরও কম লাইন কোড নিজে লিখেছি, যার মধ্যে ৯০% ই আবার Github Copilot AI দিয়ে জেনারেট করা
কিন্তু autocomplete আর AI Generate ছাড়াও, প্রোগ্রামারের যেই আসল কাজটা করতে হয় সেটা হলো চিন্তা করা। এরপর কি করতে হবে, আর কিভাবে করতে হবে, সেটা চিন্তা করে বের করা।
সফটওয়্যার ইঞ্জিনিয়ারিং ফিল্ডে কোন কিছু শিখে শেষ করা যায় না। বিশেষ করে জাভাস্ক্রিপ্ট Eco-System তো আরো বেশি পরিবর্তনশীল।
নতুন নতুন টুলস, টেকনোলজি, আর টেকনিক আসতেই থাকবে, তাই সব কিছু শিখে শেষ করে ফেলার মাইন্ডসেট কোন কাজেই আসবে না। কারন যতদিনে আমি একটা জিনিস শিখে শেষ করবো, ততদিনে হয়তো নতুন একটা কিছু চলে এসেছে।
বরং অন্য একটা মাইন্ডসেট করা আরো ভালোঃ সব সময় আমি নতুন কিছু শিখতে থাকবো।
প্রতিদিন ১ ঘন্টা করে নতুন একটা জিনিস শেখার অভ্যাস, লং টার্মে অনেক কাজে দিবে।
যেমন আজকে আমি TypeScript এর উপরে একটা ভিডিও দেখলাম। ReactJS এ TypeScript এর সব use-case এখানে দেখানো হয়েছে।
এর পরে যখন আমি React প্রোজেক্টে কাজ করবো, তখন আমার স্কিল + কনফিডেন্স আরেকটু বাড়বে।
BTW: TypeScript হলো জাভাস্ক্রিপ্ট এর Superset (আরেকটা উন্নত ভার্সন)