kiến thức [Event Tặng Title] Lập trình viên là ai - và nếu vậy thì bao nhiêu? (*)

Đi phỏng vấn thì gặp câu này: Em có thể chia sẻ về dự án mà em thích nhất không?

Thường câu này thì trả lời sao vậy mọi người
 
CGeMDAV.gif
Thank chủ thớt.
 
Đi phỏng vấn thì gặp câu này: Em có thể chia sẻ về dự án mà em thích nhất không?

Thường câu này thì trả lời sao vậy mọi người
Dự án nào mà fen cảm thấy fen đóng góp và tự hào thì cứ kể sơ sơ qua. Chú ý các thứ private thì k kể ra. Nghĩ sẵn câu trả lời như vậy chứ. Trong cv có liệt kê sẵn các thứ đã làm kiểu gì chả bị hỏi 1 cái thật sâu.
 
Bài viết hay. Em thấy thang điểm của ngành CNTT là khá cao.:eek::eek:
Nên sẽ có nhìu người có mong muốn làm về CNTT thì sẽ học ở các trung tâm hoặc từ ngành khác chuyển sang.
Ko biết bác thớt thấy những người làm trái ngành có cơ hội như các bạn học chính quy k ạ?:big_smile:

Sent from Vsmart Active 3 using vozFApp
Bản thân mình là dân trái ngành :). Mình học chuyên ngành Vật Lý ở đại học, gần như tất cả kiến thức về ngành phần mềm là mình tự học.

Nhưng cũng có lúc bằng cấp là bắt buộc. Ví dụ sang EU, bạn muốn có Blue Card thì bạn phải có bằng ĐH trong một danh sách đã được họ lựa chọn (ở VN cũng có nhiều trường, ĐHQG, BK, v.v...)

thread chia sẻ kiến thức thì để tag kiến thức chứ :)
Mình thấy vậy ko sao.
Okay thím, mà cái nút ưng đâu mất tiêu rồi :(.
 
Bản thân mình là dân trái ngành :). Mình học chuyên ngành Vật Lý ở đại học, gần như tất cả kiến thức về ngành phần mềm là mình tự học.

Nhưng cũng có lúc bằng cấp là bắt buộc. Ví dụ sang EU, bạn muốn có Blue Card thì bạn phải có bằng ĐH trong một danh sách đã được họ lựa chọn (ở VN cũng có nhiều trường, ĐHQG, BK, v.v...)


