ভবিষৎ সফটওয়্যার ইঞ্জিনিয়ারদের জন্য কিছু কথা

অনেকদিন লেখতে না লেখতে হঠাৎ আজ জ্ঞান লেখতে ইচ্ছে করলো। ছোটদের সবসময় নানা ধরনের আদেশ উপদেশ দেই। তবে যেসব কথা গুলো কখনোই খুব একটা বলা হয়ে উঠে না ভাবলাম সেগুলা আজ লিখে ফেলি।

১। সর্ব প্রথমে, যেটা নিয়ে কখনোই মাথা ঘামানু যাবে না সেটা হলো কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ সবচেয়ে জনপ্রিয়/ সবচেয়ে বেশি কামাই করা যাবে।

২। চাকরীর চিন্তা আজকেই বাদ দিয়ে দেন। বাংলাদেশে এখনো এই সেক্টরের চাকুরী করার শক্ত ক্ষেত্র তৈরী হয় নাই। আর যেসব ফার্ম আছে তারা ইন্টারন্যাশনাল কোয়ালিটি মেইনটেইন করে এবং ৫-১০ বছরের অভিজ্ঞদের নিয়ে কাজ করে। যেটা নতুন ইঞ্জিনিয়াদের জন্য নয়।

৩। নিজের একটা ব্যক্তিগত পরিবেশ তৈরী করা সবচেয়ে জরুরী। যাদের পড়াশোনা/ টেস্টিং/ রিসার্চ/ প্রবলেম সলভ করার জন্য ফিজিক্যালি+ম্যান্টালি কোন জায়গা বরাদ্দ নেই তাদের জন্য এই পেশা নয়।

ফিজিক্যাল/ম্যান্টাল জায়গা বলতে কি বুঝায়?

# পজিটিভ ফিজিক্যাল জায়গা কেন দরকার? আপনি এমন জায়গায় থাকেন যেখানে ঠান্ডা মাথায় চিন্তা করার পরিবেশ ই নাই। যেখানে আপনি ২৪ ঘন্টা আপনার পিসিটা ওপেন ই করে রাখতে পারেন না। সেখানে থেকে আপনার উন্নতি হবে না। পড়াশোনা / প্রাকটিস কিছুই হবে না। এ জন্য সফটওয়্যার ইঞ্জিনিয়ারদের জন্য আর্দশ জায়গা হলো নিজের বাসার ঘর (বাবা-মার সাথে)। যারা মেসে থাকে তাদের নিজের উদ্দ্যেগেই পরিবেশ নিজের জন্য পজিটিভ করে নিতে হবে।

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

সুতরাং মাথা থেকে আবর্জনা সব ফেলে দিয়ে নিজের ভালো লাগার টুলস / প্রোগ্রামের জন্য মনে সুন্দর জায়গা তৈরী করুন। ভালোবাসা তৈরী করুন।

৪। ভুল করেও এই ভুল করবেন না , কারো কাছে কোন বিষয়ে সাহায্য চেয়ে। যেই প্রোগ্রাম পারতেছেন না সেটা নিয়ে যতটুকু সময় ব্যয় করা যায় ব্যয় করুন। না পারলে অন্য কিছু নিয়ে ভাবুন। কারো কাছে সাহায্য চাইলেন তো ভবিষৎ এ সেটার একটা খেসারত দিতে হবে। যে আপনাকে সাহায্য করলো সে সবসময় আপনার থেকে তাকে সুপিরিয়র ভাববে। যেটা ভাবতে আপনার ভালো নাও লাগতে পারে। একসময় হয়তো আপনি তার থেকেও ভালো প্রোগ্রামার হবেন।

software engineer

৫। এমন একটা সার্কেল খুজুন, তৈরী করুন যারা আপনি যেই কাজ করতে ভালোবাসেন তারাও তা ই ভালোবাসে। প্রতিদিন তাদের সাথে ওই বিষয়ে আলাপ করুন। নিজের আপডেট দিন, তার আপডেট নিন। নিজেদের সফলতা/ ব্যর্থতা শেয়ার করুন। ভালো কমিউনিটি আপনাকে শুধু ভালো প্রোগ্রামার ই বানাবে না ভালো একজন মানুষ হিসেবেও গড়ে তুলবে।

