ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಮರುಸೃಷ್ಟಿಸುವ ಮೂಲಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ ಪರಿಣತಿ ಪಡೆಯಿರಿ
ನೀವು ಪ್ರತಿದಿನ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು (frameworks) ಮತ್ತು ಲೈಬ್ರರಿಗಳನ್ನು (libraries) ಬಳಸುತ್ತೀರಿ. ಅವುಗಳ APIಗಳನ್ನು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ನಿಮಗೆ ತಿಳಿದಿದೆ. ಆದರೆ ಅವು ಒಳಗಿನಿಂದ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ ಎಂಬುದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ.
'Build Your Own X' ತತ್ವಶಾಸ್ತ್ರವು ಇದನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನೀವು ಮೂಲಭೂತ ಪರಿಕರಗಳನ್ನು ಮೊದಲಿನಿಂದම (from scratch) ಮರುಸೃಷ್ಟಿಸುತ್ತೀರಿ.
ಆಧುನಿಕ ಪರಿಕರಗಳು ಸಂಕೀರ್ಣತೆಯನ್ನು ಮರೆಮಾಚುತ್ತವೆ. ಈ ವಿಧಾನವು ಆ ಪದರಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಇಂಜಿನಿಯರ್ಗಳು ಪ್ರತಿದಿನ ಎದುರಿಸುವ ನೈಜ ಸಮಸ್ಯೆಗಳನ್ನು ನೀವು ಇಲ್ಲಿ ಎದುರಿಸುತ್ತೀರಿ.
ನೀವು ಇದನ್ನು ಏಕೆ ಮಾಡಬೇಕು:
• ಆಳವಾದ ತಿಳುವಳಿಕೆ: ಪರಿಕರಗಳು ಏಕೆ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಮತ್ತು ಅವುಗಳ ನಡುವಿನ ಸಮತೋಲನವನ್ನು (trade-offs) ನೀವು ಕಲಿಯುತ್ತೀರಿ. • ಸಮಸ್ಯೆ ಪರಿಹಾರ: ನಿಮ್ಮ ವಾಸ್ತುಶಿಲ್ಪದ ಆಲೋಚನೆಯನ್ನು (architectural thinking) ಬೆಳೆಸುವ ವಿನ್ಯಾಸದ ಸವಾಲುಗಳನ್ನು ನೀವು ಎದುರಿಸುತ್ತೀರಿ. • ಉತ್ತಮ ಡಿಬಗ್ಗಿಂಗ್ (Debugging): ಕೋಡ್ ವಿಫಲವಾದಾಗ ಎಲ್ಲಿ ಹುಡುಕಬೇಕೆಂದು ನಿಮಗೆ ತಿಳಿದಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಅದರ ಆಂತರಿಕ ಕಾರ್ಯವೈಖರಿ ನಿಮಗೆ ತಿಳಿದಿರುತ್ತದೆ. • ವೃತ್ತಿಜೀವನದ ಬೆಳವಣಿಗೆ: ಒಂದು ಪರಿಕರದ ಹಿಂದಿರುವ 'ಹೇಗೆ' ಮತ್ತು 'ಏಕೆ' ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಅಭ್ಯರ್ಥಿಗಳಿಗೆ ಸಂದರ್ಶಕರು ಹೆಚ್ಚಿನ ಮೌಲ್ಯ ನೀಡುತ್ತಾರೆ.
ಸಣ್ಣದಾಗಿ ಪ್ರಾರಂಭಿಸಿ. ನೀವು ಪದೇ ಪದೇ ಬಳಸುವ ಯಾವುದನ್ನಾದರೂ ಆರಿಸಿಕೊಳ್ಳಿ.
ನಿಮ್ಮ ಮೊದಲ ಪ್ರಾಜೆಕ್ಟ್ಗಾಗಿ ಕೆಲವು ಐಡಿಯಾಗಳು:
- HTTP ವಿನಂತಿಗಳನ್ನು (requests) ನಿರ್ವಹಿಸಲು ಒಂದು ಸರಳ ವೆಬ್ ಸರ್ವರ್.
- ಉದ್ದವಾದ ಲಿಂಕ್ಗಳನ್ನು ಸಣ್ಣ ಕೋಡ್ಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಲು ಒಂದು URL ಶಾರ್ಟ್ನರ್ (URL shortener).
- ಮೆಮೊರಿಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಉಳಿಸಲು ಒಂದು ಕೀ-ವ್ಯಾಲ್ಯೂ ಸ್ಟೋರ್ (key-value store).
- ಕಮಾಂಡ್-ಲೈನ್ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪಾರ್ಸರ್ (command-line argument parser).
- ರೂಟಿಂಗ್ ಮತ್ತು ವ್ಯೂಸ್ಗಳಿಗಾಗಿ ಒಂದು ಸಣ್ಣ MVC ಫ್ರೇಮ್ವರ್ಕ್.
ಪ್ರೊಡಕ್ಷನ್ ಪರಿಕರವನ್ನು (production tool) ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸಬೇಡಿ. ಸದ್ಯಕ್ಕೆ ಭದ್ರತೆ ಅಥವಾ ವೇಗದ ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಡಿ. ಕೇವಲ ಮೂಲ ತರ್ಕದ (core logic) ಮೇಲೆ ಗಮನ ಹರಿಸಿ.
ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:
- ನೈಜ ಪರಿಕರದ ಬಗ್ಗೆ ಸಂಶೋಧನೆ ಮಾಡಿ. ಡಿಸೈನ್ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಓದಿ ಮತ್ತು ಓಪನ್-ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ಗಮನಿಸಿ.
- ಮೂಲ ಭಾಗಗಳನ್ನು ಗುರುತಿಸಿ. ವೆಬ್ ಸರ್ವರ್ಗೆ ಸಾಕೆಟ್ಗಳು (sockets), ಪಾರ್ಸರ್ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಕಳುಹಿಸುವ ವಿಧಾನದ ಅಗತ್ಯವಿರುತ್ತದೆ.
- ಕನಿಷ್ಠ ವೈಶಿಷ್ಟ್ಯಗಳ ಗುಂಪನ್ನು (minimum feature set) ವ್ಯಾಖ್ಯಾನಿಸಿ. ನೀವು URL ಶಾರ್ಟ್ನರ್ ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ, ಮ್ಯಾಪಿಂಗ್ ಮತ್ತು ರಿಡೈರೆಕ್ಟಿಂಗ್ ಮೇಲೆ ಗಮನಹರಿಸಿ. ಸದ್ಯಕ್ಕೆ ಬಳಕೆದಾರರ ಖಾತೆಗಳು ಮತ್ತು ಅನಾಲಿಟಿಕ್ಸ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡಿ.
ನಿಮಗೆ ತಿಳಿದಿರುವ ಅಥವಾ ಕಲಿಯಲು ಬಯಸುವ ಭಾಷೆಯನ್ನು ಆರಿಸಿಕೊಳ್ಳಿ. ಗುರಿ ತರ್ಕವನ್ನು (logic) ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು, ಸಿಂಟ್ಯಾಕ್ಸ್ (syntax) ಅಲ್ಲ.