IT - Mid/Senior Backend Developer (Java+Golang)
Mô tả công việc
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or related field.
- At least 3 years of hands-on experience in backend development with both Java and Golang (or strong experience in one with working knowledge of the other, willing to work across both).
- Strong knowledge of Java frameworks (Spring Boot, Spring Cloud) and Go frameworks (Gin, Echo, or Fiber).
- Experience designing and consuming RESTful APIs; gRPC experience is a plus.
- Solid understanding of microservices architecture and containerization (Docker, Kubernetes).
- Experience with relational databases (Oracle, PostgreSQL, MySQL) and NoSQL databases (MongoDB, Redis).
- Familiarity with message brokers (Kafka, RabbitMQ) and event-driven architecture.
- Understanding of CI/CD pipelines, Git version control, and Agile/Scrum methodology.
- Knowledge of software design patterns, data structures, and algorithms.
- Experience in the banking/financial services industry is a plus.
- Good problem-solving skills, attention to detail, and ability to work independently and in a team.
- Good English communication skills (reading technical documents, writing reports).
Nice to Have
- Experience with cloud platforms (AWS, GCP, Azure) or private cloud/on-premises infrastructure.
- Knowledge of security standards in banking (PCI-DSS, ISO 27001).
- Experience with monitoring/logging tools (ELK, Prometheus, Grafana).
Yêu cầu ứng viên
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or related field.
- At least 3 years of hands-on experience in backend development with both Java and Golang (or strong experience in one with working knowledge of the other, willing to work across both).
- Strong knowledge of Java frameworks (Spring Boot, Spring Cloud) and Go frameworks (Gin, Echo, or Fiber).
- Experience designing and consuming RESTful APIs; gRPC experience is a plus.
- Solid understanding of microservices architecture and containerization (Docker, Kubernetes).
- Experience with relational databases (Oracle, PostgreSQL, MySQL) and NoSQL databases (MongoDB, Redis).
- Familiarity with message brokers (Kafka, RabbitMQ) and event-driven architecture.
- Understanding of CI/CD pipelines, Git version control, and Agile/Scrum methodology.
- Knowledge of software design patterns, data structures, and algorithms.
- Experience in the banking/financial services industry is a plus.
- Good problem-solving skills, attention to detail, and ability to work independently and in a team.
- Good English communication skills (reading technical documents, writing reports).
Nice to Have
- Experience with cloud platforms (AWS, GCP, Azure) or private cloud/on-premises infrastructure.
- Knowledge of security standards in banking (PCI-DSS, ISO 27001).
- Experience with monitoring/logging tools (ELK, Prometheus, Grafana).
Phân tích kỹ năng cần có
Phân tích kỹ năng cho vị trí Backend Developer (Java + Golang) tại OCB
Tổng quan vị trí
Đây là vị trí Mid/Senior Backend Developer yêu cầu song song cả Java và Golang — điều khá hiếm trên thị trường. OCB đang tìm người có thể làm việc đa ngôn ngữ trong hệ thống microservices của ngân hàng, phục vụ cho chiến lược chuyển đổi số mạnh mẽ gần đây.
1. Hard Skills (Kỹ năng cứng) — Bắt buộc
| Nhóm kỹ năng | Công nghệ cụ thể | Mức độ yêu cầu |
|---|---|---|
| Ngôn ngữ chính | Java (Spring Boot, Spring Cloud) và Golang (Gin, Echo, Fiber) | Bắt buộc cả hai, hoặc thành thạo 1 + sẵn sàng học cái còn lại |
| API Design | RESTful API (thiết kế & consume), gRPC | RESTful bắt buộc, gRPC là lợi thế |
| Kiến trúc | Microservices, Event-driven Architecture | Bắt buộc |
| Containerization | Docker, Kubernetes | Bắt buộc |
| Database | Oracle, PostgreSQL, MySQL (RDBMS) + MongoDB, Redis (NoSQL) | Bắt buộc cả hai nhóm |
| Message Broker | Kafka, RabbitMQ | Bắt buộc |
| DevOps | CI/CD pipelines, Git | Bắt buộc |
| Methodology | Agile/Scrum | Bắt buộc |
| Nền tảng | Design Patterns, Data Structures, Algorithms | Bắt buộc |
2. Hard Skills (Nice to Have) — Lợi thế cạnh tranh
- Cloud Platforms: AWS, GCP, Azure hoặc private cloud/on-premises
- Security Standards: PCI-DSS, ISO 27001 (rất quan trọng trong ngân hàng)
- Monitoring/Logging: ELK Stack, Prometheus, Grafana
- Kinh nghiệm ngân hàng/tài chính: hiểu biết về core banking, payment systems
3. Soft Skills (Kỹ năng mềm)
- Tư duy giải quyết vấn đề (problem-solving)
- Chú trọng chi tiết (attention to detail) — cực kỳ quan trọng khi xử lý giao dịch tài chính
- Khả năng làm việc độc lập và theo nhóm
- Giao tiếp bằng tiếng Anh: đọc tài liệu kỹ thuật, viết báo cáo
4. Bằng cấp & Chứng chỉ gợi ý
- Bắt buộc: Bằng Cử nhân ngành CNTT, Kỹ thuật phần mềm hoặc liên quan
- Chứng chỉ nên có:
- Oracle Certified Professional Java SE
- AWS Certified Developer/Architect (nếu OCB dùng AWS)
- Certified Kubernetes Administrator (CKA)
- Các chứng chỉ về PCI-DSS nếu có kinh nghiệm banking
5. Bảng so sánh mức độ phù hợp theo cấp bậc
| Cấp bậc | Kinh nghiệm Java | Kinh nghiệm Go | Microservices | Banking Domain |
|---|---|---|---|---|
| Mid-level (3-5 năm) | Thành thạo Spring Boot | Cơ bản-trung bình | Đã tham gia 1-2 dự án | Có lợi thế nhưng không bắt buộc |
| Senior (5+ năm) | Sâu về performance tuning, concurrency | Thành thạo, có thể mentoring | Thiết kế & review kiến trúc | Hiểu biết tốt là điểm cộng lớn |
---
Lưu ý quan trọng: Vị trí này yêu cầu cả Java và Golang, không phải chọn 1 trong 2. Nếu bạn chỉ mạnh 1 ngôn ngữ, JD vẫn mở nếu bạn chứng minh khả năng học hỏi nhanh. Tuy nhiên, ứng viên thành thạo cả hai sẽ có lợi thế rất lớn.
Chuẩn bị phỏng vấn
Hướng dẫn phỏng vấn Backend Developer tại OCB
Quy trình phỏng vấn dự kiến (3-5 vòng)
Vòng 1: HR Screening (30-45 phút)
- Giới thiệu bản thân, kinh nghiệm
- Mức lương hiện tại/kỳ vọng
- Tại sao rời đi/tại sao chọn OCB
- Thời gian bắt đầu làm việc
- Xác nhận công nghệ đã dùng qua
Vòng 2: Technical Test (Coding + Quiz) — 60-90 phút
- Có thể làm online qua HackerRank/CodeSignal hoặc tại chỗ
- Bài tập thuật toán: thường ở mức Medium trên LeetCode
- Câu hỏi về Java core (concurrency, JVM, garbage collection)
- Câu hỏi về Go (goroutines, channels, memory management)
- SQL queries, indexing, optimization
Vòng 3: Technical Interview sâu (60-90 phút)
- Live coding trên whiteboard hoặc shared editor
- System design: thiết kế hệ thống payment, transaction processing
- Thảo luận về kinh nghiệm thực tế trong CV
Vòng 4: Architecture/Manager Round (45-60 phút)
- Hỏi về kinh nghiệm microservices
- Cách xử lý incident, debugging production issues
- Hiểu biết về banking domain
- Khả năng làm việc nhóm, quản lý xung đột
Vòng 5: Director/Final Round (30-45 phút)
- Culture fit
- Tầm nhìn nghề nghiệp
- Đàm phán cuối cùng
Câu hỏi hay gặp theo từng vòng
Java Core (rất hay hỏi):
- Sự khác nhau giữa `HashMap` và `ConcurrentHashMap`?
- Giải thích cơ chế Garbage Collection trong JVM, các loại GC (G1, ZGC)?
- `synchronized` vs `ReentrantLock` vs `volatile`?
- Spring Boot auto-configuration hoạt động thế nào?
- Microservices communication patterns (sync vs async)?
Golang:
- Goroutines vs Threads khác nhau ở đâu?
- Channels và cách tránh deadlock
- Context package dùng để làm gì?
- Go memory model và escape analysis
- Interface vs struct embedding
System Design (hay gặp trong banking):
- Thiết kế hệ thống xử lý giao dịch chuyển tiền real-time
- Làm sao đảm bảo idempotency trong payment?
- Eventual consistency trong core banking
- Cách thiết kế Saga pattern cho distributed transactions
Banking Domain (câu hỏi tạo lợi thế):
- Bạn hiểu gì về Core Banking System?
- PCI-DSS yêu cầu gì khi lưu trữ dữ liệu thẻ?
- ISO 27001 là gì và áp dụng thế nào trong phát triển?
Behavioral (tình huống):
- Kể về lần bạn xử lý production outage
- Bạn xử lý conflict trong code review như thế nào?
- Tình huống phải tradeoff giữa deadline và chất lượng code
Tips chuẩn bị
1. Ôn lại 2-3 dự án lớn nhất trong CV theo format STAR (Situation-Task-Action-Result)
2. Luyện LeetCode Medium về Array, String, HashMap, Tree, Graph, DP
3. Đọc trước về OCB: Sản phẩm số (Ocbill, OMNI), chiến lược chuyển đổi số, tin tức gần đây
4. Chuẩn bị 3-5 câu hỏi thông minh để hỏi ngược interviewer
5. Mang theo laptop để demo code cá nhân (open-source contribution là điểm cộng)
Dress Code
- Vòng HR: Smart casual (áo sơ mi, quần tây, không cần vest)
- Vòng kỹ thuật: Business casual
- Vòng Director: Business formal (vest + sơ mi)
---
Mẹo nhỏ từ người trong ngành: Nếu bạn chưa có kinh nghiệm banking, hãy dành 2-3 giờ đọc về Core Banking, Payment Gateway, ISO 8583, PCI-DSS trước buổi phỏng vấn. Điều này chứng tỏ bạn nghiêm túc và có khả năng học hỏi nhanh.
Lộ trình ôn thi
Lộ trình ôn tập 1-2 tuần cho vị trí Backend Developer (Java + Golang) tại OCB
Tuần 1: Nền tảng Java & Microservices
Ngày 1-2: Java Core Deep Dive
- Đọc lại Effective Java của Joshua Bloch (ít nhất 5 chương đầu)
- Ôn lại JVM internals: class loading, memory areas, GC algorithms
- Thực hành trên [JVM Internals](https://blog.jamesdbloom.com/) và Baeldung.com
Ngày 3-4: Spring Boot & Spring Cloud
- Làm tutorial trên [Spring Guides](https://spring.io/guides)
- Thực hành xây dựng 1 microservice với Spring Cloud (Eureka, Config Server, Gateway)
- Hiểu về Resilience4j, Circuit Breaker pattern
Ngày 5-7: Microservices & System Design
- Đọc Microservices Patterns của Chris Richardson (chương 1-5)
- Học về Saga Pattern, CQRS, Event Sourcing
- Thực hành thiết kế 2 hệ thống: payment processing và notification service
Tuần 2: Golang & Hệ sinh thái
Ngày 8-9: Go Fundamentals
- Hoàn thành [Tour of Go](https://go.dev/tour/) và [Go by Example](https://gobyexample.com/)
- Làm bài tập trên Exercism (track Go)
- Thực hành goroutines, channels, context
Ngày 10-11: Go Frameworks & Backend
- Xây dựng REST API với Gin và Fiber
- Kết nối PostgreSQL với GORM hoặc sqlx
- Thực hành viết test với testify
Ngày 12-14: DevOps + Banking Domain
- Docker + Kubernetes cơ bản: viết Dockerfile, deploy 1 service lên K8s
- Học Kafka basics: producer/consumer, partitions
- Đọc về PCI-DSS và ISO 27001 (tóm tắt 2-3 trang là đủ)
Tài liệu tham khảo theo chủ đề
| Chủ đề | Tài liệu | Link |
|---|---|---|
| Java nâng cao | Effective Java (Joshua Bloch) | Sách |
| Spring Boot | Spring in Action (Craig Walls) | Sách |
| Microservices | Microservices Patterns (Chris Richardson) | Sách |
| Golang | The Go Programming Language (Alan Donovan) | Sách |
| Go thực hành | Go by Example, Exercism.io | Web |
| System Design | System Design Interview Vol 1 & 2 (Alex Xu) | Sách |
| LeetCode | NeetCode 150 (Java + Go) | Web |
| Banking Domain | ISO 8583 Tutorial, PCI-DSS Quick Guide | Web |
| Kubernetes | Kubernetes in Action (Marko Lukša) | Sách |
| Kafka | Kafka: The Definitive Guide | Sách |
Checklist trước ngày phỏng vấn
- [ ] Ôn lại 50 bài LeetCode Medium (đủ nhanh trong 20-30 phút)
- [ ] Đọc về OCB: sản phẩm, tin tức gần đây, đối thủ (Techcombank, VPBank, MBBank)
- [ ] Chuẩn bị 3 dự án cá nhân/tại công ty trình bày 5 phút
- [ ] Review CV của chính mình, ghi nhớ từng con số/chi tiết
- [ ] Test máy tính, mic, camera (nếu phỏng vấn online)
- [ ] Ngủ đủ giấc 2 đêm trước
Lộ trình cường độ cao (nếu chỉ có 3-5 ngày)
Nếu bạn đã có nền tảng vững, hãy ưu tiên:
1. LeetCode 30 bài Medium (focus vào Array, String, Tree)
2. Đọc lại notes cá nhân về Java & Go
3. Thiết kế 1 hệ thống payment đơn giản trên giấy
4. Đọc 1-2 bài blog về banking IT tại Việt Nam
Tư vấn nghề nghiệp
Lời khuyên sự nghiệp cho Backend Developer ngân hàng
Lộ trình thăng tiến trong ngân hàng
```
Junior Backend (1-3 năm)
↓
Mid Backend (3-5 năm) ← Bạn đang ở đây
↓
Senior Backend (5-8 năm)
↓
Tech Lead / Principal Engineer
↓
Engineering Manager / Solution Architect
↓
CTO / VP of Engineering
```
Đặc thù ngân hàng: Lộ trình có thể đi theo 2 hướng:
- Technical track: Senior → Principal → Fellow Engineer
- Management track: Tech Lead → Engineering Manager → Director
Mức lương ước lượng theo cấp bậc (tham khảo)
| Cấp bậc | Java only | Java + Go | Kèm banking domain |
|---|---|---|---|
| Mid-level (3-5 năm) | 25-40 triệu | 35-50 triệu | 40-55 triệu |
| Senior (5-8 năm) | 45-65 triệu | 60-85 triệu | 70-100 triệu |
| Tech Lead | 70-100 triệu | 90-130 triệu | 110-150 triệu |
| Engineering Manager | 90-150 triệu | 120-180 triệu | 150-200 triệu |
Lưu ý: Mức lương có thể thay đổi tùy ngân hàng và thời điểm. Đây chỉ là ước lượng dựa trên thị trường Việt Nam 2024-2025. Các ngân hàng lớn như Techcombank, VPBank, MBBank thường trả cao hơn 15-20% so với mặt bằng chung. OCB đang trong giai đoạn chuyển đổi số mạnh nên có thể có gói hấp dẫn.
Phúc lợi thường có tại ngân hàng
- Thưởng Tết (1-3 tháng lương)
- Thưởng KPI quý/năm
- Bảo hiểm sức khỏe cao cấp (PVI, Bảo Việt)
- Vay nhân viên ưu đãi (lãi suất 5-7%/năm)
- Cơ hội tham gia chương trình đào tạo nước ngoài
- 12-15 ngày phép/năm
Kỹ năng cần phát triển thêm trong 6-12 tháng tới
1. Cloud Native Development: AWS/GCP certification
2. Observability: Distributed tracing (Jaeger, Zipkin), APM tools
3. Security Mindset: OWASP Top 10, secure coding, secret management
4. Database Deep Dive: Performance tuning, replication, sharding
5. Soft Skills: Technical writing, mentoring junior, presentation
So sánh ngân hàng vs Product Company vs Outsourcing
| Tiêu chí | Ngân hàng (OCB) | Product Company | Outsourcing |
|---|---|---|---|
| Lương | Trung bình-cao | Cao | Trung bình |
| Work-life balance | Tốt (9-10h/ngày) | Tốt-trung bình | Thất thường |
| Tech stack hiện đại | Đang cập nhật | Luôn mới nhất | Tùy khách hàng |
| Domain knowledge | Banking, Finance | Đa dạng | Đa dạng |
| Ổn định | Cao | Trung bình | Thấp-trung bình |
| Cơ hội thăng tiến | Rõ ràng theo cấp bậc | Phụ thuộc công ty | Chậm |
Lời khuyên cá nhân
1. Đừng chỉ học công nghệ, hãy học domain: Hiểu core banking, payment, risk management sẽ giúp bạn đắt giá hơn nhiều so với một backend dev thông thường.
2. Xây dựng personal brand: Viết blog kỹ thuật, đóng góp open source, chia sẻ trên Viblo/Techmaster. Điều này rất có giá trị khi deal lương.
3. Networking trong ngành banking IT: Tham gia cộng đồng Banking IT Vietnam, Vietnam Java User Group. Nhiều cơ hội job đến từ referral.
4. Cân nhắc chuyển ngân hàng sau 2-3 năm: Banking IT ở Việt Nam đang rất hot, việc nhảy việc có thể tăng 30-50% lương.
5. Đừng bỏ qua tiếng Anh: Nhiều tài liệu banking chuẩn quốc tế chỉ có tiếng Anh. Đầu tư vào tiếng Anh chuyên ngành là đầu tư dài hạn.
Câu hỏi thường gặp
Em là sinh viên năm cuối ngành CNTT, có thể ứng tuyển vị trí Mid/Senior này không?
Theo JD, vị trí yêu cầu ít nhất 3 năm kinh nghiệm thực tế với Java và Golang. Nếu em đang là sinh viên năm cuối và chưa có kinh nghiệm đi làm chính thức, cơ hội được chấp nhận là rất thấp. Tuy nhiên, em có thể:
1. Tích lũy kinh nghiệm qua internship tại các ngân hàng hoặc fintech
2. Làm các dự án cá nhân/full-time freelancer trong 1-2 năm
3. Đóng góp open source để có thành tích thực tế
Lời khuyên: Hãy ứng tuyển các vị trí Junior trước, hoặc chương trình Fresher/Graduate của OCB nếu có. Sau 2-3 năm tích lũy, em sẽ đủ hồ sơ cho vị trí Mid này.
Mức lương kỳ vọng cho vị trí này nên đưa ra bao nhiêu là hợp lý?
Mức lương phụ thuộc vào nhiều yếu tố: kinh nghiệm, thành thống công nghệ, kinh nghiệm banking, và khả năng thương lượng. Theo ước lượng thị trường:
- Mid (3-5 năm, Java + Go, có banking domain): 40-55 triệu
- Senior (5-8 năm, cả Java + Go, có banking): 70-100 triệu
Mẹo deal lương:
- Đừng báo mức quá thấp, hãy để HR đưa ra trước nếu có thể
- Chuẩn bị 2-3 offer khác để có lực thương lượng
- Nhấn mạnh giá trị bạn mang lại: tiết kiệm chi phí, cải thiện performance, mentoring junior
- Cân nhắc tổng compensation (lương + thưởng + phúc lợi), không chỉ base salary
Lưu ý: Mức lương có thể thay đổi tùy ngân hàng và thời điểm, đây chỉ là tham khảo.
Tôi có 4 năm kinh nghiệm Java nhưng chỉ mới học Golang 3 tháng, có nên ứng tuyển không?
Bạn hoàn toàn có thể ứng tuyển. JD ghi rõ: "strong experience in one with working knowledge of the other, willing to work across both". Tức là ngân hàng chấp nhận ứng viên mạnh 1 ngôn ngữ và có kiến thức cơ bản về ngôn ngữ còn lại. Tuy nhiên, để tăng cơ hội:
1. Trong CV, hãy làm nổi bật kinh nghiệm Java sâu (4 năm Spring Boot, microservices)
2. Liệt kê các dự án cá nhân/đồ chơi bạn đã làm với Go
3. Trong phỏng vấn, thể hiện rõ willingness to learn và tốc độ học
4. Chuẩn bị tốt phần Go fundamentals để không bị hỏi đứt
Điểm yếu Go có thể bù bằng điểm mạnh Java + kinh nghiệm thực tế microservices. Nhiều HR sẽ linh hoạt vì OCB đang cần người gấp.
Tôi đang làm backend ở fintech, chuyển sang ngân hàng có khó không?
Chuyển từ fintech sang ngân hàng truyền thống như OCB hoàn toàn khả thi và có nhiều lợi thế:
Điểm thuận lợi:
- Bạn đã quen domain tài chính (payment, KYC, credit score)
- Công nghệ thường tương đồng (microservices, cloud)
- Fintech đôi khi còn modern hơn ngân hàng truyền thống
Điểm cần chuẩn bị:
- Core banking concepts (core banking system, ledger, double-entry bookkeeping)
- Regulatory compliance (NHNN, PCI-DSS, ISO 27001)
- Tốc độ release chậm hơn fintech do quy trình compliance
- Văn hóa doanh nghiệp lớn hơn (nhiều quy trình, approval)
Mẹo: Trong CV, hãy dùng từ ngữ "banking-adjacent" thay vì "fintech" và map kinh nghiệm sang ngân hàng. Ví dụ: xử lý giao dịch ở fintech ≈ transaction processing ở ngân hàng.
OCB so với các ngân hàng khác (Techcombank, VPBank, MBBank) về môi trường IT như thế nào?
Mỗi ngân hàng có thế mạnh riêng:
OCB: Đang trong giai đoạn chuyển đổi số mạnh mẽ, đầu tư nhiều vào công nghệ. Có Ocbill, OMNI, ngân hàng số. Văn hóa khởi nghiệp hơn các ngân hàng nhà nước. Phù hợp nếu bạn muốn "build something new".
Techcombank: Lương cao nhất nhì ngành, tech stack hiện đại, nhưng áp lực cao. Dự án lớn nhưng deadline dồn dập.
VPBank: Quy mô lớn, nhiều dự án số hóa (VPBank Neo, Cake by VPBank). Cơ hội học hỏi đa dạng.
MBBank: MBBank App được đánh giá cao, văn hóa fair, chế độ tốt. Nhưng quy trình đôi khi nặng nề.
Theo kinh nghiệm cộng đồng: OCB trả lương cạnh tranh (không cao bằng Techcombank nhưng tốt hơn MBBank), văn hóa cởi mở, nhiều cơ hội cho người trẻ.
Tôi đã có 8 năm Java, đang muốn lên Tech Lead. Vị trí này có phù hợp không?
Với 8 năm kinh nghiệm Java, bạn đang ở mức Senior. Vị trí này hoàn toàn phù hợp nếu bạn muốn chuyển sang làm việc tại ngân hàng. Tuy nhiên, về lộ trình Tech Lead, bạn cần cân nhắc:
1. Tech track tại OCB: Sau 1-2 năm Senior, bạn có thể được promote lên Tech Lead hoặc Principal Engineer. Nhưng phụ thuộc vào cấu trúc team.
2. Kỹ năng Tech Lead cần có mà vị trí này không yêu cầu rõ: people management, project planning, stakeholder management.
3. Lợi thế khi có Go: Bạn sẽ nổi bật so với các ứng viên chỉ biết Java, dễ được chọn vào các dự án chiến lược hơn.
Lời khuyên: Trong phỏng vấn, hãy thể hiện ambition lên Tech Lead, đồng thời cho thấy bạn có khả năng mentoring junior và dẫn dắt nhóm (kể cả khi chưa chính thức làm Tech Lead ở công ty cũ).
Công việc Backend ở ngân hàng có áp lực hơn các công ty product không?
Câu trả lời ngắn: Có, nhưng không hẳn là tiêu cực. Cụ thể:
Áp lực đặc thù ngân hàng:
- Downtime = mất tiền + uy tín, nên yêu cầu SLA rất cao (99.99%)
- Compliance/audit kỹ hơn, release chậm hơn (có thể 1-2 tuần/release so với 1 ngày ở product company)
- Production incident phải xử lý 24/7, có on-call rotation
- Dữ liệu nhạy cảm, security là ưu tiên hàng đầu
Mặt tích cực:
- Ít khi phải crunch time như startup/product
- Quy trình rõ ràng, ít bị thay đổi requirement liên tục
- Work-life balance tốt hơn (thường 9-10h/ngày)
- Lương ổn định, ít bị ảnh hưởng bởi funding/market
So sánh thực tế: Nếu bạn đến từ startup, ngân hàng sẽ chậm hơn. Nếu từ outsourcing, ngân hàng sẽ tốt hơn về work-life balance. Nếu từ big tech, có thể sẽ thấy quy trình nặng nề hơn.
Học Golang có khó không nếu tôi đã biết Java?
Golang thực tế dễ học hơn Java về syntax, nhưng paradigm khác nhau nên cần thay đổi tư duy. So sánh nhanh:
Điểm dễ:
- Syntax đơn giản, ít keyword
- Không có OOP phức tạp như Java (không class, chỉ struct + interface)
- Concurrency gọn nhẹ với goroutines
- Build & test tool tích hợp sẵn, không cần Maven/Gradle
Điểm cần thay đổi tư duy:
- Error handling rất khác (không try-catch, dùng if err != nil)
- Không có inheritance, dùng composition
- Pointer và value receiver - khái niệm Java không có
- Channel-based concurrency thay vì thread + synchronized
Lộ trình học 4-6 tuần cho người Java:
- Tuần 1: Syntax cơ bản, Tour of Go
- Tuần 2: Goroutines, channels, concurrency patterns
- Tuần 3: Go web framework (Gin), REST API
- Tuần 4: Kết nối database, test, deploy
- Tuần 5-6: Dự án cá nhân microservices
Đã biết Java thì học Go trong 2-3 tháng là có thể làm việc được ở mức production.