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

সম্ভবত কোনো কারণে আপনি হঠাৎ করেই প্রোগ্রামার হতে চেয়েছিলেন। ভাল খবর হল যে একবার আপনি সিস্টেমটি বুঝতে পারলে, আপনি কীভাবে সাক্ষাত্কার গ্রহণ করবেন এবং চাকরিতে আপনার প্রথম কয়েক মাস বেঁচে থাকবেন তা শিখতে পারবেন।

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

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

কিভাবে আমি একজন প্রোগ্রামার হয়ে উঠলাম

আমি 6 বছর বয়সে প্রথম কম্পিউটারের সাথে পরিচিত হই। 13 বছর বয়সে, আমার ইতিমধ্যে আমার নিজস্ব ব্যক্তিগত ওয়েবসাইট ছিল। আমি স্কুলে এবং বিশ্ববিদ্যালয়েও খারাপ করেছি। আমার দ্বিতীয় বছরে, আমার বন্ধু একটি জাভা প্রোগ্রামার হিসাবে একটি চাকরি খুঁজে পেয়েছিল এবং দৃঢ়ভাবে সুপারিশ করেছিল যে আমি একই কাজ করব। ধারণা আমাকে কৌতুহল. একটা পরিকল্পনা দরকার ছিল।

প্রথম ধাপ - সারসংকলন

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

বেতন নীতি

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

লজ্জা-শরম

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

প্রথম চাকরী

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

