CodeGym /Java Blog /এলোমেলো /শুরুতে, ছিল...
John Squirrels
লেভেল 41
San Francisco

শুরুতে, ছিল...

এলোমেলো দলে প্রকাশিত
শুরুতে ছিল... - ১ আমার প্রথম চাকরির প্রবেশনকাল 3 বছর আগে শেষ হয়েছিল, কিন্তু এখনই আমি একটি নিবন্ধ লেখার জন্য সময় খুঁজে পেয়েছি। আমি আমার বিশ্ববিদ্যালয়ে বিভিন্ন বিভাগে এক বছর কাটিয়েছি: আমার প্রথম সেমিস্টারে, আমি ম্যানেজমেন্ট অধ্যয়ন করেছি, এবং আমার দ্বিতীয় সেমিস্টারে, আমি সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে স্যুইচ করেছি। আমি আশা করেছিলাম যে তারা আমাকে কীভাবে প্রোগ্রাম করতে হয় তা শেখাবে, কিন্তু আমি ভুল হয়েছিলাম। তাই, আমি উপকরণ সংগ্রহ করেছি এবং নিজেরাই সবকিছু শিখব বলে সিদ্ধান্ত নিয়েছি। আমি আমার শিক্ষকের কাছে কৃতজ্ঞ হওয়ার একমাত্র কারণ হল তিনি সুপারিশ করেছিলেন যে আমি স্টিফেন প্র্যাটের ইবুক "দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ" দিয়ে শুরু করব। এটি সত্যিই অনেক ব্যবহারিক অনুশীলন সহ একটি ভাল বই। আমি বইটিতে প্রায় 2 মাস কাটিয়েছি, তারপরে আমি বন্ধুদের গ্রুপে এই অনলাইন জাভা কোর্সটি জুড়ে এসেছি এবং তাই এটি শুরু হয়েছিল। প্রথমে, আমি অ্যান্ড্রয়েড বিকাশকারী হওয়ার পরিকল্পনা করেছি, কিন্তু ব্যাকএন্ডটি আমার কাছে আরও আকর্ষণীয় বলে মনে হয়েছিল যেহেতু আমি আমার শেখার ক্ষেত্রে অগ্রসর হচ্ছি। যাইহোক, লেভেল 20 এ পৌঁছতে আমার পড়াশুনা করতে 3 মাস লেগেছে, তারপরে আমি একটি চাকরি খোঁজার চেষ্টা করার সিদ্ধান্ত নিয়েছি। ব্যবসার প্রথম আদেশ ছিল অন্য শহরে চলে যাওয়াযেহেতু আমার কাছে জুনিয়র জাভা ডেভেলপারের জন্য কোনো খোলা নেই। আমি একটি কোম্পানী পেয়েছি, আবেদন করেছি এবং একটি পরীক্ষামূলক কাজ পেয়েছি, যা সম্পূর্ণ করার জন্য আমাকে এক সপ্তাহ সময় দেওয়া হয়েছিল। আমাকে হাইবারনেট, সার্ভলেট/জেএসপি এবং মাইএসকিউএল ব্যবহার করে একটি সাধারণ ওয়েব অ্যাপ্লিকেশন লিখতে হয়েছিল। এই সমস্ত শর্তাবলী দেখে, আমি কেবল জানতাম যে মাইএসকিউএল একটি ডাটাবেস। প্রথমে আমি খুব হতাশ হয়েছিলাম। আমি এমনকি কিছু কেএফসি-তে চাকরির সুযোগ সন্ধান করার সিদ্ধান্ত নিয়েছিলাম, কিন্তু তারপরে আমি পরীক্ষামূলক কাজে একটি ফাটল নেওয়ার সিদ্ধান্ত নিয়েছিলাম। সর্বোপরি, আমি সবসময় কেএফসিতে চাকরি পেতে পারি। আমি সারা সপ্তাহ অবিরাম কাজ করেছি এবং পরীক্ষা শেষ করতে পেরেছি। আমি আমার সমাধান জমা দিয়েছি, কিন্তু এটি "সুন্দর ছিল না", তাই আমি এটি আরও 4 বার সংশোধন করেছি। আমার শেষ সমাধানটি সঠিক বলে প্রমাণিত হয়েছে, কিন্তু পদগুলি ইতিমধ্যেই পূরণ করা হয়েছে এবং অতিরিক্ত আবেদন 3 মাসের জন্য গ্রহণ করা হবে না। আপনি কি করতে যাচ্ছেন, ডান? আগামী ৩ মাসের জন্য, আমি HTML, CSS, JS, SQL এবং PHP শিখেছি। কেন পিএইচপি? আমার একটি সার্ভারের ভাষা প্রয়োজন যা অনুরোধের প্রতিক্রিয়া জানাবে এবং এই জাতীয়। সেই সময়ে, servlets এবং jsp খুব জটিল বলে মনে হয়েছিল। শেষ পর্যন্ত, আমি একটি ভয়ানক ইন্টারফেস সহ একটি পূর্ণাঙ্গ ওয়েব অ্যাপ্লিকেশন তৈরি করেছি। আমি আমার পোর্টফোলিওর জন্য GitHub-এ কোডটি প্রকাশ করেছি। এই সময়ের মধ্যে, 3 মাস কেটে গেছে এবং একই কোম্পানি আবার আমার সাথে যোগাযোগ করেছে এবং আমাকে একটি ইন্টারভিউতে আমন্ত্রণ জানিয়েছে, SQL সম্পর্কে আমার জ্ঞান পরীক্ষা করার জন্য আরেকটি সহজ কাজ দিয়েছে, যা আমি কয়েক ঘন্টার মধ্যে সম্পূর্ণ করতে পেরেছি। আমি যে ব্যক্তির সাথে কর্মসংস্থান সম্পর্কে কথা বলছিলাম তিনি ইঙ্গিত দিয়েছিলেন যে তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার সম্পর্কে জিজ্ঞাসা করবে — যে বিষয়গুলি আমার কাছে এখনও আয়ত্ত করার সময় ছিল না। যে, সাক্ষাৎকারের আগে 15 দিন ছিল. আমি এটা বুজেছি! রবার্ট লাফোরের বই "জাভাতে ডেটা স্ট্রাকচার এবং অ্যালগরিদম" আমাকে সাহায্য করেছে। আমি করিনি' দুই সপ্তাহের মধ্যে এটি পড়ার এবং বোঝার সময় নেই, কিন্তু আমি এখনও অনেক কিছু শিখেছি। আর তখনই এলো সাক্ষাৎকারের দিন। নির্ধারিত সময়ে পৌঁছে গেলাম। দু'জন লোক আমাকে সালাম দিল এবং সাক্ষাৎকার শুরু হল। আমি চিন্তিত ছিলাম বলার জন্য একটি বন্য অবমূল্যায়ন হবে. আমার কণ্ঠ কেঁপে উঠল। তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার ছাড়া সবকিছু সম্পর্কে জিজ্ঞাসা করেছিল। তারা স্প্রিং, ডিআই, আইওসি, হাইবারনেট সম্পর্কে জিজ্ঞাসা করেছিল, জেভিএম কীভাবে কাজ করে, কীভাবে আবর্জনা সংগ্রহকারী কাজ করে — আমি এই প্রশ্নের একটিরও উত্তর দিতে পারিনি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আর তখনই চলে এলো সাক্ষাৎকারের দিন। নির্ধারিত সময়ে পৌঁছে গেলাম। দু'জন লোক আমাকে সালাম দিল এবং সাক্ষাৎকার শুরু হল। আমি চিন্তিত ছিলাম বলার জন্য একটি বন্য অবমূল্যায়ন হবে. আমার কণ্ঠ কেঁপে উঠল। তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার ছাড়া সবকিছু সম্পর্কে জিজ্ঞাসা করেছিল। তারা স্প্রিং, ডিআই, আইওসি, হাইবারনেট সম্পর্কে জিজ্ঞাসা করেছিল, জেভিএম কীভাবে কাজ করে, কীভাবে আবর্জনা সংগ্রহকারী কাজ করে — আমি এই প্রশ্নের একটিরও উত্তর দিতে পারিনি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আর তখনই চলে এলো সাক্ষাৎকারের দিন। নির্ধারিত সময়ে পৌঁছে গেলাম। দু'জন লোক আমাকে সালাম দিল এবং সাক্ষাৎকার শুরু হল। আমি চিন্তিত ছিলাম বলার জন্য একটি বন্য অবমূল্যায়ন হবে. আমার কণ্ঠ কেঁপে উঠল। তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার ছাড়া সবকিছু সম্পর্কে জিজ্ঞাসা করেছিল। তারা স্প্রিং, ডিআই, আইওসি, হাইবারনেট সম্পর্কে জিজ্ঞাসা করেছিল, জেভিএম কীভাবে কাজ করে, কীভাবে আবর্জনা সংগ্রহকারী কাজ করে — আমি এই প্রশ্নের একটিরও উত্তর দিতে পারিনি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আমি চিন্তিত ছিলাম বলার জন্য একটি বন্য অবমূল্যায়ন হবে. আমার কণ্ঠ কেঁপে উঠল। তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার ছাড়া সবকিছু সম্পর্কে জিজ্ঞাসা করেছিল। তারা স্প্রিং, ডিআই, আইওসি, হাইবারনেট সম্পর্কে জিজ্ঞাসা করেছিল, জেভিএম কীভাবে কাজ করে, কীভাবে আবর্জনা সংগ্রহকারী কাজ করে — আমি এই প্রশ্নের একটিরও উত্তর দিতে পারিনি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আমি চিন্তিত ছিলাম বলার জন্য একটি বন্য অবমূল্যায়ন হবে. আমার কণ্ঠ কেঁপে উঠল। তারা অ্যালগরিদম এবং ডেটা স্ট্রাকচার ছাড়া সবকিছু সম্পর্কে জিজ্ঞাসা করেছিল। তারা স্প্রিং, ডিআই, আইওসি, হাইবারনেট সম্পর্কে জিজ্ঞাসা করেছিল, জেভিএম কীভাবে কাজ করে, কীভাবে আবর্জনা সংগ্রহকারী কাজ করে — আমি এই প্রশ্নের একটিরও উত্তর দিতে পারিনি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি। আমি শুধুমাত্র জাভা কোর (সংগ্রহ, ব্যতিক্রম, OOP, ইত্যাদি) সম্পর্কে প্রশ্নের উত্তর দিয়েছি। সাক্ষাত্কারে থাকাকালীন, আমি জানতাম যে আমি এটিতে ব্যর্থ হয়েছি, তবে আমি এখনও কোনও প্রতিক্রিয়া না পেয়ে হতাশ ছিলাম। পরিবর্তে, আমি আমার জ্ঞানের ফাঁকগুলি চিহ্নিত করেছি এবং সেগুলি বন্ধ করার জন্য কঠোর পরিশ্রম করতে শুরু করেছি।আমার ব্যর্থ সাক্ষাত্কারের এক মাস পরে আমি একটি চাকরি পেয়েছি। যাইহোক, আমি জাভারাশ নিয়ে আলোচনায় চাকরির সুযোগ পেয়েছি ( জাভারাশ হল কোডজিমের রাশিয়ান-ভাষার সংস্করণ — সম্পাদকের নোট) প্রথমে, একজন নিয়োগকারীর সাথে একটি স্কাইপ ইন্টারভিউ ছিল (এটি প্রায় 2 ঘন্টা স্থায়ী হয়েছিল)। তারা জাভা কোর, আবর্জনা সংগ্রহ (এখন আমি জানতাম এটি কীভাবে কাজ করে), ডেটাবেস এবং ডেটা স্ট্রাকচার সম্পর্কে জিজ্ঞাসা করেছিল। ইন্টারভিউয়ার আমাকে আমার স্ক্রিন শেয়ার করতে এবং একটি ক্যালকুলেটর লিখতে বলেছিল। আমি প্রায় আনন্দে কেঁদেছিলাম, যেহেতু আমি মাত্র এক সপ্তাহ আগে একটি ক্যালকুলেটর লিখেছিলাম। নিজের প্রতি আত্মবিশ্বাসী হয়ে কাজটা শুরু করলাম। কিন্তু আমার উত্তেজনার কারণে হোক বা অন্য কোনো কারণে, আমি অ্যালগরিদমের অংশ ভুলে গেছি। আমার পর্দা শেয়ার করা হয়েছে. আমি গুগলের সাথে পরামর্শ করতে ভয় পেয়েছিলাম। সৌভাগ্যবশত, আমার মোবাইল ফোন ছিল, যা আমার পাছা রক্ষা করেছিল। পরের দিন, তারা একটি ব্যক্তিগত সাক্ষাত্কারের জন্য ডাকে এবং কয়েক দিন পরে আমি একটি প্রস্তাব পেয়েছি. এটি একটি অফিসিয়াল অবস্থান ছিল না. আমার ভূমিকা ছিল একজন একমাত্র মালিকের শিক্ষানবিশ। আমরা ইভেন্ট পরিকল্পনা, টিকিট বিক্রি ইত্যাদির জন্য একটি পরিষেবা লিখেছিলাম৷ আমার কাজের প্রথম দিনের কথা মনে আছে৷ আমার বস কি করা দরকার তা ব্যাখ্যা করতে 15 মিনিট সময় নিয়েছিলেন। "সবকিছু পরিষ্কার?" তিনি জিজ্ঞাসা. "হুম, সত্যিই না। আপনি কি আর একবার যেতে পারবেন?" খুব উদ্বিগ্ন হয়ে জিজ্ঞেস করলাম। বস আবার সব বুঝিয়ে দিলেন। "এখন পরিষ্কার?" "হ্যাঁ, এখন তাই।" আসলে, আমি কিছুই বুঝতে পারিনি। কিন্তু আমি অন্য ব্যাখ্যা চাইতে ভয় পেয়েছিলাম। আমি মনে করি নিযুক্ত যে কেউ এটি বুঝতে পারে। Thymeleaf থেকে AngularJS-এ পোর্ট করার জন্য টাস্কটি ফুটে উঠেছে। সৌভাগ্যবশত, আমি সমাপ্ত কোডের একটি অংশ খুঁজে পেয়েছি এবং এটি কী করতে হবে তার উদাহরণ হিসাবে ব্যবহার করেছি। আমি বুঝতে পারিনি এটি কিভাবে কাজ করে, কিন্তু আমি কাজটি শেষ করেছি। আমাকে পরবর্তীতে ব্যাকএন্ডের সাথে সরাসরি সম্পর্কিত কাজগুলি অর্পণ করা হয়েছিল। স্প্রিং এর সাথে একটি বাস্তব অভিজ্ঞতার পরেই আমি "স্প্রিং ফর প্রফেশনালস" এ যা পড়েছি তা বুঝতে শুরু করেছি। আমি সেখানে 8 মাস কাজ করেছি এবং তারপরে অন্য শহরে চলে এসেছি, যেখানে আমি দ্রুত একটি অফিসিয়াল চাকরি পেয়েছি, 2 বছর কাজ করেছি এবং পথ ধরে আমার পদবি "জুনিয়র" থেকে "মিড-লেভেল" এ পরিবর্তন করেছি। তারপর আমি এই সত্যের মুখোমুখি হয়েছিলাম যে আমার কাজটি রুটিন হয়ে গেছে এবং আমাকে এক ফোঁটা আনন্দ দেয়নি। তাই বিরতি নিলাম। আমার বিরতির সময় আমার আঙ্গুলগুলিকে এট্রোফাই করা থেকে বিরত রাখতে, আমি অন্য একটি ক্ষেত্রে আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছি: গেম ডেভেলপমেন্ট। আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। স্প্রিং এর সাথে একটি বাস্তব অভিজ্ঞতার পরেই আমি "স্প্রিং ফর প্রফেশনালস" এ যা পড়েছি তা বুঝতে শুরু করেছি। আমি সেখানে 8 মাস কাজ করেছি এবং তারপরে অন্য শহরে চলে এসেছি, যেখানে আমি দ্রুত একটি অফিসিয়াল চাকরি পেয়েছি, 2 বছর কাজ করেছি এবং পথ ধরে আমার পদবি "জুনিয়র" থেকে "মিড-লেভেল" এ পরিবর্তন করেছি। তারপর আমি এই সত্যের মুখোমুখি হয়েছিলাম যে আমার কাজটি রুটিন হয়ে গেছে এবং আমাকে এক ফোঁটা আনন্দ দেয়নি। তাই বিরতি নিলাম। আমার বিরতির সময় আমার আঙ্গুলগুলিকে এট্রোফাই করা থেকে বিরত রাখতে, আমি অন্য একটি ক্ষেত্রে আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছি: গেম ডেভেলপমেন্ট। আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। স্প্রিং এর সাথে একটি বাস্তব অভিজ্ঞতার পরেই আমি "স্প্রিং ফর প্রফেশনালস" এ যা পড়েছি তা বুঝতে শুরু করেছি। আমি সেখানে 8 মাস কাজ করেছি এবং তারপরে অন্য শহরে চলে এসেছি, যেখানে আমি দ্রুত একটি অফিসিয়াল চাকরি পেয়েছি, 2 বছর কাজ করেছি এবং পথ ধরে আমার পদবি "জুনিয়র" থেকে "মিড-লেভেল" এ পরিবর্তন করেছি। তারপর আমি এই সত্যের মুখোমুখি হয়েছিলাম যে আমার কাজটি রুটিন হয়ে গেছে এবং আমাকে এক ফোঁটা আনন্দ দেয়নি। তাই বিরতি নিলাম। আমার বিরতির সময় আমার আঙ্গুলগুলিকে এট্রোফাই করা থেকে বিরত রাখতে, আমি অন্য একটি ক্ষেত্রে আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছি: গেম ডেভেলপমেন্ট। আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। যেখানে আমি দ্রুত একটি অফিসিয়াল চাকরি পেয়েছি, 2 বছর কাজ করেছি এবং পথ ধরে আমার পদবি "জুনিয়র" থেকে "মিড-লেভেল" এ পরিবর্তন করেছি। তারপর আমি এই সত্যের মুখোমুখি হয়েছিলাম যে আমার কাজটি রুটিন হয়ে গেছে এবং আমাকে এক ফোঁটা আনন্দ দেয়নি। তাই বিরতি নিলাম। আমার বিরতির সময় আমার আঙ্গুলগুলিকে এট্রোফাই করা থেকে বিরত রাখতে, আমি অন্য একটি ক্ষেত্রে আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছি: গেম ডেভেলপমেন্ট। আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। যেখানে আমি দ্রুত একটি অফিসিয়াল চাকরি পেয়েছি, 2 বছর কাজ করেছি এবং পথ ধরে আমার পদবি "জুনিয়র" থেকে "মিড-লেভেল" এ পরিবর্তন করেছি। তারপর আমি এই সত্যের মুখোমুখি হয়েছিলাম যে আমার কাজটি রুটিন হয়ে গেছে এবং আমাকে এক ফোঁটা আনন্দ দেয়নি। তাই বিরতি নিলাম। আমার বিরতির সময় আমার আঙ্গুলগুলিকে এট্রোফাই করা থেকে বিরত রাখতে, আমি অন্য একটি ক্ষেত্রে আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছি: গেম ডেভেলপমেন্ট। আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। আমি অন্য এলাকায় আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছে: গেম উন্নয়ন. আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি। আমি অন্য এলাকায় আমার হাত চেষ্টা করার সিদ্ধান্ত নিয়েছে: গেম উন্নয়ন. আরো নির্দিষ্টভাবে, মোবাইল গেম ডেভেলপমেন্ট, অ্যান্ড্রয়েড পিক আপ, যেহেতু আমি জাভা জানতাম। এবং এটিই আমি এখন বিস্তারিতভাবে কথা বলতে যাচ্ছি।আমার দল. সংক্ষিপ্ত ক্রমে, আমি 4 জনের একটি ছোট দল (আমি সহ): 2 ডেভেলপার, 1 গেম ডিজাইনার, এবং 1 সাউন্ড ইঞ্জিনিয়ার। কারণ দলের কারোরই গেম ডেভেলপমেন্টে কোনো অভিজ্ঞতা ছিল না, এবং যেহেতু আমার ছুটির সময় সীমিত ছিল, আমরা একটি সহজ প্রকল্প বাস্তবায়ন করার সিদ্ধান্ত নিয়েছি যা আমরা অবশ্যই শেষ করতে পারব। এবং তাই আমরা করেছি! প্রাথমিকভাবে, সময়সীমা ছিল নভেম্বর 15, কিন্তু আপনি জানেন, সময়সূচী অনুযায়ী একটি প্রকল্প শেষ করা ঠিক ভুল। সুতরাং, আমরা এটি দুই সপ্তাহ দেরিতে শেষ করেছি। আমাদের প্রযুক্তি স্ট্যাক জাভা 8 এবং libGDX নিয়ে গঠিত।

