In ஜாவா

ஜாவா எங்கேயிருந்து தொடங்கலாம்

ஜாவா படிப்பதாய் இருந்தால் எங்கிருந்து படிக்கலாம் அதற்கு எந்தப் புத்தகங்கள் உதவக்கூடும் என்பவை பற்றி முன்பு எழுதுவதாய்ச் சொல்லியிருந்தேன். சில பல தடங்குதல்கள் காரணமாய் எழுத முடியாமல் போயிருந்தது. அதை இப்பொழுது தொடர உத்தேசம், முடிந்த அளவிற்காவது.

கல்லூரிகளில் ஜாவா படித்துவிட்டு வருபவர்கள் எங்கள் காலங்களில் குறைவாகவேயிருந்தார்கள். என் அக்காவிற்கு MCAவில் கடைசி செமஸ்டரில் இருந்தது என்று நினைக்கிறேன், என் அக்கா கொஞ்சம் பழைய செட், என் பிஎஸ்ஸி செட்டில் எல்லாம் ஜாவா பாடப்பகுதியில் இருந்தது. ஆனால் நான் படிக்கும் பொழுது கிளப்பப்பட்ட சில பல புரளிகளில் ஜாவா இறந்து போய்விட்டது என்பது போன்ற காரணங்களாலும் இயல்பாகவே VB.net கொஞ்சம் வசதியானது என்பதாலும் ப்ராஜக்ட் செய்ய நினைத்த இரண்டாம் ஆண்டிலேயே நான் இயல்பாக VB.netற்கு தாவியிருந்தேன். ஆனால் 2000த்தின் தொடக்கத்தில் ஏற்பட்ட பாதிப்புக்களில் இருந்து ஜாவா மீண்டு வந்தது.(அதைப்பற்றி இன்னொரு நாள் எழுதுகிறேன் - ரெஃபரன்ஸ் பார்க்கவேண்டும் :))

சரி கல்லூரிகளில் ஜாவா படித்துவிட்டு வருபவர்களுக்கும், ஜாவா படிக்காமல் வருபவர்களுக்கும் பெரிய வித்தியாசம் இருக்காது என்றே நான் நினைக்கிறேன். ஆனால் இது கல்லூரிக்கு கல்லூரி மாறுபடலாம், எங்கள் கல்லூரியில் யுனிவர்சிட்டி கொடுத்திருந்த ப்ராக்டிகல் ப்ரொக்கிராம்களை எரர் இல்லாமல் கம்பைல் செய்து ரன் செய்வது என்பதே பெரிய அறிவுஜீவித்தனம். ஆனால் எல்லாக் கல்லூரிகளும் அப்படியிருக்காது. எனவே இதை கம்ப்யூட்டர் சைன்ஸ் மேஜர் படித்தவர்கள், கம்ப்யூட்டர் தவிர்த்த மற்ற சப்ஜெக்ட் மேஜர் படித்தவர்கள் என்று பிரித்துவிடமுடியாது நிச்சயமாய். நான் காலேஜ் முடித்து வரும் பொழுதெல்லாம் க்ளாஸ், மெத்தேட், இன்டர்பேஸ் போன்றவைகள் கண்களுக்கு தட்டுப்படாமல் பூமியில் சுற்றும் விஷயங்களாகவேயிருந்தது. ஒரு க்ளாஸ் டிக்ளேர் செய்து அதில் நாலைந்து மெத்டேட்கள், கூட்ட, கழிக்க, வகுக்க, பெருக்க என்று போடச்சொல்லியிருந்தால் போட்டிருப்பேனா தெரியாது :). கம்பைலர் கையில் கொடுத்தால் எழுதியிருப்பேன் ஆனால் பேப்பரில் பேனாவால் எழுதத் தெரியாது இது இரண்டிற்கும் வித்தியாசம் உண்டு. ப்ராக்டிக்கலா ரொம்பவும் திறமையாக இல்லாமல் நல்ல மதிப்பெண் வாங்கிவிடமுடியும் கல்லூரிகளில், ஆனால் இன்டர்வியூ என்று வரும் பொழுது ப்ராக்டிகலா எவ்வளவு யோசிக்கிறீங்க என்பது தான் ரொம்பவும் முக்கியமாயிருக்கும்.