আমার তিক্ত, কিন্তু এখনও অমূল্য অভিজ্ঞতার উপর ভিত্তি করে, আমি সুপারিশগুলির একটি তালিকা দেব যা সহ অভিযাত্রীদের তুলনামূলকভাবে দ্রুত প্রোগ্রামার হিসাবে একটি চাকরি খুঁজে পেতে সাহায্য করবে।

  1. সারসংক্ষেপ.এটি সঠিকভাবে ফরম্যাট করা এবং ইংরেজিতে একচেটিয়াভাবে লিখতে হবে। আপনার যদি যথেষ্ট অভিজ্ঞতা না থাকে, তাহলে আপনি এটি উদ্ভাবন করতে পারেন (এবং উচিত) তবে আপনার জীবনবৃত্তান্তে লেখা প্রতিটি শব্দের জন্য দায়ী হওয়ার জন্য প্রস্তুত হওয়া উচিত। উদাহরণস্বরূপ, যদি আপনার সেখানে JMS (জাভা মেসেজ সার্ভিস) লেখা থাকে, তাহলে অন্তত আপনার অন্তত একটি টিউটোরিয়ালের মধ্য দিয়ে যেতে হবে এবং JMS-এর সাথে খেলতে হবে, কিছু উদাহরণ তৈরি করতে হবে, যদিও এটি একটি সাধারণ "হ্যালো, ওয়ার্ল্ড!" এখন দেখাতে আরও সুবিধাজনক হবে, আপনি সত্যিই "জেএমএসের সাথে কাজ করেছেন"।
  • প্রোগ্রামিং এর ABC শিখুন।আপনি যদি এখনও স্ট্রুটস এবং স্প্রিং-এর মতো কিছু জটিল প্রযুক্তির গভীর স্তরে "সাঁতার কাটতে" সামর্থ্য রাখেন, তাহলে মৌলিক প্রশ্নগুলির ভুল উত্তর কখনও ক্ষমা করা হবে না। আমি যদি আপনাকে রাতে জাগিয়ে দেই, তাহলে আপনি OOP, উত্তরাধিকার, এনক্যাপসুলেশন, পলিমরফিজম এবং অন্যান্য মৌলিক ধারণাগুলি সম্পর্কে কথা বলতে সক্ষম হবেন এবং উদাহরণ সহ এটি ব্যাখ্যা করতে সক্ষম হবেন।
  • অনুশীলন করা.আপনি শুধুমাত্র প্রোগ্রামিং দ্বারা প্রোগ্রাম শিখতে পারেন। এটি বেদনাদায়ক এবং অপ্রীতিকর (যদি আপনি একজন প্রোগ্রামার না হন), তবে অন্য কোন উপায় নেই। সাক্ষাত্কারের সমস্যাগুলি থেকে ভয় পাওয়া বন্ধ করার একমাত্র উপায় হল সেগুলি বাড়িতে নিজেই সমাধান করা।
  • বই পড়ুন এবং জাভাতে টিউটোরিয়াল নিন শুধুমাত্র ইংরেজিতেএকেবারে সমস্ত প্রোগ্রামিং টার্মগুলি মূল ভাষায়, অর্থাৎ ইংরেজিতে বোঝা সহজ। রাশিয়ান ভাষায় জাভাতে প্রযুক্তিগত সাহিত্য পড়া নিজেকে অসম্মান করছে। কেন? কারণ "...টেবিল মডিউলটি অনেক উপায়ে একটি মধ্যবর্তী বিকল্প, লেনদেনের পরিস্থিতি এবং মডেলের সাথে একটি আপস। এলাকা বিষয়", আপনাকে সত্যিই একজন প্রতিভাবান হতে হবে, যা আপনার হওয়ার সম্ভাবনা নেই।
  • অবশেষে ইংরেজি শিখুন!প্রথমত, এই কথ্য ইংরেজি উদ্বেগ. এটা গণনা করা কঠিন অনেক পরিমাণবুদ্ধিমান প্রোগ্রামাররা, যারা, যতদূর আমার মনে আছে, একটি একক কারণে প্রত্যাখ্যাত হয়েছিল - কথ্য ইংরেজির একটি অসন্তোষজনক স্তর। না, আপনি যদি অবশ্যই কোনো দেশীয় কোম্পানিতে প্রোগ্রামার হিসেবে কাজ করতে যাচ্ছেন, তাহলে আপনার ভাষা স্তর গুরুত্বপূর্ণ ভূমিকা পালন করবে না। কিন্তু আপনি যদি কোনো আন্তর্জাতিক কোম্পানিতে চাকরি পেতে চান, তাহলে আল্লাহ নিজেই আপনাকে ভাষা শেখার নির্দেশ দিয়েছেন। আপনার ইংরেজি স্তর বেতন বৃদ্ধির শত শত অতিরিক্ত ডলারে অনুবাদ করবে।
  • বাজার জানুন।শূন্যপদের জন্য আশেপাশে দেখুন, প্রয়োজনীয়তা পড়ুন, আপনার প্রোগ্রামার বন্ধুদের জিজ্ঞাসা করুন তারা কত উপার্জন করে। পরিষেবাগুলি ব্যবহার করুন যা আপনাকে আইটি বাজারের আরও সম্পূর্ণ চিত্র পেতে অনুমতি দেবে। আপনি জেনে অবাক হবেন যে প্রতিভাবান প্রোগ্রামারদের সংখ্যা কত বেশি যারা তাদের অলসতা এবং বাতাসে নাক আটকে রাখার অনিচ্ছার কারণে অর্ধেক পরিমাণ উপার্জন করে।
  • দর কষাকষি।আপনার বেতন নিয়ে কারসাজিতে দোষ নেই। একটি বিবাদে আপনার যুক্তি হয় ভাল ইংরেজি বা অন্য কোম্পানিতে চাকরির প্রস্তাব হতে পারে। শেষ যুক্তিটি বিশেষভাবে ভাল কাজ করে: "হ্যাঁ, কিন্তু লাক্সফ্ট আমাকে আরও $ 300 অফার করছে, কেন আমি আপনার শর্তে রাজি হব? হয়তো আমরা একটি আপস খুঁজে পেতে পারি?" এক সময়ে, আমি কয়েকবার আমার বেতনের জন্য অতিরিক্ত একশ ডলারের দর কষাকষি করতে পেরেছিলাম এবং এক বছর পর, এই একশ ডলার আমাকে নীল থেকে অতিরিক্ত $1,800 আয় করেছে। আপনাকে অবশ্যই বুঝতে হবে যে এমনকি ছোট বিদেশী আইটি সংস্থাগুলির জন্যও অতিরিক্ত একশ টাকা বালতিতে এক ফোঁটার মতো।
  • নিজেকে একজন পরামর্শদাতা খুঁজুন।আপনার যদি আরও অভিজ্ঞ বন্ধু থাকে যে পরামর্শ দিতে এবং এমনকি সবচেয়ে বোকা প্রশ্নের উত্তর দিতে পারে তবে এটি ভাল। তার অভিজ্ঞতা এবং নৈতিক সমর্থনের জন্য ধন্যবাদ, আপনি আপনার নিজের চেয়ে দ্রুত প্রোগ্রামিংয়ে অগ্রসর হবেন। আপনার যদি কোনো পরামর্শদাতা না থাকে, তাহলে কিছু প্রোগ্রামিং কোর্স নেওয়া ভালো ধারণা যা একজন প্রোগ্রামার কী করে তার একটি সম্পূর্ণ চিত্রই দেবে না, বরং আপনাকে আরও অভিজ্ঞ লোকেদের সাথে দেখা করার অনুমতি দেবে। কে জানে, হয়তো তাদের একজন আপনার পরামর্শদাতা হতে চাইবে।
  • আপনার প্রকল্প শুরু করুন.এমনকি যদি এটি সবচেয়ে খারাপ কোডিং অনুশীলনের একটি উদাহরণ হয় এবং আপনি এটি কখনই শেষ করেন না, অন্তত আপনার কাছে এমন কিছু করতে হবে যা আপনাকে প্রোগ্রামিং বুঝতে এবং নতুন প্রযুক্তি শিখতে চাইবে। উপরন্তু, আপনার সাক্ষাত্কারের সময় অন্তরঙ্গ কথোপকথনের জন্য একটি অতিরিক্ত বিষয় থাকবে।
  • গ্রীষ্মে একটি কাজের সন্ধান করুন।প্রথমত, সবাই যখন ছুটিতে থাকে, তখন কোম্পানিগুলো কম স্টাফ থাকার সম্ভাবনা বেশি থাকে এবং ইন্টারভিউয়ের জন্য ডাকার সম্ভাবনা বেশি থাকে। দ্বিতীয়ত, যেহেতু আপনার প্রতিযোগী-আবেদনকারীরাও ছুটিতে আছেন, তাই HR দ্বারা আপনার নজরে পড়ার সম্ভাবনা আবার বেড়ে যায়।
  • কখনো হাল ছাড়বেন না।এমনকি যদি আপনি মনে করেন যে আপনি সাক্ষাত্কারে ব্যর্থ হচ্ছেন, তবুও সমস্যাটি যতই কঠিন মনে হোক না কেন, অধ্যবসায় করা এবং সমস্যাটি সমাধান করার চেষ্টা চালিয়ে যাওয়া গুরুত্বপূর্ণ। কে জানে, হয়তো এই মুহূর্তে আপনার কাজের পরিশ্রমের পরীক্ষা হচ্ছে!
  • কম্পিউটারে কাজগুলি এড়িয়ে চলুন।অবিলম্বে তাকে প্রোগ্রামিং তাপে নিক্ষেপ করার চেয়ে একজন অ-পেশাদারের মাধ্যমে দ্রুত দেখার কোন উপায় নেই। আপনার কাজ হল সমস্ত কথোপকথন অনুবাদ করার চেষ্টা করা উচ্চস্তর, যেখানে সাধারণ পন্থা এবং ধারণাগুলি নিয়ে আলোচনা করা হয়, তবে একটি নির্দিষ্ট সমস্যা সমাধানে একটি নির্দিষ্ট বাস্তবায়ন নয়। যদি আপনাকে কাগজ এবং কলম দেওয়া হয় এবং সমাধানটি লিখতে বলা হয়, তবে এটি ডায়াগ্রাম্যাটিকভাবে আঁকার সুযোগের জন্য জিজ্ঞাসা করুন। এইভাবে, একটি নির্দিষ্ট ভাষার সিনট্যাক্স থেকে দূরে সরে গিয়ে, আপনি কেবল কিছু বিরক্তিকর ত্রুটি থেকে নিজেকে বাঁচাতে পারবেন না, তবে এটিও দেখাবেন যে আপনি এত বিশদে না গিয়ে বিমূর্তভাবে চিন্তা করতে সক্ষম।
  • প্রথম কথা বলুন।এমন পরিস্থিতি এড়িয়ে চলুন যেখানে বাতাসে একটি বিরতি রয়েছে, সেই সময় সাক্ষাত্কারকারীর মনে অন্য একটি কল্পিত প্রশ্ন তৈরি হতে পারে। যত তাড়াতাড়ি কোন বাধা আছে, আপনি ভাল জানেন যে কিছু বলা শুরু. আপনার খেলা ইন্টারভিউয়ার উপর চাপিয়ে চেষ্টা করুন.
  • সত্য বলার চেষ্টা করুন।আপনি যদি কখনও PL/SQL পদ্ধতি না লিখে থাকেন, তাহলে সরাসরি বলা ভালো। এটি আপনার জন্য একটি অসুবিধা হতে পারে, তবে আপনি এমন প্রশ্নের উত্তর দিয়ে নিজেকে বাঁচাবেন যেটি সম্পর্কে আপনি কিছুই বোঝেন না। একজন অভিজ্ঞ ইন্টারভিউয়ার আপনার জ্ঞানের ফাঁক এক মাইল দূরে অনুভব করবেন।
  • ছোট কোম্পানি থেকে সাবধান।ছোট কোম্পানি ছোট দল আছে ঝোঁক. দলে যত কম লোক, তত দ্রুত তারা আপনাকে খুঁজে বের করবে। আপনার লক্ষ্য একটি বড় এবং আনাড়ি কর্পোরেশন, যেখানে আপনি নিজেকে কিছু সময় কিনতে পারেন।
  • পোষাক কোড অনুসরণ করুন.আপনি যদি একটি স্মার্ট স্যুট পরে একটি প্রোগ্রামার অবস্থানের জন্য একটি ইন্টারভিউতে উপস্থিত হন, তাহলে আপনি শর্টস বা একটি থ্রেডবেয়ার সোয়েটারে উপস্থিত হওয়ার চেয়ে এটি আরও সন্দেহ জাগিয়ে তুলবে৷ চশমা পরাটাও ভালো হবে এই বলে, "আমি এমন একটা বইয়ের পোকা।"
  • অবশ্যই, পরিচিত কেউ নির্দেশ করতে পারে যে উপরের রেসিপিটি একজন প্রোগ্রামারের চেয়ে কোডার হওয়ার উপায়, এবং তিনি কোথাও ঠিক থাকবেন। যাইহোক, জিনিসটি হল আপনি কখনই "খারাপ কোডার ওয়ান্টেড" শিরোনাম সহ একটি শূন্যপদ পাবেন না। প্রত্যেকেরই প্রোগ্রামার প্রয়োজন। বিশেষত সিনিয়র। যাদের কর্পোরেট প্রজেক্টে কাজ করার পাঁচ বছরের বেশি অভিজ্ঞতা আছে এবং যারা একই সাথে একাধিক প্রোগ্রামিং ল্যাঙ্গুয়েজে সমানভাবে পারদর্শী, তারা একই সাথে ডিবিএমএস-এর পুঙ্খানুপুঙ্খ বোধগম্য, ব্যাশ স্ক্রিপ্ট লিখতে পারেন, সঞ্চিত পদ্ধতি, লিনাক্স, টিসিপি/আইপিতে সাবলীল। , নেতৃত্বের গুণাবলী, এবং চাপ প্রতিরোধ ক্ষমতা, যোগাযোগের দক্ষতা এবং অন্যান্য অনেক দক্ষতা রয়েছে, "যা ছাড়া এটি অসম্ভব।"

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

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

