Showing posts with label ஜாவா. Show all posts
Showing posts with label ஜாவா. Show all posts

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: பதிவில் இருக்கும் ஆங்கிலத்திற்கு மாப்பு.

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

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

Read More

Share Tweet Pin It +1

7 Comments

In ஜாவா

ஜாவா ஃபார் டம்மீஸ் - எந்தவகையில் சிறந்தது ஜாவா

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

சொல்லபோனால் VBயும் சரி, ஜாவாவும் சரி ஏறக்குறைய எல்லா விதங்களில் தங்களை தங்களின் தவறுகளில் இருந்து சரிசெய்து நல்ல "ப்ரொக்கிராமிங்" லாங்க்வேஜ்களாக மாற நினைக்கின்றன. ஏறக்குறைய இரண்டுமே ஒன்றுக்கொன்று சமமான நிலையிலேயே தராசில் வைத்துப் பார்த்தால் நிற்கின்றன.

பலர் ஜாவாவை ப்ரொக்கிராமிங் லாங்க்வேஜாக ஒப்புக்கொள்ள மாட்டார்கள். ஆனால் ஜாவாவை ஆப்பரேட்டிங் ஸிஸ்டமாகவும்(விண்டோஸ், லினக்ஸ் போல்) ஒப்புக்கொள்ள முடியாது. ஜாவாவை ஏன் ஆப்பரேட்டிங் ஸிஸ்டமாக பார்க்க வேண்டி வருகிறதென்றால். ஜாவா ப்ரொக்கிராம்கள் எல்லாமே Java Virtual Machine என்ற ஒன்றால் தான் செயல்படுத்தப் படுகிறது. இந்த JVM(Java Virtual Machine) உங்கள் ஆப்பரேட்டிங் சிஸ்டம் சம்மந்தப் படாதது, இன்னும் சரியாகச் சொல்லவேண்டுமென்றால் ஆப்பரேட்டிஸ் சிஸ்டத்தோடு சம்மந்தப்படாமல் தனியாக இயங்கக் கூடியது.

நீங்கள் ஜாவாவை அதனுடைய வெப்சைட்டான java.sun.com ல் தேடினால் எல்லா இடங்களிலும் Java Platform, Standard Edition என்று குறிப்பிடுவதைப் பார்க்கலாம்(இதைப்போலவே Java Platform - Enterprise Edition, Java Platform - Micro Edition). நான் ஆரம்பக் காலங்களில் இன்டர்வியூ அட்டெனட் செய்யும் பொழுது இது நிச்சயமான ஒரு இன்டர்வியூ கொஸ்டீன். ஆனால் ப்ரஷ்ஷர்களுக்காக மட்டுமே. இதில் இந்த ப்ளாட்ஃபார்ம் எனப்படும் விஷயம் தான் நான் சொன்ன JVM பற்றியது. இதன் காரணமாகவே ஜாவாவை சாப்ட்வேர் ஆப்பரேட்டிங் ஸிஸ்டம் என்றும் சொல்வதுண்டு.

இப்பொழுது Java Operating System என்றொரு ஆப்பரேட்டிங் ஸிஸ்டம் கொண்டுவருவதற்கான முயற்சிகள் நடைபெற்றுவருகின்றன.(முடிந்துவிட்டன - செயலிலும் உள்ளது) அது சாஃப்ட்வெர், ஹார்ட்வேர் இரண்டிற்குமான சப்போர்ட்டை உள்ளடக்கியது.

அப்படியே கொஞ்சம் JIT பற்றியும் பார்த்துவிடுவோம், கொஞ்சம் டெக்னிக்கலாகயிருக்கும் என்று நினைக்கிறேன், ஆனால் படித்துப் பார்த்து சந்தேகம் இருந்தால் கேளுங்கள்.



JIT என்பது Just In-time Compiler, இதைப் பற்றி பார்ப்பதற்கு முன் இதன் பின்னால் இருக்கும் வரலாற்றைப் பார்த்துவிடலாம். ஜாவாவின் முக்கியத்துவமாக எல்லோரும் சொல்வது ஜாவாவை எந்த ஆப்பரேட்டிங் ஸிஸ்டத்திலும் எந்த ப்ராசசரிலும் உபயோகிக்கலாம் என்பது. இன்னும் சரியாகச் சொல்லவேண்டுமென்றால் நீங்கள் மைக்ரோசாஃப்ட் விண்டோஸில் உட்கார்ந்து எழுதிய ஜாவா ப்ரொக்கிராமை(ப்ரொக்கிராம் என்று சொல்லும் இடத்தில் எல்லாம் அதை கலெக்ஷன் ஆ வைத்து ப்ரொஜெக்ட்டாவும் பார்க்கலாம்) எந்த வித மாற்றமும் இல்லாமல் நாளை லினக்ஸில் உபயோகிக்கலாம்.

