Basically क्‍या सीखना होता है C/C++ के माध्‍यम से?

Learning of C Language - Hindi

Learning of C Language

Learning of C Language – पिछले एक Post में हमने बात की थी कि आखिर किसी भी Degree Level Course में दशकों बाद आज भी C/C++ को क्‍यों पढ़ाया जा रहा है जबकि आज कई Modern Programming Languages उपलब्‍ध हैं। वह Post पूरी तरह से इस बात को समझाने पर आधारित था कि C/C++ के आधार पर Professional Software Develop करने वाली Companies में Develop किए गए Software को भविष्‍य में भी Maintain व Extend किया जा सके, इसके लिए ही विभिन्‍न Universities के Degree Level Courses में दशकों बाद भी C/C++ को पढ़ाया जा रहा है ताकि उन Companies में काम करने लायक नए Employees तैयार हो सकें।

आज का ये Post हालांकि उस पिछले Post का ही Extension है लेकिन ये Post उन Degree Level Courses करने वाले Students को ये समझाने के विषय में है कि C/C++ सीखना उनके लिए क्‍यों जरूरी है और वास्‍तव में उन्‍हें C/C++ के माध्‍यम से सीखना क्‍या है?

क्‍योंकि वर्तमान समय में 90% से ज्‍यादा Application Software, C/C++ में नहीं बल्कि JavaC# जैसी अन्‍य Modern व Advanced Programming Languages में Develop किए जा रहे हैं, फिर भी उन्‍हें C/C++ क्‍यों सीखना चाहिए, जिसमें केवल 10% Jobs की सम्‍भावना है जबकि यदि वे वर्तमान में चलने वाली Modern व Advanced Programming Languages में अच्‍छी पकड़ बना लें, तो उन्‍हें Professional Software Development Companies में Job मिलने की सम्‍भावना 90% हो जाएगी।

तो आपकी शंका सही है और इस पोस्‍ट में आपके इसी Doubt को Clear करने की कोशिश करूंगा।

वास्‍तव में देखा जाए तो Program Codes की सबसे बड़ी Library C/C++ से सम्‍बंधित ही है और Software Development से सम्‍बंधित दुनियां का ऐसा कोई भी काम नहीं है जिसके लिए C/C++ की कोई Library पहले से मौजूद न हो। आप जो चाहें, वो कर सकते हैं C/C++ से।

अगर आप Game, Graphics, Animation, Sound Editing जैसे Multimedia Development से सम्‍बंधित Application Develop करना चाहते हैं, विभिन्‍न Operating Systems के लिए DirectX, OpenGL, Simple DirectMedia Layer, Anti-Grain Geometry, Cario, GTK, QT जैसी ढ़ेरों Graphics Library मिल जाऐंगी।

इसी तरह से यदि आप Network Programming करना चाहते हैं, तो CGI Technology के माध्‍यम से C/C++ को Server Side में Use कर सकते हैं और किसी भी C/C++ Library का उपयोग करते हुए Network Programming से सम्‍बंधित अपनी किसी भी तरह की जरूरत को पूरा कर सकते हैं।

चूंकि C/C++ का प्रयोग Pointers के माध्‍यम से Direct Hardware Access करने के लिए भी किया जा सकता है, इसलिए विभिन्‍न प्रकार के Reprogrammable Embedded Software बनाना केवल C/C++ जैसी Programming Languages में ही सबसे आसान होता है और Artificial IntelligenceRobotics जैसी Advanced Technologies से सम्‍बंधित सबसे ज्‍यादा Libraries C/C++ के लिए ही उपलब्‍ध हैं।

लेकिन फिर भी C/C++ दुनियां की सबसे Typical Programming Languages में भी शामिल हैं जिनके CodesConcepts को Properly Handle करना, सालों का Experience रखने वाले Programmers के लिए भी आसान नहीं होता। इसीलिए C/C++ के Alternatives के रूप में कई नई Modern Programming Languages को विकसित किया गया।

