একটা প্রোগ্রামিং ভাষা শিখতে কী কী জিনিস শিখতে হবে? - ScienceBee প্রশ্নোত্তর

বিজ্ঞান ও প্রযুক্তির প্রশ্নোত্তর দুনিয়ায় আপনাকে স্বাগতম! প্রশ্ন-উত্তর দিয়ে জিতে নিন পুরস্কার, বিস্তারিত এখানে দেখুন।

0 টি ভোট
264 বার দেখা হয়েছে
"প্রযুক্তি" বিভাগে করেছেন (135,480 পয়েন্ট)

1 উত্তর

0 টি ভোট
করেছেন (135,480 পয়েন্ট)

১. বিরাট মহৎ কোন উদ্দেশ্য নির্দিষ্ট করে প্রোগ্রামিং শিখো না

প্রোগ্রামিং শেখার প্রতিবন্ধতাগুলো খোঁজার আগে প্রোগ্রামিং শেখার learning process বা motivation নিয়ে কথা বলা দরকার। তুমি কেন প্রোগ্রামিং শিখবে? তুমি অবশ্যই এজন্য প্রোগ্রামিং শিখবে না যে অমুকে বলেছে “programming is cool!” বা প্রোগ্রামিং শিখে বিল গেটস হওয়া যায় অনেক টাকা বেতন পাওয়া যায় ইত্যাদি।

তুমি প্রোগ্রামিং শিখবে তোমার নিজের কোন একটা প্রবলেম সলভ করার জন্য। তোমার দৈনন্দিন জীবনের কোন কাজকে automate করার জন্য বা improve করার জন্য। তুমি প্রোগ্রামিং শিখতে পার স্রেফ তোমার আনন্দের জন্য। চিন্তা করার চেয়ে আনন্দের আর কিছু হতে পারে না। দীর্ঘ সময় একটা প্রবলেমে আটকে থাকার পর চিন্তার একটা পর্যায়ে এটা সলভ হয়ে গেলে যে নির্মল আর অনাবিল আনন্দ পাওয়া যায় সেটা এক্সপেরিয়েন্স করার জন্য। তোমার লক্ষ্য যদি হয় ‘হাগার হাগার ডলার’ কামানো, তাহলে তোমার শেখাটা শুধু এই ডলার কামানোর দিকেই ধাবিত হবে। অর্থের পাশাপাশি জীবনে দরকার কিছুটা প্রশান্তি-সুখ। একটা সময় পর্যন্ত তোমার হাতে টাকা আসলে মনে হতে পারে এটাই আসলে সুখ। অপরপক্ষে তুমি যদি নতুন একটা বিষয় শেখার আনন্দটা নিজের মধ্যে প্রতিষ্ঠা করতে পারো, প্রোগ্রামিং এর চমৎকার জগতটাকে যদি আপন করে নিতে পার জাস্ট একটা খেলার মত করে। তাহলে বিশ্বাস করো, তুমি শেখার আনন্দ যেমন পাবে তোমার হাতে টাকাও আসবে। পুরো ব্যাপারটাই মনস্তাত্বিক। তুমি টাকা কামানোর জন্য প্রোগ্রামিং করলে টাকা কামাতে পারবা, আবার আনন্দের জন্য প্রোগ্রামিং করলেও টাকা কামাতে পারবা। প্রথম ক্ষেত্রে একটা পর্যায়ে লাইফটা বোরিং মনে হবে, দ্বিতীয় ক্ষেত্রে লাইফটাকে এঞ্জয় করতে পারবে। এখন তোমার উপর পুরোটাই নির্ভর করে। তুমি কী করতে চাও, কিভাবে করতে চাও সেটা তোমাকেই বের করতে হবে। আর দশটা মানুষ যে পথে সফল হয়েছে তোমার পথটা সেরকম নাও হতে পারে। তোমার সফল হবার পথ তোমাকেই বের করে নিতে হবে।

