কোনো code editor বা terminal খোলার আগে, প্রতিদিন না ভেবেই ব্যবহার করা দুটো জিনিসের সাথে পুরোপুরি স্বচ্ছন্দ হওয়া ভালো: file আর folder। কোডিং শুধু আইকনে ক্লিক করার বদলে এগুলোর সাথে আরও সরাসরি কাজ করায়।
একটি file হলো আপনার কম্পিউটারের storage-এ সেভ করা ডেটার একটি নামযুক্ত কনটেইনার। প্রতিটা file-এর নামের দুটো অংশ থাকে: আপনি যে অংশ বেছে নেন, আর একটি extension — শেষ ডট-এর পরের অক্ষরগুলো — যা বলে দেয় ভেতরে কী ধরনের ডেটা আছে।
Extension দিয়েই আপনার operating system ঠিক করে কোন প্রোগ্রাম দিয়ে একটা file খুলতে হবে। একটা ছবির নাম .jpg থেকে .txt-তে বদলালে ছবির ডেটা বদলায় না, কিন্তু আপনার কম্পিউটার হঠাৎ সেটাকে সাধারণ টেক্সট হিসেবে খুলতে চেষ্টা করবে।
| Extension | সাধারণত যা বোঝায় |
|---|---|
| .txt | সাদামাটা টেক্সট, কোনো ফরম্যাটিং নেই |
| .html | একটি ওয়েব পেজ |
| .css | ওয়েব পেজের স্টাইলিং নিয়ম |
| .js | JavaScript কোড |
| .py | Python কোড |
| .jpg / .png | একটি ছবি |
| একটি ফরম্যাট করা ডকুমেন্ট | |
| .zip | অন্য file গুলোর একটি কমপ্রেসড বান্ডিল |
একটি folder — যাকে directory-ও বলা হয় — নিজে কোনো ডেটা রাখে না; এটা অন্য file আর folder রাখে। Folder-এর ভেতরে folder অসীমভাবে nest করা যায়, আর এটাই হাজার হাজার file-কে এমনভাবে সাজাতে দেয় যা আপনি সত্যিই নেভিগেট করতে পারবেন।
প্রতিটা user অ্যাকাউন্টের একটা প্রধান home folder থাকে — Windows-এ C:\Users\YourName, macOS-এ /Users/YourName, Linux-এ /home/yourname — আর এর ভেতরে একটা স্ট্যান্ডার্ড সেট folder থাকে: Desktop, Documents, Downloads, Pictures। প্রায় প্রতিটা অ্যাপের save করার ডায়ালগ, আর একটা নতুন terminal উইন্ডো, দুটোই আপনাকে এই home folder-এর ভেতর থেকে শুরু করায়।
Downloads বিশেষভাবে ভালো করে জানার মতো: প্রতিটা browser ডিফল্টভাবে এখানেই একটা file সেভ করে, তাই সদ্য ডাউনলোড করা কিছু হারিয়ে গেছে ভাবার আগে সাধারণত এখানেই প্রথমে দেখা উচিত।
একটি path হলো একটা file বা folder-এর পুরো ঠিকানা — যে folder গুলোর মধ্য দিয়ে ক্লিক করে সেখানে পৌঁছাতেন, সেটাই টেক্সট হিসেবে লেখা। একটি absolute path drive-এর একদম উপর থেকে শুরু হয়; একটি relative path আপনি এখন যেখানে আছেন সেখান থেকে শুরু হয়।
Absolute path:
C:\Users\Rahul\projects\my-site\index.html
Relative path (from inside my-site):
.\images\logo.pngএকটা ক্যারেক্টার, দুটো অপারেটিং সিস্টেম
Windows folder আলাদা করে backslash \ দিয়ে। macOS আর Linux — আর প্রতিটা web browser — forward slash / ব্যবহার করে। এটা গুরুত্বপূর্ণ হয়ে ওঠে যখনই আপনি আসল কোডের ভেতরে একটা path লেখেন, যেমন <img src="images/logo.png"> ট্যাগে।
একটা path-এর একদম উপরের অংশকে বলা হয় root — Windows-এ C:\, বা macOS আর Linux-এ শুধু একটা /। সেই drive-এর প্রতিটা absolute path সেখান থেকেই শুরু হয়, ঠিক যেমন একটা শহরের প্রতিটা ঠিকানা শেষ পর্যন্ত সেই শহর থেকেই শুরু হয়।
My Project Notes.txt-এর মতো একটা file-এর নাম ক্লিক করলে ঠিকঠাক কাজ করে, কিন্তু মাঝখানের স্পেসটা তখনই আসল সমস্যা তৈরি করে যখন আপনি সেই নাম ক্লিক না করে টাইপ করেন — terminal-এ, বা কোডের ভেতরে।
cd My Documents
cd : Cannot find path 'My'
cd "My Documents"
(কাজ করে — quote গুলো terminal-কে বলে দেয় এটা দুটো না, একটাই নাম)এজন্যই প্রায় প্রতিটা বাস্তব project স্পেসের বদলে lowercase নাম আর hyphen ব্যবহার করে — my-project-notes.txt, project-notes.txt — আর &, #, বা %-এর মতো ক্যারেক্টার এড়িয়ে চলে যেগুলো একটা terminal বা web browser-এর কাছে বিশেষ কিছু বোঝায়। একটা বিভ্রান্তিকর error-এর আগে এই অভ্যাসটা গড়ে তোলা মূল্যবান।
File-এর size বাইটে মাপা হয়, কিন্তু প্রায় কখনোই raw বাইট হিসেবে দেখানো হয় না — এগুলোকে kilobyte (KB), megabyte (MB), আর gigabyte (GB)-তে ভাগ করা হয়, প্রতিটা আগেরটার চেয়ে প্রায় হাজার গুণ বড়।
| একক | মোটামুটি যা ধরে |
|---|---|
| KB (কিলোবাইট) | একটা ছোট টেক্সট file বা একটা সাধারণ আইকন |
| MB (মেগাবাইট) | একটা গান, বা কয়েকটা ছবি |
| GB (গিগাবাইট) | একটা মুভি, বা কয়েক হাজার ছবি |
এই স্কেলটা জানা থাকলে একটা size-এর সংখ্যা সাথে সাথেই কিছু একটা বোঝাতে পারে — একটা 4 KB ডাউনলোড চোখের পলকে শেষ হয়ে যাওয়া আর একটা 4 GB ডাউনলোড কয়েক মিনিট লাগা কাকতালীয় না, এটা আসল ডেটার হাজার-গুণ পার্থক্য।
যতবার একটা প্রোগ্রাম একটা file সেভ করে, অন্য একটা file import করে, বা একটা ছবি লোড করে, ততবারই এটা একটা path নিয়ে কাজ করছে — আপনি ক্লিক করা কোনো নাম নয়। এখনই file, folder, আর path নিয়ে স্বচ্ছন্দ হয়ে গেলে পরের কয়েকটা পাঠ — terminal ব্যবহার করা, আর পরে আসল কোড লেখা — সাথে সাথেই বোধগম্য মনে হবে, প্রথমটার উপর আরেকটা নতুন স্কিলের মতো মনে হবে না।