Okay thím, mà cái nút ưng đâu mất tiêu rồi :(.

junior ko có ưng
 
3/ Bắt đầu công việc

(Phần này cũng khá rộng, mình chỉ đưa vài ý chung chung, các bạn có những điểm khác cần chú ý thì đóng góp giúp mình).

3a/ Thái độ chung

Cũng như các công việc các, các bạn cần biết mình ở đâu. Chú ý lắng nghe, suy nghĩ theo hướng tích cực. Tự tin, không tự ti ("thằng này là sếp, mình phải nghe nó"), cũng không thái quá ("thằng này mới ra trường, biết gì mà nói").

Cái gì không biết thì hỏi, chẳng ai nói người hỏi nhiều là ngu cả. Nhưng không phải gặp cái gì cũng hỏi, nên tự tìm tòi một chút. Câu hỏi càng cụ thể thì càng tốt. Ví dụ sau vài tiếng tìm hiểu, bạn vẫn chưa hiểu một chỗ cụ thể, thì bạn có thể hỏi về đó. Chứ hỏi linh tinh hay quá chung chung thì cũng không hay.

Có một điều mình thường thấy là phần đông chỉ thích nói/nghe những điều tích cực, thích khen nhau. Điều này không có gì sai cả, suy nghĩ tích cực luôn luôn giúp bạn có một cuộc sống thoải mái hơn. Nhưng như vậy không có nghĩa là không có những điểm cần cải thiện. Và mình tin là nếu bạn đóng góp theo hướng xây dựng, ai cũng trân trọng cả. Đồng thời bạn cũng sẽ nhận được những đóng góp chân thành để cải thiện bản thân.

3b/ Thảo luận/Tranh luận

Phần thảo luận thì cũng phụ thuộc vào cá tính của từng người. Một vài điểm mà mình nghĩ là các bạn nên chú ý:

  • Chuẩn bị trước các cuộc họp: Đầu tuần, đầu ngày mình luôn kiểm tra lịch xem phải họp những gì, cần chuẩn bị những gì; Tránh để vào họp mà mình không biết là họp về cái gì, ngồi hóng cho hết giờ;
  • Chú ý lắng nghe khi người khác nói, không nói leo;
  • Suy nghĩ theo hướng "mở";
  • Tranh luận một cách tích cực, không lan man, không cá nhân hoá vấn đề;
  • Giữ cái tôi ở mức vừa phải, biết lúc nào nên "nhu" và lúc nào cần "cương";
  • Không để bụng - mình thường suy nghĩ là mọi người đều muốn tìm ra giải pháp tốt nhất, đôi khi không kiểm soát được cảm xúc, để ý quá lại tổ nhọc người;
Kỹ năng tranh luận là một kỹ năng khó, đặc biệt với những người yếu mảng giao tiếp; trong quá trình làm việc, các bạn nên chú ý cách giao tiếp của những người khác, rút ra bài học cho mình, và cũng để giao tiếp với họ tốt hơn. Mình lấy một ví dụ cụ thể:

  • Với một bạn "nhạy cảm", kiểu hơi bị tự ti, thì mình sẽ cố gắng khuyến khích, tạo điều kiện cho bạn ấy phát biểu; khi bạn ấy nói sai thì mình cũng xử lý theo hướng tinh tế hơn
  • Với một bạn thẳng thắn, thì mình cũng thẳng thắn với bạn ấy, không phải rào trước đón sau mỗi câu nói :)
Trên đây là cách mình giao tiếp, mục tiêu của mình là có thể giao tiếp với nhiều người nhất; Các bạn có thể đồng ý, có thể không, mình kiểu :baffle:.

3c/ Code sao cho "ngầu"

Đối với mình, những đoạn code tốt nhất là những đoạn code đơn giản nhất. Phần lớn thời gian trong việc phát triển phần mềm được dành cho việc bảo trì, tức là đọc code cũ, sửa lỗi hoặc cải thiện.

Có rất nhiều bài viết của các tác giả, lập trình viên gạo cội, các bạn nên theo dõi một cách thường xuyên. Có một trang là Hacker News, đây vừa là chỗ để thảo luận, vừa tổng hợp những bài viết chất lượng về ngành phần mềm nói chung.

Một vài ý mà mình nghĩ ngay được (chắc chắn là không đầy đủ):

  • Luôn luôn lựa chọn giải pháp đơn giản thay vì giải pháp phức tạp
  • Thay vì ngồi nghĩ để viết comment thì sửa sao để comment là không cần thiết (điểm này nhiều bạn có thể không đồng ý, nhưng đây là bài viết của mình :))
  • Tránh sáng tạo lại những thứ thế giới đã làm (hai ví dụ điển hình nhất là xử lý thời gian và những thứ liên quan đến bảo mật)
  • Không có giải pháp nào là hoàn hảo cả; tránh chạy theo xu hướng, thấy cái gì hay hay là áp dụng ngay vào dự án mà không hiểu về nó
  • Hạn chế side-effect đến mức tối đa, phần lớn code của bạn có thể unittest được mà không cần mock/patch
  • "Gom" những phần logic phức tạp vào một module/layer, viết unittest kỹ cho phần này
  • Thường xuyên refactor, mà để refactor hiệu quả thì unittest phải tốt, cấu trúc rõ ràng
 
Nếu làm outsource thì không được đâu nha thím. Cứ ghi làm dự án cho công ty của nước X về lĩnh vực Y, từ năm xx đến yy.
thế mà đợt phỏng vấn ko thấy ai ý kiến, lỗi này chắc cũng nguy hiểm nhỉ. Nhưng mà thấy khi phỏng vấn người ta có hỏi là Khách hàng là ai mà?
 
