‹ முகப்புக்கு திரும்ப

Go Programming Beginners-க்கு: Backend Teams இதை ஏன் இத்தனை பிடிக்குதுன்னு பார்ப்போம்

Chennai, Bengaluru startup backend jobs-ல இப்போ எல்லாம் Go (Golang) கேட்குது. Install பண்றது முதல் முதல் Program Run பண்றது வரைக்கும் Step-by-step பாப்போம்.

Keerthika 6 min read
Google-ல் Follow
Programming Go Programming Beginners-க்கு: Backend Teams இதை ஏன் இத்தனை பிடிக்குதுன்னு பார்ப்போம் 6 நிமிடம் மீதம் Google-ல் Follow
Go Programming Beginners-க்கு: Backend Teams இதை ஏன் இத்தனை பிடிக்குதுன்னு பார்ப்போம்

தமிழ்டெக் AI சுருக்கம்

  • Go ஒரு Single Binary-ஆ Compile ஆகும், Server-ல Separate Runtime தேவையே இல்ல
  • go.mod உங்க Project-ஓட ID Card மாதிரி, Dependencies இதுல தான் Track ஆகும்
  • Error Handling Go-ல ஒரு Ritual — err != nil Check பண்ணாம Code முடியாது

AI உதவியுடன் தயாரான சுருக்கம் — தமிழ்டெக் எடிட்டர்ஸ் சரிபார்த்தது.

0:00
0:00
🔒 Listen வசதி subscribers-க்கு மட்டும். Subscribe செய்யுங்கள்

முக்கிய விஷயங்கள்

  • Go ஒரு Compiled Language, Google தான் இதை Build பண்ணாங்க, Server-ல Runtime தேவை இல்ல
  • go run main.go ன்னு ஒரே Command-ல Code-ஐ Run பண்ணலாம், Separate Compile Step தேவை இல்ல
  • go.mod file உங்க Project-க்கான ID Card மாதிரி, Dependencies எல்லாம் அதுல Track ஆகும்
  • Slices, Maps தான் Go-ல Everyday Data Tools — List மற்றும் Key-Value Store மாதிரி
  • Function ஒரு Value-ஓட Error-யும் சேர்த்தே Return பண்ணும், err != nil Check பண்றது Go-ல ஒரு Ritual

Go அப்படின்னா என்ன, இத்தனை பேருக்கு ஏன் பிடிக்குது?

Go-வை Golang-ன்னும் சொல்லுவாங்க. Google தங்க Scale-ல C++ கொஞ்சம் Headache-ஆ இருந்ததால, இதை Specialஆ Build பண்ணாங்க. இது ஒரு Single Binary-ஆ Compile ஆகும். அதாவது, நீங்க ஒரு File Build பண்ணீங்கன்னா, அதையே Server-ல போட்டா போதும், JVM வேணாம், Node Version Mismatch Drama வேணாம். இதுதான் Backend Teams இத்தனை Love பண்றதுக்கு காரணம். ஒரு Payment System ஆகட்டும், Ride-hailing Backend ஆகட்டும், API Gateway ஆகட்டும் — ஆயிரக்கணக்கான Requests ஒரே நேரத்துல வந்தாலும் Go Smooth-ஆ Handle பண்ணும். Code ஆறு மாசம் கழிச்சும் படிக்க Easy-ஆ இருக்கும்.

Go-வை எப்படி Install பண்ணி முதல் Program Run பண்ணலாம்?

Official Go Website-க்கு போயி, உங்க OS-க்கான Installer-ஐ Download பண்ணுங்க. Install முடிஞ்சதும் Terminal-ல இதை Type பண்ணி Check பண்ணுங்க.

go version

இப்போ ஒரு Folder உருவாக்குங்க, அதுல main.go ன்னு ஒரு File Create பண்ணுங்க. கீழ Code-ஐ Type பண்ணுங்க.

package main

import "fmt"

func main() {
    fmt.Println("Hello, TamilTech!")
}

இதை Save பண்ணிட்டு, அதே Folder-ல Terminal Open பண்ணி இந்த Command கொடுங்க.

go run main.go

அவ்வளவுதான். Separate Build Step இல்ல, Makefile இல்ல. go run ஒரே Shot-ல Compile பண்ணி Execute-யும் பண்ணிடும். நீங்க கத்துக்கிற Stage-ல இது Perfect.

