ప్రోగ్రామింగ్ లో డేటా స్ట్రక్చర్లు, అల్గారిథమ్స్ అన్నింటికన్నా ప్రధానమైన అంశాలు. అల్గారిథం అంటే ఒక సమస్యను సాధించడానికి పాటించే సోపానాల క్రమం. దీనికి ప్రోగ్రామింగ్ భాషతో సంబంధం లేదు. ఒక అల్గారిథం రూపకల్పన చేస్తే దాన్ని ఏ భాషలోనైనా ఇంప్లిమెంట్ చెయ్యవచ్చు. అల్గారిథం రూపకల్పన చేసే పద్దతులు విభజించు-పాలించు (డివైడ్ అండ్ కంకర్), గ్రీడీ మెథడ్, డైనమిక్ ప్రోగ్రామింగ్, బ్యాక్ట్రాకింగ్ మొదలైనవి. ఒక్కో పద్దతి ఒక మూస లాంటిది. కంప్యూటర్ సైన్సులో సాధారణంగా ఎదురయ్యే సమస్యలను వీటిలో ఏదో ఒక పద్దతినుపయోగించి అల్గారిథం ను రూపకల్పన చేస్తుండటం పరిపాటి. ప్రతి పద్ధతి లోనూ కొన్ని అల్గారిథమ్స్ ఉన్నాయి. వాటిని గురించి అవగాహన ఏర్పరుచుకోవాలి. ప్రోగ్రాంలో విశ్లేషించాల్సిన సమాచారాన్ని పలురకాలుగా నిర్వహించుకోవచ్చు. ఇలా అవసరం కోసం ఒకచోట కూర్చిన సమాచారాన్ని డేటాస్ట్రక్చర్ అనవచ్చు. ప్రోగ్రాం అవసరాలను బట్టి రకరకాల డేటాస్ట్రక్చర్స్ అందుబాటులో ఉన్నాయి. ఈ రెండు అంశాల మీద స్పష్టమైన అవగాహన వస్తే మీరు ఇంటర్వ్యూను సగభాగం జయించినట్లే.
దృష్టి పెట్టవలసిన అంశాలు:
- C భాషలో ఆరేస్, పాయింటర్స్, స్ట్రక్చర్స్, యూనియన్స్, ఆపరేటర్ ప్రెసిడెన్స్, ఫంక్షన్స్ -కాల్ బై వాల్యూ, కాల్ బై రెఫరెన్స్, డైనమిక్ మెమరీ అల్లొకేషన్, బిట్ మ్యానిప్యులేషన్ ప్రోగ్రామ్స్ మొదలైన అంశాలన్నింటిపై స్పష్టమైన అవగాహన ముఖ్యం. చాలా ఇంటర్వ్యూల్లో స్ట్రింగ్స్ మీద ఎక్కువగా ప్రశ్నలు అడుగుతుంటారు. ఈ అంశాలు యశ్వంత్ కనిత్కర్ రాసిన Let us ‘C’, Test your C skills (BPB Publications) పుస్తకాల్లో సులభశైలిలో వివరించబడి ఉన్నాయి.
- ప్రస్తుతం సాఫ్ట్వేర్ రంగంలో ఆబ్జెక్ట్ ఓరియంటెడ్ ప్రోగ్రామింగ్ భాషలదే రాజ్యం. C++, జావా, C# ఇవన్నీ బిజినెస్ అప్లికేషన్లలో విడదీయరాని భాగాలు. కాబట్టి ఆబ్జెక్ట్ ఓరియంటెడ్ ప్రోగ్రామింగ్ భావనలైన డేటే ఎన్క్యాప్సులేషన్, ఇన్హెరిటెన్స్, పాలీమార్ఫిజమ్, మరియు వీటిని ఉదహరించడానికి అవసరమైన ప్రోగ్రాముల మీద దృష్టి సారించడం అవసరం.
- కంప్యూటర్ ఆర్కిటెక్చర్ : ప్రాసెసర్, వాటి ఆదేశాలు (ఇన్స్ట్రక్షన్స్), మెమొరీ వ్యవస్థ, నెట్వర్కింగ్ లాంటి హార్డ్వేర్ లాంటి అంశాలు.
- నిర్వహణా వ్యవస్థ(ఆపరేటింగ్ సిస్టమ్): మెమరీ మేనేజ్మెంట్, షెడ్యూలింగ్ అల్గారిథమ్స్, కంకరెన్సీ, డెడ్ లాక్స్, ఫైల్ సిస్టమ్ నిర్వహణ ఈ సబ్జెక్టులో శ్రద్ధ చూపాల్సిన అంశాలు.
- డేటా స్ట్రక్చర్స్ : స్టాక్స్, క్యూస్ – వాటి నిర్వచనాలు, వాటిమీద నిర్వహించగలిగే ఆపరేషన్స్, వీటిని అరేస్తో, లింక్డ్ లిస్ట్స్తో ఎలా ఇంప్లిమెంట్ చేయాలి? లింక్డ్ లిస్ట్స్ (సింగిల్ లింక్డ్ లిస్ట్, డబుల్ లింక్డ్ లిస్ట్), ప్రయారిటీ క్యూస్, బైనరీ ట్రీస్- ఇన్సర్షన్, డెలిషన్, ట్రావెర్సల్స్- ట్రీస్, గ్రాఫ్స్, వాటికి సంభందించిన వివిధ ప్రోగ్రాములు.
- అల్గారిథమ్స్: సార్టింగ్, సర్చింగ్ అల్గారిథమ్స్ ప్రాథమికాంశాలు. చూడ్డానికి చాలా సంక్లిష్టంగా కనిపించే కొన్ని కంప్యూటర్ ప్రోగ్రాంలు రికర్షన్ అనే పద్ధతి ద్వారా చాలా సులువుగా సాధించవచ్చు. ఈ పద్ధతిలో ఒక సమస్యను దానినే పోలిన చిన్న సమస్యగా సూత్రీకరిస్తారు. చిన్న సమస్యను సాధిస్తే పెద్ద సమస్య దానంతట అదే పరిష్కారమవుతుంది. ఇవి రాయడానికి సులభంగానే ఉంటాయి కానీ విశ్లేషించడం కష్టం. కాబట్టి ఈ రికర్షన్ అల్గారిథమ్స్ పై ప్రత్యేక శృద్ధ చూపించాలి.
- డేటాబేస్ : ప్రస్తుతం కంపెనీల్లో వాడే పెద్ద పెద్ద సాఫ్ట్వేర్ లన్నీ డేటాబేస్ల ఆధారంగా నడుస్తున్నాయి కాబట్టి వీటి గురించిన ప్రాధమికాంశాల మీద అవగాహన ఏర్పరుచుకోవాలి. డేటాబేస్ డిజైన్ కు సంబంధించిన నార్మల్ ఫామ్స్, డేటాబేస్ నుంచి సమాచారాన్ని సేకరించడానికి వాడే ప్రామాణిక భాష సీక్వెల్ (SQL) మొదలైనవి ముఖ్యమైన అంశాలు.
- వెబ్ మరియు ఇంటర్నెట్: వెబ్ ఆధారిత అప్లికేషన్లు ఎక్కువ సంఖ్యలో చలామణీ అవుతున్నాయి కాబట్టి వీటి గురించి కనీసం ప్రాథమిక అవగాహన అయినా ఉండి తీరాలి.
- సాఫ్ట్వేర్ ఇంజనీరింగ్ అంశాలు: సాఫ్ట్వేర్ అభివృద్ధి జీవిత చక్రం (Software Development Life Cycle), టెస్టింగ్, మరియు నిర్వహణ మొదలైన అంశాల మీద అవగాహన ఏర్పరుచుకోవాలి.