তুমিও হবে একজন দক্ষ সফটওয়্যার ইঞ্জিনিয়ার

তুমিও হবে একজন দক্ষ সফটওয়্যার ইঞ্জিনিয়ার

তুমি যদি একজন সমস্যার সমাধানকারী হও যে কিনা বিভিন্ন সমস্যা সমাধান অথবা কোন কাজকে সহজ করে তুলতে পছন্দ করো তবে তুমি একজন সফটওয়্যার ইঞ্জিনিয়ার হিসেবে সফল ক্যারিয়ার পেতে পারো।
সফটওয়্যার ইঞ্জিনিয়ারিং হল কম্পিউটার ইঞ্জিনিয়ারিং এর এমন একটি শাখা যেখানে সফটওয়্যার অ্যাপ্লিকেশনগুলো ডিজাইন, নির্মাণ, পরীক্ষণ এবং এর রক্ষণাবেক্ষণ নিয়ে কাজ করা হয়। সফটওয়্যার ইঞ্জিনিয়াররা ব্যবহারকারীদের জন্য সফটওয়্যার সমাধান তৈরি করতে বিভিন্ন প্রোগ্রামিং ভাষা ও প্রোগ্রামিং জ্ঞানের প্রয়োগ করে।
সফল দক্ষ ইঞ্জিনিয়াররা জানেন কিভাবে সঠিক প্রোগ্রামিং ভাষা, প্ল্যাটফর্ম এবং আর্কিটেকচার ব্যবহার করে কম্পিউটার গেম থেকে শুরু করে নেটওয়ার্ক কন্ট্রোল সিস্টেম এর মত জটিল অ্যাপ্লিকেশন তৈরি করতে হয়। সফটওয়্যার ইঞ্জিনিয়াররা তাদের নিজস্ব সিস্টেম তৈরির পাশাপাশি অন্যান্য ইঞ্জিনিয়ারদের তৈরি বিভিন্ন সফটওয়্যার পরীক্ষা, আপডেট ডেভেলপমেন্ট ও এগুলো রক্ষণাবেক্ষণ এর কাজ করে থাকেন।
Meta এর একজন সফটওয়্যার ইঞ্জিনিয়ার মুরতাদা আল-তামিমি বলেছেন, ” সমস্যা সমাধান করা লাগে এ ধরনের কোন কিছু দেখলেই আমি অনেক উত্তেজিত হয়ে পড়ি, কারণ তা থেকে আমি একটি অ্যাপ্লিকেশনের নতুন ফিচারস অথবা ওই সমস্যা সমাধানের জন্য নতুন অ্যাপ্লিকেশন কিভাবে নিয়ে আসা যায় তা নিয়ে চিন্তা করতে শুরু করি।”
সফটওয়্যার ইঞ্জিনিয়ার হিসেবে তোমার প্রতিদিনকার কাজগুলো হতে পারে :
  • নতুন সফটওয়্যার সিস্টেম ডিজাইন ও মেনটেনেন্স
  • নতুন সফটওয়্যার প্রোগ্রাম তৈরি ও তা পরীক্ষা করা
  • কোড লেখা ও তা পরীক্ষা করা
  • ক্লায়েন্ট, ইঞ্জিনিয়ার, সাইবার এক্সপার্ট ও অন্যান্যদের সাথে সফটওয়্যার এর উন্নতি নিয়ে পরামর্শ করা।
  • গ্রাহককে সফটওয়্যার এর বিভিন্ন নতুন নতুন বৈশিষ্ট্য এবং এর কাজ উপস্থাপন করা।