৬। যা শিখতে ইচ্ছে করবে, জানতে ইচ্ছে করবে সেটার জন্য ২/৩ টি ভালো বই খুজে পেতে জোগাড় করে ফেলুন। বই এর থেকে আপন কেউ নাই ;)

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

৮। পদার্থ বিজ্ঞানের থিউরি গুলো পড়ুন মাঝে মাঝে। ম্যাথ এর থিওরি গুলো পড়ুন। প্রথমেই ভালো প্রোগ্রামার হওয়ার চেষ্টা না করে চেষ্টা করুন আপনার কম্পিউটার টাকে চিনতে। এটা কিভাবে কাজ করে সেগুলা জানুন। ফান্ডামেন্টাল বিষয়গুলো নিয়ে ঘাটুন। বিভিন্ন প্যারাডিজম নিয়ে পড়াশোনা, বিভিন্ন মডেল সম্পর্কে জানুন।

programmers life

৯। নিজেকে অন্য বিষয়ে পড়াশোনা করা স্বাভাবিক ছাত্র ভাবতে যাবেন না। আপনি মোটেও তাদের কাতারে পরেন না। তারা হয়তো দিনে সময় ধরে পড়াশোনা করে, বিভিন্ন ল্যাব করে। ভালো রেজাল্ট করে একসময় কর্পোরেট লাইফে ঢুকে জুনিয়র থেকে বড় অফিসার হয়ে যায়। আপনার জীবন কিন্তু এমন হবে না। আপনাকেই আপনার নিজের চাকরী দিতে হবে। পারবেন তো নিজেই নিজের বস হতে?

১০। সবশেষে, যেই বিষয় আপনাকে পেইন দিবে তা হলো রাত জাগা, রাত জাগা নিয়ে অনেকের কথা শোনা, অসামাজিক হওয়া। এইগুলা সহ্য করে যান। আপনি যা করে সফল হবেন ভবিষৎ এ মানুষ সেটাই করবে। আপনাকে অনুসরন করবে। তখন যারা আপনাকে পছন্দ করতো না তারাও  আপনাকে পছন্দ করবে।

১১। টেবিল এবং ভালো চেয়ার (ভালো মানে দামি নয়, অন্তত মাজা সোজা রাখে এমন চেয়ার) ছাড়া কখনো কাজ করবেন না। একটা জিনিস মনে রাখবেন আপনাকে এভাবেই কাজ করে যেতে হবে যতদিন বাচবেন। প্রথম ২-৪ পাচ বছরেই যদি নিজের মাজা টা নষ্ট করে ফেলেন ভবিষৎ হয়তো কাজ করতে পারবেন ঠিক ই তবে সারাজীবন এই পেইন বয়ে বেড়াতে হবে।

সবোর্পরি, শুধু কোড আর কোড নিয়ে জীবন পার করে দিবেন তা তো হয় না। বেশি বেশি খাওয়া দাওয়া করুন। কথায় আছে না, Programmers turns caffeine and pizza into Code. আর হ্যা, বিদেশে কিন্তু প্রোগ্রামার দের মেয়ে’রা বিয়ে করতে চায় না। কারন তারা ভালো করেই জানে একজন সফটওয়্যার ইঞ্জিনিয়ার বিয়ে করা মানে জীবন শেষ ;) , সো সর্তক থাকবেন এমন যেন না হয়। :D

maven-vs-connector-cartoon

নির্ঘুম চোখ | ফয়সাল রদ্দি

লিরিকঃ

“নির্ঘুম চোখ জানালায়
আমি নিজেকে শোনাই নিজেরই গান
স্বপ্নরা জেগে থাক
মনের ভেতর চলছে তুফান ।।

অগোছালো সব আশাগুলো জ্বলো
নিভু নিভু শত তারার আলো
চোখে চোখ রেখে রয়ে যায় বহুদূরে
জমে থাকা চিৎকারে।।

