কেন আমি PHP ডেভলপার হিসেবে এই সময়ে C# .Net শেখা শুরু করেছি

আমার ক্যারিয়ারের শুরু থেকেই আমি ইন্টার্প্রেটেড ল্যাংগুয়েজ নিয়ে কাজ করছি। আমি পুরো সময়টায় (৯৫% সময়) ওয়ব ভিত্তিক এ্যাপ্লিকেশনে কাজ করেছি। আরেক ভাবে বলতে গেলে আমি সিংহভাগ সময় PHP নিয়ে কাজ করেছি। কিছু টুকিটাকি কাজ Go’তে এবং TypeScript দিয়ে করেছি। এই দুটো আমি কাজ চালানোর মতো জানি, খুব প্রোফেশনাল এমন না, তো কাজ চালিয়ে নিতে পারি আরকি।

Go বেশ ভালো এবং খুব ছোট একটা ল্যাংগুয়েজ, তবে আমি OOP ঘরনার মানুষ হবার কারনে Functional paradigm এর ল্যাংগুয়েজে আমাকে খুব একটা টানে না, অর্থাৎ মজা পাইনা। অন্যদিকে JavaScript এর দুনিয়ায় প্রোগ্রামিং এর থেকে টুলিং অনেক বেশি হবার কারনে আমার কাছে সব ওলটপালট লাগে। আর JS এর দুনিয়ায় সব এতো ফাস্টার পরিবর্তন হয় যে আমি তার সাথে তাল মিলিয়ে চলতে পারি না(আমি আসলে স্লো‌)। TypeScript OOP হলেও আমি এখানে OOP এর পূর্ন স্বাদ নিতে পারিনি। আমার কাছে অনেক কিছুর লিমিটেশন মনে হয়েছে(এটা আমার জ্ঞানের সীমাবদ্ধতাও হতে পারে)।

আপনারা অনেকেই জানানেন আমি PHP, Laravel এর মানুষ অর্থাৎ এটা আমার প্রাইমারী স্ট্যাক। আমি এটিকে এখনও ভালোবাসি এবং এটা আমার প্রতিষ্ঠানেরও প্রাইমারী টেক স্ট্যাক। এখন আমি চাচ্ছি একটা সেকেন্ডারী টেকস্ট্যাক এডপ্ট করতে। কিন্তু সেটা কোনটা করবো সেটাই একটা বিশাল প্রশ্ন হয়ে দাঁড়িয়েছে, Go, Rust, Python, NodeJS, Java এর দুনিয়ায় এই সিদ্ধান্তটা নেয়া খুবই কঠিন। তাই আমার কাছে জাস্ট কয়েকটা প্রশ্ন ছিলো, আমি সেগুলোর উত্তর খুজতে ছিলাম,

১। আমার এমন একটা ল্যাঙ্গুয়েজ লাগবে যেটা পুর্নাঙ্গ OOP.
২। ল্যাঙ্গুয়েজটাতে মডার্ন OOP এবং Developer Experience এর সকল কিছু বিদ্যমান থাকবে।
৩। এর পারফরম্যান্স হবে Go এর কাছাকাছি।
৪। এটি হবে ক্রস প্লাটফর্ম এবং ওপেনসোর্স।
৫। ল্যাঙ্গুয়েজটি হবে কম্পাইল্ড।
৬। এর থাকবে একটিভ ও বিশাল কমিউনিটি।
৭। একে বড় কোনো কোম্পানী ব্যাকড করবে।
৮। ল্যাগুয়েজটা যেন কো-রুটিন, মাল্টিথ্রেডিং সমর্থন করে।
৯। এর সিনট্যাক্স PHP এর কাছাকাছি হলে ভালো হয়।
১০। এবং ফাইনালি এটি দিয়ে ওয়েব এবং ডেস্কটপ দুটো প্লাটফর্মেই কাজ যেন করা যায়।

এই প্রশ্নগুলো দিয়ে ফিল্টার করে আমার কাছে তিনটি ল্যাঙগুয়েজ এসেছে

১। Java
২। Kotlin
৩। C#

উপরের তিনটি ল্যাঙগুয়েজই চমৎকার, তিনটাই অসাধারন এতে কোনো সন্দেহ নাই। তবে আমি যা কন্সিডার করেছি,

