রবিবার, ২৯ অক্টোবর, ২০১৭

Command Prompt (CMD) নিয়ে যত কারিকুরি !!





কি !!  শিরোনামটি দেখে নিশ্চই ভাবছেন  Command Prompt  নিয়ে আবার কি করবে ?? 
 অবশ্য ছবি দেখে অনেকে বুঝে ফেলার কথা সামনে তাদের জন্য কি অপেক্ষা করছে !!! 
চলুন কথা না বাড়িয়ে আমরা দেখে নিই  CMD  নিয়ে আমরা কি করতে চলেছি  ।।


 আমরা কম্পিউটার ইউজাররা  কম-বেশি সবাই  Command Prompt  শব্দটার সাথে পরিচিত। 
আজকে আমরা দেখাবো Command Prompt দিয়ে কি কি করা যায় এবং এর বিভিন্ন  ট্রিকগুলো  সম্পর্কে জানব।



Command Prompএ  কোনো Command  রান  করতে  হলে আগে আপনাকে Command Prompt টা  চালু করতে হবে।  এটা চালু করার নিয়ম হচ্ছে ........

>>>  আপনার কি - বোর্ড থেকে  win + R  চাপুন।  মানে হলো  windows  লোগো ওয়ালা  key  টা চেপে ধরে  R  চাপুন।  দেখবেন উপর এর ছবির মত একটা  Run Wizard  আসবে। এবার ওখানে  cmd  লিখুন এবং  ইন্টার  চাপ দিন। এবার নতুন একটা  Administrator  উইন্ডো আসবে প্রথম ছবির মত ।। 

ওখানেই যাবতীয়  Command  লিখে  Computer  কে  input  দিতে হয় ।। 


তাহলে  চলুন আমরা বিভিন্ন COMMAND এবং এদের কাজ গুলো কি কি  তা জেনে নিই  !!

  • arp  -  Address Resolution Protocol.
  • bcdboot - Used to create and repair a system partition.
  • chkdsk - Used to check and repair issues in the disk.
  • cleanmgrUsed clean temp files and recycle bin automatically.
  • cls - Clear CMD screen.
  • cmdkey - Used to manage stored usernames and passwords.
  • color - Change the color of the CMD shell using options.
  • compress - Compress one or more file.
  • help - Display a list of commands and see online information for them.
  • ipconfig - Display and change Windows IP configuration.
  • logoff - Log a user off. 
  • msinfo32 - Display system information. 
  • mstsc - Create a remote desktop connection.
  • ping - Test network connection to a computer.
  • time - Display/change system time.



***এছাড়া আরো CMD COMMAND সম্পর্কে জানতে এবং Download করতে এই লিঙ্কে   https://drive.google.com/open?id=0B7BLqjW-aun4NFJHMGx6NFFiSGM  প্রবেশ করুন !!**



  এই  COMMAND গুলো ব্যবহার করে CMD দিয়ে বিভিন্ন কাজ আপনি খুব সহজেই করতে
  পারবেন , যা প্রচলিত পদ্ধতিতে  ঝামেলাপূর্ণ  !!



বৃহস্পতিবার, ২৬ অক্টোবর, ২০১৭

আর্কাইভ





পরিপাটি  জীবন  , সব  কিছু   পরিপাটি   কে  না পছন্দ  করে ।  সব   কিছু  সুন্দর করে   যথাস্থানে  গুছিয়ে  রাখার  মাঝে  পৈষাচিক  আনন্দ  রয়েছে  ।    সে    পৈষাচিক   আনন্দ  আমাদের  সকলের  ই  উপভোগ  করা উচিত  ।   আমরা  একটি  বুক সেলফ এর  কথা   ভাবতে  পারি ,  বুক সেলফ   এ   যদি   বই গুল  সুন্দর  করে  গুছিয়ে  রাখি  তাহলে  আমরা  সহজেই  আমাদের  প্রয়োজন মত  বইটি  খুঁজে  পেতে  পারি । একজন    programmer  হিসাবে  আমাদের  নিত্য প্রয়োজনীয়  যেমন -  code , problem solving , project  , book pdf ,  গুরুত্বপূর্ণ  file  এগুলো  আর্কাইভ  করে  রাখা  উচিত  ।