Riêng về lương bổng thì bạn hoàn toàn có để đòi thêm, và thường thì sẽ có một khoản "đệm" cho việc này (5-10%), kỷ lục cá nhân của mình là đòi thêm 40% và nhận được ~35%. Mình chưa từng thấy ai rút lại offer khi ứng viên đòi tăng lương cả. Nên các bạn cứ tự tin để deal, nhưng cũng phải hợp lý một chút, chứ không phải cứ đòi tăng gấp rưỡi là sẽ được tăng.
Câu này bác nói sao ấy chứ. Bạn em nó pv đậu 1 cty, trong buổi pv thì nói 18, khi nhận offer thì có 15 và nó bảo muốn tăng lên 17 thì cty đó bảo là "không đáp ứng đc mức lương đó" nên là không nhận nữa.
 
Câu này bác nói sao ấy chứ. Bạn em nó pv đậu 1 cty, trong buổi pv thì nói 18, khi nhận offer thì có 15 và nó bảo muốn tăng lên 17 thì cty đó bảo là "không đáp ứng đc mức lương đó" nên là không nhận nữa.

thì tuỳ cty, vị trí và trình độ nữa chứ.
Các bạn cũng nên học cách deal lương, còn việc deal dc hay ko thì hên xui. Còn thấy lương cao rồi ko cần deal thì thôi, mình lâu lâu thấy lương cao cũng lười deal :doubt: quan trọng là phải biết giá trị bản thân ở đâu.
 
Câu này bác nói sao ấy chứ. Bạn em nó pv đậu 1 cty, trong buổi pv thì nói 18, khi nhận offer thì có 15 và nó bảo muốn tăng lên 17 thì cty đó bảo là "không đáp ứng đc mức lương đó" nên là không nhận nữa.
Mình nói là mình chưa từng thấy chứ mình có nói là nó không bao giờ xảy ra đâu :). Thêm nữa làm ở VN có được hơn 2 năm, lại làm công ty nước ngoài, nên mình gần như không có chút kinh nghiệm nào với các công ty Việt.

Thêm một ý nữa (hơi thô), mình mà thấy công ty kỳ kèo vài triệu, lại tiền hậu bất nhất như thế khi chưa ký hợp đồng thì mình chạy mất dép. Buổi PV nó cũng thể hiện phần nào đó văn hoá của công ty.
 
Last edited:
thế mà đợt phỏng vấn ko thấy ai ý kiến, lỗi này chắc cũng nguy hiểm nhỉ. Nhưng mà thấy khi phỏng vấn người ta có hỏi là Khách hàng là ai mà?
Hỏi miệng thì không sao bạn ạ, còn CV là giấy trắng mực đen. Các tập đoàn lớn họ có nguồn lực để xử lý các trường hợp này. Như mình có đề cập thì mình từng thấy một bạn bị đuổi việc, chiều hôm trước lên MXH nói vu vơ: "Sáng mai deploy ... khách hàng X ...", sáng hôm sau lên công ty nhận được thông báo đuổi việc.

Mình cũng đã nói là mình hoàn toàn không có kinh nghiệm với các công ty Việt ở Việt Nam. Bạn có thể hỏi thêm những bạn khác có kinh nghiệm ở mảng này cho chắc. Mình chỉ đưa góc nhìn của mình thôi.
 
(*) Tiêu đề mình chôm của tác giả Precht (Tựa sách gốc: Wer bin ich - und wenn ja wie viele?, bản dịch tiếng Việt của Trần Vinh - NXB Thế Giới); (Mình giật tít thôi chứ không có hàm ý gì khi chọn tiêu đề này cả :))

Theo một ước tính của Statista, thế giới có khoảng gần 25 triệu lập trình viên chuyên nghiệp (sống bằng nghề lập trình) vào năm 2020. Và mỗi năm, thế giới có thêm khoảng 1 triệu lập trình viên. Đây cũng là một ngành nhận được nhiều sự chú ý của các sĩ tử những năm gần đây tại Việt Nam.
View attachment 879424
(Mình không tìm được thông tin về điểm sàn của Bộ từ năm 2018 trở về sau, bạn nào biết bổ sung giúp mình).