और क्‍योंकि 90% Application Software Commercial होते हैं, जिन्‍हे किसी न किसी तरह के Business Purpose को Fulfill करने के लिए ही बनाया गया होता है, इसलिए इन Commercial Applications को C/C++ में Develop करना व Long Term तक Manage, Maintain व Extend करना Practically अपने आप में बहुत जटिल काम हो जाता है। इसीलिए विभिन्‍न प्रकार की जरूरतों को आसानी से व जल्‍दी से पूरा करने के लिए ही नई-नई Programming Languages को विकसित किया गया।

उदाहरण के लिए PHP का प्रयोग करते हुए आप बड़ी ही आसानी से Server Side Scripting कर सकते हैं जबकि PHP वास्‍तव में एक C/C++ based Library ही है। अब जरूरी नहीं है कि Server Side Controlling के लिए आप PHP का ही प्रयोग करें। आप चाहें तो CGI के माध्‍यम से Directly C/C++ Executable Files द्वारा भी अपनी जरूरतें पूरी कर सकते हैं। लेकिन उस स्थिति में आपको ढ़ेर सारी अन्‍य तरह की परेशानियों को भी स्‍वयं ही Resolve करना पड़ेगा जिन्‍हें PHP Use करने पर PHP Interpreter + Apache Server स्‍वयं ही Handle कर लेता है।

उदाहरण के लिए C/C++ Executable File के माध्‍यम से यदि आप किसी User Request को Fulfill करेंगे, तो एक समय में आप केवल एक ही User की Request को Fulfill कर सकते हैं क्‍योंकि जिस User ने CGI (C/C++) के माध्‍यम से Request Send किया है, जब तक Server उस User की Request को पूरा नहीं कर देता, तब तक किसी भी दूसरे User की Request को Fulfill करने के लिए Server की वह Specific C/C++ File उपलब्‍ध नहीं होगी।

इस प्रक्रिया को सरल शब्‍दों में समझें तो यदि दो Computers आपस में LAN के माध्‍यम से Connected हों तो दो User किसी समान MS-Word की File को आपस में Share कर सकते हैं। लेकिन यदि एक User A ने उस File को Open कर लिया, तो दूसरा User B उस File में तब तक कोई Editing नहीं कर सकता जब तक कि पहला User A उस File को Close न कर दे। ठीक इसी तरह से CGI(C/C++) आधारित Web Applications में भी जब‍ तक एक User की Request को Fulfill नहीं कर दिया जाता, तब तक किसी दूसरे User की Request को Fulfill नहीं किया जा सकता। परिणामस्‍वरूप Application की Working निश्चित रूप से Slow होनी ही है।

थोड़ा और सरल उदाहरण लें तो यदि Google को CGI (C/C++) का प्रयोग करते हुए Develop किया गया होता और मैं व आप, दोनों Google पर कुछ Search करते, तो जब तक Google मुझे मेरा Search Result Return नहीं कर देता, तब तक आप Google पर कोई सर्च नहीं कर पाते। अगर गूगल इस तरह से काम करता, तो आप समझ सकते हैं कि शायद आज गूगल का अस्तित्‍व ही नहीं होता।

इस तरह से यदि आप CGI (C/C++) के माध्‍यम से Web Application Develop करते हैं, तो Multi-User Requests को Handle करने की पूरी प्रक्रिया को भी आपको स्‍वयं ही Manage करना पडेगा, नहीं तो आपके Web Application को Limited लोग ही Access कर सकेंगे। लेकिन यदि आप PHP/JSP/ASP.NET का प्रयोग करते हुए अपना Web Application Develop करते हैं, तो आपके Web Application को एक ही समय पर हजारों लोग Access कर सकते हैं क्‍योंकि उन हजारों लोगों को समानान्‍तर रूप से Handle करने का काम PHP/JSP+Apache/Tomcat या ASP.NET+IIS Web Server के साथ मिलकर स्‍वयं ही कर लेता है।

खोदने को तो सुई से भी कुंआ खोदा जा सकता है, लेकिन यदि गेंती-फावड़े का प्रयोग किया जाए, तो कुंआ जल्‍दी खुद जाएगा। बस यही Concept, Software Development पर भी Apply होता है।