কেউ না থাক আছো জোনাকি
আছো আকাশ সেও একাকী
আছো জানালায় ঘুমন্ত শহর
শোন কথার পিঠে কথার বহর।।”

গায়কঃ ফয়সাল রদ্দি

সফটওয়্যার ইঞ্জিনিয়ারিং কোর্স স্ট্রাকচার

সফটওয়্যার ইঞ্জিনিয়ারিং এর উন্নতি এভাবে হবে না, সবই জগাখিচুড়ির মতো লাগে! ৪ বছরে ৪০+ মেজর ও নন-মেজর কোর্স করানুর পরেও পোলাপান ডিশিশান নেয় কি করবে। কেন এটা কি আগে করা যেত না?

ব্যাপারটা এমন হলে কেমন হতো,
১-২ বছর বেসিক কোর্সগুলো (এসেম্বেলি, সি, সি এডভান্স, ডেটাবেজ, ওয়েব টেকনোলজি, ফান্ডামেন্টাল ইত্যাদি) করানুর পর বাধ্যতামূলক একটি নির্দিষ্ট বিষয়ের উপর পরবর্তী বছর গুলোতে সেই বিষয় টির সাবসেকশন গুলোকে ২০-২২ টা কোর্সে বিভক্ত করে স্টাডি+প্রোজেক্ট করানু।

বিষয় গুলো হতে পারে এমন,
কেউ শুধু ওয়েব টেকনোলজি / এন্ড্রয়েড-আইওএস এপ ডেভলপমেন্ট / ডট নেট / পাইথন ইত্যাদির উপর ২বছর পড়াশোনা+প্রোজেক্ট করে একবারে বাস্তবসম্মত জ্ঞান অর্জন করে ভার্সিটি থেকেই দক্ষ হয়ে বের হতে পারতো।

কিন্তু দুঃখের বিষয়, আমাদেরকে জ্যাক অফ অল ট্রেডস বানাচ্ছে ভার্সিটি যার কারনে পরিশেষে কেউ ই (২/১ ছাড়া, যারা নিজের চেষ্টাতেই অনেক কিছু করেছে) নির্দিষ্ট কোন বিষয়ে নিজেকে দক্ষ বলতে পারছে না! আর কাজ/চাকুরী তো দূরে থাক!

স্যালুকাস!

ফটো জিজ্ঞাসা ০২ : লাইট মিটারিং কি?

সাকিব হাসান বলেছেন,

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

লাইট মিটারিং এর জন্য ক্যামেরায় তিনটা মোড থাকে। এই তিনটা মোড হচ্ছেঃ

১) ম্যাট্রিক্স মিটারিং, ২) সেন্টার ওয়েটেড মিটারিং ও ৩) স্পট মিটারিং

১) ম্যাট্রিক্স মিটারিংঃ এই মিটারিং মোডে ক্যামেরা ফ্রেমের পুরো অংশকে সমান সংখ্যক কিছু ব্লকে ভাগ করে নেয়। এরপর প্রত্যেকটা ব্লক থেকে উজ্জ্বলতার ভ্যালু নিয়ে গড় করে ক্যামেরার এক্সপোজার ভ্যালু সেট করে দেয়। যখন ছবির সাবজেক্ট ও ব্যাকগ্রাউন্ডের উজ্জ্বলতার তেমন পার্থক্য না থাকে অর্থাৎ ছবিতে আলো মোটামুটি সুষমভাবে থাকে সেক্ষেত্রে এই মিটারিং মোড ভাল রেসাল্ট দেয়।

২) সেন্টার ওয়েটেড মিটারিংঃ এই মোডে ক্যামেরা ফ্রেমের একেবারে মাঝের অংশের আলোর পরিমানের ভিত্তিতে পুরো ফ্রেমের এক্সপোজার ভ্যালু সেট করে। ফ্রেমের অন্যান্য জায়গা মানে ডানে-বামে-উপরে-নিচে কি আছে সেটা বিবেচনায় নেয় না। পোট্রেইট তোলার জন্য এই মোড ভালো। কেননা পোট্রেইট ফটোগ্রাফির সময় ব্যাকগ্রাউন্ড অনেকক্ষেত্রেই সাবজেক্টের তুলনায় উজ্জ্বল হয়ে থাকে। সেক্ষেত্রে ম্যাট্রিক্স মিটারিং ব্যবহার করলে সাবজেক্ট ডার্ক হয়ে যেতে পারে। 