অধ্যয়নটি চিত্র প্রক্রিয়াকরণের সাথে সম্পর্কিত ছিল: এটি মোটেও প্রোগ্রামিং নয়, তবে আমি যা চেয়েছিলাম তার কাছাকাছি। এটি একটি কম্পিউটার-সম্পর্কিত বিশেষত্ব।

আমি সবসময় মনে রাখতাম যে আমি একজন প্রোগ্রামার হিসাবে কাজ করব। শেষ পর্যন্ত সেটাই হলো।

আমি একটি চাকরির বিজ্ঞাপন খুঁজে পেয়েছি

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

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

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

আমি প্রোগ্রামিং এর উপর শুধুমাত্র একটি বই পড়েছি

আপনি বলতে পারেন যে আমি স্ব-শিক্ষিত।

আমি নিশ্চিত যে প্রোগ্রামিং এমন একটি ক্ষেত্র যা আপনি বিশ্ববিদ্যালয়ে দীর্ঘ তাত্ত্বিক বক্তৃতা ছাড়া নিজেই বুঝতে পারবেন।

আমি গুরুতরভাবে জাভাতে প্রোগ্রাম শিখতে শুরু করার আগে, আমি প্রোগ্রামিং সম্পর্কে শুধুমাত্র একটি বই পড়েছিলাম। এটি ছিল "21 দিনের মধ্যে C++" কোর্স।

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

কেন আমি জাভা বেছে নিলাম?

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

সংক্ষেপে, C++ এ একটি সংক্ষিপ্ত কোর্স করার পর, আমি নতুনদের জন্য জাভা টিউটোরিয়াল নিয়েছিলাম। এটাকে কী বলা হয়েছিল তা আমার মনে নেই, আমি কেবল মনে করি যে আমি মাঝখানে পৌঁছানোর আগেই আমি এটি পড়া বন্ধ করে দিয়েছিলাম। আমি যত তাড়াতাড়ি সম্ভব "দূর হতে" চেয়েছিলাম।

তারপরে আমি নতুনদের জন্য অনেক গাইড দেখেছি এবং আমি নিশ্চিতভাবে বলতে পারি: তাদের মধ্যে কোন মৌলিক পার্থক্য নেই। তারা প্রায় একই. কিছু খুঁজে পেতে, আপনাকে ক্যোয়ারীতে "বুক ফর জাভা স্টার্টার" টাইপ করতে হবে এবং আপনি যেতে হবে।

আমি এই টেলিগ্রাম চ্যানেলে আমার প্রশ্নের অনেক উত্তর পেয়েছি।

ইন্টারনেটে কয়েকটি রাশিয়ান ভাষার প্রোগ্রামিং উত্স রয়েছে। এর মোকাবেলা কর

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

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

অবশ্যই, সবকিছু এত দুঃখজনক নয়: রাশিয়ান ভাষায় "গুগল বিকাশকারী সরঞ্জাম" রয়েছে। তবে যে কোনও ক্ষেত্রেই, আপনাকে শুরু করতে হবে এমন নয়।

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

আমি কোথায় "ব্যর্থ" হতে শুরু করেছি

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

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

সম্ভবত আমার জন্য সবচেয়ে কঠিন জিনিস খুঁজে পাওয়া ছিল ভালো বিষয়একটি সম্পূর্ণ প্রকল্পের জন্য। আমি জানি না এটি একটি অপূর্ণতা কিনা, তবে আমি এমনভাবে তৈরি করেছি যে যদি বিষয়টি ভাল হয়, যদি আমি ধারণাটি পছন্দ করি এবং আমি এটি সম্পর্কে উত্তেজিত হই, আমার অনুপ্রেরণা নিয়ে সমস্যা নেই . অনুপ্রেরণার সাথে কোনও সমস্যা নেই - কোনও দুর্লভ অসুবিধা নেই।

কোন সম্পদ একটি শিক্ষানবিস সাহায্য করতে পারে?

  • stackoverflow.com।

সেখানে, 90% পর্যন্ত সম্ভাব্যতার সাথে, আপনি বিকাশে যে প্রশ্নের মুখোমুখি হন তার একটি বিস্তৃত উত্তর পেতে পারেন।

  • Github.com সূত্র সহ সংগ্রহস্থল।

তিনি সত্যিই আমাকে অন্য লোকেদের উদাহরণ থেকে শিখতে সাহায্য করেছেন।

  • YouTube

সেখানে অনেক স্ক্রিনকাস্ট রয়েছে যা খুব দ্রুত আপনাকে একটি নির্দিষ্ট প্রযুক্তি বুঝতে দেয়।

আমি এক মাসে আমার প্রথম অ্যাপ্লিকেশন তৈরি করেছি

সংক্ষেপে, আমি আক্ষরিক অর্থে এক মাসের মধ্যে আবেদনটি করেছি। জ্ঞানের সবচেয়ে দরকারী উৎস ছিল Developer.android.com এবং একই Stackoverflow.com। সবচেয়ে মজার বিষয় হল একটি অ্যাপ্লিকেশন আপলোড করার রুটিন প্রক্রিয়া গুগল প্লেপুরো দুই মাস লেগেছে। যদিও, সম্ভবত, সবকিছু এত দীর্ঘস্থায়ী হয়েছিল কারণ বিকাশের পরে আমার আবেগ কিছুটা শীতল হয়েছিল। একটু পরে, আমি Beginning Java EE 7 বইটি পড়ার পরে অ্যাপ্লিকেশনটির একটি ওয়েব সংস্করণ তৈরি করেছি।

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

