প্রোগ্রাম শিখার সময় নিজেকে ভবিষ্যত-প্রমাণীকরণ [বন্ধ]


10

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

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


11
এরকম কোনও জিনিস নেই
জব

একটি ডেন তৈরি করুন এবং এটি বই দিয়ে পূরণ করুন।
এডওয়ার্ড স্ট্রেঞ্জ

4
একটি ডেন তৈরি করুন এবং এটি ক্যানড খাবারে পূর্ণ করুন। সর্বাধিক ভবিষ্যতের প্রুফ প্রোগ্রামার হলেন প্রোগ্রামার যিনি সর্বজনীনতার পরে জীবিত আছেন।
টম অ্যান্ডারসন

1
প্রোগ্রামিং ভাষা বা কোডিং শিখবেন না, তবে বেশিরভাগই প্রোগ্রামিং শিখুন এবং এতে বেশ কয়েক বছর , প্রায় দশটি সময় লাগে এবং আপনার পুরো জীবন শেখা চালিয়ে যাওয়া উচিত
বেসাইল স্টারিনকিভিচ

উত্তর:


31

আপনি যদি ভবিষ্যতের প্রমাণ হতে চান তবে আমি আপনাকে যে সর্বোত্তম পরামর্শ দিতে পারি তা নিজেকে কোনও প্রযুক্তিতে আবদ্ধ করা নয়।

সুতরাং অন্ধভাবে এপিআই শিখবেন না। তারা কীভাবে গর্ভধারণ করে তা শিখুন। পর্দার পিছনে দর্শন কি? তাদের সুবিধা এবং ত্রুটিগুলি কী কী? সাধারণভাবে সফ্টওয়্যারটি ভাবেন, কোনও নির্দিষ্ট প্রযুক্তি নয়।

আপনি ভাল প্রোগ্রাম ধারণায়ও কাজ করতে পারেন, ওওপি এবং এওপিতে যাওয়া একটি ভাল পছন্দ আইএমও। তবে কেবল প্রক্রিয়াটি বোঝেন না, প্রক্রিয়াটির পিছনে দর্শনে সত্যই কাজ করুন।

ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলির মতো সাধারণ কম্পিউটার বিজ্ঞানকে অবহেলা করবেন না কারণ তারা ক্রস প্রযুক্তির জ্ঞান যা সর্বদা দরকারী।

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

ডিবাগ করার কার্যকর কৌশলগুলি (লগ এবং ডিবাগারের স্মার্ট ব্যবহার) এবং পরীক্ষা (কীভাবে কোডটি লিখতে হবে যা ইউনিটটি সহজেই পরীক্ষিত হতে পারে এবং কীভাবে এই পরীক্ষাগুলি স্বয়ংক্রিয় করতে হয়) শিখুন।

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

শেষ পর্যন্ত, কীভাবে শিখতে হবে তা শিখুন। আপনি যদি শিখতে জানেন তবে আপনি খাপ খাইয়ে নিতে পারেন।

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

সম্পাদনা: আপনি যদি এখনই শুরু করছেন, আপনার অবশ্যই কিছু করা উচিত। যেকোনো কিছু. টেট্রিস বা সাপের মতো একটি খেলা একটি ভাল শুরু এবং মজাদার। যদি আপনি জিনিসগুলি সম্পন্ন না করেন তবে আপনি শেখার পক্ষে অনেক বেশি সময় ব্যয় করবেন এবং আপনি যা শিখেন তা পুরোপুরি বুঝতে প্রয়োজনীয় অভিজ্ঞতাটি পাবেন না।

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

তাই নিশ্চিতভাবেই, কাজগুলি করুন, সেগুলি আপনার ভুল থেকে শিখুন। আমি আরও জেদ করতে পারি না: জিনিসগুলি সম্পন্ন করুন !


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

শুরুর দিকের দৃষ্টিকোণ হিসাবে বিষয়গুলি পরিষ্কার করার জন্য একটি সম্পাদনা যুক্ত করা হয়েছে।
ডেড্যালনিক্স

4

ভাল প্রোগ্রামারগুলিকে খারাপ থেকে আলাদা করে তোলে তা হ'ল যে কোনও ভাষায় প্রোগ্রাম করার দক্ষতা। যেমন অন্যান্য পোস্টারগুলি উল্লেখ করেছে যে কোনও গুরুত্বপূর্ণ অবজেক্ট ওরিয়েন্টেড ভাষা জানা আপনাকে দুর্দান্ত প্রোগ্রামগুলি তৈরি করতে এবং চাহিদা অনুযায়ী করার সরঞ্জাম দেয় give

