যেভাবে অ্যাপল পুস নোটিফিকেশান ডেভেলপ করবেন

প্রথমেই অ্যাপল ডেভেলপার অ্যাকাউন্ট এ লগইন করবো। এর জন্য http://developer.apple.com ভিসিট করি। Account মেনুতে ক্লিক করি। User ID এবং password দিয়ে লগইন করি। যে Overview পেজটি প্রদর্শিত হোল তার মাঝে যে অংশে “Certificates, Identifiers & Profiles” লেখা আছে সেখানে ক্লিক করি। আমরা এখন একটা ডেভেলপার একাউন্ট করবো Push Notification এর জন্য। কারণ আমরা ধরে নিচ্ছি যে, আমাদের iPhone ডিভাইসটি USB দিয়ে Xcode এ connected এবং আমরা পুস নোটিফিকেশান টেস্ট করার জন্য একটি সার্টিফিকেট তৈরী করবো। তবে যদি Test Flight বা Beta Tester হই অথবা add hoc এর মাধ্যমে অ্যাপ distribute করেতে চাই তাহলে Production Certificate ব্যবহার করতে হবে।

আমরা এখন Developer সার্টিফিকেট তৈরী করবো কেননা Xcode এ আমাদের iPhone connected এবং আমরা এর মাধ্যমেই Apple Push Notification (APN) টেস্ট করবো।

প্রথমেই আমাদের একটি App Identifier তৈরী করতে হবে। যার মাধ্যমে APN আমাদের অ্যাপ চিনতে পারবে। তো বামদিকের সেকশান থেকে Identifiers এর নিচে App IDs ক্লিক করি। ডান দিকে প্লাস (+) আইকন এ ক্লিক করি। App ID Description এ পছন্দ মতো তবে অর্থবহ একটা নাম দিই। তারপর bundle ID. এই bundle identifier টি আসলে সেটাই যা আমরা Xcode এর প্রোজেক্ট প্রোপার্টিজে সেট করেছি। Xcode থেকে bundle identifier টি copy করে এখানে paste করি। এখন সবচেয়ে গুরুত্বপূর্ণ অংশ। নিচের App Service সেকশানে অবশ্যই আমাদের Push Notifications সিলেক্ট করতে হবে। তারপর Continue বাটন এ ক্লিক করি। তারপর Register এ ক্লিক করি। সবশেষে Done ।

চলুন এবার Developer সার্টিফিকেট তৈরী করা যাক।
বা দিকের Certificate সেকশানের নিচে Development এ ক্লিক করি। এখন ডান দিকে প্লাস (+) আইকনে ক্লিক করি। এখানে আমরা এখন Apple Push Notification service SSL (Sandbox) সিলেক্ট করবো। এখানে নোটিস টি খেয়াল করলে দেখা যাবে স্পষ্ট লেখা আছে যে এটা নোটিফিকেশান সার্ভার এর সাথে Apple Push Notification এর সংযোগ করবে। এখানে নোটিফিকেশান সার্ভার মানে আমরা গুগল এর Firebase Cloud Messaging (FCM) ধরে নিচ্ছি। এছাড়াও প্রত্যেক APN রিলেটেড অ্যাপ এর জন্য আলাদা Certificate তৈরী করেতে হবে। OK এখন নিচে Continue বাটন এ ক্লিক করবো। এরপর আমাদের App ID সিলেক্ট করবো যেটা এইমাত্র আগের স্টেপগুলোতে করলাম। আবার Continue বাটন এ ক্লিক করি। এখন এই স্টেপটির জন্য প্রথমেই আমাদের Mac থেকে CSR ফাইল তৈরী করে নিতে হবে। প্রসেস এখানে লেখাই আছে। আমরা exactly সেটাই করবো।