சரி இன்னும் கொஞ்சம் விரிவாக, நீங்கள் C, C++ இலோ ஒரு ப்ரொக்கிராம் எழுதுகிறீர்கள் என்று வைத்துக் கொள்ளுங்கள். அதை கம்பைல் செய்வது என்று ஒரு விஷயம் உண்டு. அதாவது மனிதன் புரிந்து கொண்டு எழுதும் ஒரு விஷயத்தை மெஷின் புரிந்து கொள்ளும் விஷயமாக மாற்றுவது. உங்களுக்கு கம்ப்யூட்டரில் எல்லா விஷயங்களுமே 0 மற்றும் 1 ஆக மாறி மட்டுமே பாதுகாக்கப் படவோ இல்லை செயல்படுத்தப்படவோ செய்யும். சின்ன உதாரணம் நீங்கள் கம்ப்யூட்டர் கால்குலேட்டரில் 2 + 3 என்று சொன்னால் அது, உண்மையில் இரண்டிற்கான 0001 யையும் மூன்றிற்கான 0010 வையும் எடுத்துக் கொண்டு போய், மைக்ரோ ப்ராஸஸரில் போட்டு கூட்டி 0101 என்ற விடையை எடுத்துக் கொண்டு வந்து பின்னர் அந்த 0101 வை மனிதன் புரிந்து கொள்ளும் விதமாக 5 என்றும் காட்டும்.

இப்படி மனிதன் புரிந்துகொள்ளும் விஷயத்தை மைக்ரோப்ராஸஸர் புரிந்து கொள்ளும் ஒன்றாகவும், மைக்ரோ ப்ராஸஸர் புரிந்து கொள்ளும் ஒரு விஷயத்தை மனிதன் புரிந்து கொள்ளும் ஒரு விஷயமாகவும் மாற்றுவதே கம்பைல் மற்றும் டிகம்பைல் என்று சொல்லலாம்.

இப்படித்தான் எழுதப்பட்ட C, C++ ப்ரொக்கிராம் கோடுகளையும் மைக்ரோ ப்ராஸஸர் புரிந்து கொள்ளும் ஒரு விஷயமாக மாற்றும் பொழுது ஒரு பிரச்சனை ஏற்படும். எப்படி என்றால் மேற்சொன்ன கூட்டல் விஷயத்தை நடத்த Intel Pentium microprocessor உபயோகிக்கும் முறைகளும் IBM System/390 processor உபயோகிக்கும் முறைகளும் வேறுபடும். எனவே நீங்கள் ஒரு கம்ப்யூட்டரில் Pentium Processor உபயோகிக்கிறீர்கள் என்றால் அதற்கான கூட்டல் முறையாகத்தான் உங்கள் கம்பைலர் மாற்றிக் கொடுக்கும். இப்படித்தான் ஜாவாவிற்கு முன்னால் இருந்த கம்பைலர்கள் இருந்தன.

இதன் காரணமாக நீங்கள் Pentium Processor க்கு எழுதப்பட்ட ஒரு ப்ரொக்கிராமை(உதாரணத்திற்கு நம் கூட்டல்) IBM Processor ல் உபயோகப்படுத்த முடியாது. இதையெல்லாம் சரிசெய்தது ஜாவா. சரி சரிசெய்ததென்றால் எப்படிச் செய்தது. இங்கே தான் வருகிறது ஜாவாவின் கம்பைலர். சரி விஷயத்திற்கு வருகிறேன். இந்த ஜாவா கம்பைலர் கம்பைலர் தான் அந்த மேஜிக்கை செய்கிறது, அதாவது ஜாவாவில் நேரடியாக ஜாவா ப்ரொக்கிராமை மைக்ரோ ப்ராஸஸர் புரிந்து கொள்ளும் விதமாக மாற்றாமல் இடைப்பட்ட ஒன்றாக மாற்றிக்கொள்ளும் (டெக்னிக்கலாக Byte code). அந்த இடைப்பட்ட ஒன்றைத்தான் உண்மையான ப்ராஸஸருக்கு ஏற்றதுபோல் மாற்றிக்கொடுக்கும். இதனால் நீங்கள் எந்த ஆப்பரேட்டிங் ஸிஸ்டத்தில் உட்கார்ந்து எந்த ப்ராஸஸருக்கு ப்ரொக்கிராம் எழுதினாலும் அதை மற்ற ப்ராஸஸருக்கு உபயோகிக்க முடியும். ஏனென்றால் நீங்கள் எழுதிய ப்ரொக்கிராமின் இடைப்பட்ட மாற்றத்தை(Byte Code)ஐ அந்தந்த ப்ராஸஸருக்கு ஏற்றது போல் மாற்றிக் கொடுக்கும் JVM.


