বর্তমানের ডিজিটাল যুগে টেকনোলজির কারনে অনেক কাজের ক্ষেত্র কমে গিয়েছে তেমন ই নতুন নতুন কাজের ক্ষেত্র সৃষ্টি হয়েছে। দিন দিন বাড়ছে ডিজিটাল ডিভাইসের ব্যবহার। স্মার্টফোন, স্মার্ট ওয়াচ, ল্যাপটপ, কম্পিউটার তো এখন ঘরে। আর সব জায়গায় ইন্টারনেটের রাজত্ব। ইন্টারনেট বলতেই ওয়েবসাইটস, ডিজিটাল ডিভাইস বলতেই বিভিন্ন সফটওয়্যার্স, গেমস, এপস, ওপারেটিং সিস্টেম এগুলাই।
একজন গ্রাহকের কাছে এগুলা অনেক সাধারন বিষয় হলেও একজন প্রোগ্রামার বা কোডার এর কাছে এগুলো আরো অনেক কিছু। আপনি যদি ফিউচারে টেকনোলজির দিকে কাজ করতে চান, আইটি এর দিকে আপনার ক্যারিয়ার গড়তে চান বা ফ্রিল্যান্সিং এর জন্য হোক অথবা কোনো কোম্পানিতে আইটি তে জব করতে চান বা এসকল সেক্টরে যাই করুন না কেন, বর্তমানে এসকল সেক্টরে স্কিলড লোকের চাহিদা অনেক।
ইন্টারনেটের ওয়েবসাইটের কথা চিন্তা করলে ওয়েব ডেভেলপার, ওয়েব ডিজাইনার বা সফ্টওয়্যার্স এর কথা চিন্তা করলে এপ ডেভেলপমেন্ট, গেম ডেভেলপমেন্ট আরো অনেক ক্ষেত্র রয়েছে। এগুলোতে একবার স্কিল্ড হতে পারলে ভবিষ্যতে অনেক ভালো কিছু করা সম্ভব। আর এই সব ক্ষেত্রেই কোডিং আবশ্যক! আজকের আর্টিকেলে আমরা কোডিং শুরু করার একটা কম্পিলিট গাইডলাইন জানব। তো চলুন শুরু করা যাক।
Contents
প্রোগ্রামিং ল্যাংগুয়েজ বাছাই করা
প্রত্যেকটি নতুন কোডার বা প্রোগ্রামার কে এই প্রশ্নের সম্মুখিন হতে হয়। কোন ল্যাগুয়েজ দিয়ে শুরু করব, এটা ভাবতেই অনেক অনেক সময় নিয়ে নেয়। তাই কোডিং শুরু করার প্রথম ধাপেই এটা রাখলাম। এর জন্য আপনাকে প্রথমে ভাবতে হবে আপনি কোন সেক্টরে কাজ করতে ইচ্ছুক। প্রত্যেকটি কোডিং ল্যাংগুয়েজের ই একটি নির্দিষ্টতা রয়েছে। যেমন ওয়েব ডিজাইনের জন্য HTML,CSS ওয়েব ডেভেলপমেন্ট এর জন্য Javascript, php, এপ ডেভেলপমেন্ট এর জন্য Java,python, kotlin, c# গেইম ডেভেলপমেন্ট এর জন্য c# এমন প্রতিটি ক্ষেত্রের জন্য আলাদা আলাদা প্রোগ্রামিং ল্যাংগুয়েজ রয়েছে। এখন আপনার কোন সেক্টরে কাজ করতে ভালো লাগবে, বা আপনার ইন্টরেস্ট কোন দিকে তার ওপর ডিপেন্ড করে আপনাকে আপনার জন্য যে কোডিং ল্যাংগুয়েজ টা প্রয়োজন সেটা বাছাই করতে হবে।
কোডিং এর শুরু- প্রয়োজনীয় রিসোর্সগুলো
তো কোন কোডিং শিখবেন সিদ্ধান্ত নেওয়া হয়ে গেলে এবার প্রয়োজনীয় রিসোর্স সম্পর্কে জানা লাগবে, কোথা থেকে শিখব, প্রবলেম এ পড়লে সলুশ্যন কোথায় পাবো এসকল কিছু জিনিস জানার প্রয়োজন আছে।
কোথা থেকে শিখব প্রশ্ন আসলে সবার প্রথমেই মাথায় আসে কোর্সের কথা। তবে কোর্স ই আসল ব্যাপার নয়। অনেক ফ্রী বা পেইড কোর্স আছে। তবে আমি বলব আগে থেকে কোর্সের পিছনে না দৌড়িয়ে আপনি যে কোড শিখতে চাচ্ছেন তা ইউটুব থেকে শেখা, একদম এক্সপার্ট পর্যায়ে না হলেও ইন্টারমিডিয়েট লেভেল পর্যন্ত আপনি ইউটুব থেকেই শিখতে পারবেন। আর যদি একবার ইন্টারমিডিয়েট লেভেল পর্যন্ত কোনো ল্যাংগুয়েজ শিখে গেলে সেটাতে কিভাবে এক্সপার্ট হওয়া যায় তা আপনি নিজেই বুঝে যাবেন।
বিভিন্ন কমিউনিটি
যেকোনো নতুন জিনিস শেখার সময় যদি আপনি কোনো কমিউনিটি তে থাকেন যেখানি আপনি আপনার মতো আরো অনেক বিগিনার দের পাবেন বা কোনো সমস্যায় পড়লে সাহায্য পাবেন তাহলে ব্যাপারটা আরো সহজ হয়ে যায়। আর যখন প্রোগ্রামিং এর ব্যাপার আপনি বলতে গেলে ঘন্টায় ঘন্টায় নতুন নতুন সমস্যায় পড়বেন। তো আপনাকে stackoverflow বা এই সম্পর্কিত বিভিন্ন ফেসবুক গ্রুপ সাব রেডিটে হেল্প নিতে হবে। তাই এ সম্পর্কিত বিভিন্ন গ্রুপ, কমিউনিটিতে যুক্ত হোন।
বেসিক কোডিং
প্রত্যেকটি প্রোগ্রামিং ল্যাংগুয়েজ এর কিছু বেসিক একই থাকে, যেমন variables, loops, conditionals, functions এগুলা সব ধরনের কোডিং ল্যাগুয়েজ এই প্রায় একই থাকে। তাই সবার আগে এই বেসিক জিনিস গুলো আপনাকে ভালোভাবে শিখে নিতে হবে। যেগুলো আপনি ইউটুবে সার্চ করলেই পেয়ে যাবেন। কি কি বেসিক শিখতে হবে তার একটা লিস্ট এইযে-
- Variables
- Data Types
- Operators
- Conditionals
- Loops
- Functions
- Input and Output (I/O)
- Arrays and Lists
- String Manipulation:
- Comments
- Error Handling
এই টপিক গুলো সবার আগে জেনে নিতে হবে যা প্রায় সব ধরনের প্রোগ্রামিং ল্যাগুয়েজ এর বেসিক বলা যেতে পারে।
এডভান্স টপিকগুলো
বেসিক টপিক গুলো জানা হয়ে গেলে এবার আপনাকে এডভান্স টপিক গুলো জানতে হবে। বিভিন্ন প্রোগ্রামিং ল্যাংগুয়েজ এর এডভান্স টপিকগুলো আলাদা আলাদা হয়ে থাকে আমি যে গুলো জানি সেগুলো এখানে উল্লেখ করলাম।
আপনি যদি ওয়েব ডেভেলপমেন্ট এর জন্য জাভাস্ক্রিপ্ট শিখেন তাহলে এর এডভান্স টপিক গুলো –
- Closures
- Asynchronous JavaScript
- Prototypes and Object-Oriented Programming (OOP)
- Event Loop and Concurrency Model
- ES6+ Features
- Web APIs and DOM Manipulation
- Promises and Async/Await
- Module Bundlers and Build Tools
- TypeScript
- Functional Reactive Programming (FRP)
- Server-Side JavaScript
আপনি যদি এপ, সফট ওয়্যার ডেভেলপমেন্ট এর জন্য কোনো কোডিং শিখেন তাহলে আপনার নিচের কনসেপ্ট গুলো এডভান্স টপিক হিসাবে থাকবে –
- Object-Oriented Programming (OOP)
- Data Structures
- Algorithm Design and Analysis
- Concurrency and Parallelism
- Design Patterns
- Memory Management
- Database Management
- Security and Encryption
আরো কিছূ কিছু কনসেপ্ট আছে যেগুলা কোন ল্যাংগুয়েজ শিখছেন তার ওপর ডিপেন্ড করে। মিডিয়া লেভেল পর্যন্ত শেখার পর ওগুলো আপনি নিজেই বুঝে যাবেন আর কি শিখতে হবে। এভাবে শেখা শুরু করুন।
প্র্যাকটিস
প্রোগ্রামিং হলো এমন একটা বিষয় যার কোনো কনসেপ্ট আপনি আজকে শিখবেন আর এমন হতে পারে কালকে ভুলে যাবেন। তাই আপনি যে কনসেপ্ট ই শিখবেন বার বার প্রাকটিস করতে থাকবেন। এভাবে শিখতে শিখতে নিজের অনেক গুলো প্রজেক্ট করবেন প্রাকটিস এর জন্য।
এভাবে শেখা হয়ে গেলে বেশ কিছু ভালো ভালো প্রজেক্ট বানিয়ে নিজের পোর্টফোলিও বানাবেন। তাহলে ভবিষ্যতে জব পেতে সুবিধা হবে।
প্রব্লেম সলভিং
প্রোগ্রামিং মানেই প্রব্লেম সলভিং, আপনি যে প্রোগ্রামিং ল্যাগুয়েজ নিয়েই কাজ করুন না কেনো প্রব্লেম সলভিং আপনাকে করতেই হবে এবং এতে এক্সপার্ট হতে হবে। আপনি যদি কোনো জব করতে চান তাহলে আপনার বেশীরভাগ সময় এই প্রব্লেম সলভিং এই কাটবে। তাই এটি ভালোভাবে বুঝুন এবং প্রতিনিয়ত প্রব্লেম সলভিং করে যান। leetcode এ প্রতিনিয়ত প্রব্লেম সলভ করে যান, যেকোনো ইন্টারভিউ তে আপনার এটি লাগবেই।
ইন্টারভিউ এর জন্য নিজেকে প্রস্তুত করে তুলুন
প্রোগ্রামার হয়ে অধিকাংশের স্বপ্ন থাকে গুগল, মাইক্রোসফট, অ্যাডোবি কিংবা এরকম বড় বড় টেক জায়ান্ট কোম্পানীতে চাকরি করার। কারন এসব কোম্পানীতে যেমন রয়েছে সৃজনশীল প্রতিভাকে স্পম্পূর্ণভাবে বিকশিত হতে দেওয়ার সুযোগ, তেমনি রয়েছে আকর্ষনীয় অংকের বেতন। কিন্তু এ শুধু আপনি একা নন, এ স্বপ্ন দেখে থাকেন বিশ্বব্যাপী কয়েক লাখ প্রোগ্রামার । তাই এসব কোম্পানীতে বাছাই প্রক্রিয়া বেশ জটিল। আপনার প্রোগ্রামার হওয়ার উদ্দেশ্য যদি হয় এসব কোম্পানীতে জয়েন করা, তবে আপনার স্কিল ডেভেলপমেন্ট, নেটওয়ার্কিং এর পাশাপাশি এসব কোম্পানীর নিয়োগ প্রক্রিয়া সম্পর্কে আগাম ধারনা রাখতে হবে এবং সে অনুযায়ী প্রস্তুতি গ্রহন করে রাখতে হবে। সাধারনত এ সকল কোম্পানীতে নিয়োগ এর ক্ষেত্রে তিন ধাপে ইন্টারভিউ হয়ে থাকে। প্রাথমিক আবেদনের পর অনলাইনে একটি স্ক্রিনিং ইন্টারভিউ এর মাধ্যমে অধিকাংশ প্রার্থীকে বাদ দেওয়া হয়। এরপর টেলিফোন কিংবা বর্তমানে অনলাইনে অন্য কোন উপায়ে একটি লম্বা সময়ব্যাপী ইন্টারভিউ হয়ে থাকে। তাতেও যদি প্রার্থী উত্তীর্ণ হয়, তাহলে সরাসরি অফিসে গিয়ে চূড়ান্ত পরীক্ষায় সিলেক্ত হতে হয়। কোম্পানী ভেদে এইসকলইন্টারভিউ এবং প্রশ্নের ধরন ভিন্ন ভিন্ন ধরনের হয়ে থাকে। তাই কেবলমাত্র প্রোগ্রামিং স্কিলের প্রতি মনোযোগ না দিয়ে, আপনার কাঙ্খিত কোম্পানীটির ইন্টারভিউ এর প্রসেস সম্পর্কে আগাম জেনে সে বিষয়ে প্রস্তুতি গ্রহণ করতে হবে। আপনার পরিচিত নেটওয়ার্ক বা ভার্সিটির কোন সিনিওর যদি এসকল কোম্পানীতে কর্মরত থেকে থাকেন তবে তাদের সাথে যোগাযোগ করতে হবে এবং তাদের পরামর্শ অনুযায়ী প্রস্তুতি গ্রহণ করতে হবে। এভাবে পরীকল্পনামাফিক এগোলেই আপনি আপনার লক্ষ্যে সফল হতে পারবেন আশা করি।
শেষকথা
প্রোগ্রামিং – যদি ভালো ভাবে এতে স্কিল্ড হতে পারেন আপনার ভবিষ্যত নিয়ে কোনো টেনশন ই থাকবেনা। তাই ভালোভাবে স্কিল গেইন করুন। এটি বর্তমান যুগের প্রেক্ষিতে সবচাইতে বেশি চাহিদাসম্পন্ন সেক্টরগুলোর একটি। আজকের এ লেখার উদ্দেশ্য প্রোগ্রামিং এর কোনো একাডেমিক বিষয় নিয়ে আলোচনা ছিলোনা, কিভাবে শিখবেন তা নিয়ে একটু লেখার চেষ্টা করেছি। আশা করি আপনার ভালো লেগেছে।
যদি পুরো লেখাটি পড়ে থাকেন, আপনাকে ধন্যবাদ। আমার উইকি এর সাথেই থাকুন, নতুন নতুন বিষয়ে জানতে থাকুন।