সাধারণত একজন সফটওয়্যার ইঞ্জিনিয়ার এই প্রধান কাজ গুলোই করে থাকে।
সফটওয়্যার ইঞ্জিনিয়াররা সাধারণত দুটি বিষয়ের মধ্যে একটি নিয়ে পড়ালেখা ও দক্ষতা অর্জন করেন, তা হলো সিস্টেম ডেভেলপমেন্ট এবং অ্যাপ্লিকেশন ডেভেলপমেন্ট। একজন সিস্টেম ডেভলপার অর্থাৎ ব্যাকএন্ড ইঞ্জিনিয়ার সাধারণত কম্পিউটার সিস্টেম ও নেটওয়ার্ক এর মত জিনিসগুলো নিয়ে কাজ করে। আর একজন অ্যাপ্লিকেশন ডেভলপার সাধারণত কম্পিউটার সফটওয়্যার ডিজাইন ও ডেভেলপমেন্ট এর মত জিনিস গুলো নিয়ে কাজ করে।
সফটওয়্যার ইঞ্জিনিয়ার হতে কত সময় লাগে?
চার বছরের সফ্টওয়্যার ইঞ্জিনিয়ারিং বিজ্ঞানের Bsc ডিগ্রি নেওয়া উচিত। কিছু শিক্ষার্থী তাদের কোর্সকে চ্যালেঞ্জিং মনে করতে পারে এবং তাদের শেখার এবং বোঝার জন্য আরও বেশি সময় বিনিয়োগ করার সিদ্ধান্ত নিতে পারে, তবে এখনও প্রায় চার বছরের মধ্যে শেষ করতে সক্ষম হওয়া উচিত।
প্রোগ্রামিং ল্যাঙ্গুয়েজে শিখুন
সফটওয়্যার ইঞ্জিনিয়ারিং এর জন্য প্রোগ্রামিং ল্যাঙ্গুয়েজে শেখা অত্যন্ত জরুরি। একজন ভালো সফটওয়্যার ইঞ্জিনিয়ার হতে হলে তাকে ভালো প্রোগ্রামার হতে হবেই। এর জন্য এক বা একাদিক প্রোগ্রামিং ল্যাঙ্গুয়েজে এ আপনার দক্ষতা দরকার।যত বেশি প্রোগ্রামিং ল্যাঙ্গুয়েজে আপনি জানবেন পেশা হিসাবে আপনার কাছে এটি আকর্ষণীয় হয়ে উঠবে। প্রোগ্রামিং ল্যাঙ্গুয়েজে এর মধ্যে শেখা দরকার :Python, JavaScript, C#, C++, Ruby, Javaএর মধ্যে Python,জাভাস্ক্রিপ্ট,CSS ,HTML আপনাকে জেনে রাখতে হবে।
কোনো বেসিক সফটওয়্যার ইঞ্জিনিয়ারিং এর কাজে এগুলি অনেক ব্যাবহার হয়। এছাড়া ডাটা সাইন্স আর মেশিন লার্নিং ,আর্টিফিশিয়াল ইন্টেলিজেন্স ক্ষেত্রেও Python,R এর ব্যাবহার অনেক। আর যেহেতু সফটওয়্যার ইঞ্জিনিয়ারিং বিষয়টি কোর তথ্যপ্রযুক্তি এর মধ্যে পরে তাই এর জন্য বিষয় গুলি সবসময় আপডেট হতে থাকে। তাই আজকে আপনি যদি কোনো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজে এর একটি ভার্সন শিখলেন,সেটি আবারো কিছুদিন পরে আপডেট হলে শিখে নিতে হবে। তাই এই পরিবর্তন এর সাথে আপনাকে মানিয়ে নিতে হবে। সফটওয়্যার ইঞ্জিনিয়ারিং পড়ার পর চাকরির সুযোগ হিসাবে দেশ বিদেশে অনেক আছে. দেশের মধ্যে বড় বড় IT কোম্পানি যেমন TCS ,IBM ,Accenture এ অনেক ভালো মানের চাকরি পাওয়া যায়। অনেক সময় কলেজ ক্যাম্পাসিং থেকে এই সুযোগ চলে আসে কোর্স করতে করতেই। তাই ভালো ভাবে কোর্স /ডিগ্রী শেষ করলে চাকরির অভাব হয় না।
Writer : Iftakhar Ahmed
-কিভাবে আপনি প্রোগ্রামিং এর উপর বস হবেন-

-কিভাবে আপনি প্রোগ্রামিং এর উপর বস হবেন-

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

So, বসে পড়ুন চেয়ার টেবিলে খাতা কলম নিয়ে।–

-First Of All-

অনেক-ই প্রোগ্রামিং-কে অনেক কঠিন স্তরে নিয়ে গেছে। কিন্তু আমরা যদি সুন্দরভাবে ভাবি প্রোগ্রামিং একটা মজার জিনিস। কিন্তু এইখানে একটু কিন্তু আছে , যেমন : এই পৃথিবীতে ভালো লাগা নামে একটা জিনিস আছে। কেউ হয়তো বা ভালো গান গাইতে ভালোলাগে, আবার কেউ হয়তো বা গিটার বাজাতে ভালো লাগে, বা কেউ হয়তো ঘুরতে ভালেবাসে ইত্যাদি। সব কিছুর একটু পেছনে ভালোলাগা জিনিস টা আছে ঠিক তাই তো? হ্যা।

প্রোগ্রামিং ও ঠিক সেইম একই রকম। আপনার যদি নতুন কোনো কিছু বানাতে বা কোনো সমস্যা সমাধান করতে ভালো তাহলে, Programming It’s For You.  সোজা বাংলা ভাষায় প্রোগ্রামিং আপনার জন্য। তো এখানে Moral Of the Stories হচ্ছে, যদি আপনার জিনিস টা ভালো লাগে। আচ্ছা ওকে, এই হলো প্রোগ্রামিং-র মেইন Concept বা কোনো কিছু শিখার মেইন Concept ।

-নিচে কিছু গাইডলাইন দেওয়া হলো, একজন ভালো প্রোগ্রামার-র কি কি গুন থাকা দরকার।

-নতুন Innovative কিছু করার মন-মানসিকতা থাকাঃ

প্রোগ্রামিং এমন একটা সেক্টর, যেখানে আপানাকে দিন দিন আপডেট করতে হবে। প্রোগ্রামিং Kind Of ডাক্তারির মতই। একজন ডাক্তার কে যেমন দিন দিন আপডেট করতে হয় । ঠিক তেমনি একজন প্রোগ্রামার-কে দিন দিন নতুন Technology-র সাথে Introduce হতে হয়। তাই একজন প্রোগ্রামার কে অবশ্যই নতুন কিছু করার Idea থাকা জরুরী। যেকোনো নতুন Concept মাথায় আসলে তা সাথে সাথে কোড-এ Implement করা এটা অত্যন্ত জরুরী।

-প্রবলেম সলভিং এর ক্ষমতা

এই কাজটা করা বেশ কঠিন। প্রবলেম সলভিং এর স্কিল বাড়ানো বলতে আসলে ‘তোমার বুদ্ধিমত্তাকে আরো বাড়াও’ এমনটাই বুঝায়।