উপরন্তু, আমি কোনোভাবেই বিশ্ববিদ্যালয়ের শিক্ষার গুরুত্বকে হ্রাস করতে চাই না এবং বলতে চাই না: "কেন এই সব প্রয়োজনীয়? দেখুন, সবকিছু ঠিক সেভাবেই কাজ করেছে।" প্রয়োজন. বিশ্ববিদ্যালয় আসলে আপনাকে অনেক কিছু দেয় এবং সম্ভবত সবচেয়ে গুরুত্বপূর্ণভাবে শেখার অভ্যাস গড়ে তোলে।

এবং এখনও: আপনি নিজেরাই প্রোগ্রাম শিখতে পারেন। এখন আমি নিশ্চিতভাবে এটা জানি.

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

"যুক্তিবিদ্যা, গণিত নয়" এর নীতি

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

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

"পতনশীল তারা ধরার" নীতি

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

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

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

"অভিধান" নীতি

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

কিন্তু সম্ভবত সবচেয়ে শক্তিশালী ধরনের এক হ্যাশ, বা কী-মান জোড়া। হ্যাশের অনেক নাম আছে। রুবিতে এটি "হ্যাশ"। জাভাস্ক্রিপ্টে একে "অবজেক্ট" বলা হয়। সম্ভবত পাইথন এটিকে আরও ভাল নাম দিয়েছে: "অভিধান।" আপনি যদি একটু চিন্তা করেন, একটি অভিধান হল কী (শব্দ) এর একটি সেট যা তাদের অর্থ নির্দেশ করে।

কিন্তু কেন এই ব্যাপার? এটা সক্রিয় যে এই ধরনের একটি কাঠামো প্রায়ই তথ্য সংরক্ষণের প্রয়োজন হয়. উদাহরণস্বরূপ, আপনি এইভাবে একজন ব্যক্তির সম্পর্কে তথ্য প্যাকেজ করতে পারেন:

("প্রথম_নাম" => "জোনাথন", "শেষ_নাম" => "রিচার্ডস", "জাতীয়তা" => "ব্রিটিশ")

"first_name" (প্রথম নাম), "last_name" (শেষ নাম) ইত্যাদি কী আছে। এগুলি একজন ব্যক্তির বৈশিষ্ট্য বা বৈশিষ্ট্যের মতো। আপনি "hair_colour" (চুলের রঙ), "বয়স" (বয়স), বা "লিঙ্গ" (লিঙ্গ) যোগ করতে পারেন। এবং এই কীগুলির প্রতিটির একটি অর্থ রয়েছে। প্রোগ্রামিংয়ের একটি উল্লেখযোগ্য অংশ ডেটা স্ট্রাকচারের বিন্যাস সংজ্ঞায়িত করে। এবং মূল-মূল্যের জোড়াগুলি আপনার অস্ত্রাগারের সবচেয়ে মূল্যবান অস্ত্র হয়ে উঠছে, তাই যত তাড়াতাড়ি সম্ভব তারা কীভাবে কাজ করে তা বোঝা দরকারী।

"ম্যাট্রিওশকা" নীতি

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

আগের উদাহরণে "ভাইবোন" সম্পত্তি যোগ করা যাক:

("first_name" => "Jonathan", "last_name" => "রিচার্ডস", "জাতীয়তা" => "ব্রিটিশ", "ভাইবোন" => ( "ভাইরা" => , "বোন" => ["ফিওনা", "মেরি"]))

আপনি আপনার প্রোগ্রামিং জুড়ে এই নীতিটি দেখতে পাবেন। HTML-এ, কিছু উপাদানে অন্যান্য উপাদান থাকে:

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

"কুকুর, বিড়াল এবং মাছ" নীতি

(বা কারণ এবং প্রভাবের নীতি)

কল্পনা করুন যে আপনার একটি ঘর আছে। এই ঘরে একটি বাটিতে একটি বিড়াল এবং একটি মাছ রয়েছে। মাছ যথারীতি আচরণ করে। একটি নির্দিষ্ট মুহুর্তে, 2টি জিনিস ঘটে: কুকুরটি ঘরে প্রবেশ করে এবং বিড়ালটি ঘর ছেড়ে চলে যায়। একই সময়ে, মাছ গান গাইতে শুরু করে। প্রশ্নঃ মাছ কি গান গায়?

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

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

বিমূর্ততা, বা "পিৎজা" নীতি

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

কিন্তু স্বাভাবিকভাবেই, শেফ এখানে বর্ণিত ক্রমে প্রতিটি পিজা স্ক্র্যাচ থেকে প্রস্তুত করেন না। বছর লাগবে। পরিবর্তে, তিনি আগাম সবকিছু প্রস্তুত করেন, এবং যখন নেপোলিটানের কথা আসে, তখন তাকে যা করতে হবে তা হল বেস (যা ইতিমধ্যে গঠিত হয়েছে), টমেটো সস, অ্যাঙ্কোভিস এবং পনির যোগ করুন এবং তারপরে চুলায় বেক করুন।

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

আসুন পিৎজা তৈরিকে কোডে পরিণত করি। প্রথমে এর ভুল করা শুরু করা যাক. আসুন একটি পদ্ধতি তৈরি করি make_a_napoletana_pizza (মেক Neapolitana pizza):

বানান_এ_নাপোলেটানা_পিজ্জা

এতে 5টি ধাপ থাকবে (বেস তৈরি করুন, টমেটো সস যোগ করুন, অ্যাঙ্কোভিজ যোগ করুন, পনির যোগ করুন, বেক করুন):

বানান_বেস_এড_টমেটো_সস যোগ_আনচোভি যোগ_চিজ বেক

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

এটা কি মানে. আসুন কল্পনা করি যে আমাদের make_a_pizza পদ্ধতিটিকে "টপিংস" যুক্তি দিয়ে বলা হয়। পদ্ধতিটি এরকম কিছু দেখাবে:

Make_a_pizza(টপিংস)

এবং এটি এই মত কাজ করবে:

তৈরি_বেস_এ_টমেটো_সস যোগ_টপিংস(টপিংস) যোগ_চিজ বেক

3 লাইনে আমরা আগে সংজ্ঞায়িত টপিংগুলি নিয়ে যাই এবং সেগুলিকে পিজ্জাতে যুক্ত করি।

এখন যেহেতু আমরা পিজ্জা তৈরির জন্য একটি সাধারণ পদ্ধতি সংজ্ঞায়িত করেছি, আমরা কেবল এটিকে কল করতে পারি এবং আমরা যে উপাদানগুলি চাই তা নির্দিষ্ট করতে পারি। সবকিছু স্বয়ংক্রিয়ভাবে ঘটে। অন্য কথায়, আমরা make_pizza(salami) বলি এবং যখন পদ্ধতিটি চলে, তখন সালামি টপিং হয়ে যাবে এবং যখন পদ্ধতিটি 3য় লাইনে পৌঁছাবে তখন পিজ্জাতে যোগ করা হবে। শুধুমাত্র টপিংস পরিবর্তন করে, আপনি একটি পদ্ধতি ব্যবহার করে 2টি ভিন্ন পিজা তৈরি করতে পারেন। এটা ততটাই সাশ্রয়ী, যখন ওয়েট্রেস অর্ডার ফর্মে "1 x সালামি, 1 x নিরামিষ" লেখে এবং বাবুর্চি তার প্রয়োজনীয় সবকিছু জানে। প্রোগ্রামিং-এ একে বলা হয় "বিমূর্ততা"।

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