Package, Module, go.mod இது எல்லாம் என்ன Story?

ஒவ்வொரு Go File-உம் ஒரு Package Name-ஓட தான் Start ஆகும். package main ன்னா, இந்த File-ஐ நேரடியா Run பண்ணலாம் — அதுக்குள்ள func main() இருக்கணும்.

உங்க Project ஒரு File-க்கு மேல Grow ஆகும்போது, Go-வுக்கு ஒரு Module தேவை. இதை ஒரு Project-க்கு ஒரு தடவை Setup பண்ணணும்.

go mod init github.com/yourname/hello

இது ஒரு go.mod File Create பண்ணும், அது இப்படி இருக்கும்.

module github.com/yourname/hello

go 1.23

go.mod-ஐ உங்க Project-ஓட ID Card மாதிரி நினைச்சுக்கோங்க. அப்புறம் go get வைச்சு Third-party Library சேர்த்தா, அதே File-ல அந்த Version Record ஆகும். இதனால உங்க Teammate Laptop-லயும், Server-லயும் ஒரே மாதிரி தான் Build ஆகும் — Node Project-ல package.json எப்படியோ, Go-ல go.mod அப்படி.

Variables, Slices, Maps-ஐ எப்படி Use பண்ணலாம்?

Go Statically Typed Language தான், ஆனா := வைச்சி Type-ஐ Skip பண்ணலாம். அதாவது, Compiler-கிட்ட தானா Figure Out பண்ணச் சொல்லுறீங்க.

package main

import "fmt"

func main() {
    name := "Chennai"
    var age int = 25
    fruits := []string{"mango", "banana"}
    fruits = append(fruits, "guava")

    scores := map[string]int{"maths": 90, "tamil": 95}

    fmt.Println(name, age, fruits, scores)
}

Slice அப்படின்னா ஒரு Flexible List மாதிரி. உதாரணமா, fruits-ல Items Add பண்ணிக்கிட்டே போகலாம், Size Fix பண்ண வேணாம்.

Map அப்படின்னா Key-Value Store. GPay-ல உங்க UPI ID ஒரு Key, அதுக்கான Balance ஒரு Value-ன்னு நினைச்சுக்கோங்க — அதே Logic தான் Map-ல Use ஆகுது.

Function-ல Multiple Return Values, Error Handling எப்படி Work ஆகுது?

Go-ல Exceptions இல்ல, Try-Catch இல்ல. இங்க ஒரு Function Value-ஓட Error-யும் சேர்த்தே Return பண்ணும்.

package main

import (
    "errors"
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println("Result:", result)
}

இந்த if err != nil Line-ஐ நீங்க Go Code-ல எங்கு பார்த்தாலும் பார்ப்பீங்க. இது ஒரு Ritual மாதிரி — Error வந்தா உடனே Handle பண்ணிடுங்க, இல்லனா அடுத்த Line-க்கு போங்க.

புதுசா கத்துக்கிறவங்க பண்ற Common Mistakes என்ன?

முதல் Mistake, := -ஐ Function வெளியே Use பண்ண முயற்சி பண்றது. Short Declaration := Function Body-க்குள்ள தான் Work ஆகும், Package Level-ல var தான் Use பண்ணணும்.

இரண்டாவது Mistake, err-ஐ Ignore பண்றது. result, _ := divide(10, 0) ன்னு Error-ஐ Underscore வைச்சி தூக்கி போட்டீங்கன்னா, Production-ல Silent-ஆ Bug வந்து Crash ஆகும்.

மூன்றாவது Mistake, go.mod இல்லாம Project-ஐ Grow பண்ண முயற்சி பண்றது. Library Add பண்ண முடியாம Stuck ஆயிடுவீங்க. go mod init-ஐ Start-லயே பண்ணிடுங்க.

இது Indian Companies, Interview-ல எங்க Use ஆகுது?

Payment Gateway Startups, Fintech Companies, Food Delivery Backends — இதெல்லாம் High Traffic-ஐ Handle பண்றதுக்கு Go-வை தேர்ந்தெடுக்குது, ஏன்னா ஒரே நேரத்துல ஆயிரக்கணக்கான Requests வந்தாலும் Memory, CPU Usage Control-ல இருக்கும்.

