Blog

  • আমার সম্পর্কে

    পেজটি আপডেট হবে…

  • আমি যা যা ইউস করি

    প্রোগ্রামার হিসেবে আমি যেসব টুলস ইউস করিঃ-

    কম্পিউটার

    Mac Mini M4 2025 base model. 16 GB Ram, 256 GB SSD.

    মনিটর

    Dell S2240L monitor, HDMI, 60Hz.

    কিবোর্ড

    Royal Kludge RK98 mechanical keyboard. Bluetooth.

    মাউস

    1. Primary: Asus WT425 wireless mouse. WLAN.
    2. Backup: Logitech M90

    হেডফোন

    JBL Tune 760 Noise-Canceling wireless headphones.

    আমি কেনার পরে জানতে পারলাম এই ডিভাইসটির এপ সাপোর্ট নেই। তাই আমি এটা রেকমেন্ড করি না।

    ওয়েবক্যাম

    Logitech C270, 720p webcam + mic. USB

    ডেস্ক

    পাওয়ার ব্যাকআপ, ইউপিএস

    Powerpac 650 VA

    মাল্টিপ্লাগ/ পাওয়ার স্ট্রিপ

    Click 4 socket power strip

  • Hashing

    প্রোগ্রামিং এ Hashing হলো অনেকটা আলু ভর্তা বানানোর মতো। কোন ডেটা, পাসওয়ার্ড, বা ফাইলকে হ্যাশ করে তার একটি ভর্তা বানানো হয়।

    উদাহরণ-

    “1234” -> 81dc9bdb52d04dc20036dbd8313ed055

    ইনপুট হিসেবে 1234 -এই স্ট্রিং টি দিলে, MD5 নামের একটি হ্যাশিং ফাংশন তাকে এই ভ্যালুতে কনভার্ট করবে। আপনি চাইলে নিজেই এই অনলাইন হ্যাশ জেনারেটর দিয়ে চেক করে দেখতে পারবেনঃ-

    ১) Hashing একটি one-way অপারেশন

    একটি আলুকে একবার ভর্তা বানালে সেটা যেমন আবার আগের আলুর রূপে ফেরত আসে না (Practically) ঠিক তেমনি কোন ডেটাকে একবার Hash এ কনভার্ট করলে সেটা আগের রূপে ফেরত আনা যায় না।

    আমরা যখন কোন সফটওয়্যার বানাই, তখন ইউজারের পাসওয়ার্ড এই রকম plaintext (যেমন 1234) এ সেভ করে রাখলে সেই ডেটাবেজ নিয়ে নাড়াচাড়া করা অনেক বিপদজনক হয়ে পরে।

    usernamepassword
    tamal1234

    যেকোন সময় ডেটা লিক, বা হ্যাকার যদি ডেটা চুরি করে ফেলে তাহলে সব ইউজারের পাসওয়ার্ড ফাঁস হয়ে যাবে।

    তাই পাসওয়ার্ডগুলো সাধারণত এরকম hashing করে সেভ করে রাখা হয়।

    usernamehash
    tamal81dc9bdb52d04dc20036dbd8313ed055

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

    ২) Hashing algorithm গুলো deterministic হয়ে থাকে

    এর মানে হলো, একটি ডেটাকে কোন একটি algorithm দিয়ে hash করলে সব সময় একই ভ্যালু বের হবে।

    অর্থাৎ 1234 –এই পাসওয়ার্ডটিকে MD5 হ্যাশিং এলগোরিদম দিয়ে হ্যাশ করলে সবসময় এর ভ্যালু এটাই বের হবে- 81dc9bdb52d04dc20036dbd8313ed055

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

    username = input("Enter your username:")
    user_password = input("Enter your password:")
    
    input_hash_value = generate_hash(user_password)
    database_hash_value = get_hash_from_db(username)
    
    if(input_hash_value == database_hash_value):
      # Welcome to your dashboard
    else:
      # Incorrect username or passwordCode language: Python (python)

    কিন্তু এখানে একটি বড় রকমের ঝুঁকি আছে।

    যদি দুইজন ইউজার একই পাসওয়ার্ড সেট করে, তাহলে তাদের দুইজনের হ্যাশ সেইম হবে তাই না?

    usernamehash
    tamal81dc9bdb52d04dc20036dbd8313ed055
    tarina81dc9bdb52d04dc20036dbd8313ed055

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

    এখন হ্যাকার যদি একটি ডেটাবেজ চুরি করে ফেলে, তখন তার জাস্ট এই হ্যাশ গুলো মিলিয়ে দেখলেই হবে। যদি কোন হ্যাশ ভ্যালু 81dc9bdb52d04dc20036dbd8313ed055 হয়, তার মানে এর পাসওয়ার্ড হলো 1234

    ৩) Salt এর ব্যাবহার

    দুজন ইউজার যদি একই পাসওয়ার্ড সেট করে, তাহলে যেন তাদের হ্যাশ ভ্যালু একই না হয়ে যায়, তাই এখানে Salt ইউজ করা হয়। দুটি একই রকম আলুতে যদি দুই পরিমাণ লবণ দেওয়া হয়, তাহলে দুটি ভর্তাই আলাদা হবে।

    এখানে আমার প্রোগ্রাম প্রথমে ইউজারের ডেটা নিবে, তারপর সেই ডেটাকে হ্যাশ না করে, একটি random salt জেনারেট করে সেখানে এড করবে। এইবার সেই ডেটা আর salt একসাথে হ্যাশ করবে।

    input_password = input("Set your password:")
    salt = "32 char random hex generated string"
    salted = input_password + salt
    hashed = hash_function(salted)Code language: Python (python)

    ফলাফল: দুইজন যদি একই পাসওয়ার্ড 1234 সাবমিট করে, তাদের salt ভ্যালু আলাদা হবার কারণে হ্যাশটিও আলাদা হবে।

    usernamesalthash
    tamalabc64ad3fb166ddb41a2ca24f1803b8b722
    tarinaxyza4eb2e0f3e0cbac5c3e64ddc4d24f1df

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

    ৪) Pepper এর ব্যাবহার

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

    এই pepper আরেকটি পাসওয়ার্ড বা সিক্রেট কোড যা আমার প্রোগ্রামের কনফিগারেশনে সেভ করা থাকে। এবার যখন ইউজার নতুন পাসওয়ার্ড সেট করবে তখন এভাবে হ্যাশ জেনারেট হবে-

    ইউজারের টাইপ করা পাসওয়ার্ড + Random Salt + Developer Pepper
    = Hash value

    input_password = input("Set your password:")
    salt = "32 char random hex generated string"
    pepper = os.environ.get("APP_SECRET")
    pepper_and_salted = input_password + salt + pepper
    hashed = hash_function(pepper_and_salted)Code language: Python (python)

    এর সুবিধা হলো, হ্যাকার যদি salt সহ ডেটাবেজ চুরি করে ফেলে, তাহলেও সে pepper পাচ্ছে না। যার ফলে পাসওয়ার্ড ক্র্যাক করা আরো কঠিন হয়ে যাবে।

    কয়েকটি জনপ্রিয় হ্যাশিং এলগোরিদম-

    • MD5
    • SHA1
    • SHA256

    MD5 এলগোরিদম এর ব্যাপারে

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

    পাসওয়ার্ড হ্যাশ করার জন্য বর্তমানে যেসব এলগোরিদম ইউজ হয় সেগুলো হলো-

    • bcrypt
    • scrypt

  • প্রোগ্রামিং এর জন্য কোন কম্পিউটার ভালো?

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

    1. ডেস্কটপ কম্পিউটার
    2. ল্যাপটপ কম্পিউটার

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

    এই লেখাটা যারা পড়ছো, আমি ধারনা করছি তুমি মাত্রই শুরু করছো আর তুমি যেকোন একটা অপশন এখন নিতে পারবে। তাহলে চলো ডেস্কটপ আর ল্যাপটপ দুটোর ব্যাপারেই আলোচনা করিঃ

    ডেস্কটপ কম্পিউটারে কোডিং

    ডেস্কটপ কম্পিউটার মানে তোমার টেবিলের মধ্যে এই পিসিটা সেটাপ করা থাকে। এর আলাদা মনিটর, মাউস, কী-বোর্ড থাকবে। ডেস্কটপে তুমি তোমার সুবিধা মত মাউস, কী-বোর্ড, মনিটর, এমন কি সিপিইউ কেসিং পাল্টাতে পারবে।

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

    আমার সবচেয়ে ভালো যে জিনিসটা লাগে সেটা হলো বড় স্ক্রিনে কাজ করা। আমার মনিটরটা ২২ ইঞ্চি। আমি চাইলে আরো বড় মনিটর, বা একাধিক মনিটরও কানেক্ট করতে পারবো।

    ডেস্কটপে কাজ করতে হলে তোমার সেই একটা ডেস্কে বসেই কাজ করতে হবে। তার মানে যেই রুম আর টেবিলে তোমার মূল ডেস্কটপটা সেটাপ করা আছে, সেখানে বসেই তোমাকে কাজ করতে হবে।

    বাংলাদেশের অনেক এলাকায় লোডশেডিং একটা সমস্যা। ঘন ঘন লোডশেডিং হলে কিন্তু পিসি অফ হয়ে যাবে। বর্তমানে পিসির পাওয়ার ব্যাকাপ হিসেবে একটা UPS ডিভাইস আমরা কিনে নেই। বেসিক 650VA ইউ পি এস গুলো মাত্র ১০-২০ মিনিট পিসির পাওয়ার ব্যাকাপ দেয়। এই অল্প সময়ে তুমি যাস্ট তোমার কাজটা সেভ করে রেখে দিতে পারো, আর কিছু না। এর চেয়েও বেশি ব্যাকাপ লাগলে আরো বেশি ক্যাপাসিটির UPS অথবা IPS ইউজ করতে হবে। তাই যদি তোমার এখানে সব সময় লোডশেডিং হয়, তাহলে ডেস্কটপে কাজ করলে তোমার প্রোডাক্টিভিটির ব্যাপক হ্যাম্পার হবে।

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

    এখন চলো ল্যাপটপের কথা বলিঃ

    ল্যাপটপ কম্পিউটারে কোডিং

    ল্যাপটপে কাজ করার সবচেয়ে বড় সুবিধা হলো, এটা পোর্টেবল। যেখানে সেখানে নিয়ে, শুয়ে বসে তুমি কিছু না কিছু কাজ করতে পারবে। তোমার যদি সব সময় বিভিন্ন যায়গায় ট্রাভেল করতে হয়, যেমন বাসা, অফিস, কলেজ, কফি শপ, তাহলে ল্যাপটপ তোমার জন্য বেস্ট হবে।

    ল্যাপটপের বিল্ট ইন ব্যাটারিতে পাওয়ার ব্যাকাপ থাকে তাই কারেন্ট চলে গেলেও এক ঘন্টা অনায়াসেই প্রোগ্রামিং করে ফেলতে পারবে। বর্তমানের প্রায় সব ল্যাপটপই ৩-৪ ঘন্টার ব্যাটারি ব্যাকআপের দাবি করে। তাই একবার ফুল চার্জ দিয়ে তুমি একটা কোডিং সেশন চালিয়ে দিতে পারবে। আমার পার্সোনাল এক্সপেরিয়েন্সে আমি কখনোই কোন উইন্ডোজ বেজ ল্যাপটপে ২-৩ ঘণ্টার বেশি পাওয়ার ব্যাকআপ পাই নি। হয়তো অনেক হাই এন্ড ল্যাপটপে ভালো ব্যাটারি ব্যাকআপ পাওয়া যাবে।

    পোর্টেবল হওয়া সত্বেও এর কিছু অসুবিধাও আছে। ল্যাপটপ অনেক দিন ব্যাবহার করার পরে এর ব্যাটারি ব্যাকাপ কমে যায়। যার ফলে সব সময় তোমাকে পাওয়ার ক্যাবল নিয়ে ঘুরতে হবে। নতুন একটা ব্যাটারি কিনলেও দেখা যায় এটা অরিজিনাল ব্যাটারির মত এত টেকসই হয় না।

    সাধারণত ল্যাপটপ দিয়ে সারাদিন একটানা কাজ করা যায় না। পাওয়ারের সাথে লাগিয়ে কাজ করলেও সেটা লং-টার্মে অনেক ইফেক্ট ফেলে। ল্যাপটপ যেহেতু অনেক ছোট একটা প্যাকেজ, এর ইন্টার্নাল পার্টস গুলো অনেক টাইট ভাবে প্যাক করা থাকে। ল্যাপটপ রেগুলার গরম হতে হতে খুব তারাতারি এর ভিতরের পার্টসগুলো দূর্বল হয়ে যায়।

    ল্যাপটপে কাজ করলে টাইপিং আর ট্র্যাকপ্যাড ইউজ করা অনেকের জন্য ঝামেলা হতে পারে। যার জন্য প্রায়ই অনেকে ল্যাপটপের সাথে আলাদা মাউস আর কী-বোর্ড ইউজ করে। আমি এখন ল্যাপটপের সাথে আলাদা মাউস ইউজ করি।

    ফাইনালি, ল্যাপটপের ছোট স্ক্রিন কোডিং এর জন্য অসুবিধা হতে পারে, কিন্তু আমার অভিজ্ঞতা বলে যে এই ছোট স্ক্রিনে কাজ করতে করতে অভ্যাস হয়ে যায়।

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

    এখন যখন তুমি ডেস্কটপ ল্যাপটপ দুটির সুবিধা অসুবিধা জেনে গেছো, চলো দেখা যাক প্রোগ্রামিং এর জন্য কেমন কনফিগারেশনের পিসি তোমার দরকারঃ

    প্রোগ্রামিং এর জন্য কেমন কনফিগারেশনের কম্পিউটার লাগবে?

    প্রোগ্রামিং এর জন্য মিনিমাম 3rd generation Intel Core i3 প্রসেসর, 8GB DDR3 র‍্যাম বা তার চেয়ে বেশি লাগবে।

    এই মিনিমাম কনফিগারেশনগুলো Google Chorme, Microsoft VS Code, Visual Studio, Android Studio, Node.js, Python এর minimum system requirement দেখে আমি তুলে ধরেছি।

    আমরা যদি আরেকটু ডিটেইলস এ যাইঃ

    প্রসেসর/সিপিইউ

    Intel, আর AMD Ryzen বর্তমানের ভালো প্রসেসর। তুমি যখন প্রোগামিং প্রোজেক্ট রান করবে, এই প্রসেসরের পাওয়ারই নির্ভর করবে কোডটা কত তারাতারি প্রসেস হবে। তাই যত ভালো স্পিডের প্রসেসর নিবে, তত ফাস্ট তোমার পিসি চলবে।

    এই দুই প্রোসেসর কোম্পানীর জেনারেশন আছে, যত পরের জেনারেশন, তত ভালো এই প্রসেসরটা কাজ করবে। যেমন ইন্টেলের এখন ১৩/১৪ তম জেনারেশন চলছে। তার মানে ১৩ জেনারেশনের প্রসেসর, স্বাভাবিক ভাবেই, ১২ তম জেনারেশনের চেয়ে ভালো হবে।

    কিন্তু,

    এর মধ্যে আরেকটা ভেরিয়েশন আছেঃ

    ইন্টেলের কয়েকটি সিরিজের প্রসেসর আছে যেমন Pentium সিরিজ, Core সিরিজ, Core-Ultra ইত্যাদি। প্রোগ্রামিং এর জন্য Core সিরিজ দিয়ে শুরু করা ভালো।

    আবার এর মধ্যে আছে- Core i3, Core i5, Core i7 ইত্যাদি। এক একটা কোর, আরো বেশি পাওয়ারফুল। তাই তোমার বাজেট অনুযায়ী একটা Core সিরিজের প্রসেসর নিবে।

    অন্য দিকে তুমি যদি AMD Ryzen এর প্রসেসর নাও, তাহলে Ryzen 5 বা Ryzen 7 সিরিজের টা নিবে।

    র‍্যাম

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

    বর্তমানে তুমি টার্গেট রাখবে ১৬ জিবির বেশি DDR4 র‍্যাম নিতে। ১৬ জিবি না পারলে অন্তত ৮ জিবির নিচে ডেস্কটপ বা ল্যাপটপ নিও না। যেহেতু এখন র‍্যামের দাম বেশি তাই ৮ জিবি দিয়েও কাজ চালানো যাবে।

    DDR4 হলো র‍্যাম এর ৪র্থ জেনারেশন (Double Data Rate 4th generation)। অবশ্যই DDR4 র‍্যামগুলো তার আগের জেনারেশন DDR3, আর DDR2 এর চেয়ে বেটার। এই জিনিসটাও মাথায় রাখবে।

    একটি প্রোগ্রামিং কম্পিউটার বানাতে প্রসেসর আর র‍্যামই সবচেয়ে বেশি গুরুত্বপূর্ন। বাকি সব জিনিসগুলো তোমার পছন্দ অনুয়ায়ী নিয়ে নিবে।

    কত বাজেটের পিসি বা ল্যাপটপ কিনবো?

    ৮ জিবি র‍্যাম আর লেটেস্ট প্রসেসর এর একটা নতুন পিসি বা ল্যাপটপ এর জন্য বর্তমান বাজারে তোমাকে ৬০,০০০+ টাকা খরচ করতে হবে।

    ল্যাপটপের ব্র্যান্ড এর জন্য DELL, HP, Lenovo, MSI, Asus, Acer সহ যেকোন নাম জানা ব্র্যান্ড এর ল্যাপটপই তাদের ডিলারের কাছ থেকে কিনলে ভালো হবে।

    এখানে স্টারটেক থেকে একটি লেটেস্ট ল্যাপটপ দেখালামঃ

    এখানে আরেকটি প্রি-কনফিগারেশন করা পিসি দিলামঃ

    উপরের ডেস্কটপ টা মনিটর, কিবোর্ড মাউস ছাড়া। ল্যাপটপ কেনা যেমন সিম্পল, সেই তুলনায় ডেস্কটপ পিসি বিভিন্ন পার্টস নিয়ে বানিয়ে নিতে হয়, তাই এটা কেনা একটু কমপ্লেক্স।

    আমার সাজেস্ট করা কনফিগারেশন অনুযায়ী নতুন একটা ডেস্কটপ বা ল্যাপটপ এর জন্য আনুমানিক ৬০-৭০+ হাজার টাকা লাগবে। কিন্তু যদি তুমি আরো ঘাটাঘাটি করো, আর নিজের জন্য কাস্টমাইজ একটা ডেস্কটপ বানাও তাহলে হয়তো আরো কিছু টাকা সেভ করতে পারবে।

    বাংলাদেশে রিফারবিশ ল্যাপটপ এর ব্যাপারে

    তুমি যদি অভিজ্ঞ পিসি/ল্যাপটপ ইউজার না হয়ে থাকো তাহলে সেকেন্ড হ্যান্ড বা রিফারবিশ ল্যাপটপ না নেওয়াই ভালো। বর্তমানে বিভিন্ন কম্পিউটার মার্কেটে প্রোজেক্টের ল্যাপটপ বলে অনেক নামি দামি মডেলের ল্যাপটপ খুব কম দামে বিক্রি হয়। এই লোভনীয় অফারে পা দিয়ে আমার টেক কলিগ দেলোয়ার জাহান ভাই ৪৫ হাজার টাকার একটি ল্যাপটপ কিনে ধরা খেয়েছেন।

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

    পুরনো ডেস্কটপ সাধারনত পুরনো ল্যাপটপের চেয়ে বেশি টেকসই হয়। তাই যদি সেকেন্ড হ্যান্ড নিতে হয় তাহলে পুরনো একটা ডেস্কটপ নিও। এখন যদি তোমার বাজেট একদমই কম থাকে, তাহলে তুমি একদম নতুন 3rd, 4th জেনারেশনের একটা ডেস্কটপ বানিয়ে নিতে পারবে।

    শেষ কথা

    নতুন কম্পিউটার বা ল্যাপটপ কেনা দারুণ এক্সাইটিং একটি কাজ। আর এটি যদি তোমার প্রথম কম্পিউটার হয়ে থাকে তাহলে এর সাথে অনেক emotion জড়িয়ে থাকবে। সাধারণত একটি নতুন ডেস্কটপ আগামী ১০-১২ বছর, আর একটি ল্যাপটপ ৫-৭ বছর ভালো সার্ভিস দেয়। এই কম্পিউটারই হবে তোমার সাক্সেসের চাবিকাঠি, তাই কিনে প্রোগ্রামিং শুরু করে দাও!