এর জন্য প্রথমেই Keychain Access যাই। এরপর বামে Keychain Access মেনুতে ক্লিক করি, এরপর Certificate Assistant এবং Request a Certificate from Certificate Authority .. ক্লিক করি। ইমেইল এড্রেস, নেম দিয়ে Save to disk এবং Let me specify key pair information টিক দিই। Continue করি এবং ডেক্সটপ এ ফাইল টি save করি। যদিও ডেক্সটপ বাদে যেকোনো যায়গায় save করা যেতে পারে। আবার Continue এবং পরিশেষে Done ক্লিক করি। এখন Keychain Access ক্লোজ করে দেয়া যেতে পারে।
এবার ব্রাউজার এ ফিরে যাই এবং Continue বাটন এ ক্লিক করে পরের পেইজে সদ্য তৈরী করা CSR ফাইলটি দেখিয়ে দেই এবং Continue বাটন এ ক্লিক করি।
পরের পেইজে Donwnload লেখা বাটন এ ক্লিক করে আমাদের Certificate টি ডাউনলোড করে নেই। ডাউনলোড শেষ হলে ফাইলটিতে ডাবল ক্লিক করলে সেটি Keychain Access এ Add হয়ে যাবে।

এরপরে আমাদের Google FCM এ কিছু কাজ করতে হবে। ধরে নিচ্ছি আগে থেকেই iOS এর জন্য একটা প্রোজেক্ট করা আছে। যার ID, Apple APN এ দেয়া bundle identifier এর মতো একদম একইরকম। এটা এতটাই ইম্পরট্যান্ট যে একরকম না হলে কাজ করবে না।
এখন Firebase এ যাই। Project নেইম এর পাশে গিয়ার আইকন এবং Project Setting এ ক্লিক করি। এরপর উপরের ট্যাব থেকে Cloud Messaging সিলেক্ট করি। এখন নিচের সেকশানে Development APN Certificate অংশে Upload Certificate ক্লিক করি। এই পপ আপ উইন্ডো তে দেখা যাবে এটা একতা .p12 টাইপ ফাইল একসেপ্ট করে। আমরা তো এ ধরণের কোন ফাইল তৈরী করিনি। চলুন প্রথমেই সেটা করে ফেলি।

আবার Keychain Access ওপেন করে আমাদের সার্টিফিকেট টি খুঁজে বের করি। সেটা এক্সপান্ড করে আমাদের দেয়া নামসহ যে Key দেখাবে এর উপর right ক্লিক করে export করি। আমি ডেক্সটপে Certificate নামেই ফাইলটি সেভ করলাম। এখানে password এর যায়গায় নিজের ইচ্ছেমত password দেয়া যাবে এবং সেটা লিখে বা মনে রাখতে হবে। এই password একটু পরেই আমাদের লাগবে। এরপরে Computer এর password চাইবে, এখানে কম্পিউটারের password দিয়ে Always Allow বাটন এ ক্লিক করি।
এখন Firebase এ আবার ফিরে যেয়ে আমাদের সদ্য তৈরী করা .p12 ফাইলটি দেখিয়ে দেই এবং .p12 ফাইল তৈরী করার সময় যে password দিয়েছি সেটা দেই। মনে রাখতে হবে এটা কম্পিউটার এর password নয় বরং যেই password টা আমাদের মনে রাখার কথা ছিল সেইটা।

তো এই ছিল APN সার্টিফিকেট তৈরীর পদ্ধতি। তবে এখনও আমারা Push Notification এর জন্য পুরপুরি তৈরী নই। কারণ FCM কে অ্যাপ এ রেজিস্টার করতে হবে। আজ এ পর্যন্তই, বাকিটা সামনের ব্লগে থাকবে।

ওয়েব ডিজাইন কি? নতুনদের জন্য নির্দেশনা

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

** যদিও শাব্দিক অর্থ ভিন্ন তবু ওয়েব ডিজাইন এবং ডেভেলপমেন্ট একি অর্থে ব্যাবহার করে এর শাব্দিক অর্থ লঙ্ঘন করা হচ্ছে।আপনি যদি বলেন আমি ওয়েব ডিজাইনার তাহলে ধরা হয় আপনি ডেভেলপমেন্ট এর কাজও জানেন।আসল অর্থ হল-ওয়েব ডেভেলপার=যে প্রোগ্রামার,কোডিং করে,অ্যাপ্লিকেশন তৈরী করে।আর ওয়েব ডিজাইনার=যে ডিজাইন করে,সাইটের বাহ্যিক রুপ কেমন হবে তা তৈরী করে,কোডিং করেনা।

প্রত্যেক ওয়েব ডেভেলপার এর নিচের বিষয়গুলি জানা উচিৎ

  • কিভাবে www কাজ করে
  • এইচটিএমএল
  • সিএসএস
  • জাভাস্ক্রিপ্ট
  • এক্সএমএল
  • সার্ভার স্ক্রিপ্টিং ল্যাংগুয়েজ
  • SQL দিয়ে ডেটাবেস বানানো