আর এটা করার উপায় হচ্ছে নিয়মিত কঠিন কঠিন প্রবলেম সলভ করা। আবার এমন কঠিন না যেন হতাশা এসে ভর করে। তোমার ক্ষমতার চেয়ে একটু কঠিন প্রবলেম নিয়ে পড়ে থাকলে তোমার ব্রেইনকে কাজে লাগাতে পারবে। সব সময় সহজ প্রবলেম সলভ করলে দেখবা তুমি ভুল-টুল করতেছ না, কিন্তু তোমার ব্রেইন ঐসব সহজ প্রবলেমের জন্যেই ম্যাচ হয়ে থাকবে। ব্রেইনকে কাজ না দিয়ে অলস বসিয়ে রাখলে (সব সময় সহজ প্রবলেম সলভ করলে) বুদ্ধিমত্তা বাড়ানো কথা চিন্তা করা যায় না।

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

সেক্ষেত্রে একটাই মাত্র কাজ করার থাকে তা হচ্ছে সাবধানে টেবিলটাকে কেটে টুকরাগুলোকে জায়গা মত নিয়ে আবার জোড়া দেয়া। প্রবলেমগুলোকেও এভাবে ভেঙ্গে ভেঙ্গে সলভ করে এরপর জোড়া দেয়ার কাজ করতে হবে। প্রব্লেম সল্ভিং র কিছু জনপ্রিয় ওয়েবসাইট হচ্ছে যেমন : Hackerrank, CodeWars, Edabit ইত্যাদি। এখানে প্রোগ্রামিং-র একদম বেসিক থেকে অ্যাডভান্সড পর্যন্ত প্রব্লেম থাকে। যা আপনি নিজের স্কিলের সাথে সাথে প্রোগ্রামিং –র লেভেল বাড়াতে পারেন।

 -কোড প্রাকটিস করা আর ডিবাগ করা-

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

যদিও এখনকার সময়ে মনে হয় না কেউ খাতায় কোড করে। এরপরেও যদি খাতায় কোড লিখে প্র্যাক্টিস করতে পার এটা তোমার জন্য বেশ ভাল কাজে দিবে। কারণ তুমি যখন IDE তে কোড করতে বসো, মাথায় এটা থাকেই যে ভুল হলে আবার সাথে সাথেই ঠিক করতে পারবো। কিন্তু কাগজে যখন লিখবা তখন লিখার আগে তোমার ব্রেইন অনেক দ্রুত কাজ করবে যথাসম্ভব নির্ভুল কোড লিখার জন্য। কারণ কাগজে কোড লিখা কঠিন।

আর অনসাইট টিম কনটেস্টের ক্ষেত্রে এই গুণের কারণে আরো সুবিধা পেতে পারো। কারণ সেখানে ৩ জনের জন্য একটাই পিসি থাকে। তাই অন্য টিমমেট পিসিতে কোড করতে থাকলে তোমাকে হয়ত খাতাতেই কোড লিখে রাখতে হতে পারে। কোড লিখে বিভিন্ন ইনপুটের জন্য কাগজেই ডিবাগ করার অভ্যাস গড়ে তুলো।

নিয়মিত কনটেস্টে অংশগ্রহণ

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

আর বেশি বেশি কনটেস্ট করলেই সে সময়ে করণীয় বা কী ধরনের সিদ্ধান্ত নিতে হবে সে ব্যাপারে আইডিয়া হয়ে যাবে। যেমন ৫ ঘন্টার কনটেস্টের শেষ ঘন্টায় এসে একটা নতুন প্রবলেম শুরু করা সম্ভবত ভাল সিদ্ধান্ত না। যখন তোমার সাবমিট করা unsolved ২-৩ টা প্রবলেম রয়েছে। নতুন প্রবলেম শুরু করব কি করব না, কোন একটার পিছনে আর সময় দেয়া উচিত হবে কি হবে না? এই সিদ্ধান্তগুলো নেয়া সহজ হয় বেশি বেশি কনটেস্টে অংশ নিলে। এছাড়া বর্তমানে দেশে বিদেশে সব খানে প্রোগ্রামিং কনটেস্টে হয়। চাইলে আমরা এই কনটেস্ট গুলোতে Attend করতে পারি।

মোটিভেশন (প্রেরণা)

প্রোগ্রামিং কনটেস্ট তোমার প্রোগ্রামিং এর স্কিলকে ব্যাপক ভাবে বাড়িয়ে দিবে। তুমি চিন্তা করতে পারবা না যে একেকটা কনটেস্টের পর তোমার স্কিলটা কতখানি পুশ হয়! হ্যাঁ তোমাকে অনেকেই বলবে যে রিয়েল লাইফে সফটওয়্যার ডেভেলপমেন্টের জন্য এসব প্রবলেম সলভিং এর দরকার হয় না। আসলেই তাই! তুমি খুব বেশি ভাগ্যবান হলে হয়ত তোমার কোম্পানীর কোন প্রোজেক্টে ৫-১০% কাজে তোমার শেখা ডেটা স্ট্রাকচার-অ্যালগরিদম ইমপ্লিমেন্ট করতে পারবা। বা তোমার কনটেস্টের স্কিল কাজে লাগাতে পারবা।

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

