আপনি কোন ভাষাগুলি কোন প্রোগ্রামারকে শিখার জন্য পরামর্শ দিবেন তা নয়, কারণ তারা ভাষার প্রচুর ব্যবহার করবে (তবে তাদের থাকতে পারে), তবে এটি সাধারণভাবে কারও প্রোগ্রামিং দক্ষতা উন্নত করবে এবং একজনকে আলাদাভাবে ভাবতে দেবে (এবং সম্ভবত আরও ভাল) ) উপায়?
আপনি কোন ভাষাগুলি কোন প্রোগ্রামারকে শিখার জন্য পরামর্শ দিবেন তা নয়, কারণ তারা ভাষার প্রচুর ব্যবহার করবে (তবে তাদের থাকতে পারে), তবে এটি সাধারণভাবে কারও প্রোগ্রামিং দক্ষতা উন্নত করবে এবং একজনকে আলাদাভাবে ভাবতে দেবে (এবং সম্ভবত আরও ভাল) ) উপায়?
উত্তর:
"সাধারণ" প্রোগ্রামিং এবং অ্যালগরিদমের জন্য:
চিন্তাভাবনা পরিবর্তনের অভিজ্ঞতার জন্য:
আপনার মনকে ধ্বংস করার জন্য এবং পাদওয়ান এবং জেডি মাস্টারের মধ্যে লাইনটি অতিক্রম করার জন্য:
জাভাস্ক্রিপ্ট ভুলে যাবেন না ।
এটিতে ওও বৈশিষ্ট্য রয়েছে যা আপনার সাধারণ ওও বৈশিষ্ট্য নয়। এটি উচ্চ-অর্ডার ফাংশন এবং বন্ধের জন্য ভাল উপযুক্ত এবং আপনি নিয়মিত এগুলি ব্যবহার করেন। এটি অনেকগুলি কার্যকরী প্রোগ্রামিং ট্রিকগুলির অনুমতি দেয়। এটি অত্যন্ত নমনীয়।
এবং এটি ব্যবহারিক, কারণ প্রতিটি গুরুতর ব্রাউজারের এটি থাকে।
(অবশ্যই এটিতে বেশ কয়েকটি অপ্রীতিকর কিরক রয়েছে w
একটি কম্পিউটার কীভাবে কাজ করে তার জন্য সি এবং সমাবেশ
Haskell, এবং পাতার মর্মর উভয় কার্মিক প্রোগ্রামিং এবং metaprogramming জন্য
ভেক্টর এবং টর্স প্রোগ্রামিংয়ের জন্য এপিএল
প্রোগ্রাম বা পদ্ধতিতে কম্পিউটার পরিচালনা করতে কীভাবে বাশ বা tcsh
আমি স্কিম পরামর্শ দেব।
এটি লিস্প থেকে প্রাপ্ত একটি কার্যকরী প্রোগ্রামিং ভাষা (বেশিরভাগই আসলে এটি একটি উপভাষা বলে মনে হয়)। কমন লিস্পের সাথে মূল পার্থক্যটি হ'ল, এর পদ্ধতির বিষয়টি খুব সংক্ষিপ্ত - অত্যন্ত তাই। উদাহরণস্বরূপ, স্কিমের কোনও সাধারণ বিতরণে (কোনও স্কিম <আর 5, বা এমআইটি / জিএনইউ / স্কিম) আপনি একটি লুপ বাস্তবায়ন পাবেন না: আপনাকে লেজ পুনরুক্তি ব্যবহার করে আপনার নিজের তৈরি করতে হবে।
এটি সত্যই সংবেদনশীল এবং এর বাক্য গঠনটি প্রোগ্রামিং সম্পর্কে নতুন কিছু শিখতে দুর্দান্ত, যেমন: কোডটি দেখে, আপনি সংকলক / দোভাষা কীভাবে এটি কাজ করবে তা সম্পর্কে একটি ধারণা পাবেন।
এছাড়াও এটি এমআইটির ওয়েবসাইটে নিখরচায় ডাউনলোডযোগ্য কম্পিউটার প্রোগ্রামগুলির স্ট্রাকচার এবং ব্যাখ্যার এভারের সেরা প্রোগ্রামিং বইয়ের সাথে আসে ।
এখানে এমন কয়েকটি ভিডিও পাঠ দেওয়া আছে যা আমি আশা করি, অবিলম্বে আপনাকে এই আকর্ষণীয় ভাষায় আগ্রহী করে তুলবে - বক্তারা এসআইসপির লেখক হলেন: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman- বক্তৃতা /
এলএএসপি, আবেলসন অ্যান্ড সুসমানের "কম্পিউটার প্রোগ্রামগুলির স্ট্রাকচার এবং ইন্টারপ্রিটেশন" এর সংমিশ্রণে স্কীম, আপনাকে সি / সি ++ দ্বারা আরোপিত ব্যতীত অন্য পদগুলিতে ভাবতে শেখাবে।
ফোর্থ, বিশেষত একটি ব্লক-ওরিয়েন্টেড ফোরথ, কোনও ফাইল-ওরিয়েন্টেড নয় (যেমন ডি 85) আপনাকে আপনার লক্কিয়াসিটি রোধ করতে শেখাবে। আপনি যখন কোনও পরিস্থিতিতে 64৪ টি অক্ষরের ১ lines লাইনের চেয়ে বেশি রুটিন লিখতে পারবেন না, আপনি বিমূর্ত এবং ফ্যাক্টর করতে বাধ্য হবেন।
জাভা বিশ্বব্যাপী বিশ্ববিদ্যালয়গুলিতে সর্বাধিক শেখানো একটি ভাষা এবং এর কারণ রয়েছে। যদিও এটি প্রায়শই ডাইনোসর-জাতীয়, তবু এটি প্রত্যেককে আধুনিক প্রোগ্রামিংয়ের ধারণাগুলির একটি খুব ভাল ওভারভিউ দেয়। এটি আপনাকে দেখায় না যে কম্পিউটার কীভাবে এসেম্বলারের মতো বা ইতিমধ্যে অনেক বেশি বিমূর্ত ভাষা সি'র মতো কাজ করে কিন্তু পাইলটগুলিকে উড়তে সক্ষম হতে হবে এবং নিজেরাই বিমান তৈরি করতে সক্ষম হতে হবে না - যেতে শিখুন জাভা যে কোনও কোডের জন্য ভাল বেস হিসাবে আপনি আজকাল (রজনের জন্য) সর্বাধিক প্রচলিত ভাষায় লিখবেন: জাভা, সি ++, পিএইচপি, সি #, রুবি (রেলের উপরে) পাইথন এবং আরও কিছু ...
সর্বোচ্চ
লিনিকিউ সহ সি # 3।
এটি কার্যকরী প্রোগ্রামিংয়ের দুর্দান্ত ভূমিকা।
একটি প্রোগ্রাম লেখার চেষ্টা করুন (বা প্রজেক্ট অলারের সমাধান করা) এবং লিনকিউ কলগুলির সাথে যতটা সম্ভব লুপগুলি প্রতিস্থাপন করুন।
এটি একজনকে কার্যকরী প্রোগ্রামিং এবং অলস মূল্যায়নের ধারণাগুলি আয়ত্ত করতে সহায়তা করে।
সেখান থেকে, কেউ এফ # তে যেতে পারেন
হাত নীচে, আমি হাস্কেল বলব। এবং দুটি কারণে:
যদি কেউ সি / জাভা বিশ্ব থেকে আসে তবে আমি স্কালাকে পরামর্শ দেব।
এটি নিখুঁতভাবে কার্যকরী প্রোগ্রামিং ভাষা নয়, তবে এটি কয়েকটি কার্যকরী প্রোগ্রামিং বৈশিষ্ট্যগুলি অনুকরণ করতে ওও ব্যবহার করে (উদা। প্রথম শ্রেণীর ফাংশন এবং উচ্চ আদেশ ক্রিয়াকলাপ অনুকরণ করার জন্য অবজেক্টটি ব্যবহার করে)।
সুতরাং আপনি যদি ওওর সাথে পরিচিত হন, স্কালা কার্যকর পদক্ষেপের বিশদটি ব্যাখ্যা করতে আপনি ইতিমধ্যে জানেন এমন পদ ব্যবহার করে।
আমি পেয়েছি যে স্ক্যালে ফাংশনাল প্রোগ্রামিং বুঝতে আমার পক্ষে হাস্কেল, তালিকা ... ইত্যাদির মতো আরও কার্যকরী প্রোগ্রামিংয়ের পরিবর্তে ডুব না দেওয়া আরও সহজ।
কার্যকরী ভাষাগুলি হ'ল যেগুলি আমি আজ যেখানে আছি সেখানে আমাকে নিয়ে আসতে সহায়তা করেছে feel যদিও আমি ওয়েব অ্যাপ্লিকেশন বিকাশে আছি তবুও কার্যকরী ভাষা থেকে শিখে নেওয়া ধারণাগুলি আমাকে অন্য সমস্যার মুখোমুখি না হয়ে সমস্যার সমাধান দেখতে সহায়তা করে। আমি আমার বিশ্ববিদ্যালয়ে যে ভাষাগুলির সাথে কাজ করেছি তা এখানে রয়েছে:
এই ভাষাগুলি শেখা আপনাকে বিমূর্ততার বিশ্ব বুঝতে এবং কীভাবে ব্লকের কোডগুলি কীভাবে তৈরি করতে পারে যা অন্যান্য কার্যকারিতা সংযুক্ত করে, নিম্ন স্তরের বিশদটি গোপন করে যাতে আপনি উচ্চ-স্তরের ব্যবসায়ের লক্ষ্যগুলিতে ফোকাস করতে পারেন।
বেশ কয়েকটি প্রোগ্রামিং ল্যাঙ্গুয়েজের প্রয়োজন রয়েছে যেগুলি একটি নতুন উপায়ে সমস্যার বিষয়ে আপনার চিন্তাভাবনা করা দরকার (আপনি অবশ্যই যা ব্যবহার করেন তার সাথে তুলনামূলকভাবে।) শেখার জন্য সর্বাধিক সাধারণ ভাষাগুলি একটি অপরিহার্য ভাষা শেখানো হয়েছে, এটি একটি কার্যকরী এবং একটি যৌক্তিক ভাষা, উদাহরণস্বরূপ prolog এবং lisp ।
কিছু ভাষা ওকেমল এবং হাস্কেলের মতো বিভাগের তত্ত্ব দ্বারা প্রচুর প্রভাবিত হয় এবং কিছুগুলি কারি (ক্রিয়ামূলক এবং যৌক্তিক) এর মতো ক্রস জাতের ভাষা । কারি সম্ভবত আমি সবচেয়ে মাতৃভাষার ভাষা জানি যা আমি জানি, কারণ এটি হাসিকেলের সমস্ত মনকে যৌক্তিক প্রোগ্রামিংয়ের সাথে ফুঁকিয়েছে তা নয়, তবে বাধা ভিত্তিক প্রোগ্রামিংয়ের সাথে একীকরণের কারণেও।
আর একটি মজাদার ভাষা হল ওসাম-পি, যেহেতু এটি একত্রে খুব ভারী, তবে সাম্প্রতিক আরডুইনো বন্দরের কারণেও ।
একটি ভাল বৃত্তাকার প্রোগ্রামার তার ব্যাগগুলি বেশ কয়েকটি ব্যাগ রাখে এবং এর মধ্যে রয়েছে:
এগুলি আপনাকে সমস্যাগুলি সম্পর্কে চিন্তাভাবনা করার এবং যোগাযোগের জন্য কিছুটা আলাদা উপায় শেখায় ।
আপনি কোনও স্পষ্ট লক্ষ্য ব্যতীত কোনও প্রোগ্রামিং ভাষা সঠিকভাবে শিখতে পারবেন না। আপনি এটি দিয়ে কী করতে চান তা জেনে, তারপরে আপনি কোন প্রোগ্রামটি আপনার প্রয়োজন অনুসারে ঠিক করতে পারেন।
উদাহরণস্বরূপ, আসুন সি # সম্পর্কে বলি।
সি # ওয়েব প্রোগ্রাম, কনসোল প্রোগ্রাম, একা এক্সিকিউটেবল, গেমিং প্রোগ্রাম, সিলভারলাইট প্রোগ্রাম এবং মোবাইল প্রোগ্রাম করতে পারে। যদিও সিনট্যাক্স প্রায় প্রতিটি ক্ষেত্রে সমান তবে এটি প্রতিটি দৃশ্যে আলাদাভাবে কাজ করে। উদাহরণস্বরূপ, কোনও স্ট্যান্ড এক্সিকিউটেবল এটি তথ্য লোড না হওয়া বা প্রোগ্রাম শেষ না হওয়া পর্যন্ত তাদের তথ্য রাখে, যখন একটি ওয়েব প্রোগ্রাম, আপনি কোনও পৃষ্ঠা লোড করার সময় তথ্যটি নষ্ট হয়ে যায় এবং সিলভারলাইটে আপনি বেশিরভাগ সময় ব্যয় করবেন, যার সাথে লড়াই করে আপনি লড়াই করছেন able একটি এক্সএমএল ফাইল।
এবং দ্বিতীয়ত, বিদেশী ভাষাগুলি (উদাহরণস্বরূপ হাস্কেল), কর্পোরেট বক্তৃতা সহ আপনার সময় ব্যয় করবেন না, আপনার প্রচেষ্টার পক্ষে খুব কম প্রোগ্রাম রয়েছে: জাভা (পাহাড়ের রাজা), সি # / ভিবি নেট, পিএইচপি এবং এসকিএল।
প্রসেসিং নামক জাভা অ্যাপলেটগুলি লেখার জন্য একটি খুব সাধারণ প্রোগ্রাম রয়েছে
এই ভাষা আপনাকে ভেরিয়েবলগুলি, লুপগুলি এবং সেই ধরণের জিনিসগুলির খুব প্রাথমিক বোঝাপড়া দেবে, যদি আপনি সবে শুরু করেন।
কিছু দুর্দান্ত পরামর্শ এখানে। আমি সম্ভবত ব্যক্তিগতভাবে সি বা সি ++ এর সাথে যেতে চাই। তারা আপনাকে প্রচুর ধারণা নিয়ে কাজ করতে বাধ্য করে যা বিষয়গুলি কীভাবে কাজ করে তা বোঝার ক্ষেত্রে, তবে এটি অন্যান্য ভাষায় অবিচ্ছিন্ন হয়ে পড়ে। কীভাবে জিনিসগুলি সত্যই কাজ করছে তা বুঝতে আপনাকে প্রোগ্রামার হিসাবে আপনাকে সাহায্য করতে চলেছে এমনকি আপনি যে ভাষাটি পরে ব্যবহার করছেন সেটির কিছু বিবরণ গোপন করে।
অ্যাসেম্বলিটি মজাদার তবে আপনি যদি কিছুটা নিচের স্তরেও খনন করতে চান তবে এটির মাধ্যমে, তবে এটি দিয়ে আপনি অনেক কিছু করার আশা করবেন না। :)
আমি রুবিকে সুপারিশ করব। রুবি আপনার দৃষ্টান্ত পরিবর্তন করার দাবি রাখে না, তবে এটি আপনাকে একাধিক দৃষ্টান্তে কাজ করতে উত্সাহ দেয়। আমি মনে করি যে এর সুবিধাটি হ'ল আপনি যেভাবে অভ্যস্ত সেভাবে কাজ করতে না পেরে হতাশ হওয়ার পরিবর্তে, আপনি যেভাবে অভ্যস্ত হন সেভাবে কাজ করার সীমাবদ্ধতা নিয়ে হতাশার বাইরে আপনি একটি আলাদা দৃষ্টান্ত ব্যবহার করেন।