Develop करने को तो C/C++ Libraries के माध्‍यम से किसी भी तरह का Application Develop किया जा सकता है, लेकिन Desktop Application Develop करने के लिए VB.NET / C#.NET with WPF ज्‍यादा आसान Solution Provide करते हैं। इसी तरह से Multi-National Companies के Enterprise Level के Applications Develop करने के लिए ASP.NET या Java (JSP/Servlets) ज्‍यादा आसान Solution Provide करते हैं। जबकि Simple Websites / Web Applications Create करने के लिए PHP, Python, Ruby अच्‍छा विकल्‍प हैं।

कहने का सारांश ये है कि हालांकि आपके Syllabus में C/C++ Included हैं और आपको इन्‍हें अच्‍छी तरह से सीखना समझना भी है, लेकिन सभी तरह के Professional Applications Develop करने के लिए आपको C/C++ ही Use करना पड़ेगा, इसलिए आपको C/C++ को अच्‍छी तरह से सीखना चाहिए, ये सोंचना गलत है।

वास्‍तव में जितनी भी Modern Programming Languages हैं, वे पूरी तरह से C/C++ का ही Extended रूप हैं। इसलिए जब आप C/C++ को अच्‍छी तरह से सीखने की कोशिश करते हैं, तो वास्‍तव में Indirectly आप Modern Advanced Programming Languages को ही अच्‍छी तरह से सीखने की कोशिश कर रहे होते हैं और ये समझ रहे होते हैं कि Modern Programming Languages व IDEs कितने कामों को आपकी जानकारी के बिना Internally पूरा कर रहे हैं।

उदाहरण के लिए यदि आपके Syllabus में Computer Graphics का Subject है और आप एक Line Draw करने का Program Turbo C++ Compiler का प्रयोग करते हुए EGAVGA.BGI नाम की Graphics Library के माध्‍यम से बनाते हैं। अब हालांकि Turbo C++ Compiler व उसके लिए Develop की गई EGAVGA.BGI Library 30 साल पहले ही बन्‍द हो चुकी हैं। लेकिन Line Draw करने के लिए लिखे जाने वाले Program का Algorithm आज भी वही है, जैसा 30 साल पहले था। इसलिए आज भी यदि आप उसी Algorithm को C#, VB.NET या Java की Graphics Library का प्रयोग करते हुए Implement करेंगे, तो Line आज भी वैसी ही बनेगी। लेकिन इन Modern Programming Languages में यदि आप Graphics का Program बनाने की कोशिश करेंगे, तो आपको पहले बहुत सारे Compulsory काम करने पड़ेंगे।

उदाहरण के लिए आपको Visual Studio या NetBeans जैसे IDE को Use करना होगा और यदि आप इन IDEs को Use नहीं करते, तो आपको अपने Program को Command Prompt के माध्‍यम से Compile करने के लिए भी ढ़ेर सारे Codes लिखने पड़ेंगे, जिसके अन्‍तर्गत आपको अपनी Program File का नाम व Path, Compiler का नाम व Path, अपने Program में Include की गई सभी Libraries का नाम व Path, Compilation के बाद Generate होने वाली Executable File का नाम व Path आदि ढ़ेर सारी बातों को Specify करना होगा जो कि अपने आप में Program लिखने से ज्‍यादा जटिल है। इस प्रक्रिया को मैंने मेरी EBook C#.NET in Hindi में काफी विस्‍तार से बताया है, ताकि आपको अन्‍दाजा हो सके कि IDE कितने काम Background में Invisibly कर लेते हैं और हमारे Development को आसान बना देते हैं।

तो अब आते हैं इस Post के मूल सवाल पर कि आखिर C/C++ सीखने का मतलब क्‍या है? वास्‍तव में सीखना क्‍या होता है C/C++ से?

जवाब बहुत आसान है लेकिन किसी School / College में ठीक से समझाया नहीं जाता क्‍योंकि स्‍वयं Teachers के दिमाग में भी ये सवाल बना ही रहता है कि जब केवल 10% से भी कम Practical Software Development, C/C++ का प्रयोग करते हुए किया जाता है, तो सभी Degree Level Courses में इन पर इतना महत्‍व क्‍यों दिया जाता है, जिनके चक्‍कर में Modern Programming Languages को केवल Formality के रूप में ही पढ़ाया जा पाता है, जबकि Actual Job तो इन Modern Languages के Knowledge के आधार पर मिलने वाला है?