উন্নয়ন

17 অক্টোবর উন্নয়ন শুরু হয়। মোট, আমরা 45 দিন কাটিয়েছি যার মধ্যে:
  1. আমরা শিখেছি কিভাবে libGDX ব্যবহার করতে হয়।
  2. আমরা কোড লিখেছিলাম।
  3. আমরা গ্রাফিক্স তৈরি করেছি।
  4. আমরা সঙ্গীত তৈরি করেছি।
যে কেউ গেমটি দেখেছেন তারা হয়তো প্রশ্ন করতে পারেন, "এত সময় লাগলো কেন? গেমটি খুবই সহজ।" হ্যাঁ, এটি সত্য, এবং সুনির্দিষ্টভাবে বলতে গেলে, বিকাশের অংশটি (কোড লেখা) প্রায় দেড় সপ্তাহ সময় নিয়েছে। বাকি সময়টি এর মধ্যে ভাগ করা হয়েছিল:
  1. গেম ইঞ্জিন কিভাবে ব্যবহার করতে হয় তা আয়ত্ত করা।
  2. আর্টওয়ার্ক অঙ্কন এবং পুনরায় অঙ্কন.
  3. সঙ্গীত লেখা।
  4. https://freesound.org- এ শব্দের জন্য অনুসন্ধান করা হচ্ছে ।
  5. গেমগুলিকে কীভাবে প্রচার করা যায় সে সম্পর্কে প্রচুর নিবন্ধ পড়া।
