প্রযুক্তি এবং ক্যারিয়ার 🗽




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

বোঝার সুবিধার জন্য কম্পিউটার প্রোগ্রামিংকে আমরা দুটি প্লাটফর্মে ভাগ করতে পারি- ১. ওয়েব অ্যাপ্লিকেশন ডেভলপিং এবং ২. লোকাল অ্যাপ্লিকেশন ডেভলপিং। নবীনদের উদ্দেশ্যে পরামর্শ হলো, প্রথমে যেকোনো একটি প্লাটফর্মে নিজেকে দক্ষ করে তুলবেন।

১. ওয়েব অ্যাপ্লিকেশন ডেভেলপিং

প্লাটফর্ম পরিচিতি

এ প্লাটফর্মে মূলত সার্ভার অ্যাপ্লিকেশন তৈরি করা হয়। এই সকল অ্যাপ্লিকেশনগুলোর সুবিধা হলো, ইনস্টল না করেই গ্রাহক অ্যাপ্লিকেশনগুলো ব্যবহার করতে পারে। যেমন- ক্লাউড কনভার্টার একটি সার্ভার অ্যাপ্লিকেশন, যেখানে গ্রাহক বিভিন্ন ফাইল কনভার্ট করতে পারেন। আপনার কোম্পানির লোগো আপনি ফটোশপে তৈরি না করে সার্ভারের কোনো একটা অ্যাপ্লিকেশনেও করে নিতে পারেন। যেমন- ফ্রি লোগো ডিজাইন লোগো তৈরির জন্য একটি চমৎকার অ্যাপ্লিকেশন। আপনার প্রতিদিনের ব্যবহৃত ফেসবুক ও টুইটারও কিন্তু সার্ভার অ্যাপ্লিকেশন! এই যে এত এত ওয়েব সাইট, ব্লগ সাইট, ই-কমার্স সাইট প্রতিদিন দেখছেন সেগুলো বিভিন্ন সিএমএস (CMS) অ্যাপ্লিকেশন ব্যবহার করেই তৈরি করা হয়েছে। আর এই CMS অ্যাপ্লিকেশনগুলো হলো সার্ভার অ্যাপ্লিকেশন। যেমন- ওয়ার্ডপ্রেস, ধ্রুপাল, জুমলা, ও-কমার্স ইত্যাদি।


কাজের যোগ্যতা ও ক্যারিয়ারের শুরু

ওয়েব ডেভেলপার হিসেবে ক্যারিয়ার শুরু করার জন্য আপনাকে যে প্রাথমিক বিষয়গুলো জানতে হবে তা হলো HTML, CSS, JavaScript, jQuery, PHP, Bootstrap এবং SQL। একটি ওয়েব পেজকে একটি ঘরের সাথে তুলনা করে বলতে পারি, HTML ঘরের কাঠামো তৈরি করে। CSS ও Bootstrap ঘরের চমৎকার ডিজাইনের জন্য কাজ করে। JavaScript ও jQuery ঐ ঘরে বিভিন্ন টুল (যেমন- লাইট, ফ্যান, টিভি ইত্যাদি) যুক্ত করে ঘরকে সমৃদ্ধ করে তোলে। এক্ষেত্রে PHP হলো ঘরের সিকিউরিটি। আর SQL হলো ঘরের সিন্দুক। সিন্দুকে তথ্য রাখা, তথ্য নিয়ে আসা ও প্রয়োজন মতো তা ব্যবহার করার কাজটা PHP ও SQL যৌথভাবে করে থাকে। এছাড়াও বিকল্প আরও বেশ কিছু উপায় আছে। তবে এই আর্টিকেলে আমরা জটিলতায় যাবো না।

যাত্রা তবে শুরু হোক

এখন প্রশ্ন হলো, আমরা উপরের বিষয়গুলো কিভাবে শিখতে পারি? আমাদের কী কী যন্ত্রপাতি ও সফটওয়্যার লাগবে? উপরের বিষয়গুলো শিখতে আমরা কোনো কোচিংয়ে ভর্তি হতে পারি (যা ব্যয়বহুল) অথবা অনলাইনে পড়াশোনা করতে পারি। অনলাইনে পড়ার তিনটি ভাগ আছে- ১. ফ্রি স্কুল, ২. প্রিমিয়াম স্কুল ও ৩. ইউটিউব টিউটোরিয়াল।

ওয়েব ডেভেলপিং এর জন্য সবথেকে চমৎকার ফ্রি স্কুল হলো w3schools.com। এখানে একেবারে প্রাথমিক অবস্থা থেকে দক্ষ ওয়েব ডেভলপার হিসেবে নিজেকে গড়ে তুলতে পারবেন। এছাড়াও আরও একটি ফ্রি চমৎকার স্কুল হলো, javatpoint.com। প্রাথমিক অবস্থায় ইউটিউব টিউটোরিয়াল থেকে ভালো সেবা পেলেও ইউটিউব টিউটোরিয়ালের উপর নির্ভরশীল হয়ে পড়া ঠিক হবে না।

