রোডম্যাপটি ফলো করে একজন প্রোগ্রামিং/সফটওয়্যার ডেভেলপমেন্টে বিগিনার লেভের থেকে শুরু করে এক্সপার্ট লেভের পর্যন্ত যেতে পারবে।

 এই পোস্টে দেওয়া সম্পূর্ণ রোডম্যাপটি ফলো করে একজন প্রোগ্রামিং/সফটওয়্যার ডেভেলপমেন্টে বিগিনার লেভের থেকে শুরু করে এক্সপার্ট লেভের পর্যন্ত যেতে পারবে।



প্রতিটি সেক্টরে ভালো করার জন্যে তিনটি জিনিস এর প্রয়োজন হয়, যা হচ্ছে:

* লেগে থাকার ক্ষমতা

* কঠোর পরিশ্রম

* সঠিক দিক নির্দেশনা


এই রোডম্যাপে তোমাকে সঠিক দিক দেখিয়ে দেওয়া হবে, কিন্তু কঠোর পরিশ্রম দিয়ে লেগে থাকতে পারলেই তুমি তোমার স্বপ্ন পূরণ করতে পারবে। যার জন্যে তোমাকে সাপ্তাহিক দিন গুলোতে গড়ে ২ ঘন্টা/দিন; সাপ্তাহিক ছুটির দিনগুলোতে ৩.৫ ঘন্টা/দিন সময় দিতে হবে।

## **টোটাল কমিটমেন্ট:**

* Foundations ও Intermediate স্ট্রং করার জন্যে ৪৪ সপ্তাহ / ৭৩৪ ঘন্টা (প্রায় ১ বছর) দিতে হবে

* ১ বছর পার হওয়ার পরে ২.৫ ঘন্টা/দিন ইন্টারভিউ ও সাইড-প্রোজেক্ট এ দিতে হবে

* প্রতিনিয়ত নতুন কিছু শেখার ইচ্ছা থাকতে হবে


এই ১ বছরে প্রতিদিন গড়ে ২.৫ ঘন্টার ধারাবাহিক প্রচেষ্টা দিয়ে আমরা প্রতিটি জিনিস ভালো করে শিখে নিবো। তারপর যেকোনো একটি সেক্টরে নিজেকে দক্ষ করে তুলবো। তুমি চাইলে প্রতিদিন কতটুকু সময় দিবে তা নিজের সুবিধামত পাল্টে নিতে পারো। তাহলে চল রোডম্যাপে ডুব দেওয়া যাক।

## **ফাউন্ডেশন (২২ সপ্তাহ; ৩৬৬ ঘন্টা)**


**লার্ন টু কোড (৬ সপ্তাহ; ১০০ ঘণ্টা)**


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

> Thinking rationally rather than in terms of code is a useful skill to develop while learning to code.


***রোডম্যাপঃ লার্ন টু কোড***


আমার মতে তোমার C/C++ দিয়ে শুরু করে object-orientation সহ শেখা উচিত এবং তারপর Java তে চলে যেতে হবে। C দিয়ে শুরু করার ফলে তোমার প্রোগ্রামিং এর গুরুত্বপূর্ণ কনসেপ্ট গুলো ক্লিয়ার হয়ে যাবে। যার ফলে তুমি অন্যান্য হাই-লেভেল ল্যাঙ্গুয়েজ গুলোতে (like C++, Java, Python, Javascript, etc) খুব সহজে মুভ করতে পারবে। আসলে তুমি চাইলে তোমার ইচ্ছে মতো হাই-লেভেল প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে শুরু করতে পারো, এটা সম্পূর্ণই তোমার ইচ্ছে। আপাতত আমি C দিয়েই শুরু করবো যেহেতু ভার্সিটিগুলো এটা প্রেফার করে সবাই।

## **C দিয়ে প্রোগ্রামিং কনসেপ্ট গুলো আয়ত্ত করো (৪ সপ্তাহ, ৭০ ঘণ্টা)**


