এটা একটা ধারাবাহিক পোস্টঃ প্রথম পর্
আমরা এই পোস্টটি তাদের জন্য যারা নিজেদেরকে Software Engineer দেখতে চাও কিন্তু বুঝতে পারছনা কি শিখতে হবে, কোন Programming Language এর চাহিদা বেশি ……? আমরা ব্যাক্তিগত অভিজ্ঞতা থেকে বলছি আমরা অনেকে কি শিখব, কোনটার চাহিদা বেশি সেটা নিয়ে চিন্তা করে সময় পার করি (আমার যেটা হয়ছে )। বর্তমানে কি শেখা দরকার বা কি কি বিকল্প আছে সে সম্পর্কে আমর মতামত এখানে তুলে ধরার চেষ্টা করব। (আমরা ব্যাক্তিগত মতামত যা একদম ঠিক নাও হতে পারে )
প্রথমে আসি ওয়েব ডেভেলপারদের জন্য কি শেখা উচিৎঃ
HTML(HyperText Markup Language):
কেউ যদি ওয়েব ডেভেলপারদের হতে চাই প্রথমে যেটা শেখা উচিৎ বলে আমি মনে করি সেটা HTML কাড়ন আমরা browser যা দেখি সেটা HTML, CSS ছাড়া আর কিছুনা। সুতরাং আমাদের আসল উদ্দেশ্য HTML বানান (সেটা হতে পারে static html বা html generated by programming language like PHP, Java, Python, Ruby…)। browser আসলে html, CSS ছাড়া কিছু দেখাতে পারেনা আর JavaScript ছাড়া কছু run করাতে পারেনা, বাকি সব Server Side programming language কাজ programmatically html generated করা সুতরাং আমদের অবশই ভালভাবে html জানতে হবে যেটা আমরা জানতে চাইনা (আমি মনে করতাম যারা programming ভাল করেনা /পারেনা তারা html শিখবে যেটা ছিল চরম ভুল বা আমি আসলে ভালভাবে জানতামইনা আসলে html কাজ )।
CSS:
অবশ্যই CSS(Cascading Style Sheets যেটা style sheet language) যা দিয়ে markup language( যেমন HTML) এই ডকুমেন্টকে সুন্দর করে সাজাতে পারব।
Server side programming language:
আমরা সচাইতে সমস্যায় পড়ি কোন Back end language শিখব সেটা নিয়ে। যেসব language Back end language হিসাবে অনেক বেশি ব্যবহৃত হয় তারা হল Java,C#,Python,Php,JavaScript,Ruby । এতগুলো option মাঝে আমরা কোনটা শিখব । প্রথমত আমদের অবশ্যই JavaScript শিখতে হবে সেটা আমি যাই করিনা কেন। কেউ যদি মনে করে আমি একটা language শিখব সেটা অবশ্যই JavaScript যা দিয়ে আমরা Font End, Back End both side কাজ করতে পারব। বর্তমানেJavaScript জানা programmer চাহিদা অনেক। আমরা JavaScript ব্যাবহার করে মোবাইল app ও বানাতে পারব( appcelerator, phonegap, ionicframework). আমি ব্যাক্তিগতভাবে Server side programming language কে দুই ভাগে ভাগ করতেচাই যাদের প্রতিটা ভাগ থেকে একটা করে language জানা উচিত।
Statically type Language:
যে সমস্ত language Statically type মানে এর টাইপ বলে দিতে হয় (ex: int x, string name…). বর্তমান সময়ে জনপ্রিয় Statically type Language মধ্যে অন্যতম হল ( Java, C#)। অবশ্যই এইখান থেকে আমদের যে কোন একটা ভাল করে জানতে হবে।
Java এর ওয়েব framework
C# এর ওয়েব framework:
Dynamic Language:
যে সমস্তlanguage dynamically type মানে এর টাইপ বলে দিতে হয় (ex: var x = 1, name = ‘sumon’ …)। বর্তমান সময়ে জনপ্রিয় dynamically type Language মধ্যে অন্যতম হল PHP, Python, Ruby, JavaScript, Grovvy। অবশ্যই এইখান থেকে যে কোন একটা ভাল করে জানতে হবে।
JavaScript এর ওয়েব framework:
বর্তমান সময়ে most popular technology [Node.js[(https://nodejs.org/en/)(JavaScript runtime), যা আমাদের JavaScript কে Server e run করার সুযোগ করে দিয়েছে। Node.js উপর নির্মিতJavaScript framework গুলোর মাঝে অন্যতম হল ExprssJs. বর্তমানেWeb development এ hot cake নামে পরিচিত MEAN stack যেগুলো হলঃ
PHP এর ওয়েব framework:
Ruby এর ওয়েব framework:
Python এর ওয়েব framework:
সহজ ও জনপ্রিয় Scripting language। (Most popular for scientific research)
Grovvy এর ওয়েব framework:
Grovvy হল JVM(Java Virtual Machine) এর নির্মিত Dynamic Language ।