ரொம்பவும் டெக்னிக்கலாகப் போய்விட்டது என்று நினைக்கிறேன். இதுதான் ஜாவாவின் மேஜிக் எனப்படும் ஒன்று. புரியாவிட்டால் கேளுங்கள் என்னால் முடிந்த வரை விளக்கப் பார்க்கிறேன். ரொம்ப டெக்னிக்கலாக இருப்பதால் இது போதும்.

PS: இதில் கான்செப்ட் வைஸ் எதுவும் தவறிருந்தால் சொல்லவும் திருத்திவிடுகிறேன்.

முன்பு எழுதியவை

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

Read More

Share Tweet Pin It +1

6 Comments

In ஜாவா

என் முதல் இன்டர்வியூ அனுபவம்(ங்கள்)

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

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

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

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

அவர் கம்ப்யூட்டர் நன்கறிந்த ஒருவர் என்பதாலும், அவருடைய ரெக்வைர்மென்ட் நன்றாகத் தெரிந்தவர் என்பதாலும் ஸ்கிரினில் சில மாற்றங்கள் சொல்வார். சொல்லப்போனால் Functionality கூட பிரச்சனையாயிருக்காது சில இந்த மாற்றங்கள் படம் காண்பிக்கும். ஒரு உதாரணம் சொல்கிறேன். ஒரு ஸ்கிரினில் சர்ச்(Search) பட்டன் இருக்கிறது நீங்கள் உங்கள் கஸ்டமர்களை தேடப் போகிறீர்கள் இதுதான் கிரைட்டீரியா. நான் நீங்கள் பேரை "Mohan" என்றோ இல்லை "Mohandoss" என்றோ எழுதி தேடினால் கிடைப்பது போல் கோட் எழுதியிருந்தேன். அந்த நபர் கேட்டது, "M" என்று நான் டைப் செய்ய ஆரம்பித்ததுமே அந்த டெக்ஸ்ட்பாக்ஸில் கீழே ஒரு டிராப் டவுன் பாக்ஸ் போல வந்து "M" ஆரம்பிக்கும் பெயர்களைக் காட்ட வேண்டும். இப்படியே தேடும் நபர் ஒவ்வொரு கேரக்டராக டைப் செய்ய கீழிருக்கும் டிராப்டவுன் மாற வேண்டும்.

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

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

நான் மட்டும் VBயில் Bsc ப்ரொஜெக்ட் செய்திராமல் VB.net செய்திருக்கணும் என்று கிருபா ஷங்கரைப் போல், ஜாவாவை வெறுப்பனாக இருந்திருப்பேன். என் அதிர்ஷ்டம்(அந்தக் காலத்தில் துரதிஷ்டம்) VBயில் ப்ரொஜக்ட் செய்திருந்தேன். VBயிலுமே எந்த வேலையாயிருந்தாலும் செய்துவிடமுடியும் என்ற நம்பிக்கையிருந்தாலும் அதை என்னால் என்னை Interview செய்பவரிடம் வெளிக்காட்ட முடிந்ததில்லை. என்மேலேயே எனக்கு கோபம் வந்த நாட்கள் அவை. ஆனால் சின்னப் பையன் என்பதால்(அப்பொழுதுதான் இருபது வயது எனக்கு) யாரும் வம்பிழுக்கவில்லை ஆரம்பத்தில், ஆனால் எல்லோருக்குமே நன்றாகத் தெரிந்திருந்தது ரொம்ப சீக்கிரம் நான் நல்லா வந்திடுவேன்னு.