আমরা বিভিন্ন কারণে "ডাউনটাইম" এর মুহূর্তগুলিও পেয়েছি: কারও পরীক্ষা ছিল, অন্য কারও মেক-আপ পরীক্ষা ছিল ইত্যাদি। আমরা অবশ্যই ডাউনটাইমের জন্য দেড় সপ্তাহ বা তার বেশি সময়কে দায়ী করতে পারি। কিছু সময় "বিতর্ক"-এও ব্যয় করা হয়েছিল: গেমটিতে কী যুক্ত করতে হবে সে সম্পর্কে নতুন ধারণাগুলি প্রায় প্রতিদিনই উপস্থিত হয়েছিল, তাই আমরা বিতর্ক করেছি: "এটি অপ্রয়োজনীয়," "এটি মাপসই হবে না" ইত্যাদি। আমরা প্রচুর ধারণা ছুঁড়ে দিয়েছি, উদাহরণস্বরূপ, চলমান তেলাপোকা যোগ করা যা অতিরিক্ত পয়েন্ট পেতে চূর্ণ করা যেতে পারে: আমার মতে, সবচেয়ে কঠিন জিনিসগুলির মধ্যে একটি ছিল গেমটিতে কী থাকবে তা আগে থেকেই সিদ্ধান্ত নেওয়া এবং "আরও একটি যোগ করার চেষ্টা না করে পরিকল্পনায় লেগে থাকা। " বৈশিষ্ট্য। এভাবেই জমে গেল এই ৪৫ দিন। গেমটির একটি প্রোটোটাইপ দেড় সপ্তাহ পরে প্রস্তুত ছিল। এই সময়ের মধ্যে, আমাদের সত্যিই কোন গ্রাফিক্স ছিল না, শুরুতে, ছিল ... - 2প্রযুক্তিগত দিক থেকে গেমটি খুবই সহজ। আমাদের এমনকি box2d (একটি পদার্থবিদ্যা ইঞ্জিন) ব্যবহার করার দরকার ছিল না। আমরা সংঘর্ষগুলি পরিচালনা করতে পারি এবং নিজেরাই কর্ণ গণনা করতে পারি। আমি হাইলাইট করব সবচেয়ে আকর্ষণীয় পয়েন্ট হল:
  1. প্রাথমিকভাবে, সমস্ত গেমের উপাদান এলোমেলোভাবে তৈরি করা হয়েছিল। অন্য কথায়, আমরা সরবরাহকারীদের (ব্ল্যাক হোল, কাঁচি, নিনজা স্টার, পেন্সিল সীসা, হৃদয়) একটি অ্যারেতে রাখি, একটি এলোমেলো প্রদানকারী পেয়েছি, র্যান্ডম স্থানাঙ্ক সহ একটি উপাদান পেয়েছি। এটি খুব দ্রুত স্পষ্ট হয়ে ওঠে যে এই পদ্ধতিটি "সত্যিই ভাল নয়"। পরীক্ষায় অংশগ্রহণকারী বন্ধুরা আমাদের একই কথা বলেছে, টেমপ্লেট ব্যবহার করার পরামর্শ দিয়েছে। গেম ডেভেলপমেন্টের সাথে জড়িতদের জন্য, এটি সম্ভবত একটি সুস্পষ্ট সমাধান। কিন্তু যেহেতু আমরা মাঠে নবাগত ছিলাম, এটা ছিল আমাদের জন্য খুবই বাস্তব উপদেশ।

    তাই আমরা বেশ কয়েকটি টেমপ্লেট তৈরি করেছি: কাঁচির একটি উপত্যকা; পেন্সিল লিডস — খুব দ্রুত সেগুলি সংগ্রহ করা খুব সুন্দর (হুশ, হুশ, আপনার আঙুল দিয়ে হুশ); এবং আরও একটি টেমপ্লেট যা আমি জানি না কী কল করব — আমি শুধু আপনাকে বলব যে আমরা আমাদের কোডে ক্লাসের নাম কী দিয়েছি: StraightForwardPattern.

    শুরুতে ছিল... - ৩

    এই টেমপ্লেটগুলি এটিকে উন্নত করেছে, তবে এটি কোনওভাবে খুব অনুমানযোগ্য হয়ে উঠেছে। এজন্য আমরা আরও একটি যোগ করেছি: একটি এলোমেলো টেমপ্লেট। অন্য কথায়, আমাদের কাছে এখন কিছু "স্ট্যাটিক" টেমপ্লেট এবং একটি এলোমেলো একটি রয়েছে (এখানে "সম্পূর্ণভাবে ভারসাম্যপূর্ণ" মেমে ঢোকান)।

  2. এখানে আমরা সম্মুখীন প্রধান সমস্যা. LibGDX একটি অসীম লুপে রেন্ডার (ফ্লোট ডেল্টা) পদ্ধতিকে কল করে। এখানে সব উপাদান আঁকা হয়. পেন্সিল রেখাটি নিম্নরূপ আঁকা হয়: আমরা আঙুলের স্থানাঙ্ক পাই এবং সেখানে টেক্সচার আঁকি। সুতরাং, যদি আমরা আমাদের আঙুলটি খুব দ্রুত স্ক্রীন জুড়ে নিয়ে যাই, তাহলে রেন্ডার (ডেল্টা) পদ্ধতিতে কলের মধ্যে মিলিসেকেন্ডের কারণে লাইনে "ফাঁক" থাকবে।

    সমাধানটি বেশ সহজ ছিল: আমরা শেষ স্থানাঙ্কগুলি মনে রাখি যেখানে টেক্সচারটি আঁকা হয়েছে, পরবর্তী স্থানাঙ্কগুলি পান এবং যদি তাদের মধ্যে দূরত্ব X-এর বেশি হয় এবং আঙুলটি প্রকাশ না করা হয় তবে আমরা শূন্যস্থান পূরণ করি। প্রথমে, আমরা ভেবেছিলাম এই বিকল্পটি কাজ নাও করতে পারে — লাইনগুলো কৌণিক হবে। কিন্তু আমাদের ভয় ভিত্তিহীন ছিল, সবকিছু ঠিক যেমনটি করা উচিত তেমন কাজ করেছে।