আমরা  আমাদের  গুরুত্বপূর্ণ  ডাটা  গুল  সব  একসাথে   আমাদের  pc  বা  laptop  এর  একটি   Drive  এ  রাখি ,  কিন্তু আমাদের  ডাটা গুল কি এখানে   secure  ,  যদি   কোন  সময়  আমাদের   pc  বা  laptop  এ যদি  কোন  সমস্যা  হয়  এবং  Hard Disk crash  করে  , তখন  যদি  আমাদের  গুরুত্বপূর্ণ   ডাটা  গুল  হারিয়ে  ফেলি  তখন  কি হবে ?  এই  সমস্যা  সমাধানের  একটি   উপায়  আছে  আর  তা  হল   আর্কাইভ ।  আপনি  চাইলে  আপনার  গুরুত্বপূর্ণ  ডাটা  বা  ফাইল  গুল  আর্কাইভ  করে  রাখতে পারেন ।  যারা    varsity তে   fresher  থাকে  তাদের  আর্কাইভ সম্পর্কে  ধারনা কম থাকে  এবং  তারা  আর্কাইভ  এর  গুরুত্ব কতটুকু   তা   বুঝে   উঠার  আগেই   হয়তো  এরকম  ঝামেলার  সম্মুখীন  হতে  হয়  যেকোনো  কারণে ।


আর্কাইভ কোথায়  করব ঃ 


  • আমাদের  প্রত্যেক কে  varsity থেকে  একটা করে   email দেয় , যেই  email  এর   google  drive এ  32 gb  এর  মতন   space  থাকে । আপনি  আপনার গুরুত্বপূর্ণ   data বা  file  গুল   varsity email  এর   drive  এ  আর্কাইভ করে রাখতে পারেন ।

  • আপনি  চাইলে  আপনার  personal email  এর  google drive  এ  ও  আর্কাইভ  করতে  পারেন , সেখানে  আর্কাইভ  করার জন্য  আপনি   15 gb এর  মতন  free space পেতে  পারেন ।

  • এছাড়াও  আমরা  আমদের   code  গুলকে / প্রোজেক্ট গুলকে   GitHub / Git  এ  আর্কাইভ  করে রাখতে  পারি ।

  • আমরা আমাদের  গুরুত্বপূর্ণ  Note  গুল  Median  এ  আর্কাইভ  করে রাখতে  পারি ।

  • এছাড়াও  আমাদের  সবারই  facebook account  রয়েছে । আমরা  আমাদের  Note , file  গুল   facebook  এর  Note  section  এ  অথবা  নিজে কোন   group  or page  create  করে  সেখানে   up  দিয়ে  সংরক্ষণ  করতে  পারি ।

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

ধন্যবাদ ।

রবিবার, ২২ অক্টোবর, ২০১৭

স্বপ্ন যখন সুদূরপ্রসারী ।। Top interview question for Data Structure and Algorithm Analysis .




নিজেকে আপনি   ১০  বছর পর  কোন অবস্থানে দেখতে  চান ?  বেশির ভাগ   interview এর  প্রধান  প্রশ্ন থাকে এটি । ঠিক  আমার ও একই  প্রশ্ন  আপনার  প্রতি  , আপনি আপনাকে  ১০  বছর পর  কোন অবস্থানে  দেখতে  চান ?  নিজেকে  নিজেই  প্রশ্ন করুন ।


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




Data Structure and Algorithm  শুধু  কয়েকটি  শব্দের  সমষ্টি  নয় ,  এই শব্দগুলো  হল   coding   এর  প্রাণ  ,  একটি   program   এর  সৌন্দর্য  এবং  একজন ভাল    programmer   এর  পরিচয় ।  একজন ভাল    programmer  এর  প্রধান গুন ই  হল  তার  program  কে  সুন্দর  ভাবে    represent   করা  যাতে  অন্যকেউ   দেখা  মাত্রই  easily  তার  code   বুঝতে  পারে ,   program  কে  অর্থবহুল   করে  তোলা  ,  আর  তাই তো  চাকরির   interview  এ বর্তমানে  প্রশ্ন  কর্তাদের  পছন্দের    topic  হয়ে  দাঁড়িয়েছে   এই    Data Structure and Algorithm Analysis .