இப்படியாக நான் VB படித்துவிட்டு இன்டர்வியூ கிடைக்காமல் அலைந்த பொழுது தான் என் மாமா டெல்லிக்கு வந்திருந்தார். அவருக்கு VBன்னாலே ஆகாது மைக்ரோசாஃப்ட், பில்கேட்ஸ்ன்னா உதைக்க வருவார். சரி ஏதாவது ஒரு கோர்ஸ் மாதிரி படிச்சு வேலை வாங்கிடலாம் அப்படின்னு சொன்னவர் என்னிடம் கேட்டார் எதைப் படிக்க விரும்புற என்று, VB.net ஆ Java, J2EE ஆ என்று. அவருக்கு இந்தச் சமயத்தில் எல்லாம் சந்தேகம் வந்திருந்தது ஒரு வேலை இவன் சாஃப்ட்வேருக்கு லாயக்கில்லையோ என்று. இப்படியாக மாமாதான் உனக்கு Java, J2EE சரிவரும் அதைப் படி என்றார்.

நான் கைக்கு கிடைத்த ஒரு சிறிய வேலையில் சேர்ந்து கொண்டு(மாமா சிபாரிஸில் - நான்காயிரம் சம்பளம்) Java, J2EE படிக்கத் தொடங்கினேன். கம்பெனியில் டப்பா ஸ்விங்ஸ்(Swing) எழுதும் வேலை. என் வாழ்க்கையை திருப்பிப் போட்ட நாட்கள்.

சில இன்டர்வியூ குறிப்புகள்.

1) இப்ப நினைச்சா சிரிப்பு வருது, இன்டர்வியூவில் ஆங்கிலத்தில் பேச பயந்து, இன்ட்ர்வியூவரிடம் இந்தியில் பதில் சொல்லவா என்று கேட்டது. இதில் கூத்தென்னன்னா இந்தியே தெரியாது எனக்கு.

2) மாமா எவ்வளவோ சொல்லியும் இன்டர்வியூ ஏற்பாடு செய்வார்கள் என்பதால், கன்ஸல்டென்ஸிக்காரர்களிடம் காசு கொடுத்து பதிந்து கொண்டது.

3) கேட்கும் கேள்விக்கான பதில் ஓரளவிற்கு தெரியும் என்பதால் அதை என்னுடைய ஓட்டை ஆங்கிலத்தில் எப்பாடுபட்டேனும் சொல்லிவிடுவது, அதுவும் தமிழில் இப்பொழுது எழுதுவது போல் புல்ஸ்டாப்பே இல்லாமல் பேசுவது. அவன் நான் ஆரம்பிச்ச இடம் பேசிக்கொண்டிருந்தது, முடித்தாது எல்லாம் யோசித்தால் தலை சுற்றணும்.

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

5) தியரடிக்கலாகப் படிப்பவர்களை நக்கல் செய்வதே பொழப்பு என்பதால், டெல்லியில் இன்டர்வியூ போன பொழுது இரண்டு லைன் கோடு எழுதச் சொன்னால் பேப்பரில் எழுத முடியாது. ஆனால் கம்ப்யூட்டரில் VBயில் செய்துவிடுவேன். பிறகு கற்றுக் கொண்டதுதான் வேறவழியேயில்லை, சில விஷயங்களையாவது கடம் போட்டே ஆகவேண்டும் என்ற விஷயத்தை.

6) வியாழக்கிழமைகளில் காலங்கார்த்தால எழுந்து குளிச்சு, ஷூ எல்லாம் போட்டுக்கொண்டு பேப்பருக்காக உட்கார்ந்திருப்பேன், பேப்பர் வந்ததும் யாராவது வாக்-இன் சொல்லியிருந்தால் உடனே அட்ரஸ்ஸை மட்டும் எழுதிக்கொண்டு கிளம்புவது. ஏன் என்றால் நான் அட்ரெஸ் கண்டுபிடிச்சு போறதுக்குள்ள இன்டர்வியூ முடிஞ்சிறக்கூடாதில்லையா? அதான்.

7) நான் நாலாயிரத்தில் காஜி அடித்துக் கொண்டிருந்த பொழுது, RS 15,000 சாலரியில் கால்சென்டர் வேலைக்கு கூப்பிட்டார்கள்; நல்ல வேலை தப்பித்தேன். எல்லாம் மாமாக்கள் புண்ணியம் தான்.

