এই উইকিহো আপনাকে শেখায় কিভাবে একটি প্রোগ্রামিং কমিউনিটিতে বিনামূল্যে, ওপেন সোর্স সফটওয়্যার বিকাশ ও রক্ষণাবেক্ষণ শুরু করতে হয়। যদিও যারা এটি করে তারা কখনও কখনও "সফ্টওয়্যার হ্যাকার" হিসাবে উল্লেখ করা হয়, তবে অবস্থানটি সফ্টওয়্যার তৈরি এবং টুইক করার দিকে বেশি মনোনিবেশ করে। আপনি যদি এমন ধরণের হ্যাকার হতে আগ্রহী হন যিনি সফ্টওয়্যার বা অপারেটিং সিস্টেমে দুর্বলতাগুলি সন্ধান করেন এবং কাজে লাগান, দয়া করে এর পরিবর্তে হ্যাকার হওয়ার বিষয়ে আমাদের নিবন্ধটি দেখুন।
ধাপ
ধাপ 1. সফ্টওয়্যার ডেভেলপমেন্টের জন্য কী প্রয়োজন তা বুঝুন।
সফ্টওয়্যার হ্যাকার হওয়ার অর্থ হল যে আপনি ব্যবহারকারীদের সন্তুষ্ট করতে এবং আপনার সফ্টওয়্যারটিকে প্রাসঙ্গিক রাখতে বিনামূল্যে সফটওয়্যার নির্মাণ, টুইকিং এবং আপডেট করার জন্য আপনার প্রচুর সময় ব্যয় করবেন। এই লক্ষ্যে, আপনাকে নিম্নলিখিত মানদণ্ডগুলি পূরণ করতে হবে:
- একটি সিস্টেম ভাষা (উদা,, C ++) এবং একটি প্রোগ্রামিং ভাষা (যেমন, পাইথন) উভয়ের উপর একটি ভাল উপলব্ধি আছে
- কোন প্ল্যাটফর্মের জন্য আপনি প্রোগ্রাম করতে চান তা জানুন (যেমন, উইন্ডোজ, অ্যান্ড্রয়েড ইত্যাদি)
- আপনার নির্বাচিত ভাষা, প্ল্যাটফর্ম এবং সফটওয়্যার ঘরানা সম্পর্কে প্রচুর পরিমাণে সময় ব্যয় করতে ইচ্ছুক হন
ধাপ 2. জেনে নিন যে কেউ ফ্রি সফটওয়্যার হ্যাকার হতে পারে।
জনপ্রিয় বিশ্বাসের বিপরীতে, গণিতের ব্যতিক্রমী বোঝাপড়া, পূর্ববর্তী কোডিং জ্ঞান, এবং/অথবা কম্পিউটার বিজ্ঞানে একটি কলেজ ডিগ্রী (বা অনুরূপ) আপনার কীভাবে একটি বিনামূল্যে সফ্টওয়্যার হ্যাকার হতে হয় তা শিখতে হবে।
যতক্ষণ না আপনি সফটওয়্যার ডেভেলপ করতে শিখতে বৈধভাবে আগ্রহী এবং আপনি যথাযথভাবে সমালোচনা গ্রহণ করতে ইচ্ছুক থাকবেন, এমন মনে করার কোন কারণ নেই যে আপনি সফলভাবে সফটওয়্যার হ্যাকার হতে পারবেন না।
পদক্ষেপ 3. আপনার শেষ লক্ষ্য নির্ধারণ করুন।
সফটওয়্যার ডেভেলপমেন্ট একটি সাধারণ পার্শ্ব শখ থেকে পূর্ণকালীন ক্যারিয়ার পর্যন্ত যেকোন কিছুর জন্য ব্যবহার করা যেতে পারে; প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার আগে আপনি কি করতে চান তা জানার আগে বা প্ল্যাটফর্ম নির্বাচন করার মাধ্যমে আপনাকে রাস্তায় মনোযোগী রাখতে সাহায্য করবে।
- যদিও কঠোরভাবে প্রয়োজনীয় নয়, কম্পিউটার সায়েন্স বা সফটওয়্যার ডেভেলপমেন্টের একটি ডিগ্রি আপনার কর্মসংস্থান ত্বরান্বিত করতে সাহায্য করবে যদি সফটওয়্যার ডেভেলপমেন্টে ক্যারিয়ার আপনার শেষ লক্ষ্য হয়।
- যদি আপনার লক্ষ্য কেবল একটি অ্যাপ বা একটি প্রোগ্রাম তৈরি করা যা ব্যবহারকারীদের পূর্বের কঠিন বা অসম্ভব কাজ সম্পন্ন করতে সাহায্য করে, তাহলে নিশ্চিত করুন যে প্রশ্নে থাকা সফটওয়্যারটি ইতিমধ্যেই তৈরি হচ্ছে না।
ধাপ 4. একটি প্ল্যাটফর্ম নির্ধারণ করুন যেখানে আপনি কাজ করতে চান।
প্রতিটি প্রধান প্ল্যাটফর্ম-উইন্ডোজ, ম্যাকওএস, আইওএস, অ্যান্ড্রয়েড এবং লিনাক্স-এর নিজস্ব সম্প্রদায়, পছন্দের প্রোগ্রামিং ভাষা এবং ব্যক্তিগত চাহিদা রয়েছে। সফটওয়্যার ডেভেলপমেন্টে ডুব দেওয়ার আগে আপনার সফটওয়্যার কোন প্ল্যাটফর্মে প্রয়োগ করা হবে তা জানা গুরুত্বপূর্ণ।
- যে প্ল্যাটফর্মের জন্য আপনি বিকাশ করছেন সেই একই প্ল্যাটফর্মে কাজ করা ভাল। উদাহরণস্বরূপ, যদি আপনি একটি অ্যান্ড্রয়েড অ্যাপ ডেভেলপ করছেন, তাহলে ইউনিক্স-ভিত্তিক সিস্টেম যেমন ম্যাক বা লিনাক্স কম্পিউটারের ব্যবহার উইন্ডোজ ব্যবহারের চেয়ে ভালো।
- লিনাক্স অনেক সফটওয়্যার ডেভেলপারদের জন্য একটি সাধারণভাবে ব্যবহৃত (এবং বিনামূল্যে) সমাধান।
ধাপ 5. একটি কোডিং ভাষা নির্বাচন করুন।
দুই ধরনের কোডিং ভাষা আছে; ডেভেলপমেন্টে ঝাঁপ দেওয়ার আগে আপনাকে কমপক্ষে একটি শিখতে হবে, যদিও আপনাকে শেষ পর্যন্ত বেশ কয়েকটি ভাষা জানতে হবে:
- সিস্টেম ভাষা - একটি কম্পিউটার ভাষা যা সরাসরি সিস্টেমের সাথে ইন্টারফেস করতে ব্যবহৃত হয়। সাধারণ উদাহরণগুলির মধ্যে রয়েছে সি, সি ++ এবং জাভা।
- প্রোগ্রামিং ল্যাঙ্গুয়েজ - এমন একটি ভাষা যা আপনার সফটওয়্যারের ইন্টারফেস (যেমন, ব্যবহারকারীরা কি দেখবে) এবং এর ফাংশন ডিজাইন করতে ব্যবহৃত হয়। সাধারণ উদাহরণগুলির মধ্যে রয়েছে পাইথন, রুবি এবং পার্ল।
ধাপ 6. কমান্ড লাইন দিয়ে আরামদায়ক হোন।
প্রতিটি কম্পিউটারে একটি কমান্ড লাইন অ্যাপ্লিকেশন থাকে (যেমন, উইন্ডোজের জন্য কমান্ড প্রম্পট, ম্যাক এবং লিনাক্সের জন্য টার্মিনাল ইত্যাদি)। আপনি কম্পিউটারের সাথে যোগাযোগের জন্য কমান্ড লাইন ব্যবহার করতে পারেন, যার সাহায্যে আপনি প্রয়োজন অনুযায়ী বিস্তারিত কমান্ড জারি করতে পারেন।
যদিও আপনি আপনার সফ্টওয়্যার ডেভেলপমেন্টের বেশিরভাগই কমান্ড লাইন থেকে সম্পাদন করবেন না, আপনাকে কিছু প্রোগ্রাম চালানোর জন্য বা আপনার কম্পিউটারের সাথে সফ্টওয়্যার কমান্ডগুলিকে সংহত করতে কমান্ড লাইন ব্যবহার করতে হবে।
ধাপ 7. নোটপ্যাড ++ ডাউনলোড করে ব্যবহার করুন।
নোটপ্যাড ++ একটি অমূল্য প্রোগ্রামিং রিসোর্স কারণ এটি উভয়ই কোডিংকে ভিজ্যুয়াল এইডস বাস্তবায়নের মাধ্যমে ট্র্যাক রাখা সহজ করে এবং একটি শিক্ষাগত সরঞ্জাম হিসাবে কাজ করে।
যদিও আপনি শেষ পর্যন্ত আপনার কোডের একটি বড় পরিমাণ লেখার জন্য বিভিন্ন কমান্ড লাইন-ভিত্তিক পাঠ্য সম্পাদক এবং প্রোগ্রামগুলি ব্যবহার করবেন, যখন আপনি প্রথম শুরু করছেন তখন নোটপ্যাড ++ একটি অভূতপূর্ব (এবং বিনামূল্যে) শেখার সরঞ্জাম।
ধাপ 8. একটি উন্নয়ন পরিবেশ ইনস্টল করুন।
আপনার নির্বাচিত প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং প্ল্যাটফর্মগুলিতে সম্ভবত ডেভেলপমেন্ট সফটওয়্যার রয়েছে যা আপনাকে আপনার কম্পিউটার থেকে আপনার প্রকল্পগুলি সংরক্ষণ এবং পরীক্ষা করতে দেয়; এই ধরনের সফটওয়্যারকে "উন্নয়ন পরিবেশ" বলা হয়। যদি সম্ভব হয়, প্রোগ্রামটি শেখা শুরু করার আগে আপনার নির্বাচিত ভাষার জন্য একটি উন্নয়ন পরিবেশ খুঁজুন এবং ইনস্টল করুন।
- আপনি যদি একটি অ্যান্ড্রয়েড অ্যাপ ডেভেলপ করছেন, উদাহরণস্বরূপ, আপনি অ্যান্ড্রয়েড স্টুডিও ডেভেলপমেন্ট কিট ডাউনলোড এবং ইনস্টল করতে চান।
- জাভা ব্যবহারকারীরা প্রায়ই Eclipse এর মত একটি উন্নয়ন পরিবেশ ব্যবহার করবে।
ধাপ 9. কিভাবে প্রোগ্রাম করতে হয় তা শিখতে শুরু করুন।
আপনি কোন ভাষাটি ব্যবহার করতে চান তা জানার পরে, এটি কীভাবে ব্যবহার করতে হয় তা শেখার শুরু করার সময় এসেছে। অসংখ্য অনলাইন টিউটোরিয়াল রয়েছে-উভয় বিনামূল্যে এবং প্রদত্ত-যা আপনি অংশ নিতে পারেন, এবং বেশিরভাগ লাইব্রেরিতে প্রোগ্রামিং ভাষা-ভিত্তিক বইগুলি (যেমন, ডামিদের জন্য C ++) থাকবে যা আপনাকে বিনামূল্যে একটি সম্পূর্ণ ভাষা অনুসরণ করতে দেবে।
ফ্রি প্রোগ্রামিং রিসোর্স অনলাইনে প্রচুর, তাই পেইড ক্লাস বা বুটক্যাম্পে সাইন আপ করার আগে এগুলি আপনার সুবিধার্থে ব্যবহার করুন।
ধাপ 10. এমন একটি সম্প্রদায় খুঁজুন যা আপনার পছন্দের বিভাগে কাজ করে
ওপেন সোর্স প্রকল্প যেমন সোর্সফোর্জ বা গিটহাব -এ পাওয়া প্রায়ই আগ্রহী অনুসারী থাকে; যদি আপনি এমন একটি প্রকল্প খুঁজে পেতে পারেন যা একই প্রোগ্রামিং ভাষা ব্যবহার করে এবং/অথবা আপনার নিজের প্রকল্পের অনুরূপ লক্ষ্য থাকে, তাহলে আপনি পরামর্শ যোগ করতে এবং উন্নয়ন প্রক্রিয়া পর্যবেক্ষণ করতে সম্প্রদায়ের সাথে যোগ দিতে পারেন।
যেকোনো দক্ষতার মতো, সৃষ্টি প্রক্রিয়ার সাথে জড়িত হওয়া (এমনকি আপনি যদি একজন পর্যবেক্ষকও হন) ব্যবহারিক অভিজ্ঞতা অর্জনের সর্বোত্তম উপায়।
ধাপ 11. সম্প্রদায়ের সাথে যোগাযোগ করুন।
আপনি সম্প্রদায়ের ফোরামে পোস্ট করা থেকে শুরু করে আপনার নিজের ওপেন সোর্স প্রকল্প শুরু করা পর্যন্ত যে কোন কিছু করতে পারেন, কিন্তু মূল লক্ষ্য হল আপনার ধারণা এবং প্রতিবন্ধকতাগুলি সম্প্রদায় দ্বারা চালানো এবং তাদের মতামত শোনা।
আপনি যদি নিজের ওপেন সোর্স প্রকল্প শুরু করেন, তাহলে প্রকল্পের দিকনির্দেশনার ক্ষেত্রে সম্প্রদায়ের সাথে আপোষ করার জন্য প্রস্তুত থাকুন।
ধাপ 12. অবদান রাখার জন্য ওপেন সোর্স প্রকল্পগুলি দেখুন।
সফটওয়্যার ডেভেলপমেন্টের ক্ষেত্রে প্রায়শই হয়, আপনার মূল ধারণা বা পোষা প্রাণী প্রকল্পটি ইতিমধ্যেই এমন একটি সম্প্রদায় দ্বারা চলছে যা আপনার তুলনায় অনেক বেশি অভিজ্ঞতা সম্পন্ন। যদি তাই হয়, প্রকল্পে যোগদান করার কথা বিবেচনা করুন। এটি সফটওয়্যার প্রকল্পগুলি কীভাবে কাজ করে সে সম্পর্কে আপনার বোঝাপড়া আরও বাড়িয়ে তুলবে এবং আপনার প্রকল্পকে জীবিত করতে সাহায্য করবে, যদিও একটি গ্রুপ সেটিংয়ে।
ওপেন সোর্স প্রকল্পগুলি আপনার শেষ লক্ষ্য নাও হতে পারে, তবে সেগুলি ব্যবহারকারী-ভিত্তিক পণ্য গঠনের জন্য একাধিক ভিন্ন দৃষ্টিকোণ একত্রিত হওয়ার একটি দুর্দান্ত উপায় হিসাবে কাজ করে।
ধাপ 13. আপনার কাজের সর্বজনীন সমালোচনা গ্রহণ করুন।
আপনি যখন আপনার সফটওয়্যার ডেভেলপমেন্টের সাথে অগ্রসর হন এবং আপনার কাজ জমা দেন, আপনি সমালোচনার শিকার হবেন। সম্প্রদায়ের মতামত শুনলে আপনার ভবিষ্যৎ বিকাশের কাঠামো তৈরি করতে সাহায্য করবে, কিন্তু এটি আপনাকে পরবর্তী প্রকল্পগুলির জন্য অনুরূপ সমস্যার সম্মুখীন হওয়ার জন্য মূল্যবান শর্টকাট এবং পদ্ধতিও শেখাবে।
সব মতামত গঠনমূলক হবে না। আপনি যদি অভদ্র বা অযৌক্তিক প্রতিক্রিয়া পান, তবে যদি আপনি প্রতিক্রিয়া জানাতে চান তবে ভদ্র হতে ভুলবেন না।
পদক্ষেপ 14. সফ্টওয়্যার ডেভেলপমেন্ট চ্যালেঞ্জ, প্রোগ্রাম বা প্রতিযোগিতায় অংশগ্রহণ করুন।
আপনি প্রায়ই আপনার সম্প্রদায়ের ফোরামে, Craigslist এবং ক্যাম্পাসে চ্যালেঞ্জ, বুটক্যাম্প, বক্তৃতা, ক্লাস এবং সরাসরি প্রতিযোগিতা পাবেন। এই ধরনের কোন ইভেন্ট বা ক্যাম্পের জন্য সাইন আপ করা আপনাকে সমমনা সহকর্মীদের সাথে একটি পরিবেশে রাখার সময় কিছু নির্দেশিত অভিজ্ঞতা দেবে।
একটি বিকল্প হল গুগলের সামার অফ কোড প্রোগ্রাম, যা শিক্ষার্থীদের ওপেন সোর্স প্রকল্প এবং কমিউনিটি কোডিং এর সাথে পরিচিত হতে সাহায্য করে।
ধাপ 15. আপনার দক্ষতা বিকাশ চালিয়ে যান।
সফটওয়্যার ডেভেলপমেন্ট এমন একটি ক্ষেত্র যা প্রযুক্তির বিকাশের সাথে সাথেই বাড়তে থাকবে, তাই নিশ্চিত করুন যে আপনি ক্রমাগত নতুন প্রকল্প, ভাষা, অপারেটিং সিস্টেম এবং আপনার পছন্দের এলাকায় অন্য কোন প্রাসঙ্গিক তথ্য সম্পর্কে শিখছেন।
একজন মুক্ত সফটওয়্যার হ্যাকারের সাফল্যের অনেকটাই কৌতূহলের উপর নির্ভরশীল। যতক্ষণ আপনি প্রশ্ন জিজ্ঞাসা করছেন এবং উত্তর খুঁজছেন, সফটওয়্যার ডেভেলপমেন্টের সাথে আপনার সময় ফলপ্রসূ এবং দীর্ঘস্থায়ী হবে।
পরামর্শ
- C (বা C ++) এবং পাইথন শেখার মাধ্যমে শুরু করা আপনাকে তুলনামূলকভাবে ভাল অবস্থানে রাখবে, যদিও জাভা একটি জনপ্রিয় সূচনা পয়েন্ট।
- অবশেষে, আপনি একটি বিনামূল্যে সফ্টওয়্যার হ্যাকার হিসাবে আপনার সময় বেশ কয়েকটি কম্পিউটার ভাষা শিখতে শেষ করবেন।
- কম্পিউটার প্রোগ্রামিং ভীতিজনক মনে হতে পারে, কিন্তু এটি কেবল কম্পিউটারের সাথে এমন ভাষায় কথা বলা যা কম্পিউটার বোঝে।
সতর্কবাণী
- একটি পরিত্যক্ত প্রকল্পকে পুনরুজ্জীবিত করার চেষ্টা করা অনিবার্য যা ইতিমধ্যে তার আগের দলকে হারিয়ে ফেলেছে।
- প্রোগ্রামিংয়ের মৌলিক বিষয় বা প্রোগ্রামিং টুলস সম্পর্কিত কোনো প্রশ্ন একটি ওপেন সোর্স প্রোগ্রামের আলোচনা পাতায় জিজ্ঞাসা করা থেকে বিরত থাকুন। একজন ফ্রি সফটওয়্যার প্রোগ্রামারের সময় মূল্যবান। পরিবর্তে, অপেশাদার বা নতুন প্রোগ্রামারদের জন্য সম্প্রদায়ের প্রোগ্রামিংয়ের মূল বিষয়গুলি নিয়ে আলোচনা করুন।
- কম্পিউটারে একসাথে কয়েক ঘন্টার বেশি বসে থাকা আপনার সামগ্রিক স্বাস্থ্যের উপর দীর্ঘস্থায়ী প্রভাব ফেলতে পারে। উঠতে এবং প্রসারিত করতে মনে রাখবেন, পর্দা থেকে দূরে তাকান, এবং প্রতি কয়েক ঘন্টা অন্তত একবার ঘুরে বেড়ান।
- ধৈর্য্য ধারন করুন. যেকোনো দক্ষতা শেখার মতো, একটি বিনামূল্যে সফটওয়্যার হ্যাকার হয়ে উঠতে সময় এবং সংকল্প লাগবে।