প্রোগ্রামিং এর বিভিন্ন কনসেপ্ট (like input, output, variables and data types, operators, decision making, loops, arrays, strings, and functions) গুলো শেখো।


শেখার সময় যা শিখতেছো তা বেশী বেশী লিখে লিখে প্র্যাকটিস করো যাতে syntax এবং অন্যান্য কনসেপ্টগুলো বেশী মনে থাকে।


পাশাপাশি ওই কনসেপ্টগুলো ব্যবহার করে বেশী বেশী প্রব্লেম সলভ্ করো।


একটি প্রব্লেম সলভিং সাইট: [https://workat.tech/problem-solving/practice](https://l.facebook.com/l.php?u=https%3A%2F%2Fworkat.tech%2Fproblem-solving%2Fpractice%3Ffbclid%3DIwAR0K681jYeww_lNYph5TjjG55gVPnQi4yJjb-e5Dciyearipi9ciKEJ7lA8&h=AT2kmXQjW1vR3BkSIHfjN8VkYVcJuClM0rOiqXiezzEbGad8jRT9MHCaa07MQav9dt1T8mSWtXxxzZqL2IIbErARUXjwDrTXYAf9QFj8LAF0XL3Ac43WXwlFsR_lfs7hwEWe&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)

## **OBJECT-ORIENTATION শেখো (৩ দিন, ৬ ঘন্টা)**


এখানে তোমার C++ এর প্রয়োজন পরবে। তোমাকে যা যা শিখতে হবে,


classes এবং objects (constructor সহ), encapsulation (including public and private access specifiers, this pointer and getters and setters), and the static keyword. এ ধাপে তোমার OOP এর অন্য কোনো কনসেপ্ট শেখার প্রয়োজন নেই।

## **JAVA তে ঝাঁপ দেও (১২ দিন; ২৪ ঘন্টা)**


একবার প্রোগ্রামিং এর বেসিক কনসেপ্টগুলোর সাথে পরিচিত হয়ে, classes এবং objects এর ধারনা নেওয়ার পর তুমি খুব সহজেই Java তে ঝাঁপ দিতে পারবে। পাশাপাশি exception handling ও শিখে নিও।


এ ধাপে multithreading অথবা অন্য কোনো এডভান্সড কনসেপ্ট শেখার প্রয়োজন নেই। তোমাকে শুধু কিভাবে Java তে কোড লিখতে হবে তা শিখতে হবে।


পূর্বে যে প্রব্লেম গুলো সলভ্ করেছো তা এখন Java দিয়ে করো। এ করার মাধ্যমে তুমি Java এর syntax গুলো আয়ত্ত করতে পারবে।

## **POWER COMPUTER USER হও (৩ সপ্তাহ; ৫০ ঘন্টা)**


Google হচ্ছে তোমার সবচেয়ে ভালো বন্ধু। শেখো কিভাবে সমস্যার সমাধান বের করতে হয় (এ দক্ষতা সবসময় ইম্প্রুভ করে যেতে হবে)


সবচেয়ে গুরুত্বপূর্ণ দক্ষতাগুলোর মধ্যে Power Google User ([http://giybf.com/](https://l.facebook.com/l.php?u=http%3A%2F%2Fgiybf.com%2F%3Ffbclid%3DIwAR2vN26C35NbF15empKA94eYUNQIoPtjfmugATk_vz8QcWAoVv20k6zy4YM&h=AT1LajgPWAfI68zECbDgkxEzNH41A9B7DpLXzwQX-7ClGQIvY59HQjC46VZn089JgRcEIrT1fAe0pRRTRoOkjhgNqg0Ogj7Wu0a-SRbBnZyr7oT6hIrN3wmmCIDJDcr7DU1t&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)) হওয়া অন্যতম। তুমি শেখার সময় নানা ধরনের সমস্যায় পড়বে, যার বেশির ভাগই নতুন বা অদ্বিতীয় নয়। তোমার Google মামা অলরেডি তোমার সমস্যার সমাধান নিয়ে বসে আছে। তাই কিভাবে ভালো করে গুগল করতে হয় তা বুঝার চেষ্টা চালিয়ে যাও।

## **REGULAR EXPRESSION শেখো (৪ দিন, ১০ ঘন্টা)**


হাতের মুঠোয় রাখার জন্যে এটা অন্যতম একটা স্কিল। তাই রেগুলার এক্সপ্রেশন (language-agnostic) এর বেসিক শিখে রাখো।


Java তে (বা যে ল্যাঙ্গুয়েজ তুমি জানো) শেখা কনসেপ্ট গুলো প্রেক্টিস কর: [https://www.hackerrank.com/domains/regex](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.hackerrank.com%2Fdomains%2Fregex%3Ffbclid%3DIwAR2qfYZlvOss1hE1D3B0V26YzzW1ctEgh7O3fkmsiaEVrEk8tolYSzMbg7w&h=AT3RJvI0YKkDki3zF_EY74XXFPgj_pf3VfEMUtj-z7eunfOIWoS6pWh9yf7SjzE191ukRH6-jcfmwdO7r3r5sBqwMjJpnXXeSyc2VtY41bRMTpQkz4cDhIHQc6-jie3kXgQQ&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)

## **COMMAND-LINE এর বেসিক আয়ত্ত করো (২ সপ্তাহ; ৩৫ ঘন্টা)**


যদি তোমার Windows Laptop থাকে তাহলে Linux ইন্সটল দেও, আর যদি Mac থাকে তাহলে আর প্যারা নেই। Terminal ব্যবহার শুরু করে দেও।


যা শিখতে হবে:

* Bash এর বেসিকঃ echo, read, variables.

* Filesystem এর সাথে interact: ls, cd, pwd, cat, touch, head, tail, cp, rm, mv, mkdir, find ইত্যাদি।

* Input/output redirectors.

* Bash এ regular expression.

* grep, sed, এবং awk.

* file permissions in general এবং bash ব্যবহার করে এর দ্বারা কাজ করতে শিখা।

* Bash এ প্রোগ্রামিং কনসেপ্ট: decision making, loops, arrays, strings, operators, functions ইত্যাদি।


Learn how to use (and exit from) vim. 😛


জিনিসগুলো আয়ত্ত করার জন্যে রেগুলার প্রেক্টিস কর: [https://www.hackerrank.com/domains/shell](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.hackerrank.com%2Fdomains%2Fshell%3Ffbclid%3DIwAR3RK49v1ShE4_oarXdd9ey5l2pQPVzfTbLB6kkgK-BpuvkXS9vsIunbANg&h=AT185NtolkYh9RD34mcvmWMAajr33PzZTZXA9VjuV6W5IfOqR5Fo-qi7wT6HbGVr8z8w0CdSEl827chjb_DUkiMrCgReGQbm_9I-4XyGpcg6AmanHuebcWKkDH6xCalwIz0n&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)

## **VCS, GIT, AND GITHUB (২ দিন; ৫ ঘন্টা)**


Git এবং GitHub এর বেসিক সম্পর্কে ধারনা নেও। সেখানে একটি রেপসিতর‍্য খুলে নিজের কোড গুলো terminal ব্যবহার করে আপলোড করো।

## **ইন্টারনেট ১০১ (১ সপ্তাহ; ১৬ ঘন্টা)**


ইন্টারনেট কিভাবে কাজ করে সে বিষয়ে জানার চেষ্টা করো। এ বিষয়ক বিভিন্ন কনসেপ্ট যেমন, HTTP, Browser, DNS, Domain Name, Hosting, Client-Server Model, HTTPS নিয়ে ধারণা নেও।


ping, whois, dig, wget, curl কমান্ডগুলো terminal এ ব্যবহার করে ইন্টারনেট বিষয়ক কনসেপ্ট গুলো কল্পনা করো (মন থেকে ফিল করো)।

## **FRONTEND DEVELOPMENT (৯ সপ্তাহ; ১৫০ ঘন্টা)**


HTML, CSS, JS ব্যবহার করে বেসিক ফ্রন্টএন্ড ওয়েবপেজ তৈরি করে শেখো। শেখা কনসেপ্ট গুলো দিয়ে কিছু প্রজেক্ট কর।

## ***রোডম্যাপ: FRONTEND DEVELOPMENT***

## **JAVASCRIPT এ কোড করতে শেখো (১.৫ সপ্তাহ; ২৫ ঘন্টা)**


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

## **শুধু HTML ব্যবহার করে একটা বেসিক ওয়েবসাইট তৈরি করো (২ সপ্তাহ, ৩৫ ঘণ্টা)**


HTML হচ্ছে একটা ওয়েবসাইট এর building block.


এখানে যা যা শিখতে হবে:

* adding headings, paragraphs, images, links, lists, tables

* creating a form, adding text fields, and button

* adding other input fields like radio button, dropdown, checkbox, etc

* div, span, head, body, doctype


এ জিনিসগুলো (শুধু HTML) ব্যবহার করে এ ধাপে কমপক্ষে ৫ টি (ছোট্ট ছোট্ট) বেসিক ওয়েবপেজ তৈরি করার চেষ্টা করো।

## **CSS শিখে ওয়েবসাইটে রঙ লাগিয়ে দেও (১.৫-২ সপ্তাহ; ৩০ ঘন্টা)**


কোনো ওয়েবসাইটে সুন্দর ডিজাইন দেওয়ার জন্যে CSS এর প্রয়োজন পরে।


এ ধাপে যা যা শিখতে হবে:

* color, background

* height/width

* typography (fonts, text, icons)

* box model: content, padding, border, margin

* Layout

> Display

> Flex, Grid

> Positioning, Float

> Overflow

> Alignment


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


একবার এইসব শেখা হয়ে গেলে পূর্বে তৈরি ওয়েবসাইটগুলোতে CSS ব্যবহার করে রঙ লাগিয়ে দেও।

## **ওয়েবসাইটে JAVASCRIPT ব্যবহার করে INTERACTIVITY ও লজিক বিল্ড করো (৩.৫ সপ্তাহ; ৬০ ঘন্টা)**


হাড্ডি মাংসে গড়া ওয়েবসাইটে প্রাণ দেওয়ার জন্যে আমরা JavaScript ব্যবহার করবো।


এ ধাপে আমরা যা যা শিখবো:

* Basic DOM manipulation

* AJAX

* Events & Event Listeners

* Chrome DevTools & Debugging


শেখা হয়ে গেলে পূর্বে তৈরি ওয়েবসাইটগুলোতে JavaScript ব্যবহার করে প্রাণ দেও। পাশাপাশি আরো ভালো কয়েকটি প্রোজেক্ট তৈরি করো।

## **OBJECT-ORIENTED PROGRAMMING আয়ত্ত করো (৩ সপ্তাহ; ৫০ ঘন্টা)**


Java দিয়ে Object-Oriented Programming এর কিছু কনসেপ্ট (যেমন, Encapsulation, Inheritance, Polymorphism, Abstraction ও Composition) শেখো।


OOP শেখা এবং এর কিছু implementations করার পর তোমার ডিজাইন স্কিল আরো ভালো করার জন্যে Design Principles গুলোর ধারনা নিয়ে নিতে হবে।


Design Principles: DRY, KISS, YAGNI, SOLID, Separation of Concern.


বিষয়গুলো আয়ত্ত করার জন্যে প্রেক্টিস কর: [https://workat.tech/machine-coding/article/how-to-practice-for-machine-coding-kp0oj3sw2jca](https://workat.tech/machine-coding/article/how-to-practice-for-machine-coding-kp0oj3sw2jca?fbclid=IwAR0hnHsBVXmbgAqVy099TZnNiTa46bPaIsv7HFsw2sp5Cv_aykz8pBjZQBM)

## **ইন্টারমেডিয়েট (২২ সপ্তাহ; ৩৬৮ ঘন্টা)**

## ***BACKEND DEVELOPMENT (৫ সপ্তাহ; ৮৪ ঘন্টা)***

## **DBMS ও SQL (২ সপ্তাহ; ৩৪ ঘন্টা)**


এ ধাপে তোমাকে DBMS ও রিলেশনাল ডাটাবেইজ এর ব্যাপারে শিখতে হবে।


শিখার পাশাপাশি অবশ্যই প্রেক্টিস মাস্ট: [https://www.hackerrank.com/domains/sql](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.hackerrank.com%2Fdomains%2Fsql%3Ffbclid%3DIwAR1MXk3HgZsDTADJPEq4Cunp7urrkcPygWcXHjmYZ9tku46Xyuoha7C534c&h=AT3dMEtdTMaYuqpGNlwWguJ-he3jouHfGqyvskpE2pdMpSUZYK1hTtBrthInLqDGCsh377V1_byqino8nJQRS1t8oCLb0O9SqNmhmsYCGFaiVUnWy_6FCPePcfi2S6gM5kLZ&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)

## 

## **RESTFUL WEB SERVICES বিল্ড করো (৩ সপ্তাহ; ৫০ ঘন্টা)**


বেসিক থেকে শুরু করো, যেমন কিভাবে dependencies/external libraries অ্যাড করতে হয়। তারপর APIs, JSON, REST (including HTTP methods) এর ধারনা মজবুত করো।


একবার এই কনসেপ্টগুলো ক্লিয়ার হয়ে যাওয়ার পর Spring Boot ব্যবহার করে RESTful web services বিল্ড করা শুরু করো।


তারপর এগুলা Filesystem ও Database এর সাথে কিভাবে কানেক্ট করতে হয় তা শিখতে হবে।


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

## **DATA STRUCTURES & ALGORITHMS এ আরো দক্ষতা লাভ করো (১৭ সপ্তাহ; ২৮৪ ঘন্টা)**


কম্পিউটার সাইন্সের মৌলিক বিষয়গুলোর মধ্যে Data Structures & Algorithms (DSA) অন্যতম, তাছাড়া ইন্টারভিউ এর জন্যেও গুরুত্বপূর্ণ। জব ইন্টারভিউগুলোতে সাধারনত তোমার DSA এর দক্ষতা যাচাই করার জন্যে তোমাকে বিভিন্ন ধরনের প্রব্লেম সলভ্‌ করতে দিবে। তাই ইন্টারভিউ প্রিপারেশন হিসেবে তুমি কয়টা প্রব্লেম সলভ্‌ করেছো তার থেকে বেশী ম্যাটার করবে তুমি কতটা ভালো প্রব্লেম সলভ্ করতে পারো।


DSA তে অনেক ধরনের বিষয় রয়েছে। তাই যখন যে টপিকটা (Algorithms) শিখবা তখন সে বিষয়ে কয়েকটা প্রব্লেম সল্ভ করে ফেলবা। যদি DSA ভালো ভাবে বুজতে পারো তাহলে কিছু প্র্যাকটিস এর মাধ্যমেই তুমি এতে এক্সপার্ট হয়ে যেতে পারবে। Time and space complexity of a solution ([https://www.geeksforgeeks.org/time-complexity-and-space.../](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.geeksforgeeks.org%2Ftime-complexity-and-space-complexity%2F%3Ffbclid%3DIwAR1OQJViq8WhC5fZqWS0mXkB5dPSEFgCUIwkubHr7rprR6H_Z3LLjm17MDo&h=AT28X6Nhy3lYqahauUt2fq_TsQ6UDIyKTnZ69qosz3dP8xjYIM_qPVQYMEg6_GRN4Atc1Jbj0jVjdmjwPg7s_Ck9kNieKmX0eOv08iWmx9bKPml_m7XeOHj15aTenQ822hQo&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)) কিভাবে ক্যাল্কুলেট করে তা দিয়ে তুমি শুরু করতে পারো। অনেকে এ ধাপ স্কিপ করে এবং পরে তাদের সলিউশন অপ্টিমাইজ করতে যেয়ে সমস্যার মুখোমুখি হয়।


এ ধাপে যা যা শিখতে ও প্র্যাকটিস হবে:

* DSA এর ফাউন্ডেশনস্‌ (Time & Space Complexity Analysis, Recursion, Divide & Conquer) (১.৫ সপ্তাহ; ২৫ ঘন্টা)

* DSA এর বেসিক (Arrays, Linked List, Stack, Queue, Searching, Sorting) (৩ সপ্তাহ; ৫১ ঘন্টা)

* বেসিক এলগরিদমস্‌ (Hashing, 2 pointers, Backtracking)

* প্রোগ্রামিং এর জন্যে বেসিক ম্যাথ (১.৫ সপ্তাহ; ২৫ ঘন্টা)

* ইন্টারমেডিয়েট এলগরিদমস্‌ (String Manipulation & Bit Manipulation) (১.৫ সপ্তাহ; ২৫ ঘন্টা)

* ইন্টারমেডিয়েট ডাটা স্ট্রাকচার (Trees, Set, Map, Heap) (৩ সপ্তাহ; ৫০ ঘন্টা)

* এডভান্সড এলগরিদমস্‌ (Greedy, DP) (২.৫ সপ্তাহ; ৪২ ঘন্টা)

* গ্রাফ DSA (সপ্তাহ; ৩৩ ঘন্টা)

## **প্র্যাকটিস ও দক্ষতা বৃদ্ধি (যতক্ষন না পর্যন্ত চাকরি পাচ্ছো)**


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

* একটা পারফেক্ট রেজুমি তৈরি ([https://workat.tech/.../resume-cv-best-practices...](https://l.facebook.com/l.php?u=https%3A%2F%2Fworkat.tech%2Fgeneral%2Farticle%2Fresume-cv-best-practices-klsvikpz8nd6%3Ffbclid%3DIwAR3yB_rPOWVfETBK1UiRVvmuij8Re6Nza9MTav_qY5i27qdbh9ixvPSBKlk&h=AT1hANV6zDxj4vJsqoC3jnD0eDMOIAtVrYgRPpZStUlTRbRRO3QBWIxU7pnERk9ZlWutHSNGxmwcb-ycC2m4h4R9AgVk6dU1NDDXRw_0HuSa42wRCrsQ91EAu6XSVRcrf32w&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ))

* ইন্টারভিউ এর জন্যে প্রস্তুতি

* দক্ষতা বৃদ্ধি

## **DSA ইন্টারভিউ প্রিপারেশন (★★★)**


DSA ভালোভাবে বুঝতে শুরু করার পর তোমাকে নিয়মিত LeetCode/InterviewBit এ প্রব্লেম সল্ভ করতে হবে, যা তোমার জব পাওয়ার আগে পর্যন্ত চালাতে হবে।


প্রথম দিকে হয়তো সপ্তাহে ৭ ঘন্টার বেশী দেওয়া সম্ভব হবেনা, কিন্তু ধীরে ধীরে যতই ইন্টারভিউ এর সময় এগিয়ে আসবে তখন প্রব্লেম সল্ভিং এর পরিমান বাড়াতে হবে (সপ্তাহে ৩০ ঘন্টা) তোমার প্রিপারেশন এর উপর ভিত্তি করে।


তোমার লক্ষ্য হবে DSA এর কনসেপ্টগুলো অ্যাপলাই করার ক্ষেত্রে দক্ষ হয়ে উঠা।

## **বিল্ড সাইড-প্রজেক্টস্‌**

* নিয়মিত সাইড প্রজেক্ট তৈরির উপরে থাকবা, প্রজেক্টের শেষ দেখে ছাড়বা।

* ছোট্ট ছোট্ট প্রজেক্ট দিয়ে শুরু করবা, তারপর ধীরে ধীরে বড় প্রজেক্টে হাত দিবা।

* পারলে একটা টিম তৈরি করিও, সাথে একজন ডিজাইনার রাখিও।

* বিভিন্ন অ্যাপ বা ওয়েবসাইটের ক্লোন তৈরি করিও। সে অ্যাপ বা ওয়েবসাইটের বিভিন্ন ফিচার কিভাবে কাজ করে তা শিখবা।

* সবসময় মাথার মধ্যে স্টার্টআপ রিলেটেড আইডিয়া ঘুরাবা, এবং তা তৈরি করতে চেষ্টা করবা।

* ওপেনসোর্স: যদি প্রজেক্টি স্টার্টআপ রিলেটেড না হয়, তাহলে তোমার প্রজেক্টগুলো GitHub এ পাব্লিশ করে রাখবা।

## **পিয়ার টু পিয়ার মৌখিক ইন্টারভিউ**


তোমার কোনো বন্ধুর সাথে অথবা Pramp ([https://www.pramp.com/#/](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.pramp.com%2F%3Ffbclid%3DIwAR1wRzenw2hl9SDBGliwiiD9ThkHohhXsj5nwWIHzpF82NyiKSr_1a8k-CA%23%2F&h=AT0GCNgMnAUHpMlJJiK8gWjI9xcxUakd2ZEjwbih8feEi9pWsgYELCYp0DNyTy1E2y6KY9554wLjzXEcVtdWsllXW50F_4f1IBUGqvcp_zTd12S0RZ4l70cMrJksNWTyyywt&__tn__=-UK-y-R&c[0]=AT3JxaOur-BX2UHM2YYMFJdb42lhpH-Z-XYgiPOcWBMIRZ0_S8aYTh-NSIGyIGF_gO3yaTQiIQBlvD8jVUjYav1lEdDb0b0cm9XYpaXNudtpHv_8vgcdiQQvZ7BUQX1dQ6ACVrG-7ghHcTQlmcYKdljFjCOxTBb4wGwI_JULcTUo-5gb3UTDB4dKWGE9xscifcu_6NKUweAzCCGc9UL9nTuNrhCc73XtpfsZ0OZmwJeafQ)) এ প্রতি দুই মাস অন্তর অন্তর মৌখিক ইন্টারভিউ প্র্যাকটিস করতে পারো, ইন্টারভিউ এর সময় এগিয়ে আসবে তখন মৌখিক ইন্টারভিউ এর পরিমান বাড়াতে হবে।

## **দক্ষতা বৃদ্ধি**


সবসময় তোমার স্কিল বৃদ্ধির পিছনে কাজ করতে হবে, এ সেক্টরে যে বেশী আপডেটের থাকে, সেই সবার থেকে এগিয়ে যায়। উপরের সবগুলো কাজ যদি তুমি করে আসতে পারো তাহলে জব পেতে তোমার অনেকটা সহজ হবে।


***Be an Engineer! ***❤

> ***Don't forget to like [Bangladeshi NoobCoders](https://www.facebook.com/bangladeshiNoobCoders?__cft__[0]=AZVFjU_6Ea_l-HXSIDZoLo7Im1QwD_Pyv-ZKPoKOYD2Kv__0EJZU22vx_95-D0P12Go3hkLrdzfsZ-EvgOyKYEnkVM5BlV8Rx1RJlVE7pg-Av46tMz7-VxRfM-3oA61hEQpeiaRCWAn2_pa0FZzi_Ftg98zt-mNzA9v12urz-uI9Jo9fHSpLoFIlj1uSm-tJt6gMFSg-u4pT7HQx4D4BBsvc&__tn__=-]-U-UK-y-R)***

Post a Comment

Previous Post Next Post