৩) স্পট মিটারিংঃ ভিউফাইন্ডার দিয়ে তাকালে ফ্রেমে কিছু বিন্দু অর্থাৎ ফোকাস পয়েন্ট দেখা যায়। এই মোডে যেকোন একটি ফোকাস পয়েন্টের উজ্জ্বলতার ভিত্তিতে ক্যামেরা এক্সপোজার ভ্যালু সেট করে। সেন্টার ওয়েটেড মিটারিং এর সাথে পার্থক্য বলা যায় যে, এই মোড সেন্টার ওয়েটেড এর থেকে আরো ক্ষুদ্র জায়গা থেকে মিটারিং করে।

লাইট মিটারিং

ছবিঃ লাইট মিটারিং – Foeyzur R. Dipu

ভিডিওঃ Understanding Camera Metering Modes (শীতের সকাল)

 

বিঃদ্রঃ ফটোজিজ্ঞাসা সিরিজটি গ্রাসহপার্স ফটোগ্রাফি কম্যুনিটি থেকে বিভিন্ন আলোচনা / মন্তব্যের একটি কালেকশন

ফটো জিজ্ঞাসা ১ : আপনি জানেন কি মেগাপিক্সেল কিভাবে হয়? প্রিন্টিং সাইজ কিভাবে বুঝবেন?

Ayon Ahmed :

মনে রাখবেন, এই পিক্সেল হচ্ছে একেকটা সিরামিকের টাইলসের মতন চারকোন ছোট ছোট বক্স। এক মেগাপিক্সেল মানে ১০,০০,০০০ (১০ লাখ) পিক্সেল মতন দেখবেন। ১ মেগাপিক্সেল কি করে বুঝবেন, ক্যামেরার গায়ে লেখা থাকে ১ মেগা। তাছাড়া ধরেন, আপনার ক্যামেরা ১০ মেগাপিক্সেল কেন ১০ মেগাপিক্সেল এটা জানতে তখন আপনি ক্যামেরা সেটিংস এ গিয়ে দেখবেন ফাইলের সবোর্চ্চ সাইজ ৫০০০*২০০০=১,০০,০০,০০০= ১০ মেগাপিক্সেল পেয়ে যাবেন। আমি এই গণনাতে ল্যান্ডস্কেপকে ডিফল্ট করেছি । সবোচ্চ সাইজ হতে পারে পাশাপাশি (ওয়াইডথ) কিংবা খাড়াখাড়ি (হাইথ) ল্যান্ডস্কেপ ছবির ক্ষেত্রে ওয়াইডথকে সর্বোচ্চ করা হয়, পোট্রোট ছবির ক্ষেত্রে হাইথকে সর্বোচ্চ করা হয়। সুতরাং ১০ মেগাপিক্সেল ক্যামেরা দিয়ে দিয়ে যদি আপনি যত বড় প্রিন্ট করতে চান আপনাকে পিক্সেল রেজুলেশান বাড়াতে হবে যেমন আপনার সর্বোচ্চ ৫০০০ পিক্সেলকে ৩০০ ডিপিআই দিয়ে ভাগ করলে = ১৬ ইঞ্চি পরিমান সর্বোচ্চ ছবি সাইজ প্রিন্ট করতে পারবেন। কেউ যদি আপনাকে বলে ১৬ ইঞ্চি সাইজ দিতে হবে তখন আপনি ৫০০০ পিক্সেল ১৬ ইঞ্চি দিয়ে ভাগ করে দিবেন পেয়ে যাবেন ৩০০ ডিপিআই। ডিপিআই দিয়ে আপনি ছবির প্রিন্টিং সাইজ ঠিক করতে পারবেন।

