Showing posts with label Java developers. Show all posts
Showing posts with label Java developers. Show all posts

Sunday, October 23, 2016

5 Mistakes Java developer makes that prevent them from growing their careers

ব্রুনো সোজা (Bruno Souza) জাভা ডেভেলপারদের ক্যারিয়ার উন্নতির লক্ষ্যে একটি নতুন সাইট তৈরি করেছে। গতকাল তার একটি ওয়েবইনার ছিল। এর টপিকটি হলো- একজন জাভা প্রোগ্রামার তার ক্যারিয়ার উন্নতির ক্ষেত্রে যে ৫ টি ভুল করে থাকে তার উপর। 

ওয়েবইনারটির লিংক: https://www.youtube.com/watch?v=pFbMYZUUT8Q


তবে এটিকে আমি বাংলাতে সংক্ষেপে বলার চেষ্টা করবো। তিনি শেষ থেকে শুরু করেছেন । এখানেও সেভাবেই লিখছি - 

পঞ্চমত, শুধুমাত্র টেকনোলজি জানলেই চলবে। 

ডেভেলপারা নিজেদের সময়ের সাথে নিজেদের নৈপুণ্য ধরে রাখতে এবং তা উত্তরোত্তর উন্নত করতে অনেক কাজ করে থাকে, প্রতিনিয়ত নতুন কিছু দেখে এবং শেখে। তবে একজন ভাল ডেভেলপার হওয়ার জন্যে এগুলোই একমাত্র বিষয় নয়। টেকনোলজি শেখার বাইরেও অনেক কিছু করতে হয়। যে জিনিসগুলো একজনের ক্যারিয়ারে সবচেয়ে বেশি প্রভাবিত করে তা শুধুমাত্র টেকনোলজি নয়। সফটওয়্যার কোম্পানিগুলোতে হায়ারিংগুলো সাধারণত পরিচিত নেটওয়ার্কের মধ্যে থেকেই বেশির ভাগ ক্ষেত্রে হয়ে থাকে। যাদের ইতিমধ্যে হায়ার করা হয়েছে তাদের পরিচিত রেফারেন্সের উপর ভিত্তি করে অনেক হায়ার হয়ে থাকে। এ জন্যে অনেক ভাল ভাল জবগুলো সাধারণত সহজে খুঁজে পাওয়া যায় না। সফটওয়্যার ফার্মগুলোর জব নোটিশগুলো সাধারণত তখনি প্রকাশ্যে পাওয়া যায় যখন তারা তাদের পছন্দমত লোক খুঁজে পায়নি নিজেদের নেটওয়ার্কের মাঝে। এক্ষেত্রে আপনি যদি দ্রুত হায়ার্ড হতে চান, তাহলে নিজেকে পরিচিত করে তুলতে হবে। আপনি যে জাভাতে এক্সপার্ট এই তথ্যটি যারা হায়ার করছে তাদের জানাতে হবে। তারা আপনাকে হায়ার করছে না কারণ আপনি হয়তো কখনো ইন্টারেস্ট দেখান নি। আপনাকে ভিজিবল হতে হবে। বিভিন্ন সোসাল কর্মকাণ্ডের সাথে নিজেকে জড়াতে হবে। জাগবিডির (http://www.jugbd.org) ইভেন্টগুলোতে যোগ দিতে পারেন। কোন ওপেন-সোর্স টেকনোলজিতে অংশগ্রহণ করতে পারেন। নিজে নিজে একটা সফটওয়্যার বা এপিআই লিখে সেগুলো শেয়ার করতে পারেন। কারণ আপনি নিজেও হয়তো জানেন না কতরকম অপরচুনিটি আসতে পারে। কেও হয়তো নতুন স্টার্টআপ দিতে পারে যেখানে আপনার মতো একজন ডেভলপারের প্রয়োজন হতে পারে। ইত্যাদি। 

চতুর্থত, অনেক বেশি অনুশীলন বা চর্চা না করা 

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

তৃতীয়ত, আপনি যা জানেন তা অন্যদের সাথে শেয়ার না করা 

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

আরেকটি কঠিন সত্য ব্যপার হলো, মানুষ আসলে আপনাকে খুব একটা কেয়ার করে না। আপনি আসলে তাদের জন্যে কি করতে সেটাই মুখ্য। সুতরাং আপনি যত বেশি শেয়ার করবেন, আপনি অন্যের জন্যে ততবেশি প্রয়োজনীয় হয়ে উঠবেন। 

দ্বিতীয়ত, ফোকাস 


আপনি নিজে দুনিয়ার সব মানুষকে অ্যাকসসে করতে পারবেন না বা সবার সঙ্গে সবকিছু শেয়ার করতে পারবেন না। আপনাকে একটি নির্দিষ্ট বিষয়ে ফোকাস করতে হবে। 

এক্ষেত্রে একটি স্পেসিফিক একটি লাইন ফলো করা যেতে পারে- 

I help (a person) to do (something) so he/she can have (something) 

Example - 

I help my coworker to learn Java so he/she can program in Java 

I help professional java developers do solve hard Java problems so they can have a secure and satisfying job or project


প্রথমত, সব কিছু নিজে করা

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


অনেকভাবেই টিমআপ করতে পারেন। একটি চমৎকার আইডিয়া হতে পারে জাভা ইউজার গ্রুপে জয়েন করা। অন্যের কোন ওপেন-সোর্স প্রজেক্টের সাথে জয়েন করতে পারেন।

Saturday, March 31, 2012

ভবিষ্যৎ জাভা ডেভলপারদের স্বাধীনতা

তোমরা কি জানো ব্রাজিলে সবচেয়ে জনপ্রিয় টেকনোলজি হচ্ছে জাভা, হয়তো অনেকেই জেনে থাকবে, না জানলেও সমস্যা নেই, এখন জেনে নাও। আজকে একজন ব্রাজিলিয়ান এর সাথে পরিচয় করিয়ে দেবো যার নাম হচ্ছে ব্রুনো সোজা। তাকে সাধারণত জাভা-মানব বলে ডাকা হয়। এই জাভা-মানব সত্যিকার অর্থেই জাভা-মানব। তার সব কাজ জাভা নিয়ে। তিনি সুজাভা (SouJava-Java Technology Users Society) এর প্রতিষ্ঠাতা। তাকে নিয়ে গুগল করলেই অনেক কিছু জানতে পারবে। আমি নিচে তার ব্লগ লিংক এবং টুইটার আইডি দিয়ে দেবো, তোমরা ইচ্ছে করলে তাকে ফলো করতে পারো। যাহোক কিছুদিন আগে ভবিষ্যৎ জাভা ডেভেলপার নিয়ে একটি প্রজেন্টেশান দিয়েছেন। তার একটা ইন্টারভিও আমি পড়লাম। সেখানে তিনি ভবিষ্যৎ জাভা ডেপলপার দের কিছু স্বাধীনতার কথা বলেছেন। আমার আজকের নোটটি হবে সেগুলো নিয়ে। তোমাদের যদি সেগুলো ভাল লাগে, তাহলে নিজেকে জাভা ডেভেলপার হিসেবে তৈরি করতে পারো।

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

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

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

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

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

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

শেষ করা যাক এখন। বলে রাখি আমি জাভা ফ্যানাটিক। আমি আমার অন্তর থেকে বিশ্বাস করি যে যদি একবার জাভার ভেতরে প্রবেশ করে, তাহলে তার কাছে আর কোন টেকনলিজই ভাল লাগবে না আর যদি সে অন্য কোন মন্তব্য করে তাহলে বুঝতে হবে তার গভীরতা খুব বেশি ছিল না। আরেকটি জিনিস জেনে হয়তো তোমাদের ভাল লাগবে যে পৃথিবীতে 15 বিলিয়ন (15,000,000,000) ডিভাইসে এ জাভা রান হয়। নিজেকে জাভা ডেভেলপার হিসেবে গড়ে তোলা ক্ষেত্রে তুমি উপরের স্বাধীনতার কথা গুলো চিন্তা করতে পারো।

Bruno Ferreira de Souza
twitter: @brjavaman