அடுத்தது ஜாவா படிக்க எங்கிருந்து தொடங்கலாம், எதையெல்லாம் படிக்கலாம் என்பதைப் பற்றி எழுதுகிறேன்.

முன்பு எழுதியவை

(ஜாவா) ப்ரொக்கிராமிங் ஃபார் டம்மீஸ்
என் ஜாவா அனுபவங்கள்

Read More

Share Tweet Pin It +1

5 Comments

In ஜாவா

(ஜாவா) ப்ரொக்கிராமிங் ஃபார் டம்மீஸ்

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

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

எப்படின்னா அந்தக் கடைக்காரர் ஒரு ஐம்பது ஹமாம் சோப்பையும், ஐம்பது 100 கிராம் கோல்கேட் பாக்கெட்களையும் வைத்திருக்கிறார் என்றால். நீங்கள் பர்சேஸ் செய்து முடித்ததும் மொத்த ஹமாம் சோப்பின் எண்ணிக்கை நான்கு குறைந்து 46 ஆகவும். கோல்கேட் 100 கிராம் எண்ணிக்கை 45 ஆகவும் ஆகவேண்டும். இதனால் என்ன நன்மை என்றால் உங்களின் இருப்புக்களின் எண்ணிக்கை ஒரு இலக்கை அடைந்தவுடன்(அதாவது 10 என்று வைத்துக் கொள்வோமே) உங்களுக்குத் தெரியப்படுத்த முடியும். இதைச் சாதாரணமா ஒரு அலமாரியில் வரிசைக்கிரமாக அடுக்கி வைத்தாலே குறையக் குறைய நமக்குத் தெரியும் என்று சொல்லலாம்.

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

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

அதேபோல் உங்கள் கடையில் இன்ன இன்ன நாட்களில் இந்த பொருட்கள் விற்பனையாகின்றன, எதற்கான தேவை அதிகமாகயிருக்கிறது. எது அதிகமாக விற்பனையாகிறது எது உங்களுக்கு அதிக லாபம் தருகிறது என்பன போன்றவற்றை வார வாரியாக, மாத வாரியாக உங்களால் பார்க்கமுடியும். இவை எல்லாவற்றையும் யாருடைய தலையீடும் இல்லாமல் தானாக செய்யும் வகையில் எழுதிக் கொடுப்பது தான் ப்ரொக்கிராமருடைய வேலை. அப்படி எழுதிக் கொடுக்கப்பட்ட ஒரு விஷயத்தை நீங்கள் அப்ளிகேஷன் என்று சொல்லலாம்; கொஞ்சம் பெரியா அளவில் இருப்பதை ப்ராடக்ட் என்றும் சொல்லலாம்.

-------------------------------------------------------------------------

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

டெக்ஸ்டாப் அப்ளிகேஷன்

இதற்கான உதாரணமாகச் சொல்லவேண்டுமென்றால் மேற்ச்சொன்ன மளிகைக் கடை உதாரணத்தையே எடுத்துக் கொள்ளலாம். இதில் முக்கியமான வித்தியாசம் எங்கே வருமென்றால்(வெப் பேஸ்ட் அப்ளிகேஷன்களுடன்)

