You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/mr/1-getting-started-lessons/1-intro-to-programming-lang.../README.md

215 lines
26 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c63675cfaf1d223b37bb9fecbfe7c252",
"translation_date": "2025-08-25T23:08:53+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "mr"
}
-->
# प्रोग्रामिंग भाषा आणि साधनांची ओळख
या धड्यात प्रोग्रामिंग भाषांचे मूलभूत तत्त्व समजावून सांगितले आहे. येथे दिलेले विषय आजच्या आधुनिक प्रोग्रामिंग भाषांवर लागू होतात. 'साधनांची ओळख' विभागात तुम्ही विकसक म्हणून उपयुक्त सॉफ्टवेअरबद्दल शिकाल.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.mr.png)
> स्केच नोट [Tomomi Imura](https://twitter.com/girlie_mac) यांच्याकडून
## पूर्व-व्याख्यान प्रश्नमंजुषा
[पूर्व-व्याख्यान प्रश्नमंजुषा](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
## परिचय
या धड्यात आपण शिकणार आहोत:
- प्रोग्रामिंग म्हणजे काय?
- प्रोग्रामिंग भाषांचे प्रकार
- प्रोग्रामचे मूलभूत घटक
- व्यावसायिक विकसकांसाठी उपयुक्त सॉफ्टवेअर आणि साधने
> तुम्ही हा धडा [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon) वर घेऊ शकता!
## प्रोग्रामिंग म्हणजे काय?
प्रोग्रामिंग (कोडिंग म्हणूनही ओळखले जाते) म्हणजे संगणक किंवा मोबाइल डिव्हाइससाठी सूचना लिहिण्याची प्रक्रिया आहे. आपण या सूचना प्रोग्रामिंग भाषेचा वापर करून लिहितो, ज्याचा डिव्हाइसद्वारे अर्थ लावला जातो. या सूचनांच्या संचाला विविध नावांनी ओळखले जाऊ शकते, जसे की *प्रोग्राम*, *कंप्युटर प्रोग्राम*, *अॅप्लिकेशन (अॅप)*, आणि *एक्झिक्युटेबल*.
*प्रोग्राम* म्हणजे कोडने लिहिलेले काहीही; वेबसाइट्स, गेम्स, आणि फोन अॅप्स हे प्रोग्राम आहेत. कोड न लिहिता प्रोग्राम तयार करणे शक्य असले तरी, अंतर्गत लॉजिक डिव्हाइसद्वारे समजावले जाते आणि ते लॉजिक बहुधा कोडने लिहिलेले असते. *रनिंग* किंवा *एक्झिक्युटिंग* कोड असलेला प्रोग्राम सूचना अंमलात आणत असतो. तुम्ही हा धडा वाचण्यासाठी वापरत असलेला डिव्हाइस तुमच्या स्क्रीनवर तो प्रिंट करण्यासाठी प्रोग्राम चालवत आहे.
✅ थोडे संशोधन करा: जगातील पहिला संगणक प्रोग्रामर कोण मानला जातो?
## प्रोग्रामिंग भाषा
प्रोग्रामिंग भाषा विकसकांना डिव्हाइससाठी सूचना लिहिण्याची परवानगी देतात. डिव्हाइस फक्त बायनरी (1 आणि 0) समजू शकते, आणि *बहुतांश* विकसकांसाठी हा संवाद साधण्याचा फारसा कार्यक्षम मार्ग नाही. प्रोग्रामिंग भाषा मानव आणि संगणक यांच्यातील संवादाचे माध्यम आहे.
प्रोग्रामिंग भाषा विविध स्वरूपात येतात आणि वेगवेगळ्या उद्देशांसाठी वापरल्या जातात. उदाहरणार्थ, JavaScript प्रामुख्याने वेब अॅप्लिकेशन्ससाठी वापरले जाते, तर Bash प्रामुख्याने ऑपरेटिंग सिस्टीमसाठी वापरले जाते.
*लो लेव्हल भाषा* डिव्हाइसला सूचना समजावण्यासाठी *हाय लेव्हल भाषा*च्या तुलनेत कमी पायऱ्या लागतात. परंतु, हाय लेव्हल भाषा लोकप्रिय बनवणारे घटक म्हणजे त्यांची वाचनीयता आणि समर्थन. JavaScript ही हाय लेव्हल भाषा मानली जाते.
खालील कोड JavaScript (हाय लेव्हल भाषा) आणि ARM असेंब्ली कोड (लो लेव्हल भाषा) यामधील फरक दाखवतो.
```javascript
let number = 10
let n1 = 0, n2 = 1, nextTerm;
for (let i = 1; i <= number; i++) {
console.log(n1);
nextTerm = n1 + n2;
n1 = n2;
n2 = nextTerm;
}
```
```c
area ascen,code,readonly
entry
code32
adr r0,thumb+1
bx r0
code16
thumb
mov r0,#00
sub r0,r0,#01
mov r1,#01
mov r4,#10
ldr r2,=0x40000000
back add r0,r1
str r0,[r2]
add r2,#04
mov r3,r0
mov r0,r1
mov r1,r3
sub r4,#01
cmp r4,#00
bne back
end
```
विशेष म्हणजे, *दोन्ही एकच काम करत आहेत*: 10 पर्यंत फिबोनाची अनुक्रम छापणे.
✅ फिबोनाची अनुक्रम [परिभाषित](https://en.wikipedia.org/wiki/Fibonacci_number) केला जातो, जिथे प्रत्येक संख्या दोन आधीच्या संख्यांचा योग असते, 0 आणि 1 पासून सुरुवात करून. फिबोनाची अनुक्रमानुसार पहिल्या 10 संख्या आहेत: 0, 1, 1, 2, 3, 5, 8, 13, 21 आणि 34.
## प्रोग्रामचे घटक
प्रोग्राममधील एकल सूचना *स्टेटमेंट* म्हणून ओळखली जाते आणि सामान्यतः त्याच्या शेवटाचे चिन्हांकित करणारे वर्ण किंवा ओळीचे अंतर असते, ज्याला *टर्मिनेट* म्हणतात. प्रोग्राम कसा टर्मिनेट होतो हे प्रत्येक भाषेनुसार बदलते.
प्रोग्राममधील स्टेटमेंट्स वापरकर्त्याने दिलेल्या किंवा अन्यत्र उपलब्ध असलेल्या डेटावर अवलंबून असतात. डेटा प्रोग्रामच्या वर्तनावर परिणाम करू शकतो, म्हणून प्रोग्रामिंग भाषांमध्ये डेटा तात्पुरता साठवण्यासाठी एक मार्ग असतो, ज्याचा नंतर वापर करता येतो. याला *व्हेरिएबल्स* म्हणतात. व्हेरिएबल्स म्हणजे डिव्हाइसला त्याच्या मेमरीमध्ये डेटा साठवण्याचे निर्देश देणारे स्टेटमेंट्स. प्रोग्राममधील व्हेरिएबल्स अल्जेब्रातील व्हेरिएबल्ससारखे असतात, जिथे त्यांना एक अद्वितीय नाव असते आणि त्यांची किंमत वेळोवेळी बदलू शकते.
काही स्टेटमेंट्स डिव्हाइसद्वारे अंमलात आणली जाण्याची शक्यता नसते. हे सामान्यतः विकसकाने लिहिताना डिझाइनद्वारे किंवा अनपेक्षित त्रुटी आल्यामुळे अपघाताने होते. अॅप्लिकेशनवर नियंत्रण ठेवण्याचा हा प्रकार त्याला अधिक मजबूत आणि देखभालक्षम बनवतो. सामान्यतः, नियंत्रणात बदल विशिष्ट अटी पूर्ण झाल्यावर होतो. आधुनिक प्रोग्रामिंगमध्ये प्रोग्राम कसा चालतो यावर नियंत्रण ठेवण्यासाठी वापरले जाणारे एक सामान्य स्टेटमेंट म्हणजे `if..else` स्टेटमेंट.
✅ तुम्ही पुढील धड्यांमध्ये या प्रकारच्या स्टेटमेंटबद्दल अधिक शिकाल.
## साधनांची ओळख
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
> 🎥 वरील प्रतिमेवर क्लिक करा आणि टूलिंगबद्दल व्हिडिओ पहा
या विभागात, तुम्ही तुमच्या व्यावसायिक विकास प्रवासाची सुरुवात करताना उपयुक्त वाटणाऱ्या काही सॉफ्टवेअरबद्दल शिकाल.
**विकास वातावरण** म्हणजे विकसकाने सॉफ्टवेअर लिहिताना वारंवार वापरलेली साधने आणि वैशिष्ट्यांचा एक अद्वितीय संच. या साधनांपैकी काही विकसकाच्या विशिष्ट गरजांसाठी सानुकूलित केले गेले आहेत आणि कामाच्या प्राधान्यक्रमांमध्ये बदल झाल्यास, वैयक्तिक प्रकल्पांमध्ये बदल झाल्यास किंवा वेगवेगळ्या प्रोग्रामिंग भाषेचा वापर केल्यास बदलू शकतात. विकास वातावरण विकसकांप्रमाणेच अद्वितीय असते.
### संपादक
सॉफ्टवेअर विकासासाठी सर्वात महत्त्वाचे साधन म्हणजे संपादक. संपादक हे कोड लिहिण्याचे ठिकाण आहे आणि कधी कधी कोड चालवण्याचे ठिकाण आहे.
विकसक संपादकांवर काही अतिरिक्त कारणांसाठी अवलंबून असतात:
- *डिबगिंग* त्रुटी शोधण्यात मदत करते, कोड ओळीनुसार तपासून. काही संपादकांमध्ये डिबगिंग क्षमता असते; ती विशिष्ट प्रोग्रामिंग भाषांसाठी सानुकूलित आणि जोडली जाऊ शकते.
- *सिंटॅक्स हायलाइटिंग* कोडमध्ये रंग आणि मजकूर स्वरूपन जोडते, ज्यामुळे वाचणे सोपे होते. बहुतेक संपादक सानुकूलित सिंटॅक्स हायलाइटिंग परवानगी देतात.
- *एक्सटेंशन्स आणि इंटिग्रेशन्स* हे विकसकांसाठी विशेष साधने आहेत, विकसकांनी तयार केलेली. ही साधने मूळ संपादकात समाविष्ट केलेली नव्हती. उदाहरणार्थ, अनेक विकसक त्यांचा कोड कसा कार्य करतो हे स्पष्ट करण्यासाठी दस्तऐवजीकरण करतात. ते दस्तऐवजीकरणातील टायपो शोधण्यात मदत करण्यासाठी स्पेल चेक एक्सटेंशन स्थापित करू शकतात. बहुतेक एक्सटेंशन्स विशिष्ट संपादकात वापरण्यासाठी तयार केलेली असतात आणि बहुतेक संपादक उपलब्ध एक्सटेंशन्स शोधण्यासाठी एक मार्ग देतात.
- *सानुकूलन* विकसकांना त्यांच्या गरजेनुसार अद्वितीय विकास वातावरण तयार करण्यास सक्षम करते. बहुतेक संपादक अत्यंत सानुकूलित करण्यायोग्य असतात आणि विकसकांना सानुकूल एक्सटेंशन्स तयार करण्याची परवानगी देऊ शकतात.
#### लोकप्रिय संपादक आणि वेब विकास एक्सटेंशन्स
- [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- [Atom](https://atom.io/)
- [spell-check](https://atom.io/packages/spell-check)
- [teletype](https://atom.io/packages/teletype)
- [atom-beautify](https://atom.io/packages/atom-beautify)
- [Sublimetext](https://www.sublimetext.com/)
- [emmet](https://emmet.io/)
- [SublimeLinter](http://www.sublimelinter.com/en/stable/)
### ब्राउझर्स
आणखी एक महत्त्वाचे साधन म्हणजे ब्राउझर. वेब विकसक वेबवर त्यांचा कोड कसा चालतो हे पाहण्यासाठी ब्राउझरवर अवलंबून असतात. संपादकात लिहिलेल्या HTML सारख्या वेब पृष्ठाच्या दृश्य घटकांना प्रदर्शित करण्यासाठी देखील ब्राउझर वापरला जातो.
अनेक ब्राउझर्समध्ये *विकसक साधने* (DevTools) असतात, ज्यामध्ये विकसकांना त्यांच्या अॅप्लिकेशनबद्दल महत्त्वाची माहिती गोळा आणि कॅप्चर करण्यात मदत करणाऱ्या वैशिष्ट्यांचा संच असतो. उदाहरणार्थ: जर वेब पृष्ठावर त्रुटी आल्या असतील, तर त्या कधी घडल्या हे जाणून घेणे कधी कधी उपयुक्त ठरते. ब्राउझरमधील DevTools ही माहिती कॅप्चर करण्यासाठी कॉन्फिगर केली जाऊ शकते.
#### लोकप्रिय ब्राउझर्स आणि DevTools
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
- [Firefox](https://developer.mozilla.org/docs/Tools)
### कमांड लाइन साधने
काही विकसक त्यांच्या दैनंदिन कामांसाठी कमी ग्राफिकल दृश्य पसंत करतात आणि कमांड लाइनवर अवलंबून असतात. कोड लिहिण्यासाठी मोठ्या प्रमाणात टायपिंग आवश्यक असते आणि काही विकसक त्यांच्या कीबोर्डवरील प्रवाहात व्यत्यय आणणे टाळतात. ते डेस्कटॉप विंडोजमध्ये स्विच करण्यासाठी, वेगवेगळ्या फाइल्सवर काम करण्यासाठी आणि साधने वापरण्यासाठी कीबोर्ड शॉर्टकट वापरतात. बहुतेक कामे माऊसने पूर्ण केली जाऊ शकतात, परंतु कमांड लाइन वापरण्याचा एक फायदा म्हणजे माऊस आणि कीबोर्डमध्ये स्विच न करता कमांड लाइन साधनांसह बरेच काही करता येते. कमांड लाइनचा आणखी एक फायदा म्हणजे ती कॉन्फिगर करण्यायोग्य असते आणि तुम्ही सानुकूल कॉन्फिगरेशन सेव्ह करू शकता, नंतर बदलू शकता आणि इतर विकास मशीनवर आयात करू शकता. विकास वातावरण प्रत्येक विकसकासाठी इतके अद्वितीय असल्यामुळे, काहीजण कमांड लाइन वापरणे टाळतात, काहीजण त्यावर पूर्णपणे अवलंबून असतात, आणि काहीजण दोघांचा मिश्रित वापर पसंत करतात.
### लोकप्रिय कमांड लाइन पर्याय
कमांड लाइनसाठी पर्याय तुम्ही वापरत असलेल्या ऑपरेटिंग सिस्टीमनुसार बदलतात.
*💻 = ऑपरेटिंग सिस्टीमवर पूर्व-स्थापित.*
#### Windows
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (CMD म्हणूनही ओळखले जाते) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
#### MacOS
- [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) 💻
- [iTerm](https://iterm2.com/)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
#### Linux
- [Bash](https://www.gnu.org/software/bash/manual/html_node/index.html) 💻
- [KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
#### लोकप्रिय कमांड लाइन साधने
- [Git](https://git-scm.com/) (💻 बहुतेक ऑपरेटिंग सिस्टीमवर)
- [NPM](https://www.npmjs.com/)
- [Yarn](https://classic.yarnpkg.com/en/docs/cli/)
### दस्तऐवजीकरण
जेव्हा विकसकाला काही नवीन शिकायचे असते, तेव्हा ते बहुधा दस्तऐवजीकरणाकडे वळतात. विकसक साधने आणि भाषांचा योग्य वापर कसा करायचा याबद्दल मार्गदर्शन मिळवण्यासाठी आणि त्याचे कार्य कसे चालते याबद्दल सखोल ज्ञान मिळवण्यासाठी दस्तऐवजीकरणावर अवलंबून असतात.
#### वेब विकासासाठी लोकप्रिय दस्तऐवजीकरण
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), Mozilla कडून, [Firefox](https://www.mozilla.org/firefox/) ब्राउझरचे प्रकाशक
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), Google कडून, [Chrome](https://www.google.com/chrome/) चे प्रकाशक
- [Microsoft चे स्वतःचे विकसक दस्तऐवजीकरण](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), [Microsoft Edge](https://www.microsoft.com/edge) साठी
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ थोडे संशोधन करा: आता तुम्हाला वेब विकसकाच्या वातावरणाची मूलभूत माहिती मिळाली आहे, वेब डिझायनरच्या वातावरणाशी तुलना करा आणि त्यातील फरक शोधा.
---
## 🚀 आव्हान
काही प्रोग्रामिंग भाषांची तुलना करा. JavaScript आणि Java यामधील काही अद्वितीय वैशिष्ट्ये कोणती आहेत? COBOL आणि Go याबद्दल काय?
## व्याख्यानानंतरची प्रश्नमंजुषा
[व्याख्यानानंतरची प्रश्नमंजुषा](https://ff-quizzes.netlify.app/web/quiz/2)
## पुनरावलोकन आणि स्व-अभ्यास
प्रोग्रामरसाठी उपलब्ध विविध भाषांबद्दल थोडेसे अध्ययन करा. एका भाषेत एक ओळ लिहिण्याचा प्रयत्न करा आणि नंतर ती दोन इतर भाषांमध्ये पुन्हा लिहा. तुम्हाला काय शिकायला मिळाले?
## असाइनमेंट
[Reading the Docs](assignment.md)
**अस्वीकरण**:
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार नाही.