১। সিন্ট্যাক্সগত ভাবে C# হচ্ছে PHP এর কাছাকাছি :smiley:
২। CLR কম্পারটেভলি JVM এর তুলনায় ভালো(আমি যতটুকু রিসার্চ করে পেয়েছি)
৩। রিসেন্ট সময়ে C# বেশ ভালো কিছু পরিবর্তন নিয়ে এসেছে এবং .Net অনেক অপ্টিমাইজ করা হয়েছে ফলে Java এর সাথে তুলনা করলে C# এর পারফরম্যান্স ভালো বলা যায়।
৪। ডট নেট বেশ স্ট্রেইট ফরওয়ার্ড, আমার কাছে Java এর তুলনায় শেখাটা সহজ মনে হচ্ছে।
৫। যেহেতু আমি ওয়েব নিয়ে কাজ করি C# এখন ওয়েবে চমৎকার কাজ করে, API, Microservice, Full-stack সবকিছুই দারুন কাজ করে এখানে।
৬। C# গেম ডেভলপমেন্টের জন্যও দারুন, বিশেষ করে Unity এর সাথে।
৭। পুরো উইন্ডোজ ইকোসিস্টেম .Net এর উপরে দাড়ানো।
৮। এমন কিছু নাই যা এই ইকোসিস্টেমে পাবেনা না, Web, API, Mobile App(Android, iOS), Desktop App(Windows, MacOS, Linux), Game Development, Microservice, Serverless(Lambda), Machine Learning and AI আরও অনেক কিছু। এই সবগুলোতে ওরা টপনচ সাপোর্ট দেয়, জাস্ট করা যায় এমন না, প্রোডাকশন গ্রেডের কাজ করা যায়।
৯। এটার ব্যাক করছে Microsoft এর মতো একটা জায়ান্ট কোম্পানী, আপনি ভালোবাসেন কিংবা না, কিন্তু মাইক্রোসফটের টেক দুনিয়ায় অবদান অস্বীকার করা যাবে না। রিসেন্ট সময়ে মাইক্রোসফটের মুভমেন্টগুলো দেখলে আপনিও একেবারে অবাক হবেন।
১০। .Net হচ্ছে কমপ্লিট একটা ইকোসিস্টেম, আপনাকে এর বাহিরে সারাজীবনেও যাবার প্রয়োজন পরবে না।

আমি সিদ্ধান্ত নিয়েছি C# .Net নিয়ে পরাশুনা করার এবং এটিকে আমার সেকেন্ডারী স্ট্যাক হিসেবে গ্রহন করার(আপাতত)। আমি আমার কোম্পানীতেও C# এডাপশনের জন্য প্রায়োরিটি দিচ্ছি, যেহেতু আমরা সার্ভিসে ফোকাজড তাই আমাদের অনেক এন্টার্প্রাইজ এ্যাপ্লিকেশনের প্রোপোজার আসে। তাছাড়া রিসেন্ট সময়ে C# বেশ ভালো করছে বিশেষ করে যারা *nix ভিত্তিক OS নিয়ে কাজ করছেন তাদের জন্য Microsoft প্রতিদিন নতুন নতুন ফিচার নিয়ে আসছে।

তাই আপনারাও যারা প্রোগ্রামিং’য়ে যাত্রা শুরু করবেন ভাবছেন কিংবা সেকেন্ডারী টেক স্ট্যাক নিয়ে কাজ করবেন তারা C# কে কন্সিডার করতে পারেন। ইনশা’আল্লাহ একদিন আমাকে ধন্যবাদ দিবেন :slight_smile:

34 Likes

Thank you for sharing.

1 Like

আমার প্রাইমারি C# .Net, JavaScript মোটামুটি পারি। সেকেন্ডারী হিসেবে কি শেখা উচিত?

যদি OOP paradigm নিয়েই কাজ করতে চান তাহলে বলবো PHP শিখতে, এটার কোড সি স্টাইলের তাই আপনার জন্য লার্নিং কার্ভ সহজ। আর যদি Functional Paradigm নিয়ে কাজ করতে চান তাহলে Go শিখতে পারেন :slight_smile:

2 Likes

If you are available. Can you please suggest some of best resource to learn ASP.net core.

হ্যালো ভাইয়া, কোনো কিছু “মোটামুটি পারি” এইটা বলা এ্যাভোয়েড করবেন। মানে, কোনো কিছু এমন ভাবে শিখেন যেন একটা MVP লেভেরে কিছু দাঁড় করাতে পারেন, ধন্যবাদ।

Hello, you can follow this tutorial Learn ASP.NET Core MVC (.NET 6) - Full Course

I know the LTS is version 8 but in .NET(Core) there aren’t too many changes or deprecated they mainly focus on adopting new features. so, you can start with this version. it is very beginner friendly. learning C# is must for long run if you focus on .NET.

the beauty of .NET (ASP .NET, .NET Framework 4.x, ASP .NET Core 2.1x - 3.x) is that it provides everything like learn one(C#) and do many things, working in .NET sometimes need to use raw C# but not that much, like type casting. because of its polished. Globally many ERPs and also where need heavy computing power backend system run on .NET and many legacy systems are built with .NET and Spring Boot (Java).

I respect all languages as tools due to their community contributions. You can check benchmark on TechEmpower .NET consistently ranks among the top 100 and has maintained a spot in the top 3-4 over the past few years. Here is the live link.
Source: official ASP.NET site
Image: visit official ASP .NET (just remove space)

Long story short, you can start with any beginner-friendly videos and on .NET Framework 4.x (it’s deprecated and not cross-platform). For modern development, ASP .NET Core 3.x (also deprecated but all are same) and .NET 6+ are cross-platform. Thank you! Happy learning.

And one thing, I’m not a diehard C# fan. I’ve worked with C# before, but now I’ve switched.

N.B. Sorry for the spacing issue between ‘ASP .NET’ can’t post with two links.

2 Likes

Thanks for the details bhai, It’ll help me a lot to learn C# .NET. I would love to get help from you if you allow it.

1 Like

In Shaa Allah, and thank you too for raising an underrated language to the community.

1 Like