ইরিনা ডেভিডোভা


পড়ার সময়: 13 মিনিট

ক ক

প্রত্যেকেই তাদের নিজস্ব নির্দিষ্ট কারণে "প্রোগ্রামার" এর পেশা বেছে নেয়। একজন কেবল তার বিশেষত্ব পরিবর্তন করার সিদ্ধান্ত নিয়েছে, দ্বিতীয়টি অন্য পেশা শিখতে বাধ্য হয়েছে, তৃতীয়টি কোড ছাড়া নিজেকে বুঝতে পারে না এবং কেউ কেবল কৌতূহলের বাইরে এই পেশায় চলে যায়।

এক বা অন্য উপায়, সবাই স্ক্র্যাচ থেকে শুরু. এবং আপনি স্ক্র্যাচ থেকে শুরু করার আগে, নিজেকে জিজ্ঞাসা করুন, আপনি সত্যিই এই পেশা প্রয়োজন?

একজন প্রোগ্রামারের কাজের সারমর্ম - কাজের প্রধান বিশেষীকরণ, সুবিধা এবং অসুবিধা

একজন প্রোগ্রামারের কাজের সারমর্ম বিশেষীকরণ এবং কোম্পানির উপর নির্ভর করে।

যাইহোক, কখনও কখনও একজন প্রোগ্রামার "সুইডেন, রিপার এবং ট্রাম্পেট বাদক" উভয়ই হয়। তবে এটি একটি নিয়ম হিসাবে, ছোট সংস্থাগুলিতে ঘটে যার কর্তারা বিশেষজ্ঞদের সংরক্ষণ করেন।

সমস্ত প্রোগ্রামারকে তাদের ক্রিয়াকলাপ অনুসারে মোটামুটিভাবে বিভক্ত করা যেতে পারে এমন প্রধান বিভাগগুলি:

  • অ্যাপ্লিকেশন বিশেষজ্ঞরা। টাস্ক: গেমস, এডিটর, অ্যাকাউন্টিং/প্রোগ্রাম, ইনস্ট্যান্ট মেসেঞ্জার ইত্যাদির জন্য সফটওয়্যার ডেভেলপমেন্ট; অডিও/ভিডিও নজরদারি সিস্টেম, অ্যালার্ম সিস্টেম ইত্যাদির জন্য সফ্টওয়্যার উন্নয়ন; কারো নির্দিষ্ট প্রয়োজনের সাথে মানানসই প্রোগ্রামগুলিকে মানিয়ে নেওয়া।
  • সিস্টেম বিশেষজ্ঞ। কাজগুলি: অপারেটিং সিস্টেমের বিকাশ, ডেটাবেসে ইন্টারফেস তৈরি করা, একটি কম্পিউটার সিস্টেম পরিচালনা করা, নেটওয়ার্কগুলির সাথে কাজ করা, তৈরি করা সিস্টেমগুলির ক্রিয়াকলাপ পর্যবেক্ষণ করা ইত্যাদি৷ এই বিশেষজ্ঞরা পেশার বিরলতা এবং নির্দিষ্টতার কারণে তাদের ক্ষেত্রের অন্য কারও চেয়ে বেশি উপার্জন করেন৷
  • ওয়েব বিশেষজ্ঞ। কাজ: ইন্টারনেটের সাথে কাজ করা, ওয়েবসাইট এবং ওয়েব পেজ তৈরি করা, ওয়েব ইন্টারফেস তৈরি করা।

পেশার সুবিধার মধ্যে নিম্নলিখিত সুবিধাগুলি অন্তর্ভুক্ত রয়েছে:

  1. খুবই উপযুক্ত বেতন।
  2. ভাল বিশেষজ্ঞদের জন্য উচ্চ চাহিদা.
  3. শিক্ষা ছাড়াই সম্মানজনক চাকরি পাওয়ার সুযোগ।
  4. ঘরে বসে সোফায় বসে দূর থেকে অর্থ উপার্জনের সুযোগ।
  5. বিদেশী কোম্পানির জন্য দূর থেকে কাজ করার সুযোগ।
  6. সৃজনশীল পেশা (তবে, সৃজনশীলতা প্রায়শই গ্রাহকের ইচ্ছার উপর নির্ভর করে)।
  7. আরামদায়ক অবস্থা যা বড় কোম্পানি তাদের বিশেষজ্ঞদের প্রদান করে (বিনামূল্যে পানীয়/বান, বিনোদন এবং খেলাধুলার জন্য বিশেষ স্থান ইত্যাদি)।
  8. একটি "বিকল্প" পাওয়ার সম্ভাবনা। অর্থাৎ কোম্পানির শেয়ারের একটি ব্লক। সত্য, শুধুমাত্র কোম্পানিতে একটি নির্দিষ্ট সময় পরিবেশন করার পরে।
  9. আপনার দিগন্ত প্রসারিত. আপনি আপনার পেশায় বিকাশের সাথে সাথে আপনাকে জীবনের বিভিন্ন ক্ষেত্রগুলির সাথে পরিচিত হতে হবে এবং অফিসের কাজ এবং অ্যাকাউন্টিং থেকে শুরু করে বিভিন্ন সিস্টেমে প্রবেশ করতে হবে।

বিয়োগ:

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

ভিডিও: কিভাবে একজন প্রোগ্রামার হবেন?

প্রয়োজনীয় ব্যক্তিগত এবং ব্যবসায়িক গুণাবলী, পেশাদার দক্ষতা এবং একজন প্রোগ্রামার হিসাবে কাজ করার ক্ষমতা - আপনার কী জানতে হবে এবং করতে সক্ষম হবেন?

একজন ভালো প্রোগ্রামারের প্রধান গুণ

একজন ভালো প্রোগ্রামার হওয়া উচিত...

  1. আপনার কাজ ভালবাসা. আর শুধু ভালোবাসতে হবে না - এতে অসুস্থ হতে হবে।
  2. গোড়া থেকে শিখতে এবং শেখাতে ভালোবাসি।
  3. খুব পরিশ্রমী, পরিশ্রমী এবং ধৈর্যশীল হন।
  4. নিয়মিত রুটিন কাজের জন্য প্রস্তুত থাকুন।
  5. একটি দলে কাজ করতে সক্ষম হন।

একজন ভবিষ্যত প্রোগ্রামারের কি জ্ঞান প্রয়োজন?