interview  board  এ  প্রশ্ন  কর্তা এই   topic  থেকে  বেশ কিছু  প্রশ্ন  করে থাকেন  এবং একজন     programmer  এর  এই  টপিক  সম্পর্কে  ধারনা  কি  রকম তা  যাচাই  করেন  এবং তার  সম্পর্কে স্বচ্ছ  ধারনা  নেন ।  So ,  চলুন  দেরি  না করে    Data Structure and Algorithm Analysis  নিয়ে  কিছু   Top প্রশ্ন  দেখে নেয়া  যাক -





  • How to find middle  element  of linked list in one pass ?
  • How to find if linked list has  a  loop ?
  • How to reverse  string in java ?
  • Write java program to print fibonacci  series ?
  • How to reverse linked list using recursion and iteration ?
  • What is binary  search tree ?
  • Write a java program to check  if a number  is a palindrome or not ?
  • How to find 3rd element  from end  in  a linked  list in  one pass ?
  • How do search a target  key in a linked list ?
  • What is an  AVL  tree ?
  • What is a dequeue ?
  • Which sorting algorithm considered the fastest ?
  • What is data abstraction ?
  • Differentiate NULL and Void .
  • What is  an ordered  list ?
  • Write a java program to implement  stack in java .
  • Differentiate file structure  from  storage  structure .
  • When is a binary search best applied ?
  • In what areas do data structure are applied ?
  • In an integer array there is  1 to 100  number out of one is  duplicate , How to find ?
  • Write a java program to  sort an array  using bubble sort algorithm .
  • What is the difference between  stack and  queue data structure ?
  • What is difference between  singly linked list  and doubly linked list  data structure ?
  • How to  find duplicates  in an array if there is  more than one  duplicates ?
  • How do you reference  all the elements in a one dimention array ?
  • Which data structure is applied when dealing with a recursive function ?
  • How does dynamic  memory  allocation  help in  managing  data ?
  • Are linked list considered  linear  or non linear data structures?
  • Do all declaration  statements result in a fixed reservation in memory .
  • What is the minimum number of  nodes  that a binary tree can have ?
  • How do signed and unsigned numbers affect memory ?
  • What is the primary advantage of a linked list ?
  • What is the difference between push or pop ?
  • What is a postfix expression ?
  • What is the advantage of  the heap over stack ?
প্রশ্ন গুলির উত্তর আপনারা  নিজ  থেকে   google করে জেনে নিবেন । এতে করে আপনার  প্রশ্ন গুলির উত্তর আয়ত্তে  চলে আসবে ।  

শুধু   interview  এর  ভাইবাতেই  নয়  তারা আপনার   পরীক্ষা  নিবে  তাদের  interview  এর তৃতীয়  ধাপ   project  তৈরি  করা  বা    problem solving  করতে দেয়া এসব পরীক্ষাতেও । আপনার  যদি    data structure  and algorithm  সম্পর্কে    fully  concept  clear   না থাকে  সেক্ষেত্রে  আপনি ঐ  সকল   IT  Farm  গুলতে  বেশি সুবিধা  করতে পারবেন না । নিজেকে নিজের  যোগ্য  জায়গায় দেখতে চাইলে  এখন থেকেই  পরিশ্রম  শুরু  করুন । আপনার  সুন্দর    ভবিষ্যৎ  আপনারই অপেক্ষায় রয়েছে পথ চেয়ে ।

ধন্যবাদ ।

মঙ্গলবার, ১৭ অক্টোবর, ২০১৭

Self learning is the best learning || Machine Learning






মানুষ সৃষ্টির  সেরা  জীব  । মানুষ  তার  আশেপাশের  পরিবেশ , পরিবার , সমাজ  থেকে শিক্ষা লাভ করে । আর  সেই  শিক্ষার  বহিঃপ্রকাশ   ঘটে  তার  আচার , ব্যাবহার , সামাজিক  মূল্যবোধ  এর মাধ্যমে ।  মানুষ নিজের প্রয়োজন এ  সমাজ , পরিবেশ , পরিবার থেকে নিজে নিজে  শিখতে পছন্দ করে ।  আর তাই মানুষ হচ্ছে  সবচাইতে  best self learner . মানুষের এই গুনটি কে কাজে  লাগিয়ে  বর্তমান যুগে একটি  শক্তিশালী  platform  হিসেবে নিজেকে  দ্বার  করিয়েছে  Machine Learning .
Machine Learning   হচ্ছে  Artificial Intelligent   এর  একটি   platform .