WWW – World Wide Web

WWW হচ্ছে একটা কম্পিউটার নেটওয়ার্ক যা সারা বিশ্বে ছড়ানো। WWW কেই বলা হয়ে থাকে Web.

এই ওয়েবে কম্পিউটারগুলো একটি অপরটির সাথে কিছু নিয়ম ও ভাষা ব্যাবহার করে যোগাযোগ করে থাকে।

W3C (The World Wide Web Consortium) এই ভাষা  এবং নিয়মগুলো তৈরী করে যাচ্ছে।

এইচটিএমএল- ওয়েবের ভাষা

এইচটিএমএল হচ্ছে ওয়েবের ভাষা, প্রত্যেক ওয়েব ডেভেলপারকে এর মৌলিক বিষয়াদি জানা চাই।

এইচটিএমএল এ  “markup tags” ব্যাবহার করা হয় ওয়েব পেজের লেআউট ও কনটেন্ট তৈরীর জন্য।

এইচটিএমএল tag <h1> ইংগিত করে এটা একটা header,এবং <p> একটা Paragraphp কে ইংগিত করে।

 

সিএসএস- ক্যাশক্যাডিং স্টাইল শিট

এটা দিয়ে এইচটিএমএল page কিভাবে দেখাবে তা ঠিক করা যায়।

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

জাভাস্ক্রিপ্ট- ক্লাইন্ট সাইড স্ক্রিপ্টিং

জাভাস্ক্রিপ্ট ক্লাইন্ট সাইড স্ক্রিপ্টিং (ব্রাউজার স্ক্রিপ্টিং) এর জন্য ব্যাবহৃত হয়।এটা দিয়ে পেজে ডাইনামিক কনটেন্ট যোগ করতে পারবেন।

একটা জাভাস্ক্রিপ্ট statement দেখতে এমন: document.write(“<p>” + date + “</p>”)

 

এক্সএমএল- এক্সটেনসিবল মার্কআপ ল্যাংগুয়েজ

এটা এইচটিএমএল এর পরিবর্তে ব্যাবহৃত হয় এমন নয় বরং এটা ডেটা বহন ও সংরক্ষন এর জন্য।

 

সার্ভার সাইড স্ক্রিপ্টিং

সার্ভার সাইড স্ক্রিপ্টিং হচ্ছে “programming” ওয়েব সার্ভারের জন্য।

পূর্নাঙ্গ ডাইনামিক কনট্ন্টে তৈরীর জন্য এটা জানতে হবে।Server-side scripting দ্বারা আপনি ডেটাবেস থেকে ডেটা তুলে এনে এইচটিএমএল page দেখাতে পারেন।(অনেক কাজের মধ্যে এটা একটা)

SQL দিয়ে ডেটাবেস বানানো

Structured Query Language (SQL) দিয়ে যেকোন ডেটাবেসে একসেস নিতে পারেন যেমন MySQL,Oracle ইত্যাদি।

এটা এমন একটা ইন্জিন যেটা দিয়ে ওয়েবে ডেটাবেসের সাথে তথ্য বিনিময় করা যায়।

 

জুমলা, ওয়ার্ডপ্রেস, ড্রুপাল এসব কি?

এসব হচ্ছে CMS (Content Management System) এখানে সাধারনত সবকিছু তৈরী করা থাকে(PHP MySQL দিয়ে) আপনি শুধু নিজের মত করে এডিট করবেন।আপনি যদি কোন প্রোগ্রামিং ল্যাংগুয়েজ নাও জানেন তবুও এসব দিয়ে ডাইনামিক সাইট তৈরী করতে পারেন তবে যে প্রোগ্রামিং ল্যাংগুয়েজ জানে সে এর কোড এডিট করে যত সুন্দর করতে পারবে আপনি তা পারবেননা।

পিএইচপির ৫টি চমকপ্রদ তথ্য

১. পিএইচপির বর্তমান ভার্সন হল ৫.৬ আর এ বছরের শেষের দিকে আসছে পিএইচপি ৭ ভার্সন। এ ভার্সনের প্রধান দুটি ফিচার হল

