C++ अभी भी शीर्ष पर क्यों है, और पोर्टफोलियो सब कुछ कैसे तय करता है
\n\nआपने शायद सुना होगा: "C++ कठिन है", "C++ मर रहा है" और इसी तरह की अन्य डरावनी बातें। वास्तविकता यह है: C++ अभी भी गेमडेव, उच्च-लोड सिस्टम, वित्त और एम्बेडेड डेवलपमेंट में राज करता है। इसके बिना न तो Unreal Engine, न Chromium, न ही MySQL स्तर के डेटाबेस चल सकते हैं।
\n\nलेकिन एक समस्या है: सिंटैक्स सीखना आधा काम है। नियोक्ता डिप्लोमा नहीं, बल्कि पोर्टफोलियो के लिए C++ प्रोजेक्ट देखना चाहता है, जहां आर्किटेक्चर, मेमोरी प्रबंधन और वास्तविक समस्याओं को हल करने की क्षमता दिखाई दे। यही कारण है कि हमने 10 विचार एकत्रित किए हैं - सरल से लेकर उन्नत तक। प्रत्येक विचार कोड उदाहरण और स्पष्टीकरण के साथ दिया गया है कि यह किस कौशल को बढ़ाता है।
\n\nएक ऐसा पोर्टफोलियो बनाने के लिए तैयार हैं जिससे HR के रोंगटे खड़े हो जाएं? चलिए शुरू करते हैं।
\n\n1. कंसोल में टेक्स्ट एडिटर (nano-like)
\nकठिनाई: शुरुआती
\nकौशल: फ़ाइलों के साथ काम, स्ट्रिंग्स, टर्मिनल प्रबंधन
एक क्लासिक जो कभी पुराना नहीं होता। आप फ़ाइलों को खोलने, संपादित करने और सहेजने के साथ एक सरल एडिटर बनाते हैं। fstream के साथ काम करना, कीप्रेस को संभालना और बफर को प्रबंधित करना सीखेंगे।
#include <iostream>\n#include <fstream>\n#include <string>\n#include <vector>\n\nclass TextEditor {\nprivate:\n std::vector<std::string> lines;\n std::string filename;\npublic:\n void open(const std::string& file) {\n filename = file;\n std::ifstream in(file);\n std::string line;\n while (std::getline(in, line)) {\n lines.push_back(line);\n }\n }\n void save() {\n std::ofstream out(filename);\n for (const auto& line : lines) {\n out << line << '\\n';\n }\n }\n void run() {\n // यहां इनपुट प्रोसेसिंग लूप होगा\n }\n};\n\n2. सरल HTTP-सर्वर (एकल-थ्रेडेड)
\nकठिनाई: मध्यम
\nकौशल: सॉकेट्स, नेटवर्क प्रोटोकॉल, अनुरोध प्रसंस्करण
एक सर्वर लिखें जो HTTP GET अनुरोधों को स्वीकार करता है और स्थिर फ़ाइलें प्रदान करता है। यह समझने के लिए स्वर्ण मानक है कि इंटरनेट कैसे काम करता है। Linux पर sys/socket.h या Windows पर winsock2.h का उपयोग करें।
#include <iostream>\n#include <cstring>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <unistd.h>\n\nint main() {\n int server_fd = socket(AF_INET, SOCK_STREAM, 0);\n sockaddr_in address;\n address.sin_family = AF_INET;\n address.sin_addr.s_addr = INADDR_ANY;\n address.sin_port = htons(8080);\n\n bind(server_fd, (struct sockaddr*)&address, sizeof(address));\n listen(server_fd, 3);\n\n std::cout << "Server started on port 8080\\n";\n // accept और अनुरोध पढ़ने का लूप\n return 0;\n}\n\nC++ पोर्टफोलियो में ऐसा प्रोजेक्ट तुरंत दिखाता है कि आप OSI मॉडल को समझते हैं और निम्न-स्तरीय नेटवर्क इंटरफेस के साथ काम करना जानते हैं।
\n\n3. ग्राफिकल इंटरफेस के साथ टास्क मैनेजर (To-Do List)
\nकठिनाई: मध्यम
\nकौशल: Qt या SFML, MVC-पैटर्न, डेटाबेस (SQLite) के साथ काम
कार्यों को जोड़ने, हटाने और क्रमबद्ध करने वाला एप्लिकेशन बनाएं। Qt लाइब्रेरी का उपयोग करें - इससे आपको सिग्नल और स्लॉट की समझ मिलेगी, साथ ही GUI के साथ काम करने का कौशल भी। sqlite3.h के माध्यम से SQLite में स्टोरेज जोड़ें।
#include <QApplication>\n#include <QMainWindow>\n#include <QListWidget>\n#include <QPushButton>\n\nint main(int argc, char *argv[]) {\n QApplication app(argc, argv);\n QMainWindow window;\n window.setWindowTitle("Task Manager");\n \n QListWidget* list = new QListWidget(&window);\n QPushButton* addBtn = new QPushButton("Add Task", &window);\n \n // लेआउट और सिग्नल कनेक्शन\n window.show();\n return app.exec();\n}<