আপনার পড়াশোনা শুরু করা উচিত ...

  • ইংরেজীতে.
  • কম্পিউটার ডিভাইস এবং সমস্ত প্রক্রিয়ার পদার্থবিদ্যা।
  • প্রোগ্রামিং ভাষা.
  • সফ্টওয়্যার উন্নয়ন পদ্ধতি।
  • সফ্টওয়্যার পরীক্ষার পদ্ধতি।
  • সংস্করণ নিয়ন্ত্রণ সিস্টেম।

প্রোগ্রামিং ভাষা - কোনটি দিয়ে শুরু করবেন?

আপনাকেও পড়াশোনা করতে হবে...

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

নির্বাচিত দিকনির্দেশের উপর অনেক কিছু নির্ভর করে।

উদাহরণ স্বরূপ…

  1. একজন ওয়েব প্রোগ্রামার HTML, CSS এবং JavaScript এর জ্ঞান থেকে উপকৃত হবেন।
  2. ডেস্কটপ প্রোগ্রামারের জন্য - API এবং ফ্রেমওয়ার্ক।
  3. মোবাইল অ্যাপ্লিকেশন ডেভেলপারের জন্য - অ্যান্ড্রয়েড, আইওএস বা উইন্ডোজ ফোন।

স্ক্র্যাচ থেকে প্রোগ্রামার হওয়ার জন্য কোথায় পড়াশোনা করবেন - রাশিয়ার শিক্ষা প্রতিষ্ঠান, কোর্স, দূরত্ব শিক্ষা, অনলাইন শিক্ষা?

আপনার যদি এমন বন্ধু না থাকে যারা আপনাকে স্ক্র্যাচ থেকে একজন প্রোগ্রামারের পেশা শেখাতে পারে, তাহলে আপনার কাছে বেশ কয়েকটি প্রশিক্ষণের বিকল্প রয়েছে:

  • স্ব-শিক্ষা। প্রোগ্রামিংয়ের সবচেয়ে কঠিন পথ, যা অধ্যয়নের সাইট, অ্যাপ্লিকেশন, বই ইত্যাদির মাধ্যমে রয়েছে।
  • বিশ্ববিদ্যালয়। আপনি যদি সবেমাত্র স্কুল থেকে স্নাতক হয়ে থাকেন এবং প্রোগ্রামার হিসাবে একটি মর্যাদাপূর্ণ পেশা পাওয়ার স্বপ্ন দেখে থাকেন, তাহলে উপযুক্ত অনুষদে নথিভুক্ত হন। আপনি এখনও স্ব-শিক্ষার মাধ্যমে মৌলিক জ্ঞান অর্জন করবেন, কিন্তু "ভুত্বক" আপনাকে দ্রুত আপনার লালিত লক্ষ্যের কাছাকাছি যেতে সাহায্য করবে। কারিগরি বিশ্ববিদ্যালয়গুলি বেছে নিন, প্রশিক্ষণের প্রোগ্রামগুলি আগে থেকেই অধ্যয়ন করে৷
  • ব্যক্তিগত শিক্ষক . আপনি যদি প্রোগ্রামারদের মধ্যে একজন পরামর্শদাতা খুঁজে পান, স্ব-শিক্ষা দ্রুততর এবং আরও কার্যকর হবে। অনলাইন ফোরামে, আইটি পার্টিতে, বিষয়ভিত্তিক সম্মেলন ইত্যাদিতে পরামর্শদাতাদের সন্ধান করুন।
  • পাঠ্যধারাগুলি.তারা আপনাকে সহজ কোর্সে এই বা সেই প্রোগ্রামিং ভাষা শেখাতে পারে যা এমনকি ছোট শহরেও পাওয়া যায়। উদাহরণ স্বরূপ, " শিক্ষাগত আইটি পোর্টাল GeekBrains", « এমএসটিইউ বাউম্যানের বিশেষজ্ঞ", « কম্পিউটার একাডেমি স্টেপ", MASPC.

আপনি একটি প্রোগ্রামার হিসাবে একটি উচ্চ শিক্ষা পেতে পারেন ...

  1. MEPhI.
  2. রাশিয়ান প্লেখানভ ইউনিভার্সিটি অফ ইকোনমিক্স।
  3. মস্কো স্টেট ইউনিভার্সিটি অফ সিভিল ইঞ্জিনিয়ারিং।
  4. এমএসটিইউ বাউম্যান।
  5. স্টেট ইউনিভার্সিটি অফ ম্যানেজমেন্ট।

ভিডিও: শিক্ষানবিস প্রোগ্রামাররা 7টি ভুল করে

প্রোগ্রামার হতে শেখার জন্য দরকারী অনলাইন সম্পদ এবং বই

  • habrahabr.ru (আইটি বিষয়ের নিবন্ধ, বিভিন্ন বিষয়ে তথ্য)। এই সম্পদ প্রতিটি প্রোগ্রামার পরিচিত.
  • rsdn.org (বই, বর্তমান সমস্যা, দরকারী ফোরাম, জ্ঞানের ফাঁক পূরণ, রাশিয়ান ভাষায় উপকরণ)।
  • sql.ru (চমৎকার সুবিধাজনক ফোরাম, দরকারী সাহিত্য এবং এমনকি চাকরির অফার)।
  • theregister.co.uk (আইটি সেক্টরের খবর)।
  • opennet.ru (সংবাদ, দরকারী নিবন্ধ, ফোরাম, ইত্যাদি)। পেশাদারদের জন্য একটি সম্পদ।
  • driver.ru (ড্রাইভার লাইব্রেরি)। নতুনদের জন্য দরকারী সাইট.

শেখার সম্পদ:

  1. ocw.mit.edu/courses (বিভিন্ন বিষয়ে 2000 টিরও বেশি কোর্স)।
  2. coursera.org (200 টিরও বেশি কোর্স, বিনামূল্যে)।
  3. thecodeplayer.com (শিশুদের জন্য ধাপে ধাপে নির্দেশিকা)।
  4. eloquentjavascript.net (জাভা স্ক্রিপ্ট পরিচিতির জন্য সংস্থান)।
  5. rubykoans.com (যে কেউ রুবি শেখার জন্য)।
  6. learncodethehardway.org (পাইথন, রুবি, সি, ইত্যাদি শিখুন)।
  7. udemy.com (পেইড এবং ফ্রি কোর্স)।
  8. teamtreehouse.com (600 টি পাঠ)।
  9. webref.ru/layout/learn-html-css (HTML এবং CSS আয়ত্ত করার জন্য)।
  10. getbootstrap.com (বুটস্ট্র্যাপের বৈশিষ্ট্য অন্বেষণ)।
  11. learn.javascript.ru (লার্নিং ফ্রন্টএন্ড এবং জাভাস্ক্রিপ্ট)।
  12. backbonejs.org (ফ্রন্ট-এন্ড ডেভেলপারদের জন্য)।
  13. itman.in/uroki-django (জ্যাঙ্গো শেখার জন্য)।

