সবাইকে আমার সালাম ও আন্তরিক শুভেচ্ছা জানিয়ে আজকের পোস্ট শুরু করছি আশা করি সাথেই থাকবেন।ফ্রিল্যান্সার ডট কমের হাইডিমান্ড স্কিল নিয়া আজকে আলোচনা করি একটু নাকি বলেন?
প্রায়ই চোখে পড়ে হাইডিমান্ড স্কিল নিয়ে পোস্ট । অনেকে ইনবক্সেও প্রশ্ন করে । আজকে লিখতে বসেছি হাইডিমান্ড স্কিল নিয়ে । সর্বমোট ২০টা স্কিল নিয়ে কথা বলব তার পরের পর্বে ট্রেন্ডিং স্কিল নিয়ে কথা বলব।
আশা করি সাথেই থাকবেন। চলুন শুরু করা যাক ।
সর্বপ্রথমে যে স্কিল টা আছে সেটা হলো “সফটওয়্যার আর্কিটেকচার”
চলেন সফটওয়্যার আর্কিটেকচার নিয়ে একটু বিস্তারিত জেনে আসি।
আসলে সফটওয়্যার আর্কিটেকচার কি?
“সফটওয়্যার আর্কিটেকচার বলতে বোঝায় একটি সফটওয়্যার সিস্টেমের উচ্চ স্তরের কাঠামো, এই ধরনের কাঠামো তৈরি নিয়মাবলি, এবং এই কাঠামোর নথিপত্র। এই কাঠামোগুলি সফটওয়্যার সিস্টেমের যৌক্তিকতা প্রকাশে প্রয়োজন হয়। প্রতিটি কাঠামো সফটওয়্যার উপাদান সমূহ, তাদের মধ্যে সম্পর্ক, এবং উপাদান ও সম্পর্ক উভয়ের বৈশিষ্ট্য গঠন করে। সফটওয়্যার সিস্টেমের আর্কিটেকচার একটি একটি রূপক, যেমনটি একটি ভবনের কাঠামো ।
সফটওয়্যার আর্কিটেকচার এর উদ্দেশ্য হচ্ছে মৌলিক কাঠামো নির্বাচন করা, একবার বাস্তবায়িত হওয়ার পর যার পরবর্তিতে ব্যয়বহুল হয়ে দাঁড়ায়। সম্ভাব্য সফটওয়্যার ডিজাইনের নির্দিষ্ট কাঠামোগত উপায় সফটওয়্যার আর্কিটেকচারের অন্তর্ভুক্ত। উদাহরণস্বরূপ, যে সিস্টেমটি স্পেস শাটল নিক্ষেপ যান নিয়ন্ত্রণ করে সেটি খুব দ্রুত এবং খুব নির্ভরযোগ্য হওয়ার প্রয়োজন। অতএব, একটি উপযুক্ত রিয়াল টাইম কম্পিউটিং ল্যংগুয়েজের করা প্রয়োজন হবে। উপরন্তু, নির্ভরযোগ্যতার প্রয়োজনীয়তা মেটাতে একাধিক অকার্যকর এবং স্বতন্ত্র সৃষ্ট প্রগ্রাম কপি রাখার সিদ্ধান্ত নিতে হতে পারে, এবং এই কপিগুলি স্বতন্ত্র হার্ডওয়্যারে ফলাফল ক্রস-চেকিং এর সময় রান করতে হবে।”
সুত্রঃ উইকি পিডিয়া ।
কী কী ধরনের স্কিল একজন আর্কিটেকচার ইঞ্জিনিয়ারদের থাকতে হবে ?
মডার্ন আর্কিটেকচার ডিজাইনিংয়ের কাজগুলো সাধারণত কম্পিউটার বিভিন্ন ধরনের সফটওয়্যার এবং মডেলিংয়ের উপর নির্ভর করে থাকে। তাই শুরুতে অবশ্যই কম্পিউটারের অপারেটিংয়ে আপনাকে দক্ষ হতে হবে। এছাড়া পড়াশোনার শুরুর দিকে ট্রিমবেল, স্কেচআপের উপরও ভালো জ্ঞান থাকতে হবে।
তবে মনে রাখবেন, বর্তমান সময়ের কাজগুলো কখনোই নির্দিষ্ট কিছু অ্যাপস এবং সফটওয়্যারের মধ্যে সীমাবদ্ধ থাকে না। তাই সময়ের সাথে কম্পিউটার সংক্রান্ত বিভিন্ন গ্রাফিক্সের কাজের দক্ষতা ঝালাই করে নিতে হবে। পাশাপাশি বিভিন্ন থ্রিডি প্রিন্টিংয়ে কাজে নিজেকে দক্ষ করে তুলতে হবে। অটোক্যাড, মায়া, থ্রিডি ম্যাক্স, সলিড ওয়ার্কের মতো সফটওয়্যার কথা এক্ষেত্রে উল্লেখ না করলেই নয়। সাথে সাথে চলতি সময়ের বিভিন্ন আর্কিটেকচার পণ্য, ম্যাগাজিনের বিষয়ে জ্ঞান থাকাও গুরুত্বপূর্ণ।
এছাড়া ক্লায়েন্ট সামলানো, তাদের সাথে যথাযথ যোগাযোগ এবং প্রজেক্ট সম্পর্কে ভালো প্রেজেন্টেশন দেয়ার দক্ষতা থাকতে হবে।
দ্বিতীয়স্থানে আছে “পাইথন “
পাইথন (Python) একটি বস্তু-সংশ্লিষ্ট (object-oriented) উচ্চস্তরের প্রোগ্রামিং ভাষা। ১৯৯১ সালে গুইডো ভ্যান রস্যিউম এটি প্রথম প্রকাশ করেন। পাইথন নির্মাণ করার সময় প্রোগ্রামের পঠনযোগ্যতার উপর বেশি গুরুত্ব দেয়া হয়েছে। এখানে প্রোগ্রামারের পরিশ্রমকে কম্পিউটারের চেয়ে বেশি গুরুত্ব দেয়া হয়েছে। পাইথনের কোর সিনট্যাক্স ও সেমান্টিক্স খুবই সংক্ষিপ্ত, তবে ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ। পাইথন প্রোগ্রামারদের সমাজ থেকে পাইথন দর্শন এর সূচনা হয়েছে।
পাইথন একটি বহু-প্যারাডাইম প্রোগ্রামিং ভাষা (ফাংশন-ভিত্তিক, বস্তু-সংশ্লিষ্ট ও নির্দেশমূলক) এবং এটি একটি পুরোপুরি চলমান প্রোগ্রামিং ভাষা যার স্বনিয়ন্ত্রিত মেমরি ব্যবস্থাপনা রয়েছে। এদিক থেকে এটি পার্ল, রুবি প্রভৃতি প্রোগ্রামিং ভাষার মত।
পাইথন ভাষার মুক্ত, কমিউনিটি-ভিত্তিক উন্নয়ন মডেল রয়েছে, যার দায়িত্বে আছে পাইথন সফটওয়্যার ফাউন্ডেশন নামের একটি অলাভজনক প্রতিষ্ঠান। এই ভাষাটির বিভিন্ন অংশের বিধিবদ্ধ বৈশিষ্ট্য ও আদর্শ থাকলেও পুরো ভাষাটিকে এখনো সম্পূর্ণ বিধিবদ্ধ করা হয়নি। তবে কার্যত সিপাইথন ভাষাটির আদর্শ বাস্তবায়িত রূপ।
সুত্রঃ উইকি পিডিয়া ।
পাইথন কি?
পাইথন একটি শক্তিশালী হাই লেভেল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। যা ১৯৮০ সালে ডাচ প্রোগ্রামার গুইডো ভ্যান রাসম প্রথম ডিজাইন শুরু করেন এবং ১৯৯১ সালের ফেব্রুয়ারিতে প্রথম এটি প্রকাশ করেন। এজন্য গুইডো ভ্যান রাসমকে এই প্রোগ্রামিং ভাষার স্রষ্টা বলা হয়।
পাইথন নির্মাণ করার সময় প্রোগ্রামের পঠন যোগ্যতার উপর বেশি গুরুত্ব দেওয়া হয়েছে। পাইথনের কোর সিনট্যাক্স ও সেমান্টিক্স খুবই সংক্ষিপ্ত, তবে ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ। এই প্রোগ্রামিং ভাষার গঠন শৈলী এবং ব্যবহার খুবই সহজ। ফলস্বরুপ, আপনি যদি প্রোগ্রামিং ভাষায় একেবারে নতুন হয়ে থাকেন, তাহলে এটি হবে আপনার জন্য উপযুক্ত প্রোগ্রামিং ভাষা।
কেন শিখবেন?
বিশ্বজুড়ে পাইথন ল্যাঙ্গুয়েজের চাহিদা বাড়ছে। বর্তমান সময়ের সবচেয়ে চাহিদা সম্পন্ন ও প্রয়োজনীয় একটি ল্যাঙ্গুয়েজ এটি। প্রোগ্রামিং এর দুনিয়াতে পাইথন প্রোগ্রামিং এখন অনেক খানি জায়গা দখল করে নিয়েছে। যে সকল কারণে আপনি এই প্রোগ্রামিং ভাষা শিখতে পারেন নিম্নে সেগুলো তুলে ধরা হল-
- সহজ ও মার্জিত গঠন। পাইথনে ভ্যারিয়েবলের টাইপ নির্ধারন করতে হয়না এবং স্টেটমেন্ট শেষে সেমিকোলনও (;) বাধ্যতামূলক নয়।
- এটি আপনাকে প্রোগ্রাম অনুশীলনের দিকে জোর দেয়। ফলে নতুনদের জন্য প্রোগ্রামিং শেখা সহজতর হয়ে উঠে।
- এটি বিশাল জনগোষ্ঠী সমর্থনকারী প্রোগ্রামিং ভাষা। আপনাকে সহায়তা করার জন্য পাইথনের রয়েছে বিশাল জনগোষ্ঠী। এছাড়া অনলাইনে অনেক সক্রিয় ফোরামও আছে। যেগুলো সমস্যা সমাধানে খুবই সহায়ক।
- পাইথন প্রোগ্রামিং মানেই মজা। পাইথনে কোড লিখতে যেমন মজা তেমনি এটা পড়াও সহজ।
তৃতীয়স্থানে আছে “লিনাক্স”
লিনাক্স বা গ্নু/লিনাক্স বলতে লিনাক্স কার্নেলের সাথে বিশেষত গ্নু ও অন্যান্য উপাদানের সংমিশ্রণে প্যাকেজ করা অপারেটিং সিস্টেম গুচ্ছকে বুঝায়। সাধারণত, ডেস্কটপ ও সার্ভার দুধরনের ব্যবহারের জন্যেই লিনাক্স, ডিস্ট্রিবিউশন বা ডিস্ট্রো নামের একটি ফর্মে প্যাকেজড থাকে। একটি লিনাক্স ডিস্ট্রিবিউশনের ডিফাইনিং কম্পোনেন্ট হচ্ছে লিনাক্স কার্নেল, যেটি একটি অপারেটিং সিস্টেম কার্নেল এবং লিনুস তোরভাল্দ্স প্রথম সেপ্টেম্বর ১৭, ১৯৯১ তারিখে প্রকাশ করেন। অনেক লিনাক্স ডিস্ট্রিবিউশনই লিনাক্স শব্দটি তাদের অপারেটিং সিস্টেমের নামের সাথে ব্যবহার করে এবং ফ্রি সফটওয়্যার ফাউন্ডেশন গ্নু/লিনাক্স শব্দটি এ অপারেটিং সিস্টেম পরিবারকে বুঝাতেই ব্যবহার করে।
সুত্রঃ উইকি পিডিয়া।
এইটা নিয়ে বলার কিছু নেই । গুগলে একটু ঘাটাঘাটি করলে বিস্তারিত জেনে যাবেন । এর পরে অংশে চলে যাই ।
চতুর্থস্থানে আছে “জাভা”
জাভা একটি প্রোগ্রামিং ভাষা। সান মাইক্রোসিস্টেম ৯০এর দশকের গোড়ার দিকে জাভা ডিজাইন করার পরে এটি অতি দ্রুত বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটিতে পরিণত হয়। জাভা’র এই জনপ্রিয়তার মুল কারণ এর বহনযোগ্যতা (portability), নিরাপত্তা, এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব প্রোগ্রামিং এর প্রতি পরিপূর্ণ সাপোর্ট।
সুত্রঃ উইকি পিডিয়া।
কেন জাভা ?
পৃথিবীতে এখন পর্যন্ত অনেক গুলো প্রোগ্রামিং ভাষা তৈরি করা হয়েছে। এদের প্রত্যেকটির উদ্দেশ্য ভিন্ন ভিন্ন। List_of_programming_languages এখানে একটি প্রোগ্রামিং ল্যাংগুয়েজ এর একটি লিস্ট দেওয়া আছে- দেখে নেওয়া যেতে পারে। প্রত্যেকটি ল্যাংগুয়েজ এর কিছু সুবিধা অসুবিধা আছে, এবং ল্যাংগুয়েজ গুলো প্রতিনিয়ত উন্নত হচ্ছে, এবং নতুন নতুন ল্যাংগুয়েজ তৈরি হচ্ছে।যে যে কারণে জাভা শেখা যেতে পারে এখন সেগুলো নিয়ে আলোচনা করা যাক-
- এটি পৃথিবীতে দ্বিতীয় জনপ্রিয় ল্যাংগুয়েজ।
- এটি খুব-ই পাঠযোগ্য, সহজে বুঝা যায়। অন্য যে কোন প্রোগ্রামিং ব্যাকগ্রাউন্ড এর প্রোগ্রামার খুব সহজেই একটি জাভা-ফাইল দেখে বুঝতে পারবে আসলে কোড এ কি লেখা আছে।
- সি কিংবা সি++ এ কোড করার সময় আমাদের অনেক সময়-ই লিংকিং, অপটিমাইজেশান, মেমরি এলোকেশান, মেমরি ডি-এলোকেশান, পয়েন্টার ডিরেফারেন্সিং ইত্যাদি নানা রকম জিনিস নিয়ে ভাবতে হয়, কিন্তু জাভার ক্ষেত্রে এগুলোর কথা ভাবতেই হয় না।
- খুব বেশি চিন্তা না করে আমরা নিশ্চিতভাবে জাভা কম্পাইলার এর উপর সব কিছু ছেড়ে দিতে পারে।
- জাভাতে অসংখ্য API আছে যেগুলো খুবই স্টেবল, খুব বেশি চিন্তাভাবনা না করেই এদের নিয়ে খুব সহজেই কাজ করে ফেলা যায়।
- জাভা -র সব কিছুই ওপেন সোর্স।
- এটি একটি অবজেক্ট ওরিয়েন্টেড- টাইপ সেইফ প্রোগ্রামিং ল্যাংগুয়েজ।
- এটি পোর্টেবল যে কোন প্লাটফর্মে চলে। একবার কোড লিখে সেটি যে কোন মেশিনে( উইন্ডোজ , লিনাক্স , ম্যাক) চালানো যায়।
- ইন্ডাস্ট্রি গ্রেডেড, বড় বড় এন্টারপ্রাইজ অ্যাপ গুলো সাধারণত জাভা দিয়ে লেখা হয়।
জাভার ব্যবহার :
ইতিমধ্যে আমরা জেনে গেছি জাভা হল একটি শক্তিশালী প্রোগ্রামিং ভাষা। এক নজর দেখি নেই কি কি কাজে ব্যবহার করা যাবে এই ভাষা কে
- ডেস্কটপ বেসড এপলিকেশন্স। যেমন acrobat reader, media player, antivirus ইত্যাদি।
- ওয়েব বেসড এপলিকেশন্স।
- মোবাইল এপস।
- রোবটিক্স।
- গেমস।
পঞ্চমস্থানে আছে “সি প্রোগ্রামিং”
সি একটি প্রোগ্রামিং ভাষা। সি নির্মাণ করেন ডেনিস রিচি, বেল ল্যাবে ৭০এর দশকে কাজ করার সময়। ভাষাটি তৈরির প্রথম উদ্দেশ্য ছিল ইউনিক্স- অপারেটিং সিস্টেম এর কোড লেখায় এর ব্যবহার, কিন্তু অচিরেই এটি একটি বহুল ব্যবহৃত ভাষায় পরিণত হয়। সি++ ও জাভা সহ পরিবর্তীকালের অনেক প্রোগ্রামিং ভাষার উপর সি’র গভীর প্রভাব পড়েছে। সি এর সবচেয়ে আকর্ষণীয় দিক হচ্ছে এর বহনযোগ্যতা। সি দিয়ে রচিত প্রোগ্রাম যেকোন অপাররেটিং সিস্টেমের কম্পিউটারে চালানো যায়। ৭০ এবং ৮০ দশকের দিকে সি এর জনপ্রিয়তা বাড়ার সাথে সাথে এর অনেকগুলো ভার্সন তৈরি হয়। ১৯৮৩ সালে আমেরিকান মাননিয়ন্ত্রক সংস্থা সি এর ১টি আদর্শ ভার্সন তৈরির জন্য কমিটি গঠন করে। দীর্ঘ ৬ বছর পরে ১৯৮৯ সালে সেই আদর্শ সি ভাষাটি তৈরি হয়, যা আমেরিকান মাননিয়ন্ত্রক সংস্থা সি (আনসি সি (ANSI C)) নামে পরিচিত। পরবর্তিতে আন্তর্জাতিক মাননিয়ন্ত্রক সংস্থা ১৯৯০ সালে সি এর এই আদর্শ ভার্সনটি গ্রহণ করে, যা সি৯০ নামে পরিচিত। মুলত “সি৮৯” এবং “সি৯০” একই ভাষা। যুগের প্রয়োজনে আন্তর্জাতিক মাননিয়ন্ত্রক সংস্থা ১৯৯৫ সালে এই সংস্করণকে বর্ধিত করে এবং পরবর্তিতে ১৯৯৯ সালে সম্পূর্ণ নতুন একটি সংস্করণ প্রকাশ করে যা সি৯৯ নামে পরিচিত। সর্বশেষ ২০১১ সালে সি প্রোগ্রামিং ল্যাঙ্গুয়েজের নবীনতম সংস্করণ সি১১ প্রকাশিত হয়। সুত্রঃ উইকি পিডিয়া।
কেন “সি প্রোগ্রামিং?
এখন যদি কাউকে জিজ্ঞেস করা হয় তুমি কেন ক্রিকেট খেল? অথবা তুমি কেন গল্পের বই পড় ? সে বলবে যে “আনন্দের জন্য”। হ্যা ঠিক! প্রোগ্রামিং আনন্দের জন্য করা হয় কারন আগেই বলেছি এটি একটা খেলা “ যুক্তির খেলা”(তবে একে শুধু আনন্দের জন্য করা হয় বললে ভুল হবে কারন এর অনেক বাণিজ্যিক সম্পর্ক ও রয়েছে ……তবে শুরুতে প্রায় সবাই একে আনন্দ হিসেবেই নিয়ে থাকে।) । তাছাড়া যে কেউ ই চাইবে যে তার কম্পিউটার তার কথামত কাজ করুক। তাহলে এর জন্য “প্রোগ্রামিং” এর বিকল্প নেই। এই যে তোমরা এখন যে অপারেটিং সিস্টেমে বসে ব্রাউজার দিয়ে এই পোস্টটি পড়ছ এখানেও রয়েছে প্রোগ্রামিং। আসলে আইটি জগতটাই “প্রোগ্রামিংময়”।
অনেকেই আছে যারা প্রোগ্রামিং সম্পর্কে ইন্টারেস্টেড কিন্তু কিভাবে শুরু করলে ভালো হয় তা হয়তো জানে না। এখন প্রশ্ন আসতেই পারে যে , প্রোগ্রামিং জানতে হলে কি সায়েন্সের স্টুডেন্ট হতে হবে কিনা? অথবা ছোট হলে প্রোগ্রামার (এতক্ষনে প্রোগ্রামার শব্ধটি ব্যবহার করা হয়েছে! বুঝতেই পারছ যে প্রোগ্রামার কি বা কে? :p ) হওয়া যাবে না আবার প্রোগ্রামিং ভারসিটি তে উঠে তারপর শিখতে হয় ইত্যাদি ইত্যাদি …..এমন কিছুই না পড়াশুনার যেমন বয়স নেই তেমনি প্রোগ্রামিং শিখার কোনো বয়স থাকতে পারে বলে অন্তত আমার মনে হয় না। এটা তো এক ধরনের খেলা আগেই বলা হয়েছে। এর আবার বয়স কিসের? ?
( বিশ্বাস না হলে নিজে একটু গুগল করলেই দেখা যাবে খুব অল্প বয়সে অনেক ছেলে মেয়ে IOI (International Informatics Olympiad) তে অংশগ্রহন করে খুব ভালো ফলাফল করেছে। তারা সবাই কিন্তু ছোটবেলা থেকেই প্রোগ্রামিং সহ বিভিন্ন পছন্দের বিষয় চর্চা করে আসছে ? )
আজকে অনেক পড়েছেন । ইনশাহ আল্লাহ্ আবার আগামীতে বাকিটা পাবেন । সাথেই থাকবেন ।