சரி நீங்கள் கல்லூரியில் கம்ப்யூட்டர் சைன்ஸ் மேஜர் எடுத்தவரோ இல்லையோ, கணிணி மொழிகள் பற்றிய லேசான அறிமுகம் இருக்குமானால் உங்களால் ஜாவாவில் தாக்குப்பிடிக்க முடியும் தான். ஆனால் சி, சி++ என்று முடித்துவிட்டு ஜாவா வந்தீர்கள் என்றால் இன்னும் வசதி. ஆனால் என்னைக் கேட்டால் இன்றைக்கு சூழ்நிலையில் ஜாவாவில் புதிதாய் வேலை தேடப்போகிறீர்கள் என்றால் சி, சி++ படிக்காதீர்கள் நேரடியாய் தைரியமாய் ஜாவாவில் குதித்து விடுங்கள். கொஞ்ச நாள் மெனக்கெட்டு கம்ப்யூட்டர் எப்படி வேலை செய்கிறது என்பதை தெரிந்து கொள்ளுங்கள் ஜெனரல் நாலேட்ஜ் அளவில். பின்னர் சின்னச் சின்ன ஜாவா ப்ரொக்கிராம்கள் எழுதிப் பார்க்கத் தொடங்கலாம். Java 2 Complete Reference by Herbert shield நிச்சயமாய் ஜாவாவை மொத்தமாகத் தெரிந்து கொள்ள உதவும். பெரிய அளவில் இறங்காமல் சின்னச் சின்ன ப்ரொக்ராம்கள் போடவும், ஆனால் கான்செப்டை சரியாகக் கற்றுக் கொள்ளவும் முயலலாம். எனக்குத் தெரிந்து ஜாவாவில் எந்த முறையில் முன்னேறுவது எதை  முதலில் படிப்பது எதை பிற்பாடு படிப்பது என்பதில் உங்களுக்கு சந்தேகம் வருமானால் நான் சொல்லும் தீர்வு, Head First Java புத்தகத்தின் வழி நடப்பது இது ஜாவாவின் முதல் சர்டிபிகேஷனான SCJPக்காக எழுதப்பட்டது. இந்த வழியில் நிச்சயம் பயிற்சி செய்யலாம், அவர்கள் சிலபஸைக் கவர் செய்வது போல் ஒரு மிகச்சரியான பேஸை உங்களுக்கு உருவாக்கிவிடுவார்கள்.

static என்றால் என்ன எப்படி உபயோகப்படுத்தப் படுகிறது, க்ளாஸ் லெவலில்(Class Level), மெத்தேட் லெவலில்(Method Level), வேரியபிள் லெவலில்(Variable Level) எப்படி உபயோகப்படுத்தப்படுகிறது என்பதை முதலில் புரிந்து கொள்ள முயற்சி செய்யுங்கள். இதற்கு கொஞ்சம் PSVM மெத்தேட்கள் எழுதி உங்கள் திறமையை பரிசோதனை செய்து பார்க்கலாம். என் வரையில் ஜாவாவில் இதுதான் ஆரம்பமாகயிருக்க வேண்டும், static ல் இருந்து தொடங்கினால் சரியாகவரும். மூன்று நான்காண்டுகள் வரை எல்லா இன்டர்வியூவிலும் கேட்கப்படும் கேள்வி static பற்றியது, இதில் குழப்பம் இல்லாமல் பதில் சொன்னீர்கள் என்றால் கேள்வி கேட்பவரின் நம்பகத்திற்கு பாத்திரமாவீர்கள்.(இன்டர்வியூவில் இரண்டு விதங்களில் கேள்விகள் தொடங்கும், பெரும்பாலும் இவை கம்பெனிகளைப் பொறுத்து மாறும். ஒன்று ப்ரொஜக்டில் இருந்து தொடங்கி, ஆர்க்கிடெக்சர், Structs, Spring என்று நீண்டு பின்னர் கொஞ்சம் கொஞ்சமாய் JSP, Servlet என்று இறங்கி பின்னர் Core Javaவில் வந்து நிற்கும். மற்றது அப்படியே உல்டா, எங்கள் கம்பெனியில் முதலில் ப்ரொஜக்ட் பின்னர் ஆர்க்கிடெக்சர்(அப்படி எதுவும் ரெஸியூமில் சொல்லியிருந்தால்) பின்னர் Core Javaவிற்கு வந்துவிடுவோம்) இதை ஏன் சொல்கிறேன் என்றால் எந்தக் கம்பெனியிலும் இங்கிருந்து தொடங்கி இங்கே நகரவேண்டும் என்று எந்த கட்டளையும் இன்டர்வியூ எடுப்பவர்களுக்கு இருக்காது(எங்களைப் பொறுத்தவரை மற்றும் நான் இன்டர்வியூ சென்ற வரையில்). ஆனால் பெரும்பாலும் நான் சொன்ன இரண்டு முறைகளில் ஒன்றாகத்தான் இருக்கும்.