Hasin Hayder :

প্রিন্ট সাইজের সাথে ভিউয়িং ডিসট্যান্স বা দর্শকের দুরত্বেরও একটা মজার সম্পর্ক আছে। এটা হল

১.৫ * ছবির ডায়াগোনাল ডিস্ট্যান্স = ন্যুনতম দুরত্ব

অর্থাৎ একটি ৩” x ৪” ছবি ১.৫* কৌনিক দুরত্ব = ৫” x ১.৫ = ৭.৫” দুর থেকে যেরকম দেখাবে, সেই একই ছবি ৩০” x ৪০” ক্যানভাসে প্রিন্ট করে ৭৫ ইঞ্চি দুর থেকে দেখলে একই রকম অনুভুতি হবে।

 

বিঃদ্রঃ ফটোজিজ্ঞাসা সিরিজটি গ্রাসহপার্স ফটোগ্রাফি কম্যুনিটি থেকে বিভিন্ন আলোচনা / মন্তব্যের একটি কালেকশন

 

Travel Photography Exhibition 2014 by Berai Bangladesh

Travel Photography Exhibition 2014 started from January 2014 hosted by Berai Bangladesh. One of my photo had been selected for this exhibition. I was excited! This exhibition closed on 27 January. Berai Bangladesh declared 1st , 2nd and 3rd prize on this day.

Check out some photos from this event,

একতারা

This photo of mine was selected for this Exhibition

 

Video Download Helper Mozilla Add-On

Do you want to download any kind of video from your player? or, you want to download video from webpages? You can simply use Video DownloadHelper as add-on by mig on Mozilla Firefox. This Add-On is specially for Ubuntu users as they don’t have any pre-installed download manager and still now their is no good Download manager for Ubuntu distributions.

Video DownloadHelper

For instance, if you go to a YouTube page, you’ll be able to download the video directly on your file system. It also works with MySpace, Google videos, DailyMotion, Porkolt, iFilm, DreamHost and others.

Make Ubuntu & Windows Bootable USB Stick

Today I will show you the way of making your USB bootable.  I will tell for both Windows & Linux (Ubuntu). Lets go for it.

Ubuntu Bootable USB from Windows OS :

1. Download Universal-USB-Installer from here .

2. Download Ubuntu ISO from here .

3. Insert your pendrive (Min. 8 GB space) to USB port.

4. Open Universal-USB-Installer then click on I Agree -> Select Linux Distribution version browse and select your ISO file -> Select your USB drive. click on Create. it will complete within 10min (Approximate).

 

Create Ubuntu Bootable USB from Ubuntu :

1. Insert a USB stick with at least 2GB of free space.

2. Open the dash and search for Startup Disk Creator & open it.

3. Click ‘Other’ to choose the downloaded ISO file.

4. Select the file and click ‘Open’.

5. Select the USB stick in the bottom box and click ‘Make Startup Disk’.

That’s it! When the process completes, you’ll be ready to restart your computer and begin installing Ubuntu.

 

Windows Bootable USB from Windows OS :

1. Download Windows7-USB-DVD-tool from here and install it.

2. Download your Windows ISO from Microsoft Store or collect from CD.

3. Open Windows7-USB-DVD-tool select your ISO file -> select your USB drive click on start. it will complete within 10min (Approximate).

 

Create Windows Bootable USB from Ubuntu :

1. Install gparted. Open your terminal and run the code below.

sudo apt-get install gparted

2. To be able to format a drive to NTFS, you’ll also need ntfs-3g – install it using the following command

sudo apt-get install ntfs-3g

3. Open GParted Partition Editor from dash menu. Then select your USB drive from the top right drop-down. Now right click your USB drive in GParted and select “Unmount” and you’ll then be able to select Partition > Format > ntfs. The drive will be formatted to NTFS in a few seconds.

4. Download UNetbootin From here Install it & open it from dash menu.

5. select your Distribution, Version, Select USB drive, select the ISO image file. click on OK. it will complete within 10min (Approximate).