কনটেস্ট তুমি তখনই করতে পারবা যখন এটাকে একটা খেলা হিসেবে নিবা। ছোট বেলায় বিকালে ক্রিকেট খেলতে বের হয়ে খেলার সময় বা খেলার পর যেই আনন্দ পেয়েছিলে, সেটা যদি এখানেও পাও তাহলে কনটেস্ট তোমার জন্যেই! কিন্তু তা না হয়ে যদি চিন্তা কর “অমুক ভাই কনটেস্ট করে এখন অমুক জায়গায় বড় জব করে। আমিও কনটেস্ট করবো” তাহলে মনে হয় না খুব বেশি দূর আগানো সম্ভব। কনটেস্ট ছাড়াও অনেক ভাল প্রোগ্রামার আছেন। অনেক বড় বড় প্রোগ্রামার আছেন যারা কনটেস্ট এর ব্যাপারে আগ্রহী না। যদি তোমার আগ্রহ না থাকে তাহলে জোর করার দরকার নাই। তো আজকের ব্লগটি এতটুকুই। Best Wishes For Future Programmers.

So, আজকের ব্লগটি কেমন হয়েছে তা কমেন্ট-এ বলতে ভুলবেন না। আর যদি ব্লগ টি ভালো লাগে তাহলে আপনার বন্দুদের সাথে শেয়ার করতে ভুলবেন না।

 

ধন্যবাদ সবাইকে,

Mohammad Jubair.

IT Officer,

Codex Devware.

প্রোগ্রামিং করে লাখ লাখ টাকা ইনকাম

প্রোগ্রামিং করে লাখ লাখ টাকা ইনকাম

-আচ্ছা অনেক তো জানলাম প্রোগ্রামিং কি, কিভাবে কাজ করে, কেন প্রোগ্রামিং শিখব? ইত্যাদি ইত্যাদি। যদি আপনারা প্রোগ্রামিং নিয়ে নতুন বা কিছু জানেন না তাহলে আমাদের ওয়েবসাইট ব্লগ পোস্ট করা আছে চাইলে দেখে আসতে পারবেন। প্রোগ্রামিং নিয়ে সকল খুঁটিনাটি A to Z  বভ বিস্তারিত আমাদের ওয়েবসাইটে পাবলিশ করা আছে। চাইলে হালকা পড়ে আসতে পারেন। আচ্ছা ওকে, আজকের ব্লগে আমরা জানব কিভাবে প্রোগ্রামিং করে ইনকাম করতে হয় ইত্যাদি।

-তো শুরু করা যাক-

  • Contest & Challenge:

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

  • E-Book Sell:

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

 

  • Freelancing: আমরা মোটামুটি অনেকই শুনছি ফ্রিল্যান্সিং কি? কিভাবে ফ্রিল্যান্সিং করে টাকা কামাতে হয় ইত্যাদি। ফ্রিল্যান্সিং নিয়ে আমাদের ওয়েবসাইটে খুব শিঘ্রই ব্লগ আসতেছে তো চোখ রাখুন আমাদের ওয়েবসাইটে। এখন অনলাইনের যুগ সবকিছু এখন আমাদের হাতের মুঠে । সবকিছু চাইলে আমরা করতে পারতেছি। বর্তমানে Upwork, Freelancer.com, Fiverr এর মত ফ্রিল্যান্সিং প্ল্যাটফর্মগুলোতে প্রোগ্রামিং সম্পর্কিত অসংখ্য ধরনের ফ্রিল্যান্সিং জব রয়েছে। যা আপনি যদি Skillful হলে আপনি কাজ করতে পারবেন। ফ্রিল্যান্সিং প্ল্যাটফর্মগুলোতে নিয়মিত আয় করা যায় এমন জবও পাওয়া যায়। স্থানীয়ভাবে প্রোগ্রামিং এর বর্তমানে অনেক কাজ পাওয়া যায়। প্রথমত, আপনি চাইলে সোস্যাল মিডিয়াকে কাজে লাগাতে পারেন, যেমন: ফেইসবুক, লিংকডন, ইন্সটাগ্রাম ইত্যাদি র মত প্ল্যাটফর্মে নেটওয়ার্কিং এর মাধ্যমে কাজ পেতে পারেন।  অথবা আপনি চাইলে ডেডিকেটেড ফ্রিল্যান্সিং প্ল্যাটফর্মে গিগ তৈরী করে কাজ পেতে পারেন। So It’s Defends Up to you.

 

  • Teaching Others People:

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

এছাড়া বিভিন্ন Edtech Platform যেমনঃ Udemy, CourseSera, ইত্যাদি জায়াগায় কোর্স বিক্রি করতে পারেন। আর এই প্ল্যাটফর্মে যেকেউ ফ্রিতে একাউন্ট খুলে অন্যদের শিখিয়ে, কোর্স তৈরী করে ও তা সেল করে আয় করতে পারে। আবার চাইলে ইউটিউব এর মত প্ল্যাটফর্মেও অন্যদের শিখিয়ে আয়ের পাশাপাশি নিজের পরিচিতি বৃদ্ধি করা সম্ভব। এছাড়াও বর্তমানে বাংলাদেশের বিভিন্ন Ed-tech Training Center এ ক্লাস নিয়ে টাকা ইনকাম করতে পারেন চাইলে।

 

  • Make Apps:

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

 

  • Blogging :

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

 