ইউনিকোড সাপোর্ট: পিএইচপির নতুন ভার্সনে বাংলাতেও ভেরিয়েবল ফাংশন ইত্যাদি লেখা যাবে। অর্থ্যাৎ পিএইচপি এখন ইউনিকোড সাপোর্টেড হতে যাচ্ছে।

দ্রুততা: আগের থেকে পিএইচপির এই ভার্সনের পারফরমেন্স প্রায় ২ গুন হয়ে যাবে। ফেসবুকের হিপহপ কমপাইলারের মত প্রযুক্তি থাকছে এখানে। একটা কনফারেন্সে পিএইচপির মুল ৩ জন নির্মাতার মধ্যে ১জন বলেছেন “ফেসবুকের হিপহপ আমাদের প্রযুক্তিটির competitor হবে

 

২. পৃথিবীর সর্বোচ্চ উদ্ভাবনী ক্ষমতাসম্পন্ন ব্যাক্তিদের মধ্যে ২ জন পিএইচপির নির্মাতা, অ্যান্ডি গাটম্যান এবং রাসমাস লার্ডফ (MIT রিপোর্ট অনুযায়ী)। তবে মজার ব্যাপার হল এদের একজনের লেখা পিএইচপির একটি বই আছে (নাম power php programming) তবে সেটা বেশি চলেনা।

 

৩. পিএইচপি দিয়েও ডেস্কটপ এপ্লিকেশন বানানো যায়। অন্যান্য ওয়েব ল্যাংগুয়েজের মত পিএইচপিরও একটা ল্যাংগুয়েজ bindings আছে GIMP toolkit এর জন্য।gtk.php.net এ আরও বিস্তারিত আছে।

 

৪. বর্তমানে পৃথিবীতে প্রায় ৪০ ভাগ ওয়েবসাইট, ওয়েব এপ্লিকেশন পিএইচপি দিয়ে বানানো, অন্যান্য সব ল্যাংগুয়েজ মিলে বাকি অংশ। পৃথিবীর বিখ্যাত যেসব কোম্পানী পিএইচপি ব্যবহার করে তাদের মধ্যে আছে yahoo (yahoo bookmark, yahoo answers, feedback এসব পিএইচপি দিয়ে বানানো), magento (পৃথিবীতে যেসব এন্টারপ্রাইজ লেভেলের ইকমার্স সাইট দেখতেছেন এগুলির বেশির ভাগ ম্যাজেন্টো দিয়ে বানানো, ম্যাজেন্টো CMS টা আবার জেন্ড ফ্রেমওয়ার্ক দিয়ে বানানো), wikipedia, facebook, wordpress ইত্যাদি।

 

৫. আউটসোর্সিং সাইট যেমন ওডেস্ক (এখন নাম হয়েছে আপওয়ার্ক), ফ্রিল্যান্সার ইত্যাদিতে প্রায় ৫০০ ধরনের কাজ পাওয়া যায়। এর মধ্যে ৭০% ভাগেরও বেশি পিএইচপির কাজ।

প্রোগ্রামিং শেখার কিছু গাইডলাইন

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

 

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

** ইংরেজী বই/সাইট হলে অ্যামাজন এবং বিভিন্ন ব্লগে সেই সাইট/বইয়ের র‌্যাংকিং দেখুন, রেটিং দেখুন আর বাংলা হলে বিভিন্ন সাইটে ওয়েব ডিজাইন ডেভেলপমেন্টের জন্য বেশির ভাগ রিকমেন্ডেশন কোন সাইটের দিকে এসব দেখে ২/১ টি সাইট/বই মুল লার্নিং stuff হিসেবে নির্নয় করুন।

** ভিডিও টিউটোরিয়াল এর দিকে ঝোক বেশি হলে সর্বনাশ। যত টেক্সট টিউটোরিয়াল পড়া এবং তৎক্ষনাৎ সেটা প্রাকটিস করার ঝোক বেশি হবে ততই প্রোগ্রামিং শেখার সময় ক্ষুদ্র হয়ে যাবে এবং এটা ভাল লক্ষন।


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

** ফেসবুকের লাইকের সংখ্যা এবং অ্যালেক্সা র‌্যাংকিং দেখে কখনই কোন সাইটের ব্যাপারে সিদ্ধান্ত নিয়েন না। কয়েকশ ডলার খরচ করলেই ফেসবুকে লাখ লাখ লাইক যোগাড় হয়ে যায়। আর অ্যালেক্সার র‌্যাংকিং কিছুটা ভূয়া।