நாங்கள் Core Java ஒழுங்கா விடை சொன்னால் போதுமென்றே நினைப்போம், ஆனால் Core Javaவில் ஏகப்பட்ட கேள்விகள் கேட்கப்படும். பெரும்பாலும் Servlet JSP என்று இறங்க மாட்டோம். ஏனென்றால் எங்கள் கம்பெனியில் நேரடியாக Servletடிலோ(எந்தக் கம்பெனியிலும் Servletல் கோட் எழுதக் கொடுக்க மாட்டார்கள்! இப்பொழுதெல்லாம் Front Controller Servlet என்று ஒரே ஒரு Servlet தான் இருக்கும் அதுவும் ஏற்கனவே எழுதப்பட்டதாக இருக்கும் நான் Structsஐ மட்டும் வைத்துச் சொல்லவில்லை, அதை ஒத்தோ இல்லை வேறு ஆர்க்கிடெக்சரிலோ கூட அப்படித்தான் - கொஞ்சம் பழைய முறையில் இன்னமும் Servlet நிறைய எழுதுவார்களாயிருக்கும்) JSPயிலோ கோட் எழுதும் முறை கிடையாது. இது கொஞ்சம் வித்தியாசமான அப்ரோச் அதற்கு கோர் ஜாவா நன்றாய்த் தெரிந்திருக்க வேண்டிய அவசியம் தான் அதிகம் இருக்கும். அதனால் அப்படி.

இதனால் static கிற்குப் பிறகு புரிந்துகொள்ள வேண்டிய முக்கியமான விஷயம், ஓவர் லோடிங்(Over Loading), ஓவர் ரைடிங்க்(Overriding) கான்செப்டுகள். இங்கே static போல் final key wordன் முக்கியத்துவத்தையும் புரிந்து கொள்ளவேண்டியது முக்கியம். நாங்கள் இன்டர்வியூவில் சுற்றுச்சுற்றி க்ளாஸ்களும் மெத்தேட்களும் எழுதி வெறும் static, final key wordகளை மாற்றிப் போட்டு ஏகமாய்க் கேள்விகள் கேட்போம். தடுமாறாமல் இந்தக் கேள்விகளுக்கு பதில் சொன்னாலே நிச்சயம் எடுத்துவிடுவோம். எங்கள் கம்பெனி மட்டுமல்ல பெரும்பாலான கம்பெனிகளில் எடுத்துவிடுவார்கள் என்றாலும் requirementல் இருக்கும் விஷயங்களையும் கருத்தில் கொள்வார்கள். எங்கள் கம்பெனிக்கு Core Java தான் மிக முக்கியம். இங்கிருந்து கிளம்பினால் அடுத்து Exception Handling தான். ஜாவாவின் Exception Handling ஐ சரியாக படம் வரைந்து விளக்கி கேட்கப்படும் சில சில்லியான கேள்விகளுக்கு தடுமாறாமல் பதில் சொன்னால் போதுமானது. ஏனென்றால் Over Loading, Over riding, static, final, sub class, super class, exception handling புரிந்தாலே ஜாவாவில் கோட் எழுதிவிடலாம் என்பதால் இதை மீறி நாங்கள் கேள்வி கேட்கமாட்டோம். கம்பெனியின் requirementம் அப்படி. ஆனால் வந்திருக்கும் candidate திறமையானவராக இருந்தால்(அவர்கிட்ட என்னத்த மாத்தி மாத்தி static, finalஐ போட) இங்கிருந்து வெகு சில கேள்விகளில் நகர்ந்து Servlet, JSPயில் விளையாடத் தொடங்குவோம்.