So, সময়কে কাজে লাগান ইনশাআল্লাহ ভালো কিছু হবে। আজকের ব্লগ এতটুকুই যদি আজকের ব্লগটি আপনার কাছে ভালো লাগে থাকে তাহলে আপনার বন্ধু-বান্ধদের সাথে শেয়ার করতে ভুলবেন না । ভালো থাকবেন সবাই কথা হবে আবার কোনো একটা ব্লগে।

 

Mohammad Jubair,

IT Officer, Codex Devware.

This Blog Edited By Sourov Dey

-ক্যারিয়ার টিপস এন্ড গাইডলাইন ফর প্রোগ্রামিং-

-ক্যারিয়ার টিপস এন্ড গাইডলাইন ফর প্রোগ্রামিং-

-Hello Everyone! আসসালামু আলাইকুম সবাইকে,যে যেখান থেকে পড়তেছেন আশা করি সবাই ভালো আছেন। উপরের টাইটেল-টি দেখে বুঝতে পারছেন আজকের Topic কি? হ্যাঁ, আজকে আমরা প্রোগ্রামিং ক্যারিয়ার গড়তে কিছু টিপস বলব যা আপনাকে কাজে দিবে সে সম্পর্কে কথা বলব।  আমরা প্রোগ্রামের সকলে করতে চাই কিন্তু কয়জনে সফল হই?  সে প্রশ্নটা  সব সময় থেকেই যায়। আজকে সেই বিষয়ে আপনাদের পাঁচটি টিপস শেয়ার করব ইনশাআল্লাহ।

তো  চলুন শুরু করা যাক :

-First Of All

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

 

১। বিভিন্ন প্রোগ্রামিং কন্টেস্ট-এ অংশগ্রহন করা।

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

২. প্রতিনিয়ত কোড প্রাক্টিস-র মধ্যে থাকা:

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

৩. প্রোগ্রামিং নিয়ে  ব্লগ লেখা : 

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

৪. ওয়েব সাইট বা প্রজেক্ট তৈরী করা :

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

৫. আপনি যা যা শিখছেন তা সঠিকভাবে প্রয়োগ :

দিনশেষে আপনি অনেক কিছু পারেন কিন্তু এটির সঠিক ব্যবহার না জানলে এটী কিছু-ই না। So, আপনাকে আগে জানতে হবে এটি কোথায় ব্যবহার করবেন।

আমাদের অনেকের ভেতর একটা অনীহা কাজ করে যখন কোন একটি বিষয় শেখার পর সেই নিয়ে কাজ করতে পারে না।  আপনাকে সেই চিন্তা ধারা থেকে বেরিয়ে আসতে হবে।  আপনি যখন যেকোনো একটি ভাষা শিখলেন তখন সে ভাষায় বিভিন্ন প্রজেক্ট করার চেষ্টা করুন । এতে করে  আপনি অনেক ভাবে লাভবান হবেন।  এক,  প্রোগ্রামিং ইন্টারভিউর ক্ষেত্রে কিন্তু  যারা ইন্টারভিউ নিবে তারা আপনার কাছ থেকে সবগুলো ল্যাঙ্গুয়েজ সম্পর্কে জানতে চাইবেন না।  তারা যে কোন একটি বিশেষ ল্যাঙ্গুয়েজ এর সম্পর্কে জানতে চাইবে অথবা জিজ্ঞেস করবে আপনি কোন ভাষায় পারদর্শী।  তখন আপনার ওই নির্দিষ্ট ভাষায় অর্জিত জ্ঞান কাজে দিবে।  তাই যে প্রোগ্রামিং ভাষা শিখবেন সেটাকে ভালো করে প্রকাশ করে শিখবেন এবং  সেই সম্পর্কিত বিভিন্ন প্রজেক্ট করার চেষ্টা করবেন। যেমন আপনি যদি JAVA বা Python নিয়ে কাজ করেন তা নিয়ে একটা প্রজেক্ট বানানো সেইটা যেই কোনোকিছু-ই হতে পারে। So, সময়কে কাজে লাগান ইনশাআল্লাহ ভালো কিছু হবে।

Thanks To Everyone

This Blog Edited By Sourov Dey

কিভাবে একজন ভালো প্রোগ্রামার হওয়া যায়?

কিভাবে একজন ভালো প্রোগ্রামার হওয়া যায়?

বর্তমান বেশিরবাগ ছাত্র-ছাত্রীরার এর প্রথম চয়েস কম্পিউটার রিলেটেড স্টাডি করার জন্য। কম্পিউটার সাইন্স স্টাডি করা মানে ভালো একটা প্রোগ্রামার অথবা ডেভেলপার হিসেবে নিজেকে পরিচয় করার জন্য ।

এখন বলি কিভাবে একজন ভালো প্রোগ্রামার হবেন।

মানুষের সহজাত প্রকৃতিই হচ্ছে ‘অল্প সময়ে, কম কষ্টে, ঘরে বসে’ হাওয়া বাতাস খেতে খেতে সাফল্যের শীর্ষে চলে যাওয়ার ইচ্ছা। যে কোন বিষয়ের মত প্রোগ্রামিং এ ভাল করার জন্যেও প্রয়োজন কঠোর পরিশ্রম ও সঠিক অনুশীলন। প্রোগ্রামিং এ এক্সপার্ট হবার ব্যাপারে পিটার নরভিগ (Peter Norvig) Teach Yourself Programming in Ten Years নামের একটা আর্টিকেল লিখেছিলেন। আসলেই একজন এক্সপার্ট প্রোগ্রামার হিসেবে নিজেকে প্রতিষ্ঠিত করতে একটা দীর্ঘ পথ পারি দিতে হবে।