Machine Learning  হচ্ছে  কতগুলো   Algorithm  এর  সমষ্টি  । এই   Algorithm   গুল  আমরা  যে কোন   Language  এ  implement  করতে  পারি  ।   Machine Learning  হতে পারে  কোন   Robot   বা  কোন   Intelligent  Software যাকে  কিছু  data দিলে  সে  সেই  data  গুল পর্যালোচনা  করে  নিজে নিজে  শিখে  problem  এর  output  প্রদান করে ।  কিছু   Machine learning program  হলও   ok google, prisma , cortana , Shiri  etc .



  • IBM Watson  হচ্ছে  এখন পর্যন্ত সবচাইতে  বুদ্ধিমান  প্রোগ্রাম ।   Warson API  ব্যাবহার  করে   Intelligent Software  তৈরি  করা যায় । 




  • Machine Learning এর  Deep Neural Network  এর   উপর  ভিত্তি  করে তৈরি করা  হয়েছে   prisma , যা   Image recognition  এবং   image processing  এর মাধ্যমে  আপনার   image  কে  আপনার মনের  মত  করে  তোলে  । কিছু কিছু  ক্ষেত্রে  ইমেজ সনাক্ত  করতে এটি  বেশি  ব্যাবহার করা হয় ।








  • Machine Learning  Algorithm  হচ্ছে  ৩  ধরনের ।




  •  Supervised   Learning - > কোন  Computer  program  কে  শিখিয়ে  দেয়া হচ্ছে   supervised learning . computer   কে কিছু  ইনপুট  দিলে  সেই ইনপুটের আলোকে  সে  তার  আউটপুট  প্রদান করে থাকে  । 




  • Unsupervised   Learning - >Unsupervised  learning  এ   output  কি হবে তা  বলে দেয়া  হয়না ।   program  নিজেই  তার   data  গুল  পর্যালোচনা  করে  নিজে  থেকে সম্ভাব্য    output  প্রদান করে থাকে নিজ  বুদ্ধিমত্তা কে  কাজে  লাগিয়ে ।




  • Reinforcement  Learning - >  Human Nature  যেভাবে  কোন কিছু শিখে  ঠিক  তার মতন করেই  শিখে   reinforcement  learning . যে কাজ টি  তার করতে বেশি ভাল  লাগে  সেই কাজটি  ই সে বেশি করে করে  ঠিক  মানুষের  মতন ।  আমরা  এখন সেই  Supervised learning  এর  যুগে  পড়ে  রয়েছি  এবং   Unsupervised  learning  নিয়ে  কাজ করে যাচ্ছি  নতুন  কিছু করার  সম্ভাবনায় ।





 Machine Learning  শিখার  জন্য  কোন কোন  language  আমার  জন্য suitable  হতে পারে ঃ  


  • R  Language - >  Statistical Analysis  এর  জন্য  বেষ্ট হলও  এই  R Language . অনেক  data নিয়ে  কাজ  করার  জন্য   R  একটি  জনপ্রিয়  programming  language . R Opensource programming  Language .



  • Python - > python  এ প্রচুর  পরিমাণে   built in library  থাকায়  এবং কাজ করতে  সহজ হওয়ায়  বর্তমান  এর  আরেকটি  জনপ্রিয়    language হয়ে  দাঁড়িয়েছে  এই  python .  data নিয়ে কাজ  করার  জন্য   Scikit learn  বেশি ব্যাবহার  করা হয়   python  এ  ।  Scikit learn  হচ্ছে  Machine    language  এর   একটি   framework .



  • এছাড়াও  আমরা  JAVA , MATLAB  দিয়েও  Machine  Learning   শিখতে  পারি । 


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


সোমবার, ১৬ অক্টোবর, ২০১৭

Sieve of Eratosthenes





প্রথমেই  ভাবতে  শুরু  করুন , টপিক  এর  নাম টি  পড়ে আপনার  কি মনে  হচ্ছে ।  আর্টিকেল   টা  কিসের  উপর  হতে  পারে  , চিন্তা  করুন । কি  ধরতে  পারলেন কি ? আচ্ছা আমি  ই  বলে  দিচ্ছি  Sieve of Eratosthenes  হচ্ছে   prime number  নির্ণয়  করার   Algorithm .   যখন  আমার  চোখের  সামনে  এই  name  টি  আসে  তখন  আমারও  কোন   idea  ছিলনা  এটি  কি  হতে  পারে ।


  Sieve of  Eratosthenes  হচ্ছে   prime  number নির্ণয়  করার  সবচাইতে  প্রাচীন   technique.  এই  technique  টি হচ্ছে  ১০০০ বছরের ও  পুরনো ।   Greek  Mathematician  Eratosthenes  এটি  উদ্ভাবিত  করেন এবং তার নামানুসারে  এর  নামকরণ   করা হয়   Sieve of Eratosthenes  Algorithm .