যন্ত্রপাতি বলতে পিসি থাকলে খুব ভালো হয়। অন্যথায় ওয়েব ডেভলপিংয়ের প্রায় সব বিষয় শেখার জন্য স্মার্টফোনই যথেষ্ট। পিসির জন্য যেসকল সফটওয়্যার লাগবে তা হলো একটি ভালো ব্রাউজার, টেক্সট এডিটর (Sublime Text), PHP ও SQL চর্চার জন্য XAMPP অ্যাপ্লিকেশন। পিসির বিকল্প হিসেবে অ্যান্ড্রয়েড ফোন বা ট্যাব ব্যবহার করতে চাইলে ব্রাউজার, টেক্সট এডিটর (anWriter), PHP ও SQL চর্চার জন্য Web Server PHP অ্যাপ্লিকেশনগুলো ব্যবহার করতে পারেন।

যেভাবে শুরু করবেন

প্রথমে HTML, তারপর CSS। তৃতীয় ভাষা হিসেবে শিখবেন JavaScript। এক্ষেত্রে JavaScript হবে আপনার প্রথম প্রোগ্রামিং ভাষা। তাই একটু সময় নিয়ে JavaScript এ নিজেকে দক্ষ করে তুলবেন। কারণ পরবর্তী PHP সহ সকল প্রোগ্রামিং ভাষায় এর ছায়া দেখতে পাবেন। তারপর jQuery বা Bootstrap যেকোনো একটা শুরু করতে পারেন। jQuery হলো JavaScript এর একটি ফ্রেমওয়ার্ক। JavaScript এর বড় বড় কাজগুলো এখানে খুব সহজেই করে ফেলা যায়। আর Bootstrap হলো CSS ও JavaScript এর একটি মিলিত ফসল। Bootstrap ব্যবহারে CSS এর বড় বড় কাজগুলো খুব সহজেই করে ফেলা যায়। এমতাবস্থায় আপনি PHP'র জন্য একেবারে প্রস্তুত। PHP-তে সময় কিছুটা বেশি লাগবে। অবশেষে SQL। এটা চোখের পলকে শেষ হয়ে যাবে। আন্তরিকতা ও পরিশ্রমের উপর ভিত্তি করে প্রাথমিক এই বিষয়গুলো শিখতে ১৬ – ৩০ মাস অবধি সময় লাগতে পারে।

২. লোকাল অ্যাপ্লিকেশন ডেভেলপিং

পূর্বকথা

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

প্লাটফর্ম পরিচিতি

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

কাজের যোগ্যতা ও ক্যারিয়ারের শুরু

যেহেতু লোকাল অ্যাপ্লিকেশনগুলো অপারেটিং সিস্টেমের উপর নির্ভরশীল, তাই আলাদা আলাদা অপারেটিং সিস্টেমে আলাদা আলাদা ভাষা বিভিন্ন সুবিধার জন্য প্রাধান্য পায়। পিসি অ্যাপ্লিকেশনের ক্ষেত্রে ভাষার কর্মদক্ষতা, গ্রাফিক্স ইউজার ইন্টারফেস (GUI: অ্যাপ্লিকেশনের যে অংশটি আমরা দেখতে পাই), ভাষা পড়া ও লেখার সুবিধা ইত্যাদি বৈশিষ্ট্যের উপর ভিত্তি করে ভাষা নির্বাচন করা হয়। পিসি অ্যাপ্লিকেশনের জন্য সর্বাধিক জনপ্রিয় তিনটি ভাষা হলো Python, Java ও C++। এছাড়াও উইন্ডোজ কম্পিউটারের জন্য .Net ফ্রেমওয়ার্ক এবং ম্যাক কম্পিউটারের জন্য Swift বেশ জনপ্রিয়। কাজেই আপনি যদি পিসি অ্যাপ্লিকেশন ডেভেলপার হিসেবে ক্যারিয়ার গড়ে তুলতে চান, তাহলে উপরের যেকোনো একটি ভাষা শিখেই প্রাথমিকভাবে কাজ শুরু করে দিতে পারেন। অফিস ম্যানেজমেন্ট জাতীয় অ্যাপ্লিকেশনের জন্য Python চমৎকার ভাষা, সিকিউরিটি ধরনের অ্যাপ্লিকেশনের জন্য (যেমন- এন্টিভাইরাস) Java এবং পিসি গেমের জন্য C++ অত্যন্ত চমৎকার।