তাহলে আপনি বলতে পারেন প্রোগ্রামার হতে হলে কোনটা সব থাকে ভালো জানতে হবে। তাই , জানতে হলে পরতে থাকুন পুরো আর্টিকলটি

প্রবলেম সলভিং এর ক্ষমতা

এই কাজটা করা বেশ কঠিন। প্রবলেম সলভিং এর স্কিল বাড়ানো বলতে আসলে ‘তোমার বুদ্ধিমত্তাকে আরো বাড়াও’ এমনটাই বুঝায়।

আর এটা করার উপায় হচ্ছে নিয়মিত কঠিন কঠিন প্রবলেম সলভ করা। আবার এমন কঠিন না যেন হতাশা এসে ভর করে। তোমার ক্ষমতার চেয়ে একটু কঠিন প্রবলেম নিয়ে পড়ে থাকলে তোমার ব্রেইনকে কাজে লাগাতে পারবে। সব সময় সহজ প্রবলেম সলভ করলে দেখবা তুমি ভুল-টুল করতেছ না, কিন্তু তোমার ব্রেইন ঐসব সহজ প্রবলেমের জন্যেই ম্যাচ হয়ে থাকবে। ব্রেইনকে কাজ না দিয়ে অলস বসিয়ে রাখলে (সব সময় সহজ প্রবলেম সলভ করলে) বুদ্ধিমত্তা বাড়ানো কথা চিন্তা করা যায় না।

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

খাতায় কোড কর আর ডিবাগ কর

যদিও এখনকার সময়ে মনে হয় না কেউ খাতায় কোড করে। এরপরেও যদি খাতায় কোড লিখে প্র্যাক্টিস করতে পার এটা তোমার জন্য বেশ ভাল কাজে দিবে। কারণ তুমি যখন IDE তে কোড করতে বসো, মাথায় এটা থাকেই যে ভুল হলে আবার সাথে সাথেই ঠিক করতে পারবো। কিন্তু কাগজে যখন লিখবা তখন লিখার আগে তোমার ব্রেইন অনেক দ্রুত কাজ করবে যথাসম্ভব নির্ভুল কোড লিখার জন্য। কারণ কাগজে কোড লিখা কঠিন।

আর অনসাইট টিম কনটেস্টের ক্ষেত্রে এই গুণের কারণে আরো সুবিধা পেতে পারো। কারণ সেখানে ৩ জনের জন্য একটাই পিসি থাকে। তাই অন্য টিমমেট পিসিতে কোড করতে থাকলে তোমাকে হয়ত খাতাতেই কোড লিখে রাখতে হতে পারে। কোড লিখে বিভিন্ন ইনপুটের জন্য কাগজেই ডিবাগ করার অভ্যাস গড়ে তুলো।

নিয়মিত কনটেস্টে অংশগ্রহণ

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

আর বেশি বেশি কনটেস্ট করলেই সে সময়ে করণীয় বা কী ধরনের সিদ্ধান্ত নিতে হবে সে ব্যাপারে আইডিয়া হয়ে যাবে। যেমন ৫ ঘন্টার কনটেস্টের শেষ ঘন্টায় এসে একটা নতুন প্রবলেম শুরু করা সম্ভবত ভাল সিদ্ধান্ত না। যখন তোমার সাবমিট করা unsolved ২-৩ টা প্রবলেম রয়েছে। নতুন প্রবলেম শুরু করব কি করব না, কোন একটার পিছনে আর সময় দেয়া উচিত হবে কি হবে না? এই সিদ্ধান্তগুলো নেয়া সহজ হয় বেশি বেশি কনটেস্টে অংশ নিলে।

মোটিভেশন (প্রেরণা)

প্রোগ্রামিং কনটেস্ট তোমার প্রোগ্রামিং এর স্কিলকে ব্যাপক ভাবে বাড়িয়ে দিবে। তুমি চিন্তা করতে পারবা না যে একেকটা কনটেস্টের পর তোমার স্কিলটা কতখানি পুশ হয়! হ্যাঁ তোমাকে অনেকেই বলবে যে রিয়েল লাইফে সফটওয়্যার ডেভেলপমেন্টের জন্য এসব প্রবলেম সলভিং এর দরকার হয় না। আসলেই তাই! তুমি খুব বেশি ভাগ্যবান হলে হয়ত তোমার কোম্পানীর কোন প্রোজেক্টে ৫-১০% কাজে তোমার শেখা ডেটা স্ট্রাকচার-অ্যালগরিদম ইমপ্লিমেন্ট করতে পারবা। বা তোমার কনটেস্টের স্কিল কাজে লাগাতে পারবা। কারণ কন্টেস্ট এরিয়াটা রিয়েল ওয়ার্ল্ডের চেয়ে ভিন্ন। কিন্তু কনটেস্ট করলে তোমার দক্ষতা যতটা বাড়বে তা অন্যান্য উপায়ে অর্জন করা কঠিন। একটা জিনিস চিন্তা করো, ছোট বেলায় আমাদেরকে গণিত শেখানো হয়। তার মানে কি আমাদের সবাইকে গণিতবিদ হতে হবে? আমাদেরকে কবিতা পড়ানো হয়, রচনা লিখা শেখানো হয়। তাই বলে আমরা সবাই কি লেখক হব? গণিত শেখানো হয় যেন ব্যক্তি জীবনে হিসাব নিকাশ করতে পারি না কোন একটা বিষয়ে ভাল অ্যানালাইসিস করতে পারি। লেখালেখি শেখানোর কারণ হচ্ছে যেন তুমি যে কোন বিষয়ে তোমার মনের ভাব সুন্দর ভাবে প্রকাশ করতে পারো। প্রোগ্রামিং কনটেস্টটাও ঠিক তেমন। তোমার ভবিষ্যতের ভীতটা গড়তে সাহায্য করবে।

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

This Blog Edited By Sourov Dey

ধন্যবাদ সবাইকে,

Mohammad Jubair

– জাভাস্ক্রিপ্ট এর ইতিহাস –

– জাভাস্ক্রিপ্ট এর ইতিহাস –

আসসালামু-আলাইকুম সবাইকে আজকে শেয়ার করব জাভাস্ক্রিপ্ট এর ইতিহাস এবং কি কেন কিভাবে.? বিষয়টি হলো জাভাস্ক্রিপ্ট দিয়ে কি করা যায়? জাভাস্ক্রিপ্ট কে ওয়েব এর মাতৃভাষা বলা হয়। ওয়েব নির্ভর সময়ের এই প্রোগ্রামিং ভাষা দিয়ে দারুণ সব কাজ করা যায়। তাই আমরা আজকে জানব জাভাস্ক্রিপ্ট কি এবং তার ইতিহাস।

-𝑊ℎ𝑎𝑡 𝑖𝑠 𝐽𝑎𝑣𝑎𝑆𝑐𝑟𝑖𝑝𝑡.?

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

যদি প্রশ্ন করেন জাভাস্ক্রিপ্ট কি কাজে লাগে?

-তাহলে আমি বলবো JavaScript is Everywhere!!!

-𝐻𝑖𝑠𝑡𝑜𝑟𝑦 𝑂𝑓 𝐽𝑎𝑣𝑎𝑆𝑐𝑟𝑖𝑝𝑡.?

Brendon Erich নামক এক যুকব সান্টা ক্লারা বিশ্ববিদ্যালয় থেকে গণিত ও কম্পিউটার বিজ্ঞানে স্নাতক ডিগ্রী লাভ করেন। এরপর ১৯৮৫ সালে তিনি ইউনিভার্সিটি অফ ইলিনয়েস এট আর্বানা শ্যাম্পেইন থেকে স্নাতকোত্তর ডিগ্রী নেনে। তারপর তার কর্মজীবন শুরু করেন সিলিকন গ্রাফিক্সের মাধ্যমে। পরবতীর্তে তিনি ৭ বছর অপারেটিং সিস্টেম ও নেটওয়ার্ক কোড নিয়ে কাজ করেন। সেই সাথে মাইক্রোইউনিটিতে তিনি ডিজিটাল সিগন্যাল প্রসেসিং ও মাইক্রো কার্নেল নিয়ে কাজ করেন। এরপর ১৯৯৫ সালে Brenden Netscape কমিউনিকেশন কর্পোরেশনে তার কর্মজীবন শুরু করেন। নেটস্কেপ তখন প্রথম ব্রাউজার বাজারে এনে হইচই ফেলে দিয়েছিল। মাইক্রোসফটের সাথে ব্রাউজার যুদ্ধটা তখনো শুরু হয়নি। কথা ছিল ব্রেন্ডান নেটস্কেপ ন্যাভিগেটরের জন্য স্কিম নামক প্রোগ্রামিং ভাষা নিয়ে কাজ করবেন।

কিন্তু পরবর্তীতে নেটস্কোপ ব্রেন্ডানকে সম্পূর্ণ একটি নতুন প্রোগ্রামিং ভাষা তৈরি করার দায়িত্ব দেয়া হয়। তারপর বেশ কিছুদিন কাজ করে জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষায় তৈরি করা হয়। যা নেটস্কেপ ন্যাভিগেটর ২.০ বেটা নামক ওয়েব ব্রাউজারে সংযোজন করা হয়। তবে প্রথম তৈরি করা জাভাস্ক্রিপ্টের নাম রাখা হয়েছিলো মোচা। ১৯৯৫ সালের সেপ্টেম্বর মাসে মোচার নাম পরিবর্তন করে রাখা হয় লাইভস্ক্রিপ্ট। লাইভস্ক্রিপ্টের মাত্র কয়েকদিন পরই নাম বদল করে রাখা হয় জাভাস্ক্রিপ্ট।

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

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

কিছুদিন পরেই মাইক্রোসফট এই প্রোগ্রামিং ভাষার সাথে প্রায় মিলে যায় এরকম একটি ল্যাংগুয়েজ JScript নাম দিয়ে প্রায় ৩ মাস পর ইন্টারনেট এক্সপ্লোরারের সাথে বাজারে নিয়ে আসে। এদিকে নেটস্কেপ 𝙴𝙲𝙼𝙰 𝙸𝚗𝚝𝚎𝚛𝚗𝚊𝚝𝚒𝚘𝚗𝚊𝚕 (স্ট্যান্ডার্ড নির্ধারণ করে এরকম একটি ইউরোপীয়ান সংস্থা) এর কাছে ল্যাংগুয়েজটি উপস্থাপন করে। যার ফলাফল ১৯৯৭ সালে ECMAScript এর প্রথম সংস্করণ হিসেবে বাজারে আসে।

১৯৯৯ সালে এই স্ট্যান্ডার্ডটি আরো উন্নত হয় ECMAScript সংস্করণ ৩ হিসেবে – আর সেই থেকে ভাষাটির তেমন কোন বড় পরিবর্তন হয়নি। চতুর্থ সংস্করণটি ভেস্তে যায়, ভাষাটির জটিলতা নিয়ে মতবিরোধের ফলাফল হিসেবে।

তবে এই চতুর্থ সংস্করণের অনেক অংশবিশেষ কে ভিত্তি হিসেবে ধরে ২০০৯ সালে নতুন ECMAScript এর পঞ্চম সংস্করণ প্রকাশ করা হয়। এরপর পিছনে তাকাতে হয়নি জাভাস্ক্রিপ্টকে। ২০১৫ সালে যষ্ঠ সংস্করণ উম্মোচন হয়। তারপর প্রায় প্রতি বছরই নানা আপডেট আসে এই ভাষাটিতে।

২০২১ সালের জুলাই মাসে ECMAScript 2022 সংস্করণ উন্মোচন হয়। তবে স্ট‍্যাবল সংস্করণ হয়েছে রয়েছে ECMAScript 2021

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

-Stack Overflow এর জরিপ অনুযায়ী বিশ্বের জনপ্রিয় ল্যাঙ্গুয়েজ গুলোর মধ্যে জাভাস্ক্রিপ্ট অন্যতম! কারন এটা ওয়েব এর প্রান এবং একটি শক্তিশালী ল্যাঙ্গুয়েজ।

দিন দিন এর চাহিদা বেড়েই চলেছে। একটু খেয়াল করলেই দেখতে পাবেন জাভাস্ক্রিপ্ট এর ব্যবহার সব জায়গায়। বড় বড় ওয়েবসাইট গুলো তে ৬০% থেকে ৭০% কোড ই থাকে জাভাস্ক্রিপ্ট এর। আপনি যদি ব্রাউজার এর জাভাস্ক্রিপ্ট Disable করে ওয়েব ব্রাউজ করতে জান, দেখবেন বেশিরভাগ সাইট ঠিক মত কাজ করছে না।

-এখনই চেষ্টা করে দেখুন, জাভাস্ক্রিপ্ট Disabled করে ফেইসবুকে ঢোকার চেষ্টা করুন, দেখবেন ফেইসবুক বলবে “JavaScript Required” অর্থাৎ জাভাস্ক্রিপ্ট ছাড়া আপনি ফেইসবুক ব্যাবহার করতে পারবেন না।

এছাড়া আপনি যদি জাভাস্ক্রিপ্ট এর উপর বস হতে পারেন তাহলে আপনি ওয়েব এন্ড অ্যাপ দুই সেক্টরে রাজত্ব করতে পারবেন।

যেমন : ওয়েব এর জন্য রয়েছে React JS, Node JS, Express JS এগুলো দিয়ে একটা ওয়েবসাইটের Front End & Backend দুইটাই একসাথে ডেভেলপ করা সম্ভব। এছাড়া আপনি যদি অ্যাপ সেক্টরে আসতে চান জাভাস্ক্রিপ্ট এর হাত ধরে সেহেতু React Native আপনার জন্য এক্সট্রা একটা প্লাস পয়েন্ট। কারণ বর্তমানে দিন দিন React Native এর চাহিদা বৃদ্ধি পাচ্ছে। যেমন : আমরা যে বর্তমান ফেইসবুক চালাই এটাই React Native দিয়ে বানানো এর বাইরে বিশ্বের বিভিন্ন নামি-দামি কোম্পানির Official অ্যাপস গুলো React Native Based… So, আপনি জাভাস্ক্রিপ্ট এর উপর বস হতে পারলে এই যুগে আপনার চাহিদা বা Demand সবার উপরে থাকবে।

যদি আপনি ক্যারিয়ার হিসেবে জাভাস্ক্রিপ্ট কে বেছে নেন তাহলে আপনার কোনদিন কাজের অভাব হবে না।

জাভাস্ক্রিপ্ট ডেভেলপারদের এভারেজ বেতন 95,981 ডলার , যা বাংলা টাকায় অনেক বেশি!

এছাড়া ও আপনি যদি কোন ফার্ম এ জব না করতে চান, আপনার জন্য রয়েছে অনলাইন মার্কেটপ্লেস।

অনলাইন মার্কেটপ্লেস গুলো তে জাভাস্ক্রিপ্ট ডেভেলপারদের চাহিদা সব থেকে বেশি।

মার্কেটপ্লেস গুলো তে একজন ফ্রিল্যান্সার হিসেবে কাজ করতে পারবেন। এখানে আপনি পাবেন স্বাধীন ভাবে কাজ করার সুবিধা।

মার্কেট থেকে ক্লাইন্ট এর মাধ্যমে কাজ নিবেন এবং কাজ শেষে জমা দিয়ে আপনি আপনার কাজের পারিশ্রমিক পাবেন। খুবই সিম্পল।

𝙷𝚘𝚠 𝚃𝚘 𝚆𝚎 𝚕𝚎𝚊𝚛𝚗 𝙹𝚂.?

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

This Blog Edited By Sourov Dey

-ধন্যবাদ সবাইকে।

Home
Account
Course
Search