যদি তুমি প্রোগ্রামিংটাকে পছন্দ কর কিন্তু এটাতে ক্যারিয়ার গড়তে চাও না তাহলে অনেক সময়ই এটা তোমাকে পথ হারিয়ে ফেলতে বাধ্য করতে পারে। একটা প্রোজেক্ট করতে গিয়ে কঠিন কোন প্রবলেমে আটকে গেলে তোমার কাছে মনে হতে পারে যে ‘প্রোগ্রামিং আমার জন্য না’ বা ‘প্রোগ্রামার হবার জন্য আমার জন্ম হয় নি’ ইত্যাদি।

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

জানোই তো “ধারে না কাটলে, ভারে কাটে…”।

২. তুমি জানো না কোন টেকনোলজি বা কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখবে

কমন একটা প্রশ্ন হচ্ছে “ভাইয়া, কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে শুরু করবো? সি নাকি সি++? জাভা নাকি এক নম্বর ল্যাঙ্গুয়েজ? তাহলে জাভাই শুরু করি, কী বলেন?” এই টাইপের প্রশ্নগুলোর একমাত্র কারণ হচ্ছে প্রশ্নকর্তা আসলে নিজেই জানে না সে কেন প্রোগ্রামিং শিখতে চাচ্ছে।

যদি তোমার মাথায় কোন নির্দিষ্ট প্রোজেক্টের আইডিয়া থাকে তাহলে তোমার কী শেখা উচিত সেটা বলাটা সহজ। যেমন তোমার যদি Android App ডেভেলপ করার ইচ্ছা থাকে বা এন্ড্রয়েডের জন্য কোন একটা এপের আইডিয়া আছে সেটা তুমি বানাতে চাচ্ছ তাহলে তুমি Java শিখতে পার। আবার আইফোনের জন্য এপ বানানোর ইচ্ছা হলে তুমি Objective C বা Swift শিখতে পার। ওয়েবের কোন কাজ করতে চাইলে HTML, CSS, PHP, JavaScript শেখা যেতে পারে। আবার তোমার যদি উদ্দেশ্য হয় এই মুহুর্তেই সফটওয়্যার বা এপ ডেভেলপ না বরং প্রোগ্রামিং এর লজিক ডেভেলপ করা বা ACM problem solve করা। তাহলে সি/সি++ শিখতে পারো।

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

৩. প্রবলেম বুঝতে পারছি কিন্তু কোড করতে পারছি না

এটা আসলে নতুন প্রোগ্রামারদের একটা জাতীয় সমস্যা। এটা নিয়ে বেশি ভয় পাওয়ার কিছু নাই। আমরা সাধারণত থিওরি পড়ি এরপর সেটাকে implement করার জন্য কোড করি। কিন্তু অনেক সময়েই দেখা যায় algorithm-টার স্টেপগুলো বুঝতে পারছি কিন্তু কোড করতে পারছি না। এর কারণ আর কিছু নয়, জাস্ট skill এর অভাব। অর্থাৎ এই এলগোটা করার মত পর্যাপ্ত দক্ষতা তৈরি হয় নাই।

যেমন ধর সাঁতারের উপর তুমি পড়াশোনা করলে। কিছু ঘাটাঘাটি করে তুমি কিন্তু চাইলে বিরাট বড় সাঁতারের কোচের মত লেকচারও দিতে পারবে। তোমার লেকচার শুনে অনেকে হয়ত প্র্যাক্টিস করে ভাল সাঁতারু হতে পারবে। যদিও তুমি নিজেই সাঁতার জানো না। তোমার শুধু সাঁতারের স্টেপ, থিওরি ইত্যাদি জানলেই হবে না। তোমাকে পুকুরে নেমে কিছু ঘোলা জলও গলধকরণ করতে হবে। :D

তুমি যদি কোড করতে না পেরে নিজেকে গালাগালি করতে থাকো। বা চিন্তা কর যে “এসব কোডিং-ফোডিং আমারে দিয়া হবে না”, “এগুলা অনেক কঠিন”, “আমার আসলে ব্রেইন ভাল না”, “আমি ট্যালেন্ট না, বলদা একটা”… ইত্যাদি। তাহলে এর থেকে বাজে জিনিস কিন্তু আর হয় না। তোমার প্রাপ্তির ঝুলি ভারি হওয়ার ক্ষেত্রে তুমি কতটা disciplined আর তোমার প্রচেষ্টার ধারাটা কেমন এই দুইটা জিনিস কিন্তু বেশি দায়ী। কোন একটা প্রোজেক্ট বা প্রবলেম সলভ করার জন্য তুমি নিচের স্টেপগুলো ফলো করতে পারোঃ

  1. তুমি সত্যিই সলভ করতে চাও বা কোন একটা প্রোজেক্ট করতে চাও এমন কিছু সিলেক্ট কর। মানে কারো চাপিয়ে দেয়া কোন কাজ না। যেই কাজটা তুমি ভালবেসে করতে পারবে সেরকম একটা প্রোজেক্ট চিন্তা কর।
  2. পুরো প্রোজেক্টের কাজগুলোকে ছোট ছোট task এ ভাগ কর। যেমন ধর একটা সাইট বানাতে চাচ্ছ তার একটা টাস্ক হতে পারে “লগিন পেজ বানানো”। সাধারণত টাস্কগুলো হতে হয় প্রোজেক্টের সর্বনিম্ন ইউনিক। ২০-২৫ লাইনের কোডের মধ্যে একেকটা টাস্ক শেষ করা ভাল।
  3. একটা টাস্ক নিয়েই কাজ করো। এক সাথে একাধিক টাস্কের কথা চিন্তা করলে মাথায় গিট্টু লেগে যাবে। যখন কোন একটা টাস্কের ব্যাপারে মোটামুটি নিশ্চিত হবে যে এটা কাজ করবে, কোনরকম বাঘ-ভাল্লুক (bug) এর মধ্যে নাই। তখনই পরের task টা শুরু করবে।
  4. কোন একটা টাস্কের কোড শুরু করার আগে অবশ্যই ঐ টাস্কের থিওরিগুলো জেনে নিবে। যেমন ধর তোমার একটা টাস্ক হচ্ছে কোন ইউজার কোন দেশের কোন শহর থেকে তোমার এপটা ব্যবহার করছে সেটা জানা। তাহলে কোড শুরু করার আগে তোমার জেনে নেয়া উচিত GPS কিভাবে কাজ করে? latitude ও longitude কী? এই দুইটা মান থেকে কিভাবে কোন জেলা বা শহরের নাম পাওয়া যায়? এজন্য কোন কোন API পাওয়া যায় বা কোন টেকনোলজিটা ব্যবহার করা হয়? ইত্যাদি।
  5. সবশেষে তুমি তোমার টাস্কটা শেষ করতে সক্ষম হলে। যখন তুমি এটা সলভ করছিলে তখন আরো কিছু প্রতিবন্ধকতা তোমার সামনে হাজির হবে। সেগুলো হচ্ছেঃ
  6. ৪. তোমার করা কোডের ভবিষ্যত নিয়ে তোমার কোন মাথা ব্যথা নাই

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

একেকটা টাস্ক শেষ করার পর তুমি নিজেকে এই প্রশ্নগুলো করতে পারোঃ

  • এই কোডের ক্ষেত্রে কি কোন edge case আছে যার জন্য কোডটা কাজ করবে না? অথবা কোড কাজ করলেও পুরো এপ্লিকেশনটা যখন রান করবে তখন এই কোডের জন্য কোন ঝামেলা হবার কি কোন চান্স আছে?
  • আমার কোডটা কি clean enough? বছরখানেক পরে এই কোডের চেহারা দেখলে চিনতে পারবো তো? যে কোন ধরণের modification বা edit করার দরকার হলে করা যাবে তো? এই টাস্কের কোন আপডেটের কারণে এপের অন্য কোন টাস্কের কাজ আটকে যাবে না তো?
  • আরো কিছু বিষয় খেয়াল রাখতে হবে