অপরদিকে আধুনিক স্মার্টফোনের অ্যাপ্লিকেশন তৈরির ক্ষেত্রে অফিসিয়ালি নির্বাচিত ভাষাই অধিক জনপ্রিয়। কারণ অফিসিয়াল ভাষাই এক্ষেত্রে সর্বাধিক ভালো সার্ভিস দেয়। যেমন- অ্যান্ড্রয়েডের জন্য অফিসিয়াল ভাষা হলো Java। Java ছাড়াও বহু ডেভলপার Kotlin ব্যবহার করছেন। এছাড়াও C, C++ ও Python-ও ব্যবহার করা যায় অ্যান্ড্রয়েডের জন্য। অনুরূপভাবে উইন্ডোজ ফোন ও আইফোনের জন্য নির্বাচিত ভাষা হলো যথাক্রমে C# ও Swift। কাজেই আপনি যদি স্মার্টফোনের অ্যাপ্লিকেশন ডেভেলপার হিসেবে ক্যারিয়ার গড়ে তুলতে চান, তাহলে কোনো স্মার্টফোনের প্লাটফর্ম পছন্দ করে ঐ প্লাটফর্মের অফিসিয়াল ভাষা শিখেই ক্যারিয়ার শুরু করতে পারেন।

যাত্রা তবে শুরু হোক

আশা করি যারা সিদ্ধান্ত নেয়ার তারা ইতোমধ্যে সিদ্ধান্ত নিয়ে নিয়েছেন। এখন আমরা জানবো আমাদের কী কী যন্ত্রপাতি ও সফটওয়্যার লাগবে এবং কিভাবে আমাদের কাঙ্ক্ষিত ভাষাটি শিখতে পারবো। সফটওয়্যার ডেভেলপের জন্য একটি ব্যক্তিগত কম্পিউটার মোটামুটি বাধ্যতামূলকই ধরা যায়; সাথে দরকার ইন্টারনেট সংযোগ। ভাষা চর্চা ও অ্যাপ্লিকেশন তৈরির জন্য আমাদের ভালো একটি IDE লাগবে। পাশাপাশি একটি সহায়ক টেক্স এডিটরও বেশ গুরুত্বপূর্ণ। কোন প্লাটফর্মে কোন ভাষা দিয়ে কাজ করতে চাচ্ছেন তা লিখে গুগলে সার্চ করলেই ওই প্লাটফর্ম ও ভাষার জন্য ভালো IDE পেয়ে যাবেন। যেমন- Python, Java ও C++ এর পিসি অ্যাপ্লিকেশনের জন্য Eclipse IDE বেশি জনপ্রিয়। অপরদিকে .Net এর জন্য Microsoft Visual Studio, অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য জনপ্রিয় Android Studio।

এখন প্রশ্ন হলো- কিভাবে শিখবেন? এক্ষেত্রেও আপনি কোনো কোচিংয়ে ভর্তি হতে পারেন অথবা অনলাইন থেকে শিখতে পারেন। ইউটিউবে উপরের প্রতিটি ভাষার উপরই টিউটরিয়াল সিরিজ পাবেন।

যেভাবে শুরু করবেন

লোকাল অ্যাপ্লিকেশনের প্রায় প্রতিটি ভাষাই উঁচু লেভেলের প্রোগ্রামিং ভাষা। তাই এই জাতীয় ভাষা শেখার পূর্বে প্রোগ্রামিং ভাষা সম্পর্কে পূর্ব অভিজ্ঞতা থাকতে হয়। ফলে শুরু করার জন্য C একটি চমৎকার ভাষা। অবশ্য আপনি চাইলে JavaScript থেকেও শুরু করতে পারেন। সেক্ষেত্রে XML এর সাথে অন্য সকল প্রোগ্রামিং ভাষার সম্পর্কের একটি স্পষ্ট ধারণা পাবেন। অতঃপর আপনি যেকোনো হাই লেভেল প্রোগ্রামিং ভাষা শেখার জন্য প্রস্তুত। উল্লেখ্য, নির্দিষ্ট কোনো অপারেটিং সিস্টেমের জন্য নির্দিষ্ট কোনো ভাষা শিখে আপনি সফল অ্যাপ্লিকেশন তৈরি করে ফেলবেন এমনটা ভাবা খুব একটা ঠিক হবে না। প্রোগ্রামিং ভাষাটাই হচ্ছে এক্ষেত্রে সবথেকে বড় ধাপ! পাশাপাশি XML, SQL ও সার্ভারের সাথে যোগাযোগের জন্য PHP'র মতো কোনো সার্ভার ভাষা সম্পর্কেও জানতে হবে। এক্ষেত্রে আন্তরিকতার সাথে নিয়মিত পড়াশোনা করলে ২০–৩০ মাসের মধ্যে অ্যাপ্লিকেশন ডেভেলপার হিসেবে আত্মপ্রকাশ করতে পারবেন।

অর্থ উপার্জন

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


Powered by Blogger.