PS: முடிந்தால் அடுத்த முறை கேட்கும்/கேட்கப்படும் கேள்விகளை ஒரு ப்ரொக்கிராம்களாக எழுதிப்போட முயல்கிறேன்.

PS1: கூகுளின் Guice framework இப்பொழுது ரொம்பவும் பிரபலம், அதை தற்சமயம் உபயோகிக்கிறேன் என்ற முறையில் அது என்ன ஏது என்று எழுத உத்தேசம். அதற்கு கொஞ்சம் Java Generics தெரிந்திருக்கணும் அதையும் அப்படியே கொஞ்சம் போல் பார்க்கலாம்.

PS2: பதிவில் இருக்கும் ஆங்கிலத்திற்கு மாப்பு.

முந்தைய ஜாவா பதிவுகள்

(ஜாவா) ப்ரொக்கிராமிங் ஃபார் டம்மீஸ்
என் ஜாவா அனுபவங்கள்
என் முதல் இன்டர்வியூ அனுபவம்(ங்கள்)
ஜாவா ஃபார் டம்மீஸ் - எந்தவகையில் சிறந்தது ஜாவா

Related Articles

7 comments:

வடுவூர் குமார் said...

பண்ண சத்தியம் எங்கே? என்று கேட்கலாம் என்று இருந்தேன்.
தப்பிச்சிங்க
தொடருங்கள்
:-))

மோகன்தாஸ் said...

வடுவூர் குமார்,

சொன்னா நம்புவீங்களா தெரியாது :) எழுதும் பொழுது உங்களை நினைச்சிக்கிட்டே தான் எழுதினேன்.

வடுவூர் குமார் said...

நம்புகிறேன்,நம்புகிறேன்.

வடுவூர் குமார் said...

நீங்கள் கூறிய புத்தகம் இங்கு நூலகத்தில் கிடைக்குதா என்று பார்க்கலாம். என்னை மாதிரி ஆளுங்களுக்கு என்ன பிரச்சனை என்றால் இதை படித்துக்கொண்டு இருக்கும் போதே
வி.பி. நெட்
பைத்தான்
சி ++
பாஸ்கல்
போர்ட்டான் கூட கண்ணில் பட்டு கையை அரிக்கும் கடைசியில் பாதி கிணறு தாண்டி தூக்கி வைத்துவிடுவேன்.
படிச்சா தான் சாப்பாடு என்ற நிலை வந்தாலொழிய கவனம் வராது போல் இருக்கு.
அதற்காக சொல்லாமல் விட்டுடாதீங்க,ஏதோ ஒரு பொறி கிளம்பி பத்த வைத்தாலும் வைக்கும்.
சொல்லமுடியாது. :-)

அரை பிளேடு said...

நல்ல கட்டுரை.

இந்த மாதிரி தமிழில் படிப்பது சிறப்பாக உள்ளது.

பழைய ஜாவா லிங்குகளையும் ஒரு முறை படித்துவிட்டு வருகிறேன்.

நன்றி :)

Anonymous said...

//பழைய ஜாவா லிங்குகளையும் ஒரு முறை படித்துவிட்டு வருகிறேன்.
//

ஏன்? இதை படிச்சவுடன் பழசெல்லாம் மறந்து போச்சா? அரை பிளேடோட சரியான காமெடிதான் போங்க.

மோகன்தாஸ் said...

அரைபிளேடு,

இன்னமும் எளிய தமிழிலில் எழுதலாம் தான் என்றாலும் இப்போதைக்கு இவ்வளவு தான். பார்க்கலாம் ஆங்கிலம் கலக்காத தமிழில் ஜாவா பற்றி எழுத முடிகிறதா என்று.