যখন  এই পৃথিবীতে  কোন  Computer  এর  চিহ্ন  ছিলনা , সেই সময়  এই   Algorithm technique  দিয়ে  মানুষ    prime  number   নির্ণয় করে থাকত ।  আর  সবচাইতে  মজার  বিষয়   হল  এখন  পর্যন্ত যত   Algorithm আছে  prime  number  নির্ণয় করার জন্য  তার মধ্যে সবচেয়ে  ভাল  efficiency  এবং  bug free  technique হচ্ছে  এই   Sieve  of   Eratosthenes .     

Sieve of  Eratosthenes  এ  প্রত্যেকটি   prime number  কে  এক একটি    civics  বলা হয় ।



Application - > The Sieve of  Eratosthenes  process produces the stream of   all  prime  numbers .


Sieve of  Eratosthenes   technique  ব্যাবহার করে  easily  target  value  পর্যন্ত   prime number  নির্ণয়  করা  যায় ।  Time complexity  একটু  বেশি  হলেও  এটি   efficiency  এবং একটি  সহজ  পদ্ধতি      prime number  নির্ণয় করার ।




আপনারা  চাইলে এই সম্পর্কে  আরও বেশি  জানতে  পারেন   Wikipedia  থেকে  ।

ধন্যবাদ । 

শনিবার, ১৪ অক্টোবর, ২০১৭

ডেটা নিয়ে কারি কুরি ।। Data Structures and Algorithms




এইতো অল্প কিছুদিন  পূর্বেই  একটি  presentation  এর  জন্য   slide  তৈরি   করছিলাম  , তখন  content গুল নিয়ে   research  করে দেখতে  পেলাম অনেকেই তাদের   job  থেকে  resign  নিয়েছে  এবং আবার  পড়াশুনা শুরু করেছে  একটি টার্গেট কে  লক্ষ্য করে ।   হঠাৎ  করে তাদের জব ছেড়ে দেবার  এবং আবার পড়াশুনা শুরু করার  দরকারটাই   আবার কি ,তারা  graduates Engineer  তারপরও তারা কেন তাদের এত ভাল জব এবং  position  থেকে  resign  নিচ্ছে । কারণটা   খুব ই  simple , শাহরুখ খানের  একটি   movie  তে   dialog  আছে , " কুছ  পানে কে লিয়ে কুছ খুনা পারতাহে অর  হারকার জিত্নে বালো  কো  বাজিগার  কেহতেহে  " । ঠিক তাই তারা তাদের  টার্গেট কে লক্ষ্য করে  তাদের  জব  এবং দীর্ঘ  ১ টি  বছর  সময় কে বিসর্জন  দিয়েছে  এবং তারা একটি  সময়  সফলও  হয়েছে ।  এমন কি  শিখল তারা ১ টি বছর  পরিশ্রম  করে ,   তা  আর  কিছু   নয়  তা হল   Data Structure and Algorithms .  তারা  দীর্ঘ  ১ টি  বছর  Data Structure and Algorithms  নিয়ে পড়াশুনা  করেছে   এবং     analysis  করেছে  ।   Now they are  the Engineer and Developer  of  the  Google .

Data Structure  কি ঃ

Data Structure  হল  data optimize  ও  store  করার   কৌশল  ।  পরবর্তীতে  যেন  এসব    data  কে সর্বোত্তমভাবে  ব্যাবহার করা  যায়  এবং  ফিরে পাওয়া যায়  সেই কৌশলই  হল   data structure .





computer  এ  data  নিয়ে আমরা   ৩   ধরনের  কাজ করে  থাকি ।

  1. Data input 
  2. Data Processing 
  3. Data Output 
আর  data structure  এর  কাজ  হল  এই  ৩  ধরনের কাজকে  সহজে  সম্পন্ন  করা ।


  •  Array
  • Linked List 
  • Stack
  • Queues
  • Tree
  • Graph 