নতুনদের সাহায্য করার জন্য বিনামূল্যে শেখার সাইট:

  • ru.hexlet.io (C এবং PHP, JavaScript এবং Bash-এ 8টি বিনামূল্যের কোর্স)।
  • htmlacademy.ru (লেআউট ডিজাইনারদের জন্য 18টি বিনামূল্যের কোর্স)।
  • codecademy.com (ভাষা, সরঞ্জাম, ইত্যাদির জনপ্রিয় কোর্স)।
  • codeschool.com (এইচটিএমএল/সিএসএস এবং জাভাস্ক্রিপ্ট, রুবি এবং পাইথন, আইওএস এবং গিট ইত্যাদিতে 60টিরও বেশি কোর্স (13টি বিনামূল্যে)।
  • checkio.org (পাইথন এবং জাভাস্ক্রিপ্ট শেখার জন্য)।
  • codingame.com (ভিডিও গেমের মাধ্যমে শেখা, 23টি প্রোগ্রামিং ভাষা)।
  • codecombat.com (জাভাস্ক্রিপ্ট, পাইথন, ইত্যাদি শিখুন)। একটি শিক্ষামূলক খেলা যা যারা এখনও ইংরেজি বলতে পারে না তাদের জন্য অ্যাক্সেসযোগ্য।
  • codehunt.com (কোডের ত্রুটি খুঁজে বের করার প্রশিক্ষণ)।
  • codefights.com (টুর্নামেন্টের মাধ্যমে একটি প্রশিক্ষণ প্ল্যাটফর্ম যেখানে আপনি একটি শালীন আইটি কোম্পানিতে একটি ইন্টারভিউ পেতে পারেন)।
  • bloc.io/ruby-warrior# (রুবি এবং শিল্প/বুদ্ধিমত্তা শেখা)।
  • theaigames.com (প্রোগ্রামিং দক্ষতার বিকাশ - একজন প্রোগ্রামারের জন্য একটি উত্তেজনাপূর্ণ অনলাইন গেমিং সিমুলেটর)।
  • codewars.com (যাদের ন্যূনতম জ্ঞান আছে তাদের জন্য শিক্ষামূলক ইন্টারেক্টিভ কাজের একটি সংগ্রহ)।

প্রোগ্রামিং এর মূল বিষয়গুলো নিজে নিজে শিখতে সাধারণত ছয় থেকে ১২ মাস সময় লাগে।

কীভাবে দ্রুত একজন প্রোগ্রামার হিসাবে চাকরি খুঁজে পেতে এবং অর্থ উপার্জন শুরু করবেন - অভিজ্ঞ ব্যক্তিদের পরামর্শ

স্বাভাবিকভাবেই, আপনি কাজের অভিজ্ঞতা ছাড়া সাধারণ কোম্পানিতে চাকরি পেতে সক্ষম হবেন না।

এই জন্য…

  1. বই পড়ুন, ওয়েবসাইট অধ্যয়ন করুন এবং নিজেকে শিক্ষিত করুন, কিন্তু এখন আপনার কোডের প্রথম লাইন লিখতে শুরু করুন।
  2. আপনি কভার করেছেন এমন উপাদানের উপর ভিত্তি করে আপনার নিজের কাজগুলি তৈরি করুন এবং জটিল করুন।
  3. আপনার প্রথম প্রকল্পগুলি দেখুন, এমনকি "মজার টাকা" এর জন্য, এটি আপনার "জীবনবৃত্তান্ত" এ লিখুন।
  4. রাশিয়ান-ভাষা ফ্রিল্যান্স এক্সচেঞ্জ (ru) এবং ইংরেজি-ভাষা বিনিময়ে (upwork.com) কাজ সন্ধান করুন - সেখানে এটি পাওয়ার সম্ভাবনা বেশি।
  5. আপনি পরিচালনা করতে পারেন এমন ছোট প্রকল্প দিয়ে শুরু করুন।
  6. ওপেন সোর্স বিকল্পটি মিস করবেন না (এই জাতীয় প্রকল্পগুলিতে সর্বদা লোকের অভাব হয়)।
  7. আপনার পরিচিত প্রোগ্রামারদের "একটি সুন্দর পেনির জন্য" (বা এমনকি বিনামূল্যের জন্য, অভিজ্ঞতার জন্য) সহায়তা করুন। তাদের আপনাকে সহজ কাজ দিতে দিন।

  • লিখতে ভুলবেন না: আপনার কাজের অভিজ্ঞতা, আপনার কথা বলা ভাষা এবং প্রযুক্তির তালিকা, শিক্ষা এবং পরিচিতি।
  • আমরা আমাদের জীবনবৃত্তান্তে আমাদের গুণাবলী এবং প্রতিভাগুলির সম্পূর্ণ তালিকাটি ক্র্যাম করি না। এমনকি আপনি যদি বাটন অ্যাকর্ডিয়নটি দক্ষতার সাথে বাজান তবে আপনার জীবনবৃত্তান্তে এটি সম্পর্কে লেখা উচিত নয়।
  • সৃজনশীল কিন্তু প্রাসঙ্গিক হতে আপনার জীবনবৃত্তান্ত ডিজাইন করুন.
  • আপনার "আপনার লক্ষ্য এবং উচ্চাকাঙ্ক্ষা" বা "আমি নিজেকে 5 বছরে কোথায় দেখব" এর মতো আইটেমগুলি পূরণ করা উচিত নয়। আপনি আগে কী করেছেন এবং এখন কী করতে চান তা লেখাই যথেষ্ট।
  • ভাষা এবং প্রযুক্তি সম্পর্কে লিখবেন না যেগুলি আপনি কেবল নামেই জানেন। আপনার জীবনবৃত্তান্তে কেবল সেইগুলিই লিখতে হবে যেখানে আপনি জলে মাছের মতো সাঁতার কাটছেন। অন্য সবকিছুর জন্য একটি যাদু বাক্য আছে - "একটু অভিজ্ঞতা ছিল।"
  • আপনি যদি ডেলফিতে দক্ষ হন, তাহলে উল্লেখ করতে ভুলবেন না যে আপনি C#, Jave বা অন্য ভাষাও জানেন, কারণ কারোরই আসলে "ডেলফি প্রোগ্রামার" এর প্রয়োজন নেই (ডেলফি হল মৌলিক বিষয় যার সাথে প্রত্যেক স্নাতক পরিচিত)।
  • আপনার বিশেষত্ব ছিল না যে কাজ উল্লেখ করবেন না. এ ব্যাপারে কারো আগ্রহ নেই। এছাড়াও, আপনার ড্রাইভিং লাইসেন্স বা গাড়ি আছে কিনা তা কেউ চিন্তা করে না। আপনি একটি কুরিয়ার হিসাবে একটি কাজ পেতে যাচ্ছেন না.

প্রোগ্রামার ক্যারিয়ারের সম্ভাবনা এবং প্রোগ্রামারদের বেতন

দেশের প্রধান শহরগুলিতে একজন প্রোগ্রামারের গড় বেতন হল: 50,000 থেকে 200,000 রুবেল পর্যন্ত.

সামগ্রিকভাবে রাশিয়ার জন্য - 35 হাজার থেকে 120000 পর্যন্ত.

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

একজন ইন্টার্ন থেকে শুরু করে আইটি বিভাগের প্রধান পর্যন্ত, পথটি এতটা দীর্ঘ নয় এবং একেবারে শীর্ষে থাকা বেতন মাসিক $4,000-এ পৌঁছাতে পারে। ঠিক আছে, তাহলে আপনি একটি বড় প্রকল্পের নেতৃত্বে যেতে পারেন (আনুমানিক - সফ্টওয়্যার বিকাশ), এবং এখানে বেতন ইতিমধ্যে $5,000 ছাড়িয়ে গেছে।

বর্তমানে ল্যাপটপ এবং ব্যক্তিগত কম্পিউটার, স্মার্টফোন এবং কনসোল, সুপারমার্কেটের টার্মিনাল, স্বয়ংক্রিয় ব্যাঙ্কিং সিস্টেম ইত্যাদির মতো দৈনন্দিন জিনিসগুলি ছাড়া আমাদের জীবন কল্পনা করা কঠিন। এই তালিকাটি দীর্ঘ সময়ের জন্য চালিয়ে যেতে পারে, তবে তাদের সবার মধ্যে একটি জিনিস মিল রয়েছে - এটি প্রোগ্রামাররা যারা এই আধুনিক স্মার্ট ডিভাইসগুলিতে "মস্তিষ্ক" সন্নিবেশিত করে।

তবে, এই পেশাটি বেছে নেওয়ার আগে, এই কঠিন ক্ষেত্রে সাফল্য অর্জনের জন্য আপনাকে কোথা থেকে শুরু করতে হবে তা স্পষ্টভাবে বুঝতে হবে।

মৌলিক দক্ষতা, জ্ঞান এবং একটি মহান ইচ্ছা আছে যে কেউ একটি প্রোগ্রামার হতে পারে. উপরন্তু, আপনি প্রোগ্রামিং কোন দিক আপনি সবচেয়ে কাজ করতে চান সিদ্ধান্ত নিতে হবে. এই ক্ষেত্রে, তিনটি প্রধান দিক আছে।

1. ওয়েব প্রোগ্রামাররা হল সবচেয়ে সহজ কাজের লাইন। অন্তর্ভুক্ত:

  • লেআউট ডিজাইনার টেমপ্লেট তৈরি (ওয়েবসাইট ডিজাইন);
  • সার্ভার প্রোগ্রামার একটি ওয়েবসাইট স্ক্রিপ্ট তৈরি.

2. সফ্টওয়্যার প্রোগ্রামার (মাঝারি স্তরের জটিলতা) বিভক্ত:

  • সফ্টওয়্যার ডেভেলপার;
  • সিস্টেম প্রোগ্রাম ডেভেলপার।

3. প্রোগ্রামাররা পিসি, মোবাইল ফোন, কনসোলের জন্য গেম তৈরি করা - কাজের সবচেয়ে কঠিন ক্ষেত্র।

কতক্ষণ পড়াশুনা করতে হবে?

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

কি জ্ঞান এবং গুণাবলী প্রয়োজন?

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

স্কুল পাঠ্যক্রম থেকে, নিম্নলিখিত বিষয়গুলিতে বিশেষ মনোযোগ দেওয়া উচিত:

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

কাজের জন্য প্রয়োজনীয় গুণাবলী:

  1. অসাধারণ এবং যৌক্তিক চিন্তার অধিকারী;
  2. গাণিতিক চিন্তাভাবনা;
  3. সময় পরিচালনা করার ক্ষমতা (ধ্রুবক স্ব-শিক্ষা সম্পর্কে ভুলবেন না);
  4. একটি বড় কাজকে সাবটাস্কে ভাগ করার ক্ষমতা;
  5. সঠিক লক্ষ্য নির্বাচন করার ক্ষমতা এবং তা অর্জন করার ইচ্ছা আছে;
  6. একটি বড় দলে কাজ করার ক্ষমতা। আপনি একা বড় প্রকল্পগুলি পরিচালনা করতে পারবেন না এবং ছোট প্রকল্পগুলির বিশেষ চাহিদা নেই। আরও অভিজ্ঞ সহকর্মীদের সাথে অস্পষ্ট বিষয় নিয়ে আলোচনা করা এবং জ্ঞানের ফাঁক পূরণ করা প্রয়োজন;
  7. দ্রুত শেখার ক্ষমতা। প্রযুক্তি স্থির থাকে না। অতএব, আপনার প্রকল্পগুলিতে বিদ্যমান কাজ ছাড়াও, আপনাকে তথ্য প্রযুক্তির ক্ষেত্রে সাম্প্রতিক পরিবর্তনগুলি সম্পর্কে ক্রমাগত নিরীক্ষণ এবং সচেতন হতে হবে।

ন্যূনতম জ্ঞান এবং দক্ষতা

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

  • Coursera বা Udacity থেকে দূরশিক্ষণের কোর্স ব্যবহার করে কম্পিউটার সাক্ষরতার মূল বিষয়গুলি শিখুন;
  • কমপক্ষে একটি ভাষায় (পাইথন, সি++, জাভা) প্রোগ্রামিং সম্পর্কে জ্ঞান অর্জন করুন;
  • অন্যান্য ভাষা শিখুন (PHP, Java Script, HTML, CSS);
  • কোড পরীক্ষা করতে শিখুন;
  • অ্যালগরিদম এবং ডেটা স্ট্রাকচার বুঝতে শিখুন;
  • বিযুক্ত গণিত জ্ঞান অর্জন;
  • অপারেটিং সিস্টেমের বৈশিষ্ট্য অধ্যয়ন;
  • কৃত্রিম বুদ্ধিমত্তা সম্পর্কে জ্ঞান অর্জন;
  • কম্পাইলার তৈরি করতে শিখুন;
  • ক্রিপ্টোগ্রাফি এবং সমান্তরাল প্রোগ্রামিং সম্পর্কে জ্ঞান অর্জন করুন।

ব্যবহারিক কাজ শুরু করার সময়, উপরে উল্লিখিত বিশেষজ্ঞরা পরামর্শ দেন:

  • আপনার নিজস্ব ওয়েবসাইট, সার্ভার বা রোবট তৈরি করুন;
  • একটি বৃহৎ সিস্টেমের অংশ বিকাশ করুন, ডকুমেন্টেশন এবং কোডগুলি বুঝুন এবং প্রোগ্রামটি ডিবাগ করুন;
  • একটি দল হিসাবে একটি বড় প্রকল্পে কাজ শুরু করুন. এটি আপনাকে দ্রুত শিখতে এবং টিম ইন্টারঅ্যাকশনে অভ্যস্ত হওয়ার অনুমতি দেবে;
  • ক্রমাগত আপনার জ্ঞান এবং দক্ষতা উন্নত করুন;
  • অন্যকে শেখানোর কাজ শুরু করুন।

আমি প্রয়োজনীয় জ্ঞান কোথায় পেতে পারি?

আপনি বিভিন্ন উপায়ে প্রোগ্রামিংয়ের ক্ষেত্রে প্রয়োজনীয় তাত্ত্বিক এবং ব্যবহারিক জ্ঞান অর্জন করতে পারেন:

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

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

উপসংহার

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

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

বিষয়ে প্রকাশনা