C और C++ से आपको केवल Programming के Basic Concepts समझने होते हैं। आपको इनमें Master नहीं बनना है।

हालांकि आपने C/C++ का जितना ज्‍यादा अभ्‍यास किया होता है और जितने ज्‍यादा Example Programs Create किए होते हैं, Company में Job लगने के बाद Practical Development के दौरान आपका वही अभ्‍यास Background में महत्‍वपूर्ण Role Play करता है। क्‍योंकि Project Manager, आपको जब भी कोई Task देता है, आपके दिमाग को C/C++ के वे Codes याद आने लगते हैं, जिन्‍हें आपने ठीक उसी तरह के Task को Complete करने के लिए Example Programs में लिखे थे। आपको Task का पूरा Algorithm समझ में आ जाता है और जब एक बार आपको Task का Algorithm समझ में आ जाता है, उसके बाद तो केवल Codes को Modify करना होता है। यानी यदि आप PHP का प्रयोग कर रहे हैं, तो आपको C/C++ के Program को ही PHP के Codes में Convert करना होता है, जो कि ज्‍यादा मुश्किल नहीं होता।

Programming सीखने वाले लगभग सभी लोग Coding सीखने समझने की कोशिश करते हैं जबकि Coding नहीं Concept समझना होता है। अगर आपको Programming का Concept समझ में आ गया, तो दुनियां की किसी भी Programming Language में Coding कर सकते हैं।

इस बात को थोड़ा सरल शब्‍दों में कहूं तो अगर आपको पता है कि Variable और Constant में क्‍या अन्‍तर होता है और किसी Program में कब Variable Use करना चाहिए और कब Constant, तो इस बात से कोई फर्क नहीं पड़ता कि आप C/C++ में Program बना रहे हैं या PHP की Script लिख रहे हैं, दोनों का Final Output समान ही होगा और C/C++ एक ऐसी Programming Language है, जिनमें दुनियां की किसी भी Programming Language के जो भी Programming Concepts हो सकते हैं, वे सभी हैं लेकिन C/C++ में जितने तरह के Programming Concepts Supported हैं, वे सभी किसी भी अन्‍य Programming Language में पूरी तरह से Supported नहीं हैं।

उदाहरण के लिए यदि आप Java को ही लें, तो Java में Pointers का Concept नहीं है। Multiple Inheritance का Concept नहीं है। अब हालांकि आपको तब तक Pointers व Multiple Inheritance की जरूरत नहीं पड़ेगी, जब तक कि आप केवल Java में ही Programming करते हैं लेकिन यदि किसी दिन आपको C# पर Move होना पड़ा, तो आपको इन्‍हें समझना ही पड़ेगा।

अक्‍सर लोग मुझसे SMS, Call, WhatsApp, Email के माध्‍यम से ये सवाल पूछते हैं कि उन्‍हें C/C++ नहीं आता, लेकिन वे Android Developer बनना चाहते हैं, तो क्‍या उन्‍हें पहले C/C++ सीखना जरूरी है या वे सीधे ही Java सीखकर Android Development कर सकते हैं?

सवाल बहुत सीधा सा है और जवाब भी काफी सीधा है।

हां। आपको C/C++ सीखना Compulsory नहीं है और एक Android App Developer बनने के लिए आप सीधे ही Java सीख सकते हैं।

लेकिन फिर आप कभी Native Android App Create नहीं कर सकते, या आप Heavy Graphics वाले Android Games Develop नहीं कर सकते क्‍योंकि Heavy Graphics को Handle करने की Capability केवल C/C++ में ही है और C/C++ का प्रयोग करके ही आप Native Android Games बना सकते हैं।

अगर आपने Pure Java का प्रयोग करते हुए Heavy Graphics वाला Android Game Develop किया, तो उसे आप स्‍वयं भी नहीं खेलेंगे, क्‍योंकि Game का मजा तभी आता है जब उसमें Speed हो और Heavy Graphics वाले Android App में Speed केवल Native Apps के रूप में ही मिलती है जो कि केवल C/C++ की OpenGL-ES या QT जैसी Graphics Library द्वारा ही Possible है और इस Library को आप तभी ठीक से Use कर सकते हैं जबकि आपको C/C++ के Programming Concepts व Pointers का ठीक-ठाक ज्ञान हो।

इसी वजह से C/C++ को 4 दशक बाद भी लगभग प्रत्‍येक Degree Level Course में Included रखा गया है क्‍योंकि C/C++ को अच्‍छी तरह से सीख लेने वाले किसी भी Student के लिए वर्तमान में उपलब्‍ध किसी भी Modern Programming Language या भविष्‍य में आने वाली किसी भी Advanced Future Programming Language को सीखने समझने में ज्‍यादा दिक्‍कत नहीं आएगी, क्‍योंकि जितने भी तरह के Programming Concepts पिछले 4 दशकों में विकसित हुए हैं, वे सभी C/C++ में हैं और जो नई Programming Languages आऐंगी भी, वे C/C++ के किसी न किसी Programming Concept का ही Extended रूप होंगी।

अभी तक के Discussion में आप इतना तो समझ ही गए होंगे कि Programming Language और Library दो अलग चीजें होती हैं और जिस तरह की जरूरत को पूरा करना होता है, उससे सम्‍बंधित Library को ही उससे सम्‍‍‍‍‍‍‍‍बंधित Programming Language के माध्‍‍‍‍यम से Use करना होता।

अब आपको केवल इतना ही समझना है कि हालांकि Different Types की जरूरतों को पूरा करने के लिए Different Types की Libraries को तो Use करना होता है लेकिन इन Different Types की Libraries को Use करने के लिए Different Types की Coding को नहीं सीखना होता।

यानी Libraries हजारों हो सकती हैं लेकिन उन्‍हें Use करने का Core तरीका एक समान ही होता है और वो तरीका होता है Programming Language के Core ConceptsCoding Syntax का।

इसलिए यदि आपको पता है कि Variable क्‍या होते हैं और Constants क्‍या होते हैं, तो फिर इस बात से कोई फर्क नहीं पड़ता कि आप Accounting का Application Develop कर रहे हैं या Graphics का, दोनों ही प्रकार के Applications के लिए Variable व Constant का Concept समान ही रहेगा, केवल इनकी Values Change होंगी।

उदाहरण के लिए यदि आप Graphics का Application Develop कर रहे हैं, तो आपको अपने Program में Graphics से सम्‍बंधित Header Files को Include करना होगा और यदि आप Accounting का Application Develop कर रहे हैं, तो आपको अपने Program में Accounts से सम्‍बंधित Header Files को Include करना होगा। लेकिन दोनों ही प्रकार के Applications में Header Files को Include करने का Core ConceptCode Syntax समान ही रहेगा और C/C++ के अन्‍तर्गत Header Files Include करने के लिए आपको निम्‍नानुसार include Keyword का ही प्रयोग करना होगा:

#include <account.h>
#include <graphics.h>

यानी जब आप C/C++ सीखते हैं, तब आपको विभिन्‍न प्रकार की Libraries को नहीं सीखना होता। यदि आप C/C++ की सभी Libraries को सीखने जाऐंगे, तो 100 साल की जिन्‍दगी भी कम पड़ जाएगी। इसलिए Libraries सीखने की कोशिश न करें, बल्कि C/C++ Programming Language के Core ConceptsCode Syntax को ही समझने की कोशिश करें और किसी भी Programming Language के Core Concepts लगभग काफी हद तक एक समान ही होते हैं।

इसलिए यदि आप किसी एक Programming Language के Core Concepts को ठीक से सीख लेते हैं, तो फिर किसी भी अन्‍य Programming Language के Core Concepts को सीखने की जरूरत नहीं रहती।

उदाहरण के लिए यदि आपने C/C++ के दौरान ये जान लिया कि Variable और Constant क्‍या होते हैं, तो Java, C# या PHP सीखते समय आपको फिर से ये नहीं समझना पडेगा कि Variable और Constants क्‍या होते हैं क्‍योंकि Variable व Constant का Concept या Variable व Constant का मतलब किसी भी अन्‍य Programming Language में वही होता है, जो C/C++ में है।

सरलतम शब्‍दों में कहें तो Programming के Core Concepts (Like Variable, Constant, Array, Looping, Conditional Statements, Structure, Class, File Management, etc… ) को आपको आपके जीवन में केवल एक ही बार सीखना व समझना होता है और ये Core Concepts किसी भी अन्‍य Programming Language के लिए भी लगभग समान ही होते हैं।

अब  जरूरी नहीं है कि Programming के Core Concepts को आप केवल C/C++ द्वारा ही सीख सकते हैं। आप किसी भी Programming Language के माध्‍यम से इन Core Programming Concepts को समझ सकते हैं लेकिन किसी न किसी Programming Language के माध्‍यम से ही इन्‍हे समझा जा सकता है। आप इन Core Concepts को पूरी तरह से Theoretically समझ ही नहीं सकते।

हालांकि सभी Programming Languages के Core Programming Concepts तो एक समान ही होते हैं लेकिन Different Programming Language के Code Syntax एक दूसरे से काफी अलग होते हैं। उदाहरण के लिए-

Variable एक ऐसी Memory Location का नाम होता है जहां Stored Values को पूरे Program के Execution के दौरान Current Program के द्वारा जरूरत के अनुसार समय-समय पर बदला जा सकता है।

अब ये परिभाषा मूलत: Variable क्‍या होता है और क्‍या काम करता है, इस बात को Describe कर रहा है और ये परिभाषा किसी भी Programming Language के लिए समान ही है इसलिए ये एक तरह का Core Concept है। लेकिन जब Variable Declare करने की बात आती है, तब Different Programming Languages में इसे Different Code Syntax के माध्‍यम से Specify किया जाता है। जैसे:

Dim x as Integer  — VB में
int x = 0;         C/C++, Java, C# में
$x = 0;            PHP, Python, Perl में

उम्‍मीद है कि इस Simple से Example द्वारा मैं आपको Programming के Core ConceptsCode Syntax के बीच के अन्‍तर को ठीक से समझा पाया होउंगा।

अब मैं आता हुं अपनी अन्तिम बात पर कि C/C++ के माध्‍यम से आपको मूलत: सीखना क्‍या होता है।

वास्‍तव में C एक Functional Programming Language है और C++ वास्‍तव में C with Class यानी C का ही Extended रूप है, जिसमें विभिन्‍न Programming Concepts को Object Oriented Programming Pattern के अनुसार Design किया गया है ताकि बडे Applications को आसानी से Develop, Upgrade, Modify, ExtendMange किया जा सके।

इसलिए जब आप C Language सीखते हैं, तब आपको मूलत: Programming के Core Concepts को ही सीखना समझना होता है। यानी आपको ये जानना होता है कि Program बनते कैसे हैं और किस तरह की जरूरत को पूरा करने के लिए किस Programming Concept का प्रयोग किया जाता है?

उदाहरण के लिए Variable का प्रयोग एक Single Value को Temporarily Hold करने के लिए किया जाता है, जबकि Array का प्रयोग एक ही प्रकार की ढे़र सारी Values को Hold करने के लिए किया जाता है और Structure का प्रयोग Different Types की ढेर सारी Values को एक Single Entity के रूप में Hold करने के लिए किया जाता है।

जब एक ही प्रकार के Statement को बार-बार Execute करना होता है, तब Looping Statements (for, while, do…while) का प्रयोग किया जाता है और जब Different Types की Condition के आधार पर Specific Program Codes का Execution करना होता है, तब Conditional Statements (if, if…else, elseif, switch) का प्रयोग किया जाता है।

जब Data को केवल Process करके Temporarily ही Hold करना होता है, तब उसे Variable, Array या Structure में रखा जाता है लेकिन जब उसे Future में फिर से Reuse करने की जरूरत होती है, तब उसे Secondary Storage में File के रूप में Store किया जाता है। आदि … आदि …

इसी तरह से जब आप C++ सीखते हैं, तब आपको मूलत: C++ Code Syntax के माध्‍यम से OOPS (Object Oriented Programming System) Design Pattern के विभिन्‍न Concepts जैसे कि Abstraction, Encapsulation, Data Hiding, Message Passing, Class, Object, Inheritance, Polymorphism आदि को समझना होता है जबकि इन सभी OOPS Concepts को Implement करने का काम C के Code Syntax के माध्‍यम से ही किया जाता है। इसीलिए सामान्‍यत: C व C++ को अलग-अलग Specify नहीं किया जाता बल्कि C/C++ के रूप में साथ ही लिखा जाता है क्‍योंकि वास्‍तव में ये दो Programming Languages नहीं बल्कि एक ही Programming Language के दो हिस्‍से हैं।

ये सभी चीजें वास्‍तव में Core Programming Concepts हैं और यदि आप C/C++ सीखते हैं, तो Basically आपको इन्‍हीं Core Concepts को C/C++ Code Syntax के माध्‍यम से सीखना होता है और एक बार जब आप इन Core Concepts को सीख समझ लेते हैं, तो उसके बाद आप किसी भी अन्‍य Modern Programming Language जैसे कि C#, Java, PHP, Python, etc… को आसानी से सीख सकते हैं क्‍योंकि इन सभी में Core Concept Exactly C/C++ के समान ही होते हैं। आपको तो बस Modern Programming Language के Code Syntax ही सीखने होते हैं जिसमें कि 3 महीने से ज्‍यादा का समय नहीं लगता।

लेकिन यदि आपको ये Core Programming Concepts ठीक से Clear नहीं हैं, तो आपको किसी भी Programming Language को सीखने में खूब समय लगेगा। इसलिए आप जितना ज्‍यादा समय इन Core Concepts को ठीक से सीखने समझने में लगाते हैं, आपको उतना ही कम समय नई Languages को सीखने समझने में लगता है।

इसीलिए कहा जाता है कि यदि आपकी C/C++ पर ठीक पकड़ है, तो ही आप अच्‍छे Programmer बन सकते हैं क्‍योंकि C/C++ में वो सबकुछ है, जिसकी जरूरत एक Professional Application Developer बनने के लिए हो सकती है।

इसी वजह से आज भी Job Interview में C/C++ से सम्‍बंधित सवाल ही ज्‍यादा पूछे जाते हैं क्‍योंकि Programming के Core Concepts को ठीक से समझाने की व्‍यवस्‍था C/C++ में ही है और यदि आप C/C++ ठीक से जानते हैं तो इसका मतलब यही है कि आप Modern Programming के सभी Core Concepts को ठीक से जानते हैं। इसलिए आप बड़ी ही आसानी से किसी भी Language या Technology पर Upgrade कर सकते हैं।

उम्‍मीद है, ये Post आपको समझने में उपयोगी रहा होगा कि एक Successful Professional Programmer बनने के लिए C/C++ के माध्‍यम से मूलत: आपको सीखना क्‍या है ताकि आप आसानी से Job Crack कर सकें और जरूरत के अनुसार जब चाहें तब Upgrade हो सकें।

यदि आपको ये Post ज्ञानवर्धक व उपयोगी लगा हो तो अपने Friends and Followers के साथ Like/Share कर दीजिए और कोई शंका या सवाल हो, तो Comment कर दीजिए। यथासम्‍भव मैं आपके सवाल का Appropriate जवाब देने की कोशिश जरूर करूंगा।

Comments

  1. thank you sir , i am follow in tips & learn the good programing concept in used.

  2. Sir ..
    Muje C & C++(OOps) k core Concept and syntax aate h,or Java (core) b concept pta h,,,
    but ek Application(Software) kese Develop karte,, ye Samj nhi aata..

    I am student BCA -5 SEM (IGNOU)

  3. Shankar Kumar Mandal says:

    is tarah se guide karne ke liye bahut -bahut dhanyavad . aasha karta hu ki aap aise hi hame guide karte rahenge.
    jab se aap se communication hua tab se maine bahut kuchh sikha hu . aap mere guru saman ho .

Leave a Comment

*

Download All EBooks

सभी हिन्दी EBooks के DEMO DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।