Backend Developer Interview-ல Goroutines (Concurrency), Error Handling Pattern, Slice vs Array Difference மாதிரி Questions அடிக்கடி கேக்குறாங்கன்னு Developers Forums-ல Mention பண்றாங்க. Go கத்துக்கிறது Resume-ல ஒரு Strong Skill-ஆ மாறுது.

நீங்க இப்போ என்ன Practice பண்ணணும்?

இந்த Four Programs-ஐ Type பண்ணி go run வைச்சி Run பண்ணி பாருங்க. அப்புறம் ஒரு Small Challenge — ஒரு Function Write பண்ணுங்க, அது ஒரு Slice of Numbers எடுத்துக்கிட்டு, அதுல Negative Number இருந்தா Error Return பண்ணணும், இல்லனா Sum-ஐ Return பண்ணணும்.

இந்த ஒரு Exercise-ல Slices, Functions, Multiple Returns, Error Handling எல்லாம் ஒன்னா Practice ஆகும். இதுதான் Go கத்துக்கிறதுக்கான Real Starting Point.

Go-வை Python, Node.js-ஓட Compare பண்ணா என்ன Difference தெரியுது?

Chennai-ல பல Bootcamp-ல முதல்ல Python அல்லது JavaScript தான் Teach பண்றாங்க, அதனால Beginners-க்கு இந்த Comparison தேவை. Python Easy-ஆ இருக்கும், ஆனா Large Scale-ல Run ஆகும்போது Speed குறையும், அதுக்கு Interpreter தேவைப்படும். Node.js Single Thread-ல Event Loop வைச்சி Work பண்ணும், அது I/O Heavy Apps-க்கு நல்லா இருக்கும், ஆனா CPU Heavy Tasks வந்தா Struggle ஆகும். Go இந்த இரண்டுக்கும் நடுவுல ஒரு Sweet Spot — Compile ஆன Binary, Built-in Concurrency Support, Type Safety எல்லாம் ஒன்னா கிடைக்கும்.

உதாரணமா, ஒரு Food Delivery App-ஓட Order Tracking Service-ஐ எடுத்துக்குங்க. Python-ல அதே Logic Write பண்ணலாம், ஆனா Thousands of Concurrent Orders வரும்போது Server Resources அதிகமா தேவைப்படும். அதே Service Go-ல Write பண்ணினா, Goroutines வைச்சி ஒரே Server-ல அதிக Load-ஐ Manage பண்ணலாம். இதனால Infrastructure Cost குறையும்ன்னு பல Startup Engineering Blogs Mention பண்றாங்க. இதனால தான் New Backend Services Start பண்ணும்போது Teams Go-வை Second Language-ஆ தேர்ந்தெடுக்குறாங்க, First Language-ஆ இல்லாட்டியும்.

ஆனா இதுனா Python, Node.js Useless-ன்னு அர்த்தம் இல்ல. Data Science, Quick Scripts, Frontend-Adjacent Work-க்கு அவை இன்னும் Strong-ஆ தான் இருக்காங்க. Go-ஐ நீங்க Specifically Backend APIs, Microservices, CLI Tools Build பண்றதுக்கு பயன்படுத்தினா, அதுக்கான Return அதிகமா இருக்கும். Right Tool-ஐ Right Job-க்கு பயன்படுத்துறதுதான் Senior Engineer-ஆக வளர்ச்சிக்கான முதல் Step.

ஒரு Chennai Startup Office-ல Go Project எப்படி Day-to-Day Structure ஆகுது?

நீங்க ஒரு Fresh Graduate-ஆ ஒரு Chennai-based Fintech Company-ல Join ஆனீங்கன்னு வையுங்க. முதல் Week-ல உங்களுக்கு ஒரு Existing Go Repository Clone பண்ண சொல்லுவாங்க, அதுல ஏற்கனவே go.mod File இருக்கும், பல Packages Separate Folders-ல Organize பண்ணி இருக்கும். handlers, models, utils மாதிரி Folder Names பார்ப்பீங்க — ஒவ்வொன்னும் ஒரு Specific Responsibility-ஐ தான் கையாளும். இது Monolith-ஆ இருந்தாலும் Code Readable-ஆ இருக்கணும்னு தான் இப்படி Split பண்றாங்க.