প্রোগ্রামিং শিখতে চান কিন্তু CSE ব্যাকগ্রাউন্ড নয়, কি করবেন?

অনেকে ভাবেন পড়াশোনার পাশাপাশি প্রোগ্রামিং শিখে নেব এরপর ফ্রিল্যান্সিং করে হাজার হাজার ডলার কামাব। প্রথমেই বলে নেই পড়াশোনার পাশাপাশি প্রোগ্রামিং শিখতে পারবেন না, প্রোগ্রামিং শেখার পাশাপাশি পড়াশোনা করতে পারেন।

 

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

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

যারা CSE তে পড়ে তারা tiger. আর tiger সাথে fight দিতে হলে tiger ই হতে হবে।

 

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

 

এমনকি দেশে বিদেশের অনেক প্রোগ্রামারের নাম আমি বলতে পারি যাদেরকে একনামে চিনবেন যেমন ফেসবুকের নির্মাতা মার্ক জুকারবার্গ হাভার্ড বিশ্ববিদ্যালয়ে CSE সংশিষ্ট একটি বিষযে পড়া শুরু করেছিলেন কিন্তু শেষ করেন নি। বিল গেটসের নাম না জানে এমন কে আছে। মাইক্রোসফটের মালিক সেও পড়াশোনা শুরু করে শেষ করেনি। এরুপ অনেক আছে।

এসব দেখে পড়াশোনা আবার ছেড়ে দিয়েন না তবে প্রোগ্রামিং শিখতে চাইলে এটাকে passion বানাতে হবে। কোড করে মজা পেতে হবে।

কেন পিএইচপি শিখবেন? কেন পিএইচপি বিখ্যাত?

পিএইচপি ল্যাংগুয়েজটি পৃথিবীতে মাত্র কয়েক বছর হয় এসছে। পিএইচপিকে “Big Boys” ল্যাংগুয়েজ বলা হয় পিএইচপি৫ ভার্সন আসার পর থেকে যেখানে জাভা, সি এসব ল্যাংগুয়েজকে অনেক আগে থেকে “Big Boys” বলা হত। পিএইচপি৫ ভার্সন এসছে ২০০৪ সালে। এসেই বাজিমাৎ। বর্তমানে পৃথিবীতে প্রায় ৪০ ভাগ (প্রায় ২৫০ মিলিয়ন সাইট – ২০১৩ পর্যন্ত) ওয়েব এপ্লিকেশন (সাইট) একা পিএইচপিতে তৈরী বাকি সব ল্যাংগুয়েজ মিলে ৬০ ভাগ। হুট করে এসে এত বিখ্যাত হবার কারন আছে..

. প্রায় সব ডেটাবেস সমর্থন করে : মুল ৫ টি ডেটাবেস সহ (Oracle, MySQL, PostgreSQL, SQLServer, MongoDB) প্রায় সব ডেটাবেস দিয়ে পিএইচপির কাজ করা যায়। যেকোন ডেটাবেস integrate করা তেমন কঠিন নয় বরং বহুল ব্যবহৃত ডেটাবেসগুলির ড্রাইভার পিএইচপিতে অটোমেটিক সেট করাই আছে।

. পিএইচপি ইন্জিন মানুষের ব্রেইনের মত : অন্যান্য ল্যাংগুয়েজ এর তুলনায় পিএইচপির ইন্জিন বেশি বুদ্ধিমান। এটা এভাবে যে এখানে ডেটা টাইপ ডিক্লেয়ার করতে হয়না সে নিজেই নিজেই ডেটা দেখে বুঝতে পারে এটা কোন ধরনের ডেটা (loosely typed language)। এছাড়া এখানে টাইপ কাস্ট করা যায় ফলে অপ্রত্যাশিত ভুল হয়না।

. সাপোর্ট এবং কমিউনিটি : বেশ ঘন ঘনই পিএইচপির আপডেট বের হচ্ছে এবং খুব দ্রুতই নতুন নতুন ফিচার যোগ করছে। এছাড়া পিএইচপির ব্যবহারকারী তথা কমিউনিটি অনেক বড়। অনেক। যেকোন সমস্যা হলে কোন ফোরামে প্রশ্ন দিলে যত তারাতারি সারা পাবেন অন্য ল্যাংগুয়েজে তা পাবেন না।

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