এগুলো হল  কয়েকটি   data  structure . 

Algorithms :

Algorithm  হল  কয়েকটি অপারাশনের  সেট । কোন একটা  সমস্যা কে  সবচেয়ে উৎকৃষ্ট যে   উপায়ে  সমাধান করা  যায়  তাকেই  বলা   হয়   Algorithm .

একটি  problem   এর  জন্য একটাই   Algorithm  হয়  কিন্তু  একটি    Algorithm  এর জন্য  অনেকগুলো  solve  হতে  পারে ।

আমরা চাইলে একটি  particular problem  এর জন্য  আমাদের  নিজেদের মত করে  Algorithm design  করতে পারি এবং  তা  implement   করতে  পারি । Algorithm  is the  steps of  solving a problem .

কোন   একটা  সমস্যা সাধারণ  বুদ্ধি প্রয়োগ করে  সমাধান  করলে যতটা   effective  হয় ,   Algorithm ব্যাবহার  করে   solve  করলে  তার চাইতে বেশি    effective  হয় ।  




World  জুড়ে   অনেক  Algorithm  রয়েছে  ।  কিন্তু  যেই  Algorithm  গুল  World  এ রাজক্ত  করে যাচ্ছে  সেগুলো  হল - 

  • Bubble sort
  • Merge sort
  • Quick sort
  • Insertion sort
  • Selection sort 
  • Heap sort 
  • DFS ( Depth first search )
  • BFS ( Best first search )
  • A * search 
  • Hill climbing 
  • Binary search
  • Knapsack
  • LIS
  • LCS
  • Greedy Algorithm
Programmer হিসেবে  Data Structure and Algorithm Analysis ঃ

Computer Science  এর একটি  মুল ও  শক্তিশালী  সাবজেক্ট  হল   Data Structure and Algorithm Analysis .  একজন ভাল  ও দক্ষ    programmer  হতে  হলে অবশ্যই    data structure  Algorithm  Analysis  সম্পর্কে  জানতে  হবে ।   Data Structure and Algorithm  Analysis  শিখতে  কোন    programming language  এর  প্রয়োজন হয়না । যে কোন   language  দিয়ে   Data Structure and Algorithm Analysis  শিখা  যায় ।

একটি   program  কে সুন্দর  ও প্রাণবন্ত   করতে   Data Structure and Algorithm Analysis   এর  ভূমিকা  অপরিসীম  ।




 Software Design  থেকে  শুরু  করে  বড় বড়    problem  এর  solving   এ  এর  বিশেষ  জুড়ি  রয়েছে । কাজকে  সহজ ও সুন্দর ভাবে অতি অল্প  সময়ে  সবার সামনে    represent  করতে    Data Structure and Algorithm  এর  জুড়ি  নেই ।  তাইত  google ,  facebook , Amazon  ,  YouTube  সবার  চোখের মনি হয়ে  উঠেছে   এই   Data Structure and algorithm analysis  specialist রা ।  So , আজই শুরু কর নতুন  জীবনের  পথ চলা ।  


Data Structure and Algorithm সম্পর্কে আরও জানতে ঃ

Data Structure  and Algorithm  সম্পর্কে  আরও জানতে   google করতে পারেন ,   YouTube  এ ভাল ভাল   video content  রয়েছে  তা দেখতে  পারেন । আপনাদের  জানার  আগ্রহ  আরও তৈরি  করতে  বেশ  কিছু    resource  দিয়ে দিলাম ।

YouTube  :




  • mycodeschool
  • infinite loop
  • Bappy Nur
  • easytuts4you 
  • Nabil Hijazi
  • Derek Banas
  • Sujit das (MIT Course )
  • Love Extends Code
  • Jompesh
  • MIT open courseware
  • Florin Mazilu
Book name :







  • Programming Contest , Data Structure and Algorithm by  Md.Mahbubul Hasan
  • The Art of  computer  programming 
  • Programming pearls
  • Data Structure and Algorithms made easy by Narasimha karumnachi
  • Data Structure and Algorithms in JAVA by Robert Lafore 
  • The Algorithm Design Manual  by  Steven S Skiena
  • Introduction to Algorithms 
  • Algorithms
  • Elements of programming interviews in Java , The insider guide 
  • Algorithms in C
  • problem solving with Algorithm and Data Structure using Python
  • Algorithm design and problem solving Mathematics
  • Visualization of Algorithms 
  • Hackers Delight

