"ஹலோ, நண்பா அருண் (மிகுதியாக செய்வதற்காக என்னை மன்னியுங்கள்!). நீங்கள் இதை ஏற்கனவே கேள்விப்பட்டிருக்கலாம்: 'பயிற்சியில் நீங்கள் எவ்வளவு அதிகமாக வியர்வை சிந்துகிறீர்களோ, அவ்வளவு குறைவாக நீங்கள் போரில் இரத்தம் சிந்துவீர்கள்', இல்லையா? "

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

"கோட்ஜிம்மில் அதிக அளவிலான பயிற்சி இருக்கும். கற்றல் செயல்முறையில் சுமார் 80%-க்கும் மேல் பயிற்சி மட்டுமே இருக்கும்.

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

"ஆனால், பேராசிரியரே, அடுத்த பணியை என்னால் கண்டுபிடிக்க (அல்லது தீர்வுகாண) முடியவில்லை என்றாலோ, அல்லது அடுத்த தலைப்பின் விளக்கத்தை என்னால் புரிந்து கொள்ள முடியவில்லை என்றாலோ நான் என்ன செய்வது?"

"இதற்கான தீர்வு மிகவும் எளிமையானது: 'கோட்ஜிம் சமூகம்'. கோட்ஜிம் சமூகத்தில் உங்களைப் போன்ற மாணவர்கள், பட்டதாரிகள், ஆசிரியர்கள் மற்றும் தொழில்முறை உருவாக்குநர்கள் ஆகியோர்களும் உள்ளனர்…

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

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

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

அதனால்தான் மாணவர்கள் அனைவருடனும் அறிவைப் பகிர்ந்து கொள்ளவும், கற்றல் செயல்பாட்டில் ஒருவருக்கொருவர் உதவிக் கொள்ளவும் சிறப்புப் பிரிவுகளை உருவாக்கியுள்ளோம்.

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

"உதவி பிரிவைத் தீவிரமாகப் பயன்படுத்தத் தொடங்குவது மிகவும் நல்லது."

"அதைப் பயன்படுத்துவது மிகவும் எளிதானது. பணிக்கு அடுத்துள்ள 'உதவி' என்னும் பொத்தானைக் கிளிக் செய்யுங்கள்:"

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

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

"நீங்கள் 'தீர்க்கப்பட்டவை' வடிப்பானைத் தேர்ந்தெடுத்தால், கோட்ஜிம் சமூகம் ஏற்கனவே பதிலளித்த கேள்விகளைக் காண்பீர்கள்."

"வெறுமனே 'கேள்வி கேளுங்கள்' என்னும் பொத்தானைக் கிளிக் செய்து, பணிக்கான இணைப்பை இணைத்து, உங்கள் பிரச்சினையை விளக்குங்கள்."

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

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

ஆனால் கோட்ஜிம் வெறும் கற்றலுக்காக மட்டுமல்ல! நாமும் நமது சக நிரலாக்குநர்களுடன் (ஆரம்பநிலை மற்றும் நிபுணர்களுடன் ஒரே மாதிரியாக) தொடர்பு கொள்கிறோம்."

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

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

"எங்கள் வலைத்தளத்தின் மூன்று முக்கிய குழுக்களில் சேர மறக்காதீர்கள்!

இந்த கோட்ஜிம் குழுவில், வலைத்தளம், போட்டிகள், மற்றும் விளம்பரங்கள் பற்றிய சமீபத்திய செய்திகளை வெளியிடுகிறோம். புதிய வலைத்தளப் புதுப்பிப்புகள் மற்றும் மாற்றங்கள் அனைத்தும் முதலில் அங்குதான் தோன்றும்."

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

"ஒரு லீடர்போர்டு பகுதியும் உள்ளது."

"அனைத்து பணிகளையும் வெற்றிகரமாக முடியுங்கள். ஒருநாள் நீங்களும் சிறந்த மாணவராகலாம்! :)"

"Java டெவலப்பர் குழுவில், Java பற்றிய சுவாரஸ்யமான கட்டுரைகள், கூடுதல் பயிற்சிப் பொருட்கள் மற்றும் மொழி பற்றிய செய்திகளை நீங்கள் காணலாம்."

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

"சரி, நல்லது. பயிற்சி அர்த்தமுள்ளது. ஆனால் கோட்பாடிற்கு என்ன பங்கு உள்ளது?"

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