বর্তমানের পৃথিবীর সব বড় ওয়েব প্রজেক্টে পিএইচপি ব্যবহার হচ্ছে (যেমন ফেইসবুক, ম্যাজেন্টো ইত্যাদি) এবং পিএইচপি ৫ এ OOP এর পূর্নাঙ্গতা লাভ করাতে কোটি কোটি লাইন কোড লিখেও মেইনটিনেন্স এবং কোড রিফ্যাকটরিং ঝামেলার হচ্ছেনা। আরেকটা বড় সুবিধা হচ্ছে প্রজেক্টে সময় কম লাগে ফলে খরচ কম কিন্তু কাজ বেশি হয়।

. ইহূদী ডেভলপার : পৃথিবীতে সবচেয়ে ট্যালেন্ট হচ্ছে ইহূদীরা। পৃথিবীর সব বড় বড় আবিষ্কার এবং প্রজেক্ট দেখবেন এদের তৈরী। ফেসবুকের জুকারবার্গ কিংবা পারমানবিক বোমার আবিষ্কারক আইনস্টাইন এরা ইহূদী। এমনকি বর্তমানেও পৃথিবীর সব বিখ্যাত বিশ্ববিদ্যালয়ের প্রফেসর, গবেষক বেশিরভাগ ইহূদী। PHP এরও জন্মদাতা এন্ডি গাটম্যান, জিভ সুরাস্কি এবং আরো একজন এরা ইহূদী।

ইহূদীরা কেন এত ট্যালেন্ট এর কারন হিসেবে অনেক কথা প্রচলিত আছে, অনেকে বলে থাকে এরা মুসা (আ:) এর অনুসারী ছিল এবং এরাই ঐ জাতি যাদেরকে আল্লাহ জান্নাতের খাবার (খাবারটির নাম মান্না সালওয়া) খাইয়েছিলেন প্রায় ৪০ বছর। এমনকি ইতিহাসেও এমনটিই লেখা আছে। ধারনা করা হয় যেহেতু বর্তমান ইহূদীরা এদেরেই বংশধর এবং জান্নাতের খাবার খাওয়াতে এদের মেধা সাধারনের চেয়ে বেশি।

 

প্রোগ্রামার হতে ৫টি চাঞ্চল্যকর টিপস

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

 

১. যখন শিখবেন তখনি প্রাকটিস : ধরুন আপনি এখন for লুপের টিউটোরিয়াল পড়লেন তো এখনই এ সংক্রান্ত ছোট ছোট প্রবলেম google থেকে বের করে নিজে নিজে সমাধান করুন যেমন সংখ্যার পিরামিড বানান কিংবা sql এর WHERE, Sub Query পড়লেন তো টেবিল থেকে দ্বিতীয় সর্বোচ্চ মান বের করার চেষ্টা করুন ইত্যাদি।

 

২. সিএমএস পরে বরং raw কোড আগে : যেকোন প্রোগ্রামিং শিখতে চান না কেন আগে সেই ল্যাংগুয়েজ দিয়ে একটা নিজে নিজে প্রজেক্ট বানান। অবশ্যই সিএমএস দিয়ে নয় বরং raw কোড লিখুন। পিএইচপি শেখার সুত্র হচ্ছে “বসে যান এবং একটা প্রজেক্ট তৈরী করুন”।

 

৩. মানসিক স্থিরতা (Mental Stability) : প্রোগ্রামিং শেখার পূর্বশর্ত হল ধৈর্য্য। লম্বা সময় একটা সমস্যার পিছনে মনযোগ ধরে রাখতে পারতে হবে। ধরুন দুটি ছেলের একজন average talent তবে মানসিক স্থিরতা আছে আরেকজন খুব talent তবে brain scattered মানে মানসিক স্থিরতা নেই। এখন দুজনকেই একটি math solve করতে দিলে কে আগে সমাধান করবে? অবশ্যই যার মানসিক স্থিরতা আছে। সন্দেহ হলে পরীক্ষা করে দেখুন।

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