বৃহস্পতিবার, ১২ অক্টোবর, ২০১৭

Programming এর হাতে খড়ি






CSE তে  ভর্তি  হবার পর আমাদের সবারি কম বেশি স্বপ্ন থাকে যে আমি একজন  programmer হব ।কিন্তু আসলে অনেকের ক্ষেত্রে সেই স্বপ্ন টা শুধু  স্বপ্নই থেকে যায় ।কিন্তু আমরা চাইলেই আমাদের এই স্বপ্ন টা পূরণ করতে  পারি , বাস্তবে রূপ দিতে পারি ।

একজন ভাল programmer এর কি কি গুন থাকা প্রয়োজন ঃ

  • একজন  ভাল  programmer  হতে হলে সবার আগে যেই গুন টি থাকা প্রয়োজন  তা  হল  ধৈর্য  । আপনাকে  অবশ্যই  ধৈর্যবান হতে হবে ।

  • depression  থেকে নিজেকে ১০০ হাত দূরে রাখতে হবে । যখন  ই  depressed  হবেন তখন ই কারও জীবনী পরে , উক্তি পরে বা  ভিডিও দেখে নিজেকে  নিজে  motivated   করার চেষ্টা করতে হবে।

  • problem  যত  জটিল ই হক না  কেন  তা   easily solve  করার চেষ্টা  করতে হবে ।

  • Practice makes a man perfect . তাই সবসময়  practice  করে যেতে   হবে ।তাহলে আপনি  লজিক গুল দ্রুত ধরতে পারবেন  এবং   easily   logic  খাটিয়ে  problem solve  করতে পারবেন ।

  • নতুন কিছু শিখার আর জানার আগ্রহ তৈরি  করতে হবে ।

  •  problem   এ  পরলে তা অবশ্যই  নিজেকে   solve  করার চেষ্টা করতে হবে ,   problem solve  করার জন্য লেগে থাকতে হবে । তারপর ও    problem solve  না হলে   teacher  এর শরণাপন্ন  হতে হবে । 

  • একজন ভাল mentor খুঁজতে হবে  এবং তার অধীনে  কাজ করতে হবে এবং তার থেকে কিভাবে নতুন কিছু শিখা যায়  এবং  তা  apply  করা যায় তা জানতে হবে ।

  • লজিক গুল  real life  problem  বা   project  এ   apply  করার  ability  তৈরি  করতে হবে ।

  • নিজের মাঝে  আত্মবিশ্বাস   তৈরি  করতে হবে ।

  • নিজের  মাঝে  programmer  programmer  মনোভাব  তৈরি করতে  হবে  এবং মন কে  একজায়গায়  স্থির  রাখতে হবে এবং  focus  ঠিক রাখতে হবে । খেয়াল রাখতে হবে যেন  programmer programmer ভাব যেন  অহংকার এ পরিণত না  হয় । 

  • programming contest  এ  অংশ  নিতে হবে ।
Programming শিখতে হলে কি কি জানতে হবে ঃ  

programming  শিখতে হলে সবার প্রথম যা  জানতে হবে তা হল  programming language . অনেকের মনেই প্রশ্ন  থাকে   কোন  programming language  টি  শিখব  । আমি  prefer  করি  programming  এর  হাতে খড়ি  হোক   Mother language C  দিয়ে ।  C  বুঝতে  অনেক সহজ  এবং  beginner level  এর জন্য  best  হবে ।




 C  language  এর  কি কি  topic  শিখব ঃ  

যেহেতু  আপনি  programming  শিখবেন তাই আপনাকে অবশ্যই  target ভিত্তিক কাজ করতে হবে । যথা সময়ে কাজ শেষ করার  goal set করতে হবে । আমরা এখানে  weekly  ভিত্তিক  একটি  course outline  দিচ্ছি ।


Week 1 - >  
  • Variable 
  • Data Type 
  • Token 
  • Operator and expression 
  • Arithmetic Operation
  • Assignment operator 
Week 2 - >

  • Control statement 
  • if statement
  • Switch statement
  • for loop statement
  • while loop statement
  • do statement 
  • break statement 
  • go to statement 
Week 3 - >

  • Function 
  • Array 
Week 4 - >

  • Pointer 
  • String 
  • Custom Data Type 