"எல்லோரும் வித்தியாசமானவர்கள்: சிலர் கோட்ஜிம்மில் ஒரு குறுகிய பாடத்தைப் படிப்பதும் அர்த்தமுள்ளதாக இருக்கும்; மற்றவர்கள் பிற மூலங்களிலிருந்து தகவல்களைச் சேகரித்து, அதைச் சுருக்கமாக்கி, பின்னர் முடிவுகளை எடுப்பதை மிகவும் வசதியாகக் கருதுகின்றனர்."

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

  1. "Kathy Sierra and Bert Bates, Head First Java"

    "நிச்சயமாக, இது ஆரம்பநிலை மாணவர்களுக்கான Java குறித்த சிறந்த புத்தகம்! Head-First சீரிஸில் பல்வேறு நிரலாக்க மொழிகளில் டஜன் கணக்கான புத்தகங்கள் உள்ளன. இந்த ஆசிரியர்களுக்கென சொந்த தனித்துவமான வழி உள்ளது. இது விரைவான, எளிதான வாசிப்பாக அமைகிறது. மேலும், நீங்கள் குறிமுறையை எழுதி புத்தகத்தில் உள்ள பணிகளைச் செய்யலாம்!"

    "நீங்கள் கோட்ஜிம்மில் எந்த நிலையில் இருந்தாலும் இருந்தாலும், அதைப் படிக்க ஆரம்பிக்கலாம். :)"


  2. "Herbert Schildt: Java: The Complete Reference"

    "இந்தப் புத்தகமும் தொடக்க நிலை மாணவர்களுக்கு ஏற்றது. முந்தைய புத்தகத்திற்கும் இதற்குமான முதன்மை வேறுபாடு, உள்ளடக்கம் வழங்கப்பட்டுள்ள விதம்: இந்தப் புத்தகத்தில் பாடங்கள் மிகவும் கடுமையான மற்றும் சீரான முறையில் வழங்கப்படுகின்றன (பலர் இந்த 'Rules of the game' பாணியிலான வழங்கலை விரும்பிடுவர்). இது பாடங்களை சிறிய விவரங்களாகப் பகுக்கிறது. சில நேரங்களில், இதனை மீண்டும் மீண்டும் செய்கிறது."


  3. "Bruce Eckel, Thinking in Java"

    "இதை Java நிரலாக்குநரின் பைபிள் என்று சொல்லலாம். நான் மிகைப்படுத்திக் கூறவில்லை: ஒவ்வொரு Java டெவலப்பரும் அதைப் படிக்க வேண்டும். இது பெரிய விஷயம், அதற்கு காரணமும் இருக்கிறது. அதற்கு அந்தப் பெய அவ்வளவு எளிதாக வழங்கப்படவில்லை: ஏனென்றால் அது மொழியின் குறிப்பிட்ட தலைப்புகளை மட்டுமல்லாது,மொழியின் படைப்பாளர்கள் மற்ற மொழிகளில் இருப்பதை விட வித்தியாசமாகச் சில விஷயங்களை எதனால் செய்துள்ளனர் என்ற Java-வின் தத்துவத்தை - அதன் சித்தாந்தத்தை விளக்குகிறது."

    "இது ஆரம்பநிலை மாணவர்களுக்கானது அல்ல. ஆனால் நீங்கள் கோட்ஜிம்மில் 20 வது நிலையை எட்டும் போது, நீங்கள் அதைப் படிக்க ஆரம்பிக்கலாம்."

    "இவைதான் நீங்கள் படிக்க வேண்டிய அத்தியாவசியமான Java புத்தகங்கள் (இன்னும் பலவும் உள்ளன). புத்தகங்களைப் படிப்பதன் மூலம், மொழியைப் பற்றி அறிந்து கொள்வதோடு மட்டுமல்லாமல், பொதுவாக நிரலாக்கத்தைப் பற்றிய உங்கள் புரிதலையும் விரிவுபடுத்திக் கொள்ளலாம். இவை அதற்கான சிறந்த புத்தகங்கள்:"


  4. "Charles Petzold, Code: The Hidden Language of Computer Hardware and Software"

    "அமேசானில் இந்தப் புத்தகத்தின் மதிப்பீடு (4.7/5) மற்றும் பிற மதிப்பீடுகளில் இருந்தும் இந்த புத்தகத்தின் மதிப்பை அறிந்துகொள்ளலாம்."

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

    "ஏற்கனவே சிறந்ததாகப் பெயர்பெற்றுள்ள இந்தப் புத்தகத்தில், இந்த கேள்விகளுக்கான அனைத்து பதில்களும் உள்ளன. எந்தவொரு சிறப்புக் கல்வியும் இல்லாமல் நிரலாக்கத்தைப் படிக்கும் நபர்களை விரைவாகக் கற்றுக்கொடுக்கும் அருமையான வேலையை இந்தப் புத்தகம் அற்புதமாகச் செய்கிறது."


  5. "Aditya Bhargava, Grokking Algorithms".

    "நெறிமுறைகளும் (Algorithms) தரவுக் கட்டமைப்புகளும் மிகவும் முக்கியமானவை மற்றும் அவசியமானவை. அவை ஒரு நிரலாக்குநரின் பணியில் குறிப்பிடத்தக்க பகுதியைக் குறிக்கின்றன. மேலும் நிரலாக்குநர்கள் அவற்றை திறம்பட பயன்படுத்த வேண்டும்! எடுத்துக்காட்டாக, ஆயிரக்கணக்கான தற்போக்கு எண்களை எவ்வாறு வரிசைப்படுத்துவீர்கள்?"

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

"ஒரு நிரலாக்குநர் ஆவதற்கான சரியான செய்முறை: புத்தகங்களைப் படிப்பது, பணிகளை முடிப்பது, சமூகத்தில் பங்கேற்பது!"