খেলা সম্পর্কে

গেমপ্লেটি অনন্য বলে দাবি করে না, তবে এটি বেশ ভাল এবং ব্যবহারকারীদের কাছে টানতে পারে৷ আপনি একটি পেন্সিল নিয়ন্ত্রণ করেন, আক্ষরিক অর্থে কাগজে অঙ্কন করেন এবং বাধাগুলি এড়ান — কাঁচি, নিনজা তারা এবং ব্ল্যাক হোল৷ এদিকে, আপনার পেন্সিলের সীসা শেষ হয়ে যাচ্ছে এবং আপনাকে ছোট পেন্সিলগুলি নিতে হবে। আপনি যদি একটু পেন্সিল সংগ্রহ করার আগে আপনার পেন্সিল শেষ হয়ে আসছে, আপনি একটি আয়নার টুকরো নিতে পারেন। কয়েক সেকেন্ডের জন্য, পেন্সিল সীসা খাওয়ার পরিবর্তে, এটি পুনরুদ্ধার করা হবে, তবে, একই সময়ে, নিয়ন্ত্রণগুলি মিরর করা হয় — যদি আপনার আঙুলটি বাম দিকে চলে যায়, তাহলে পেন্সিলটি ডানদিকে আঁকে। আপনি একটি হৃদয় বাছাই করতে পারেন যা আপনাকে একবার একটি বাধা আঘাত করতে এবং বেঁচে থাকতে দেবে। আপনি আপনার আঙুল না তুলে পেন্সিলটি যতক্ষণ নাড়াবেন, আপনার কম্বো তত বেশি হবে, যার মানে আপনি দ্রুত পয়েন্ট সংগ্রহ করবেন। শুরুতে, ছিল ... - 4খেলার গতিও ধীরে ধীরে বাড়তে থাকে। অনুপস্থিত শুধুমাত্র জিনিস রাগান্বিত পাখি. প্রাথমিকভাবে, আমরা গেমটির নামকরণ করার পরিকল্পনা করেছিলাম করণ দাশ (পেন্সিলের জন্য রাশিয়ান শব্দের ট্রান্সলিটারেশন হল কারন্দাশ — হা! বুঝলাম?), কিন্তু পরে আমরা আমাদের মন পরিবর্তন করেছি এবং পেন্সিল ড্যাশের উপর স্থির হয়েছি। আমরা এটি করেছি কারণ এই করুণ শ্লেষটি কেবলমাত্র একজন রাশিয়ান-ভাষী শ্রোতাই বুঝতে পারবেন। আমরা কয়েক দিন আগে গেমটি প্রকাশ করেছি এবং এখন এটি প্রচার করছি। এখানেও, দলের কারও অভিজ্ঞতা নেই। আমরা বিভিন্ন নিবন্ধ থেকে গেম প্রচার সম্পর্কে আমাদের সমস্ত জ্ঞান অর্জন করেছি। আমরা বিনামূল্যে বিভিন্ন ওয়েবসাইট/ফোরামে গেম সম্পর্কে তথ্য প্রকাশ করেছি। আমাদের অর্থপ্রদানের চ্যানেলগুলির মধ্যে রয়েছে 4pd-এ বিজ্ঞাপন, একজন ব্লগারের সাথে বিজ্ঞাপন, VKontakte-এ পাবলিক গ্রুপে বেশ কয়েকটি পোস্ট এবং AdMob বিজ্ঞাপন। যাইহোক, এই পোস্টটিও আমাদের প্রচারের অংশ, তাই ওয়েবসাইটের প্রশাসনের অনুমতি নিয়ে, আমি এখানে গেমটির একটি লিঙ্ক অন্তর্ভুক্ত করছি। আপনি এখানে Google Play এ গেমটি খুঁজে পেতে পারেন । আপনি যদি এটি ইনস্টল করেন তবে আমি কৃতজ্ঞ হব (হয়তো আপনি এটি পছন্দ করবেন!), এবং যদি আপনি একটি রেটিং ছেড়ে দেন, আমি আপনার নামে একটি শিশুর নাম রাখার প্রতিশ্রুতি দিচ্ছি! :) শুরুতে, ছিল ... - 6
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION