২১

Re: প্রোগ্রামারদের আড্ডা!

সারিম'এর ওয়েবসাইট

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২২

Re: প্রোগ্রামারদের আড্ডা!

ভেরিয়েবল ডিক্লারেশনের আসলে তেমন কোন স্ট্যান্ডার্ড নাই। মানে ডি য্যুর (de jure) রুলস নাই। তবে কিছু ডি ফ্যাক্টো রুলস আছে। তা বিভিন্ন ল্যাঙ্গুয়েজ ভেদে।

C/C++
১। সব নাম ছোট অক্ষরের। কোন ক্যাপিটাল অক্ষর থাকে না।
২। শব্দের মাঝে পার্থক্য করতে চাইলে আন্ডারস্কোর (_) ইউজ হয়
যেমন: a, a_variable.

Java
১। ক্যামেল কেস (twoWords, howAreYou)
২। প্রথম অক্ষর ছোট হাতের।
৩। আন্ডারস্কোর (_) ইউজ হয় না।
যেমন: itsALongVariable, variable, niceGuy.
C#
১। সম্পুর্ণ জাভার মত।
২। প্রথম অক্ষর বড় হাতের হয়
যেমন: ItsALongVariable, Variable, NiceGuy.

PHP
১। নিয়ম সম্পুর্ণ C/C++ এর মত
২। PHP5 থেকে অনেকে আবার Java/C# এর মত নিয়ম পালন করছে।

এটা ছাড়াও কিছু নিয়ম আছে।
১। কোন ক্লাসের নামের প্রথম অক্ষর বড় হাতের হবে।
২। কোন ক্লাসের অবজেক্টের নামের প্রথম অক্ষর ছোট হাতের হবে।
৩। নেমস্পেস থাকলে সেই অনুসারে ক্লাসের নাম হবে। এক্ষেত্রে সবচেয়ে উপরের নেমস্পেসটা প্রথম শব্দ হিসেবে আসবে। তারপর একে একে বাকিটা।
যেমন: Zend_Data_Google_Mail
৪। ডিরাইভ করা ক্লাসের ক্ষেত্রে বিশেষন আগে বসে।
যেমন: Number, IntegerNumber, BigIntegerNumber, ArbitraryBigIntegerNumber
এখানে বেস ক্লাস থেকে ডিরাইভড ক্লাসগুলো হল,

└───Number
    └───IntegerNumber
        └───BigIntegerNumber
            └───ArbitraryBigIntegerNumber

শিপলু'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

২৩

Re: প্রোগ্রামারদের আড্ডা!

দারুণ একটা টপিক। অয়ন ভাইকে ধন্যবাদ।

অনেকে বলেন পাইথন শেখা তুলনামূলকভাবে সহজ। আসলেই কি তাই? এ ব্যাপারে কেউ কিছু বলবেন?

২৪

Re: প্রোগ্রামারদের আড্ডা!

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২৫

Re: প্রোগ্রামারদের আড্ডা!

২৬

Re: প্রোগ্রামারদের আড্ডা!

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২৭

Re: প্রোগ্রামারদের আড্ডা!

আমি বরং অন্য অ্যাঙ্গেল থেকে একটা প্রশ্ন করি। আমার পড়ালেখার ব্যাকগ্রাউন্ড কম্পিউটার বা এ ধরনের কোনো সাবজেক্ট না- সামাজিক বিজ্ঞান। কিন্তু আগ্রহের বশে কোনো একটা প্রোগ্রামিং সফটওয়্যার শিখতে চাই। যেহেতু এইচএসসি পর্যন্ত সায়েন্স পড়ার অভিজ্ঞতা আছে (উচ্চতর গণিত সহ), সেক্ষেত্রে গাণিতিক দক্ষতা সামান্য হলেও হয়তো রয়েছে। এ অবস্থায় কোন প্রোগ্রামিং দিয়ে শুরু করলে ভালো হয়?

২৮ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০০:৪৭)

Re: প্রোগ্রামারদের আড্ডা!

from bottle import route, run

@route('/hello/:name')
def index(name='World'):
    return '<b>Hello %s!</b>' % name

run()
Calm... like a bomb.

২৯

Re: প্রোগ্রামারদের আড্ডা!

৩০

Re: প্রোগ্রামারদের আড্ডা!

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩১

Re: প্রোগ্রামারদের আড্ডা!

নিজের অবস্থাটা বুঝানোর জন্য আরেকটু যোগ করি। সম্প্রতি w3schools থেকে এইচটিএমএল, সিএসএস, এক্সএমএল, মাইএসকিউএল এবং পিএইচপির টিউটোরিয়ালগুলো দেখলাম। খুব একটা কঠিন লাগে নি (যদিও কিছু কিছু ক্ষেত্রে ধরতে সময় লেগেছে - যেমন অ্যারে)। সেক্ষেত্রে এই জ্ঞান দিয়ে কি পাইথন শুরু করা যায়? কিংবা অন্য কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ?

৩২

Re: প্রোগ্রামারদের আড্ডা!

সারিম'এর ওয়েবসাইট

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩৩

Re: প্রোগ্রামারদের আড্ডা!

সারিম ভাই, র্যাপারের বিষয়টি নিয়ে এখনও কোন আলোচনা হল না। whats_the_matter

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩৪ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০২:২২)

Re: প্রোগ্রামারদের আড্ডা!

Calm... like a bomb.

৩৫

Re: প্রোগ্রামারদের আড্ডা!

প্রোগ্রামার হতে ইচ্ছুকরা আলোর মুখ দেখতে পাচ্ছি ।

৩৬

Re: প্রোগ্রামারদের আড্ডা!

ধন্যবাদ ব্রাশু ভাই। বুকে বল আর অন্তরে সাহস পেলাম। smile

৩৭

Re: প্রোগ্রামারদের আড্ডা!

লেখাটি GPL v3 এর অধীনে প্রকাশিত

৩৮ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০২:০৬)

Re: প্রোগ্রামারদের আড্ডা!

Calm... like a bomb.

৩৯

Re: প্রোগ্রামারদের আড্ডা!

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

প্রোগ্রামার আর সফটওয়্যার ডেভেলপার দুটো ভিন্ন জিনিস। প্রোগ্রামাররা ভিত্তি তৈরী করে আর ডেভেলপাররা সেই ভিত্তির উপর এন্ড-ইউজার সফটওয়্যার বানায়।

আইডিই না টেক্সট এডিটর এটা সম্পূর্ণ ব্যক্তিগত ব্যাপার। আমি একজন ভিম ফ্যান হলেও আইফোন এ্যপ বানানোর জন্য এক্সকোডই ব্যবহার করব, এ্যন্ড্রয়েড এ্যপের জন্য এক্লিপস-ই ব্যবহার করব। তবে পাইথনের জন্য আমি ভিম-ই পছন্দ করি সর্বদা। যেকোন ডেভেলপমেন্ট এনভায়রনমেন্টে নিজেকে মানিয়ে নেয়াটাই ভাল বুদ্ধি। টুলের সাথে যুদ্ধ করলে ক্ষতি বৈ লাভ হয় না।

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

পাইথন বা সি# বা অন্য যে ভাষাগুলো ব্যাটারি ইনক্লুডেড অবস্থায় আসে, সেগুলোতে কাজ করাটা খুব সহজ মনে হয়। মনে হয়, সি, সি++ এ করতে গেলে তো সব নিজের হাতে বানাতে হবে, অন্যদিকে ডটনেটে তো ফাংশন কল করলেই হয়ে যায়। এ ধারণাটাও সঠিক না। সি, সি++ বা অন্য কোন ব্যাটারি নট ইনক্লুডেড ভাষাতেও প্রচুর পরিমাণে লাইব্রেরি কোড, ফ্রেমওয়ার্ক, টুলকিট - সবই পাওয়া যায়। এবং সেগুলো দিয়ে ব্যাটারি ইনক্লুডেড ভাষার প্রায় সমান সাইজেই কোড লেখা যায়।

নতুন প্রোগ্রামারদের কোনটা দিয়ে শুরু করা উচিত, সেটা সম্পূর্ণ নির্ভর করে সেই ব্যক্তির উপর। যেটা দিয়েই হোক না কেন, শুরু করে ধরে রাখতে হবে। তবে সাধারণত আশেপাশে কোন ভাল প্রোগ্রামার যেটা দিয়ে কাজ করে সেটা দিয়ে শুরু করলে ভাল হয়। তাতে বেশ কিছু সাহায্য পাওয়া যায়।

ডেস্কটপ নাকি ওয়েব নাকি মোবাইল এটাও তেমন একটা সমস্যার বিষয় না। একজন ডেভেলপারের সবগুলোতেই কাজ করতে পারে ইচ্ছে করলেই। টুইটার একটা মাত্র সাইটই, যেটা ওয়েব এ্যপ। কিন্তু এর ডেস্কটপ ক্লায়েন্ট আছে হাজারটা, মোবাইল ক্লায়েন্ট আছে শ'খানেক। তাহলে ব্যাপারটা কী দাঁড়াল? আমার স্টক মার্কেটের এ্যপটারই কথা ধর। এর জন্য আমাকে একটা সার্ভার বানাতে হয়েছে, সেখান থেকে ডাটা নিয়ে আইফোন, এ্যন্ড্রয়েড, ডেস্কটপ (ওটা কেউ ব্যবহার করে না sad ) সব এ্যপই বানিয়েছি। এখানে তো সবই লাগল। এবং কী কী ভাষা লাগল? পাইথন, অবজেক্টিভ-সি, জাভা ও জাভাস্ক্রিপ্ট। সম্পূর্ণ ভিন্নরকম চারটা ভাষা।

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

যাইহোক, পেশার জন্য শেখা আর নেশার জন্য শেখা - দুটোতে প্রচুর পার্থক্য। এটাই হল মোদ্দাকথা।

৪০

Re: প্রোগ্রামারদের আড্ডা!

আইডিই আর টেক্সট এডিটরের প্রধান পার্থক্য কী? কোন ক্ষেত্রে আইডিই ব্যবহার করব? আর কোন ক্ষেত্রে টেক্সট এডিটর ব্যবহার করব? বিস্তারিত আলোচনা করলে সুবিধা হয়।