1) உங்கள் விவரங்களை சேமித்து வைப்பது உங்கள் சிஸ்டத்திலேயே நடக்கும்.(புரியுமென்றால் டேட்டபேஸ் உங்கள் கணிணியிலேயே இருக்கும்)
2) உங்கள் கடைக்கு வந்துதான் பொருட்களை வாங்குவார்கள் என்பதால், வேறு யாரும் இந்த அப்ளிகேஷனை உபயோகப்படுத்த மாட்டார்கள். (அதாவது இணையத்தின் வழியாக பொருட்கள் வாங்கமாட்டார்கள் என்று வைத்துக் கொள்ளலாம்.)
3) இன்னொரு விஷயம், இந்த டெக்ஸ்டாப் அப்ளிகேஷன்களில் ஒன்றிற்கு மேற்பட்ட கணிணிகளை உபயோகப்படுத்த முடியும். அது நெட்வொர்க்கினால் சாத்தியம் அதாவது கம்பிவழித் தொடர்பு என்று சொல்லலாம். எப்படியென்றால் உங்கள் கடை கொஞ்சம் பெரியது என்று வைத்துக் கொள்ளலாம், சாரதாஸை உதாரணம் எடுத்துக் கொள்ளுங்கள். ஆறு ப்ளோர் கடை உங்களுடையது என்றால் ஆறு ப்ளோர்களில் உள்ள கணிணிகளையும் இணையம் இல்லாமல் வெறும் நெட்வொர்க்கினாலே கூட தொடர்பு படுத்து உபயோகிக்க முடியும். அப்படிப்பட்ட கடைகளில் இருக்கும் அப்ளிகேஷன்ஸ் கூட டெக்ஸ்டாப் அப்ளிகேஷன்ஸ் தான். எப்பொழுது உங்கள் அப்ளிகேஷன் இணையத்துடன் தொடர்பை ஏற்படுத்திக் கொள்கிறதோ அப்பொழுது தான் அது வெப்-பேஸ்ட் அப்ளிகேஷன் ஆகிறது.
4) நீங்களும் உங்களைச் சார்ந்தவர்களுமே உபயோகிக்கப் போகிறீர்கள் என்பதால் செக்யூரிட்டி அவ்வளவு பெரியதாகப் போடவேண்டிய தேவையில்லை. ஏனென்றால் எல்லா கணிணிகளையும் உபயோகிக்கப் போவது உங்கள் ஆட்கள் மட்டுமே.

இன்னும் நிறைய வித்தியாசங்கள் சொல்லலாம் என்றாலும் இதுவே போதும் என்று நினைக்கிறேன். விஷயங்களைப் பற்றி எழுதும் பொழுது நினைவில் எந்த புது விஷயமும் வந்தால் எழுதுகிறேன்.

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

ஏனென்றால் உங்களுக்கு மைக்ரோசாஃப்ட் பற்றியும் லினக்ஸ் பற்றியும் தெரிந்திருந்தால் இன்னும் சுலபமாகவே விளக்கமுடியும். வித்தியாசம் யூசர் ப்ரண்ட்லினஸ்; கணிணி என்றாலே என்னவென்று தெரியாதவர் விண்டோஸை உபயோகிப்பது லினக்ஸை உபயோகிப்பதை விட சுலபமாகயிருக்கும். அதைப் போலவே VBக்கும் ஜாவாவிற்குமான வித்தியாசம்.

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

என்னுடைய ஜாவா அனுபவங்கள் தொடரும்....

முதல் பாகம்

Read More

Share Tweet Pin It +1

12 Comments

In ஜாவா

என் ஜாவா அனுபவங்கள்

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

என் கல்லூரி வாழ்க்கையில் இருந்து ஆரம்பிக்கிறேன்; அங்கே தான் ஆரம்பம் ஆனது ஜாவா எனக்கு. எனக்கு மூன்றாம் ஆண்டு முதல் செமஸ்டர்(அதாவது கணக்குப்படி ஐந்தாவது செமஸ்டர்) ஜாவா ப்ரொக்ராமிங் லாங்க்வேஜாகவும், லேப்பிற்கான லேங்க்வேஜாகவும் இருந்தது. சரியாக 2003, அப்பொழுதெல்லாம் ஜாவா ஒரு செத்துப் போன மொழி(குறைந்தபட்சம் எங்கள் கல்லூரியில்) நான் கல்லூரி படிக்க ஆரம்பித்த பொழுது ஜாவா "Out of fashion" ஆகயிருந்தது. இது ஒரு டைரி போல இருக்க வேண்டும் என்றே நினைக்கிறேன்; ஆனாலும் வழக்கமான என் ஜல்லிக்கதைகள் அதிகம் ஆகிவிடக்கூடாதென்ற எண்ணமும் உண்டு.

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

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