Mức khác biệt giữa điểm chuẩn và điểm sàn ngày càng tăng, từ 4-5 điểm ở những năm đầu thập kỷ lên hơn 10 điểm ở những năm gần đây.

Trong bài viết này, mình xin được chia sẻ với các bạn kinh nghiệm của bản thân khi là một trong số hơn 25 triệu người sống bằng nghề lập trình.

--
Một chút về bản thân, mình tốt nghiệp khoa Vật Lý, Đại học Khoa học Tự nhiên, ĐHQG-HCM. Làm việc ở Sài Gòn khoảng hơn 2 năm, sau đó là gần 2 năm ở Kuala Lumpur, Malaysia. Hiện tại, mình đang sống và làm việc ở Munich, CHLB Đức.
--

Trở lại câu hỏi ở tiêu đề: Lập trình viên là ai?

Có khá nhiều cách để gọi một lập trình viên: Software Engineer, Developer, Programmer, v.v…; ở VN, người ta còn dùng từ dân IT để gọi một lập trình viên.

Định nghĩa của IEEE về ngành Kỹ thuật phần mềm:



Google dịch (chuẩn phết):


Lập trình viên chuyên nghiệp là những người áp dụng SE trong công việc của họ. Nói một cách dân dã thì công việc của một lập trình viên là đưa một ý tưởng trở thành một sản phẩm (phần mềm) đến tay người dùng cuối.

Những role mình thường thấy trong một công ty phần mềm:
  • Nghiên cứu và phát triển (Research and development): Backend/Frontend Engineer, Data Engineer, Data Scientist
  • Thiết kế (Design): Architect, UX/UI Designer
  • Kiểm soát chất lượng (Quality Control): Quality Assurance Engineer, Tester
  • Hệ thống (Infrastructure): DevOps Engineer, Site Reliability Engineer, IT
  • Phân tích (Analysis): Business Analyst, Data Analyst
  • Quản lý (Management): Project Manager, Product Owner, Engineering Manager, Technical Leader
Một người có thể cùng lúc làm nhiều role trong một dự án phần mềm.

Những chia sẻ tiếp theo của mình là dưới góc nhìn của một Software Engineer (R&D) và Technical Leader (Management).

Mình sẽ chia thành các giai đoạn của một công việc tại một công ty cụ thể:
1/ Chuẩn bị
2/ Phỏng vấn và hậu phỏng vấn
3/ Bắt đầu công việc
4/ Lên "level"
5/ Giải quyết xích mích
6/ Nghỉ việc

--
Mình viết bài chủ yếu là để chia sẻ những gì mình đã trải qua. Kinh nghiệm và khả năng của bản thân mình thì thường thường bậc trung. Mình rất mong nhận được những đóng góp, chỉ bảo, thảo luận của các bạn. Mình hy vọng những bài viết này sẽ giúp ích một chút cho những bạn đang bắt đầu với nghề.

Thứ nữa thì văn chưa bao giờ là điểm mạnh của mình. Mong các bạn bỏ qua nếu câu cú có lủng củng.
Thật tuyệt vời.Khi nào e mở được tính năng like. Nhất định e sẽ qua lại thả like cho bác.
 
Công ty mất dạy thế này không vào làm việc xem như có phúc đi bạn.

Bạn gắt quá; mình nghĩ có thể công ty đó PV nhiều bạn, lúc PV ông này offer 18; xong PV ông khác (trình độ không quá chênh lệch, mình giả sử), mà ông thứ 2 chỉ đòi 15 thôi; nên mới giở quẻ với ông này :);

bài viết rất hay, chủ thớt cho hỏi sinh năm bao nhiêu rồi bạn?
Câu hỏi của bạn hại não quá. Mình 9x.
 
Back
Top