যেভাবে মানসিক স্থিরতা আনতে পারেন:
===========================
অনেক পদ্ধতি আছে তবে একটা কার্যকরী নীতি বিয়ে করুন। বিয়ে করলে মানসিক স্থিরতা আসে এটাও বহুল প্রচলিত। বিবাহিতদের লৌকিকতা কম থাকে এবং এজন্য তাদের আউটপুট বেশি হয়। সম্ভবত এজন্য অনেক সফটওয়ার ফার্মে “বিবাহিত হতে হবে” এমন শর্ত জুড়ে দেয়।

৪. ভাল প্রোগ্রামারদের সংস্পর্শে আসুন : প্রোগ্রামারদের সাথে ওঠাবসা করুন, তাদের কথা শুনুন, তাদের প্রোফাইল দেখুন। এজন্য বিভিন্ন সময় এমনসব কর্মশালা বা কনফারেন্সে যাওয়া ভাল যেখানে বড় বড় বা ভাল প্রোগ্রামার রা লেকচার দেন।

৫. যাদের ব্যাকগ্রাউন্ড CSE নয় : CSE তে পড়েন না এমন কারো যদি প্রোগ্রামিং শেখার আগ্রহ থাকে প্রথমেই অর্থনৈতিক স্বাধীনতা প্রয়োজন। ২-২.৫ বছর কঠোর পরিশ্রম করা লাগতে পারে তবে পকেটে কোন টাকা ঢুকবেনা। ইনস্টান্ট টাকা কামানোর সুযোগ এই জগতে নেই।

প্রোগ্রামিং এ মনোযোগ ধরে রাখতে ৩টি কৌশল

প্রোগ্রামিং করার সময় ধৈর্য্য ধরে রাখাই একটা চ্যালেন্জ। লম্বা সময় সমস্যা নিয়ে চিন্তা করে একদম সমস্যার ভিতরে ঐ সময় পর্যন্ত থাকতে হয়, যতক্ষন সমাধান না হয়। এই আর্টিকেলে কিছু টিপস দিচ্ছি, প্রয়োগ করে দেখতে পারেন। কাজ হয়।

 

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

 

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

 

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

 

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

কেন প্রোগ্রামিং কে ক্যারিয়ার হিসেবে নিবেন??

যেকোন একটা প্রোগ্রামিং ল্যাংগুয়েজ ভালভাবে শিখতে বেগ পেতে হবে ঠিকই তবে এর পরিনতি সুস্বাদু। প্রোগ্রামার এর চাহিদা পৃথিবীতে কখনই কমবেনা বরং দিনদিন সব কিছুই অটোমেটেড তথা মেশিন ভিত্তিক হয়ে যাচ্ছে। বাংলাদেশও পিছিয়ে নেই। প্রত্যেকটি ডিডিজটাল সিস্টেমে সফটওয়্যার বাধ্যতামূলক আর তাই প্রোগ্রামারও আবশ্যক। প্রোগ্রামিং “ক্যারিয়ার” হিসেবে কেন রোমাঞ্চকর তার ১০০ টারও বেশি কারন দেখাতে পারি। নিচে কয়েকটি আলোচনা করা

 

কারন ১ : প্রোগ্রামিং এমন একটা জিনিস, ভালভাবে শিখলে হিরো। এটা কোন খেলা নয় যে আজকে ভাল খেললেন তো হিরো, কাল ফর্ম নেই তো জিরো। কোডিং শেখাটা সময়সাপেক্ষ এবং অনেক ধৈর্য্যের ব্যাপার। মনে হতে পারে এতদিন ধরে শিখছি কিন্তু আউটপুট তো জিরো। এই ZERO টেম্পরারি বাট শিখে গেলে HERO পার্মানেন্ট।

 

কারন ২ : যেকোন একটা ল্যাংগুয়েজ ভালভাবে শিখলেই হবে, তবে ল্যাংগুয়েজটি মেইনস্ট্রিম ল্যাংগুয়েজ হতে হবে যেমন জাভা, সি, পিএইচপি, পাইথন কিংবা এরুপ কোন ল্যাংগুয়েজ। ১টা ভালভাবে শেখার কথা এজন্য বললাম কারন পৃথিবীর সব মেইনস্ট্রিম ল্যাংগুয়েজ একই শুধু সিনট্যাক্স এবং টুকিটাকি এটা সেটা পার্থক্য। তাই যেকোন সময় ল্যাংগুয়েজ switch করা মাত্র ১ সপ্তাহের ব্যাপার। আপনি যদি একটা ল্যাংগুয়েজ এ এক্সপার্ট হন তাহলে এরপর যেকোন ল্যাংগুয়েজ শিখতে ১ সপ্তাহের বেশি লাগবেনা। তবে হ্যা নতুন যে ল্যাংগুয়েজ শিখলেন সেই ল্যাংগুয়েজের কোন এক্সপার্টের সাথে আপনার শুধু কিছু অভিজ্ঞতার পার্থক্য থাকবে সেটাও দ্রুত রিকভার করা যায়।

 