এছাড়াও আপনি যদি এখনও স্কুলে থাকেন তবে নিশ্চিত হয়ে নিন যে আপনি কিছু লেখার ক্লাস নিচ্ছেন। সেরা প্রকৌশলী এবং প্রোগ্রামাররা হ'ল তাদের ধারণাগুলি ভালভাবে যোগাযোগ করে।

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


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

4

@ ডেডালনিক্সের উত্তরটি ভাল। আমি এটিতে তিনটি জিনিস যুক্ত করব:

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

দুর্দান্ত সংযোজন!
ডেডালনিক্স

2

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

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

তবে এই মুহুর্তে নিজেকে খুব বেশি চাপ দেবেন না। প্রোগ্রাম শিখতে কয়েক বছর সময় লাগে। এই মুহুর্তের জন্য, কেবল জাভা বা সি # বা যে কোনও ভাষা বেছে নিন এবং এর জন্য যান। :)


আমি 'একটি বাছাই' পছন্দ করি এবং এর মনোভাবের জন্য যাই ... আমি সম্ভবত এটি গ্রহণ করব। হ্যাঁ বা না একটি নিম্ন স্তরের ভাষা (সি), একটি উচ্চ স্তর (জাভা) এবং একটি স্ক্রিপ্টিং (পাইথন) ভাষা বাছাই এবং একই সাথে সমস্ত 3 শিখতে চান?
বেনামে

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

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

If you want to go into the really advanced stuff you must also know Assembly- আপনি যে কোনও স্তরে এটি করতে পারেন, চ্যালেঞ্জগুলি কেবল আলাদা।
ষাট ফুটারসুডে

1

আমি কি এই ভেবেই সঠিক হতে পারি যে জিইউআই এর জন্য জাভা-এর মতো অত্যন্ত বহনযোগ্য ভাষার সাথে মিলিয়ে ব্যাক-এন্ড লজিক / নিম্ন স্তরের প্রোগ্রামিংয়ের জন্য সি / সি +++ এবং এর মতো শক্ত জ্ঞান থাকা সফ্টওয়্যার বিকাশের একটি ভাল ভিত্তি হবে এটি সিস্টেমের সর্বাধিক পরিমাণে কার্যকর প্রমাণিত হবে?

আমি ডেস্কটপ পিসির, ট্যাবলেট, ফোনগুলি বলছি।

না। এর কোনটিই সাহায্য করবে না।

"নিম্ন স্তরের প্রোগ্রামিং এবং লাইক" এর চেয়ে ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলির একটি নির্দিষ্ট জ্ঞান - কোনও নির্দিষ্ট প্রোগ্রামিং ভাষার থেকে পৃথক।

একটি "জাভার মতো অত্যন্ত পোর্টেবল ভাষা" সি এর মতো বহনযোগ্য এবং কোনও সাহায্য করে না। পরবর্তী বড় বিষয় এই ভাষা থেকে তাই বিভিন্ন আপনার সুপার পোর্টেবল জাভা একটি দায়, না একটি সম্পদ হতে হবে।

ম্যাক ওএস (ডেস্কটপ, ট্যাবলেট এবং ফোন) সবই উদ্দেশ্য সি তে সম্পন্ন হয়েছে এটি সম্ভবত কোনও জায়গা শুরু হতে পারে।

উইন্ডোজ (ডেস্কটপ, টেবিল এবং ফোন) সমস্ত সি # তে সম্পন্ন হয়েছে। এটি শুরু করার জায়গা হতে পারে।


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

@ ক্রিস ব্রিজেট: আপনি পুরোপুরি বিষয়টিকে ভুল করছেন aking এখানে সর্বজনীন মৌলিক উপাদান রয়েছে এবং একটি প্রোগ্রামিং ভাষাও নয়। প্রথমে মৌলিক বিষয়গুলি শিখুন। তারপরে, কোনও ভাষা (বা একটি ওএস) কেবল পিষ্টকে ফ্রস্টিং করছে। মৌলিক হ'ল কেক এবং ভবিষ্যত-প্রমাণ proof
এসলট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.