Week 5 - >

  • Data file 
  • Memory Allocation 
  • Bitwise Operator 
Week 6 - >

  • Advanced C 
একজন  ভাল  Programmer  হতে হলে যা যা  করতে হবে  ঃ

একজন  ভাল  programmer হতে হলে  অবশ্যই  আপনাকে  একজন ভাল   problem solver   হতে  হবে । আর তাই আপনাকে  programming  এর  জন্য যথেষ্ট সময় দিতে হবে  এবং প্রতিদিন   problem solving  করতে  হবে । varsity life  এর প্রথম ২ বছর অন্তত প্রতিদিন  problem solving করা উচিত  এবং পরে  developing site  নিয়ে কাজ করা উচিত ।

Problem solving  কোথায় করব ঃ

problem solve  করার জন্য  বেশ কয়েকটি  ভাল website  রয়েছে ।


  • Uri Online judge : Beginner level এর জন্য ভাল । এখানে অনেকগুলো  category তে    problem  গুল ভাগ করা রয়েছে । problem solving  এর শুরু এই  website  দিয়ে হলে মন্দ কি ।

  • UVA online judge ঃ Beginner and Intermediate level  এর জন্য ভাল । এখানে   Uri  এর থেকে একটু জটিল  problem  গুল পাওয়া যায় ।    
  • Hacker Rank
  • Timus Online Judge 
  • AIZU Online Judge 
  • Sphere Online Judge (SPOJ)
Programming  কোথা  থেকে শিখব ঃ

  • Programming  শিখার  জন্য উত্তম মাধ্যম হল   google .  google  এ  অনেক ধরনের   resource  পাওয়া যায় programming শিখার জন্য ।  google  এ ভাল ভাল বই এর   pdf  পাওয়া যায় , এছাড়াও  বেশ কিছু   website  আছে যা থেকে  easily programming  শিখা যায় ।                             Example : Tutorialspoint , Code academy , Code avengers , Code schools , Udacity , Code house , Khan academy , Learn street , Codetts , SQLzoo 

  • Programming  শিখার জন্য আরেকটি মাধ্যম হল  YouTube .                                                         Example : Thenewboston , google developers , Derek Banas , Learn code.academy , Kudvenkat , Codecourse , DevTips , Leveluptuts , Adamkhoury ,TreeHouse ,SlideNerd , Learnwebcode , Quentin watt , Jream .

  • Android Apps এর মাধ্যমেও  আমরা  programming শিখতে পারি । Play store এ ভাল ভাল  Android apps পাওয়া যায় যা  programming  শিখার জন্য ভাল উপকারী ।

  •  Blog writing হতে পারে আপনার   programming  সম্পর্কে  জানার  আরেকটি  মাধ্যম । আপনি blog পরে পরে  programming  সম্পর্কে অনেক কিছু জানতে পারবেন এবং তা    real life  এ প্রয়োগ করতে পারবেন ।

  •  Programming  শিখার আরেকটি অন্যতম  মাধ্যম হল বই পড়া ।  বই পড়ে   programming  শিখা  এবং তা চর্চা করার মজাই আলাদা ।বই পড়ার  প্রধান সুবিধা  হল আপনি   sequentially  সবকিছু  শিখতে পারবেন । একটি কাজ কয়েক  ভাবে    করা  যায় সে সম্পর্কে  ধারনা লাভ করতে পারবেন বই পড়ে চর্চা করার মাধ্যমে । programming language , programming  সবকিছুর    basic  জিনিশ গুল  ভালভাবে শিখতে পারবেন ।  sequentially   শিখতে পারবেন  বলে অনেক সহজে  অতি দ্রুত     basic to advance  level পর্যন্ত শিখতে পারবেন।

Programming Contest :

আপনার নিজেকে যাচাই করার জন্য অবশ্যই আপনাকে  programming contest  গুলতে অংশ  নিতে হবে ।Programming contest  এর মাধ্যমে  আপনার    problem solving  করার ক্ষমতা  আর বৃদ্ধি  পাবে । Top  কয়েকটি  programming contest  এর নাম  /  website  উল্লেখ করা হল ঃ 

  • ACM ICPC
  • NHSPC
  • NGPC
  • Top Coder 
  • Coder Byte 
  • ProjectEuler
  • Hacker Rank
  • Codechest
  • Leet Code
  • SPOJ
  • CodeEval
  • CodinGame