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.
217 lines
26 KiB
217 lines
26 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
|
|
"translation_date": "2025-08-28T16:23:41+00:00",
|
|
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
|
|
"language_code": "mr"
|
|
}
|
|
-->
|
|
# प्रोग्रामिंग भाषा आणि साधनांची ओळख
|
|
|
|
या धड्यात प्रोग्रामिंग भाषांचे मूलभूत तत्त्व समजावून सांगितले आहे. येथे दिलेले विषय आजच्या आधुनिक प्रोग्रामिंग भाषांवर लागू होतात. 'साधनांची ओळख' विभागात तुम्हाला विकसक म्हणून उपयुक्त सॉफ्टवेअरची माहिती मिळेल.
|
|
|
|

|
|
> स्केच नोट [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` स्टेटमेंट.
|
|
|
|
✅ तुम्ही पुढील धड्यांमध्ये या प्रकारच्या स्टेटमेंटबद्दल अधिक शिकाल.
|
|
|
|
## साधनांची ओळख
|
|
|
|
[](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/)
|
|
|
|
## पुनरावलोकन आणि स्व-अभ्यास
|
|
|
|
प्रोग्रामरसाठी उपलब्ध असलेल्या वेगवेगळ्या भाषांबद्दल थोडेसे अध्ययन करा. एका भाषेत एक ओळ लिहिण्याचा प्रयत्न करा आणि नंतर ती दोन इतर भाषांमध्ये पुन्हा लिहा. तुम्हाला काय शिकायला मिळाले?
|
|
|
|
## असाइनमेंट
|
|
|
|
[Reading the Docs](assignment.md)
|
|
|
|
---
|
|
|
|
**अस्वीकरण**:
|
|
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही. |