எங்க மாமா அடிக்கடி சொல்வார் C ஒரு கடல் போல் என்று, எனக்கெல்லாம் ஒரு For லூப் போட்டு அது எப்படி வேலை செய்யும் என்று சொல்லித் தந்ததாக தெரியவில்லை. நானும் படித்து முடித்திருந்தேன்; இரண்டாம் செமஸ்டருக்கு COBOL அதில் Error வராமல் கொடுக்கப்பட்டிருந்த 15 ப்ரொக்ராம்களை அடித்து, கம்பைல் செய்து நெட்வொர்க்கில் என் லாகினில் சேர்த்து வைக்கவே ஆறுமாதம் சரியாகயிருந்தது. ப்ரொக்கிராமேட்டிகலா யோசிக்கவே தெரியாமல் என்னுடைய இரண்டு செமஸ்டர்கள் முடிந்திருந்தது. இதெல்லாம் நான் ஹாஸ்டலில் இருந்த சமயம், முன்பொறுமுறை சொல்லியிருந்தது போல் கல்லூரி முடிந்ததும் கிரிக்கெட் பேட் எடுத்துக் கொண்டு ஆடுவது, பேச்சுப்போட்டிக்கு தயார் செய்வது. அவ்வளவுதான் வேலை.

நான் ஹாஸ்டலை விட்டு வெளியில் வந்தேன் மூன்றாவது செமஸ்டருக்கு; இந்தச் சமயத்தில் தான் என்று நினைக்கிறேன் அதாவது ஒரு Bard Festival (Bharathidasan University festival) க்கு தயாராக வேண்டி என் சீனியர் அண்ணன்களின் வீட்டிற்குச் சென்றிருந்த பொழுது தான், Visual Basic ல் அவர்கள் பைனல் செமஸ்டர் ப்ரொஜெக்ட் செய்து கொண்டிருந்தார்கள். சொல்லப்போனால் அதுவரை என் மாமாவால் மிரட்டப்பட்டிருந்ததால் ப்ரொக்கிராம் மேல் ஒரு பயமே கூட வந்திருந்தது; ஆனால் அந்தப் பயத்தை போக்கியது Visual Basic.

அப்பாவை நச்சரித்து, மாமாவை நச்சரித்து நான் Visual Basic கத்துக்கிறதுக்கு CSCயில் சேர்ந்தேன். என்னைப் பொறுத்தவரை நான் இன்று இந்த நிலையில் இருக்கிறேன் என்றால் அதற்கு அன்று எடுத்த அந்த முடிவு ஒர் பெரிய காரணம். நானெல்லாம் For, While லூப்கள் எப்படி வொர்க் ஆகிறது என்று தெரிந்து கொண்டது Visual Basic மூலமாகத்தான். அதுமட்டுமல்லாமல் எங்கள் கல்லூரியில் கிடைக்காத எக்ஸ்ட்ரா கணிணி நேரம் இங்கே கிடைத்தது. மாமாக்கள் அவர்கள் வேலையில் பிஸியாகயிருந்ததால், எனக்கு அவர்களின் கணிணி கிடைக்காது. நான் நிறைய புத்தகங்களை எடுத்து புரட்டிப் பார்த்து அதிலுள்ள ஐட்டங்களை வொர்க் செய்து பார்க்க என்று என் மூன்றாவது செமஸ்டரில் தான் ப்ரொக்கிராமேட்டிக்கலாக சிந்திப்பதாக உணர்ந்தேன்.

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

மாமாவிற்று விஷுவல் பேஸிக் பிடிக்காது, ஆனால் நான் அன்று என் தலையை ஜாவாவில் விட்டிருந்தேன் என்றால் பல நபர்களைப் போல நானும் எனக்கு ப்ரொக்கிராமிங் வராது என்று வீட்டில் உட்கார்ந்திருக்க வேண்டியது தான். இன்றுமே நாங்கள்(நான் மற்றும் என் நண்பர்கள்) எங்களிடம் அட்வைஸ் கேட்டு தேடிவருபவர்களிடம், அவர்களிடம் உண்மையான திறமையிருந்தால், ஆர்வமிருந்தால் மட்டுமே Java, J2EE பரிந்துரைப்போம். இல்லையென்றால் இருக்கவேயிருக்கிறது VB.Net ASP.Net. அதென்னமோ ஜாவா, ஜே2ஈ போல் .Net ஐ யோசிக்க முடியவில்லை. எனக்குத் தேவையான் ப்ரேக் VBயில் கிடைத்தது; ஒரு அற்புதமான ப்ரேக். For லூப் கோடிங் எழுதத்தெரியாமல் இருந்த எனக்கு ஒரு பிஸனஸ் அப்ளிகேஷனை செய்துவிடமுடியும் என்ற நம்பிக்கையை கொடுத்தது VB.