collected 

সম্পর্কিত প্রশ্নগুচ্ছ

+2 টি ভোট
1 উত্তর 381 বার দেখা হয়েছে
0 টি ভোট
3 টি উত্তর 391 বার দেখা হয়েছে
+11 টি ভোট
1 উত্তর 264 বার দেখা হয়েছে
31 জানুয়ারি 2021 "প্রযুক্তি" বিভাগে জিজ্ঞাসা করেছেন Hojayfa Ahmed (135,480 পয়েন্ট)
+2 টি ভোট
3 টি উত্তর 367 বার দেখা হয়েছে

10,720 টি প্রশ্ন

18,363 টি উত্তর

4,729 টি মন্তব্য

240,190 জন সদস্য

43 জন অনলাইনে রয়েছে
0 জন সদস্য এবং 43 জন গেস্ট অনলাইনে
  1. Ayon Ratan Agni

    390 পয়েন্ট

  2. Al Moyaj Khondokar

    210 পয়েন্ট

  3. Vuter Baccha

    150 পয়েন্ট

  4. Mehedi_Bknowledge

    110 পয়েন্ট

  5. Monojit Das

    110 পয়েন্ট

বাংলাদেশের সবচেয়ে বড় উন্মুক্ত বিজ্ঞান প্রশ্নোত্তর সাইট সায়েন্স বী QnA তে আপনাকে স্বাগতম। এখানে যে কেউ প্রশ্ন, উত্তর দিতে পারে। উত্তর গ্রহণের ক্ষেত্রে অবশ্যই একাধিক সোর্স যাচাই করে নিবেন। অনেকগুলো, প্রায় ২০০+ এর উপর অনুত্তরিত প্রশ্ন থাকায় নতুন প্রশ্ন না করার এবং অনুত্তরিত প্রশ্ন গুলোর উত্তর দেওয়ার আহ্বান জানাচ্ছি। প্রতিটি উত্তরের জন্য ৪০ পয়েন্ট, যে সবচেয়ে বেশি উত্তর দিবে সে ২০০ পয়েন্ট বোনাস পাবে।


Science-bee-qna

সর্বাপেক্ষা জনপ্রিয় ট্যাগসমূহ

মানুষ পানি ঘুম পদার্থ - জীববিজ্ঞান এইচএসসি-উদ্ভিদবিজ্ঞান এইচএসসি-প্রাণীবিজ্ঞান পৃথিবী চোখ রোগ রাসায়নিক শরীর রক্ত আলো মোবাইল ক্ষতি চুল কী #ask চিকিৎসা পদার্থবিজ্ঞান সূর্য প্রযুক্তি প্রাণী স্বাস্থ্য বৈজ্ঞানিক মাথা গণিত মহাকাশ পার্থক্য এইচএসসি-আইসিটি #science বিজ্ঞান #biology খাওয়া শীতকাল গরম কেন #জানতে ডিম চাঁদ বৃষ্টি কারণ কাজ বিদ্যুৎ রাত রং উপকারিতা শক্তি লাল আগুন সাপ মনোবিজ্ঞান গাছ খাবার সাদা আবিষ্কার দুধ উপায় হাত মশা মাছ মস্তিষ্ক শব্দ ঠাণ্ডা ব্যাথা ভয় বাতাস গ্রহ স্বপ্ন রসায়ন তাপমাত্রা উদ্ভিদ কালো কি বিস্তারিত রঙ পা পাখি গ্যাস মন সমস্যা মেয়ে বৈশিষ্ট্য হলুদ বাচ্চা সময় ব্যথা মৃত্যু চার্জ অক্সিজেন ভাইরাস আকাশ গতি দাঁত আম বিড়াল কান্না নাক
...