কারন ৩ : সবচেয়ে চাঞ্চল্যকর বিষয় হচ্ছে এই সেক্টরে সার্টিফিকেটের তুলনায় ট্যালেন্ট এবং যোগ্যতার মুল্য বেশি। কাজ জানেন তো ডিগ্রী ছাড়াই হিরো যেমন জুকারবার্গ কিংবা বিল গেটসের কথা ভেবে দেখুন। আর কাজ না জানলে ডিগ্রী থাকলেও হয়রানি।

 

কারন ৪ : চাকরি যদি নাও করেন তবুও নিজেই একটা ইকমার্স প্রজেক্ট বাজারে ছেড়ে দিলেই তো এরপর শুধু মার্কেটিং এর কাজ, তারপর বসে বসে খাও।

কাজেই প্রোগ্রামিং কে ক্যারিয়ার বানান, ২/২.৫ বছর চ্যালেন্জ face করুন এরপর পাবলিকের টাকা আপনার পকেটে ঢুকান।

আউটসোর্সিং শিখতে চাইলে প্রথমেই যা জানা প্রয়োজন

. থিংক ট্যাংক হতে হবেপ্রফেশনাল জীবনে প্রতিদিন আপনাকে নতুন নতুন প্রবলেম সলভ করতে হবে। কাজেই পরনির্ভরশীলতা শূন্যতে আনতে হবে, মস্তিস্কের সর্বোচ্চ ব্যবহার করতে হবে। novice টাইপের প্রশ্ন করা যাবেনা যেমন “wrox পাবলিকেশনের অমুক বইটা নীলক্ষেতে কোথায় পাওয়া যাবে?” নীলক্ষেত ধানক্ষেতে কি? কোডক্ষেতে পড়ে থাকতে হবে। তাহলেই কাজ শিখবেন। চিন্তা করুন এই গুগল এবং stackoverflow থেকে সার্চ করে মানুষ কোটি কোটি ডলারের প্রজেক্ট করতেছে আর আমি কেন সার্চ দিয়ে একটা সামান্য বই বের করতে পারতেছিনা। হালুয়া খেতেই যদি দাত ভাঙ্গে, রুটি খাবেন কিভাবে??

 

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

 

. কিভাবে ফোরামে প্রশ্ন করবেননিয়ম হচ্ছে যেকোন সমস্যায় পড়লে সেটা সলভ করার জন্য সম্ভ্যাব্য সকল চেষ্টা করতে হবে। কয়েক ঘন্টা সার্চ করলে, R & D করলে অবশ্যই সমাধান হবে। এরপরেও যদি না হয় তখন গিয়ে ফোরাম, stackoverflow ইত্যাদিতে গিয়ে প্রশ্ন করতে হয়। আমাদের সমস্যা হল কোন R & D না করে সরাসরি গিয়ে stackoverflow তে প্রশ্ন করি এবং এক্সপার্টরা দেখেই বোঝে সে কোন চেষ্টাই করেনি। ব্যাস তখনি মাইনাস দিয়ে দেয় ফলে হতাশ হয়ে আর প্রশ্ন করেনা। R & D করে এরপর সমাধান না হলে stackoverflow তে গিয়ে প্রশ্ন করে দেখুন, আপনার প্রশ্নে এক্সপার্টরাই আপভোটের হিরিক লাগাবে।

 

. প্রজেক্ট আইডিয়া: ইউজার ম্যানেজমেন্ট সিস্টেম করতে পারেন। ইউজার লগিন রেজিস্ট্রেশন করবে। নিজের ছবি আপলোড করবে। ব্যাকইন্ডে সব ইউজার এডমিন ম্যানেজ করতে পারবে। একজন ইউজার আরেকজনকে ফ্রেন্ড হিসেবে add করতে পারবে ইত্যাদি ফাংশনালিটি সহ একটা প্রজেক্ট করতে পারেন।