இதெல்லாம் நடந்தது மூன்றாவது நான்காவது செமஸ்டரில். ஐந்தாம் செமஸ்டரில் தான் ஜாவா; அப்படியொன்றும் என் வாழ்க்கையை புரட்டிப்போடப்போகும் லாங்க்வேஜாகவும், ஒரு குடும்பத்தின் நிலையையே மாற்றிப்போடப்போகும் ஒரு விஷயமாகவோ எனக்கு ஜாவா அறிமுகம் ஆகவில்லை. எனக்கு ஜாவா பாடம் எடுத்தது மீனா மேடம்; இவர்கள் தான் எனக்கு C++ ம் கொஞ்ச காலம் எடுத்தார்கள். அவருக்கும் எனக்கும் சண்டை வராத நாளே இருக்காது. ஏதாவதொரு ப்ரொக்கிராம் போர்டில் எழுதிப்போட்டு எழுதிக்கொள்ளச் சொன்னால் என்னமோ என் மண்டையில் JVM(Java Virtual Machine) இருப்பதைப் போல் இது வொர்க் ஆகாது என முதலில் சொல்வேன். பின்னர் அந்தம்மா லேபில், நாளை நடத்தப் போகும் ப்ரொக்கிராமை எழுதி, கம்பைல் செய்து ரன்செய்து பிரிண்ட் அவுட் என்னிடம் கொடுத்துவிட்டு பாடம் நடத்தினார்கள். அப்படியும் நிறைய கேள்விகள் கேட்பேன் ஏனென்றால் அந்தப் ப்ரொக்கிராமில் எல்லாம் ஆப்டிமைஷேஷன் நிறைய செய்யமுடியும். அப்பொழுது Optimization பற்றி எல்லாம் தெரிந்திருக்கா விட்டாலும், இன்னும் நன்றாக செய்யமுடியும் என்று நிரூப்பிக்க(மீனா மேடத்திடம்) அரும்பாடுபட்டேன்.

அதனால் மீனா மேடத்திடம் கேள்விகள் கேட்கவேண்டுமென்றே ஜாவா படித்தேன், தீவிரமாய் என்றால் அது பொய்யில்லை. இந்தச் சமயத்தில் எல்லாம் VBதான் என் மனம் முழுவதும்; என் பைனல் இயர் ப்ரொஜக்ட் என் கண் முன்னே ஓடிக்கொண்டிருந்த நாட்கள் அவை. இடைப்பட்ட நேரத்தில் மீனா மேடத்திற்காக படித்தது தான் ஜாவா. ஒரு உண்மை தெரியுமா நான் ப்ராக்டிகலில் எல்லா பாலிடிக்ஸ்-ம் தாண்டி, முதல் முறையாக 100 வாங்கியதும் ஜாவாவிற்காகத்தான். அப்படித்தான் வகுப்பிலேயே முதல் முறையாக ஒரு பாடத்தில் முதல் மதிப்பெண் வாங்கியதென்றால் அதுவும் ஜாவாவிற்காகத்தான்.

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

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

என் ஜாவா அனுபவம் தொடரும்...

PS: தனித்தமிழில்(கொடுந்தமிழில்) எழுத எனக்கு விருப்பமில்லை அதனால் அதற்காக என்னை வற்புறுத்தாதீர்கள். நான் இன்று எழுதுவது நிச்சயமாக இன்னொரு நாள் யாராவது ஒருவருக்கு பயனுள்ளதாக இருக்கும் என்றுதான்.

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

ஜாவாவில் ப்ரொக்கிராம் எழுதுவது எப்படி என்பது மாதிரியான விஷயங்களை நீங்கள் தூய தமிழில் எதிர்பார்க்கிறீர்கள் என்றால்; சாரி என்னிடம் அது கிடைக்காது பெட்டர் நல்ல புத்தகம் வேறு கடைகளில் கிடைக்கக்கூடும்.

ஆரம்பத்தில் இப்படி ஆரம்பித்து பின்னர் கொஞ்சம் போல் ஆர்க்கிடெக்சர், Struts, Spring, ஜாவா இண்டர்வியூ எப்படி அட்டெண்ட் செய்வது என்பது வரையில் எழுதலாம் என்று உத்தேசம். ஏகவல்லோன் எல்லோர்க்கும் பொதுவான "இறைவன்" அதற்கு உதவுவானாக.

Read More

Share Tweet Pin It +1

11 Comments

Popular Posts