Daily Standup-ல ஒரு Senior Developer உங்களுக்கு ஒரு Small Bug Fix Assign பண்ணலாம் — உதாரணமா, ஒரு API Endpoint Error Message சரியா Return பண்ணலைன்னு Report வந்திருக்கும். நீங்க அந்த Function-ஐ Open பண்ணி, if err != nil Block-ஐ பார்த்து, எந்த Condition Miss ஆகுதுன்னு Trace பண்ணணும். இதை Fix பண்ணின பிறகு, Local-ல go run வைச்சி Test பண்ணி, அப்புறம் Pull Request போடுவீங்க. Team Code Review பண்ணி, Error Handling Pattern சரியா இருக்கான்னு Specifically கவனிப்பாங்க, ஏன்னா ஒரு Missed Error Production-ல Silent-ஆ User-க்கு தப்பான Response காட்டிடலாம்.

இந்த Process ஆரம்பத்துல கொஞ்சம் Slow-ஆ தோணும், ஆனா Few Months Cut ஆனதும் இதே Structure உங்களுக்கு Comfort-ஆ மாறிடும். Interview-க்கு போகும்போது, இப்படி ஒரு Real Codebase-ல Work பண்ணிருக்கீங்கன்னு சொன்னா, அது Just Theory கத்துக்கிட்டவங்களுக்கும் உங்களுக்கும் ஒரு Clear Difference Create பண்ணும்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

5

Go Programming கத்துக்க Prior Coding Experience வேணுமா?

கொஞ்சம் Basic Programming Logic (Variables, Loops) தெரிஞ்சா போதும். Go Syntax மத்த Languages-ஐ Compare பண்ணும்போது Simple-ஆ இருக்கும்.

go run, go build-க்கும் என்ன Difference?

go run உங்க Code-ஐ உடனே Compile பண்ணி Execute பண்ணிடும், Testing-க்கு Useful. go build ஒரு Standalone Binary File உருவாக்கும், அதை Separate-ஆ Run பண்ணலாம்.

Go-ல Error Handling-க்கு Try-Catch Use பண்ணலாமா?

இல்ல, Go-ல Try-Catch கிடையாது. Function ஒரு Value-ஓட Error-யும் Return பண்ணும், நீங்க if err != nil வைச்சு Check பண்ணணும்.

go.mod File-ஐ Manual-ஆ Edit பண்ணலாமா?

பண்ணலாம், ஆனா பொதுவா go mod init, go get Commands வைச்சே இதை Manage பண்றது Safe. Manual Edit பண்ணா Version Mismatch வரலாம்.

Slice, Array-க்கும் Go-ல என்ன Difference?

Array-க்கு Fixed Size இருக்கும், மாத்த முடியாது. Slice Flexible-ஆ Grow ஆகும், அதனால Daily Coding-ல Slice-ஐ தான் அதிகமா Use பண்றாங்க.

நாளைய டெக் செய்திகள் உங்க WhatsApp-க்கே

தினமும் ஒரு சின்ன update, இலவசம். TamilTech channel-ஐ follow பண்ணுங்க.

What do you think?

people reacted

Keerthika

தமிழ்டெக் எடிட்டோரியல் டீம் · 3,504 கட்டுரைகள்

Keerthika is an editor at TamilTech, the Tamil and English technology publication founded by Praveen Kumar S. She covers AI, smartphones, gadgets, EVs, startups and cybersecurity i...

மேலும் Keerthika

WhatsApp-ல் TamilTech-ஐக் கேளுங்க

டெக் சந்தேகமா? தமிழிலோ ஆங்கிலத்திலோ கேளுங்க — எங்க WhatsApp அசிஸ்டன்ட் TamilTech கட்டுரைகளில் இருந்து சில நொடிகளில் பதில் சொல்லும்.

தொடர்புடைய செய்திகள்

கருத்துகள் (0)

| Supports **bold**, *italic*, `code`

Be the first to comment!

அடுத்த செய்தி Dart Basics: Flutter கத்துக்கிற முன் இரண்டு மணி நேரம் இதை படிங்க
Tamiltech

Tamiltech

Install app for faster access

Earn XP 🏆
WhatsApp
Notifications