Tên gọi và cảnh giới trong nghề

Như các bạn đã biết chúng ta lướt 1 vòng qua các trang tìm việc sẽ bắt gặp vô số từ ngữ như: Developer, Programmer, Engineer, Architect, Junior, Senior … vậy thật sự chúng ta đc gọi là gì và đang ở trình độ nào ???

Thứ tự sắp xếp theo hiểu của mình các bạn có thể bổ sung thêm:

  • Coder : như tên gọi của nó chỉ những người biết code. Mình xếp cái này đầu tiên vì nó bao hàm nhiều nhưng mình nghĩ nó thấp nhất vì những người biết code ko có người biết chuyên sâu mà chỉ cần làm theo tus trên mạng hoặc theo trung tâm nào đó thì vẫn gọi là coder.

  • Developer: loại này theo tên dịch ra là nhà phát triển. Vậy nó được hiểu như thế nào ? Theo mình đây là những người viết được các chương trình con hoặc các ứng dụng liên quan đến một chương trình lớn. Như chat bot của facebook chat, livestream của youtube .v.v.

  • Programmer: cảnh giới này thì phải nói là đỉnh. Bạn có thể viết ra các chương trình lớn cho phép các developer phát triển nó như các engine game, framework web, android, ios

Đánh giá vào trình độ của bạn thường thấy ở các trang tuyển dụng là số năm kinh nghiệm như Junior 1-2 năm, Senior 3 -5 năm. Mình thấy như vậy cũng không đúng lắm có 1 số Junior nhưng làm việc rất khoa học và logic, một số khác Senior lại không thể nắm bắt đc các công nghệ cốt lõi của vấn đề làm việc theo công nghệ mới rất khó khăn.

Tóm lại trong thế giới này chúng ta gọi nhau bằng những tên hoa mỹ nhưng chẳng biết tác dụng của nó.

P/s: Ai hỏi tôi làm gì thì tôi chỉ trả lời: Tôi là 1 nhân viên văn phòng giải quyết vấn đề bằng cách đánh văn bản một cách có cấu trúc hệ thống và có logic.

5 Likes

Theo mình thì trả lời như này không phải là khiêm tốn hay đơn giản gì đâu, nó giống như bạn “muốn tỏ ra khiêm tốn” hơn là thật sự khiêm tốn.

“Lập trình viên”, “kỹ sư phần mềm”, hoặc “da, con làm mấy cái phần mềm chạy trên máy tính á” là câu trả lời có vẻ giúp người khác, nhất là người ngoài ngành hiểu dễ hơn.

8 Likes

Hi there,

Tớ nghĩ là tớ sẽ correct một vài định nghĩa, theo quan điểm của tớ, đồng thời bổ sung thêm các định nghĩa mới. Hi vọng nó sẽ giúp cho mọi người có cái nhìn tốt hơn về ngành này :smile:

Các thuật ngữ dưới đây chỉ vai trò (role) trong công việc phát triển phần mềm. Và vì là vai trò, nó thường gắn với công việc mà vai trò đó đảm nhận.

  • Coder: đây là role có nhiệm vụ viết mã nguồn. Những người ở vai trò này, như Trùm Mặt có nói, thường không có nhiều hiểu biết nền tảng về computer science, và thường chỉ viết các mã nguồn không quá phức tạp (như cắt - ghép HTML…, hay viết các hàm đã được thiết kế đến tận răng, chỉ cần copy paste).
    Nếu bạn là người không có nền tảng về computer science, và đã hoàn thành vài course như free code camp, bạn có thể đảm nhiệm vai trò này.
  • Developer or Programmer: 2 thuật ngữ này tớ đánh giá là tương đương nhau, và như tên gọi, họ là những người phát triển sản phẩm, chịu trách nhiệm development. Người đóng vai trò này sẽ là người nhận 1 requirement (và đôi khi là thiết kế), rồi implement requirement đó. Họ có thể đảm nhận cả các task thiết kế trong application level mà họ viết. Họ cũng có thể nhận các task deployment, troubleshooting và fix bug nữa.
    Tuy nhiên, như tên gọi, họ chỉ là nhà phát triển/viết chương trình. Họ không phải là người thực hiện các công việc vận hành, và kiến thức của họ thường gói gọn trong phạm vi sản phẩm mà họ chịu trách nhiệm.
    Những công ty dịch vụ (như outsourcing, hay dịch vụ giới thiệu và cho thuê nhân sự phát triển dự án) thường có nhiều người ở vai trò này.
  • Engineer: đây là vai trò chỉ những người có thể làm các công việc, từ implement solution, design solution, vận hành, monitor, deployment… Họ có kiến thức end-to-end về toàn bộ hệ thống, có thể tính toán resource để deploy sản phẩm (không phải trách nhiệm của developer, những nhà phát triển tính năng), thực các operation phức tạp trên hệ thống (developer không có kiến thức end-to-end không thể làm được), có thể đưa ra các solution phức tạp ở architecture level in practical way, và có thể kiêm luôn vai trò phát triển sản phẩm.
    Những sản phẩm lớn thường cần người có vai trò này, do họ luôn cần phát triển lẫn vận hành sản phẩm cùng lúc.
  • Architect: Những người nghệ sĩ, có rất nhiều hiểu biết về cutting edge technology cũng như high level architecture level design best practice. Họ thường đóng vai trò cố vấn nhiều hơn, khi đưa ra design architect cho 1 hệ thống (thường ở giai đoạn đầu, hoặc 1 tính năng nào đó yêu cầu rất nhiều thành phần của hệ thống).
    Thường những engineer có rất nhiều kinh nghiệm sẽ nắm vai trò này.

Các thuật ngữ về kinh nghiệm dưới đây sẽ mang tính ước lệ nhiều hơn. Tuy nhiên, tớ sẽ chỉ ra ability của từng mức độ kinh nghiệm, cho mọi người tham khảo.

  • Junior: mức kinh nghiệm về Junior thường gắn cho những người mới ra trường, hoặc có vài năm kinh nghiệm. Những người ở mức này có kiến thức nền tảng về computer science (ở mức theory), nhưng hoạt động ít trong industry, nên thiếu các kỹ năng lẫn kinh nghiệm thực tế.
    Những người ở mức này thường gặp rất nhiều khó khăn khi diễn đạt ý kiến bản thân (khi trình bày 1 vấn đề, hay giải thích 1 solution), hay mắc các sai lầm vặt, thường làm theo cảm tính hơn là có lý do cụ thể, thường giải quyết vấn đề theo try and error approach.
    Tớ từng gặp những Junior 10 năm kinh nghiệm, vậy nên tớ sẽ không đặt bất cứ tiêu chuẩn về số năm kinh nghiệm cho mức này.
  • Mid-career: Những người hoạt động trong industry 1 thời gian, có kinh nghiệm nhất định trong lĩnh vực của họ.
    Họ thường là những người đã có hiểu biết về nghề nghiệp, có tầm ảnh hưởng lớn tới các thành viên trong team, có thể thực hiện 1 feature từ A-Z, nhưng chưa có hiểu biết sâu sắc ở tất cả các khía cạnh trong lĩnh vực của họ.
    Có rất nhiều người ở mức này tự gọi mình là senior, có lẽ vì lý do so sánh với những người gọi mình là Junior, và ở chỗ họ không có tiền thuê senior thực thụ :smile:
  • Senior: Rất tiếc là tớ không là người ở level này, nên tớ chỉ liệt kê những gì tớ quan sát được thôi.
    Họ là những người hoạt động trong industry 1 thời gian tương đối dài, có kinh nghiệm vô cùng phong phú trong lĩnh vực của họ.
    Họ là master về giải quyết vấn đề in best practice way, communicate vô cùng hiệu quả, productivity rất cao (x20 productivity so với các engineer thông thường).
    Dĩ nhiên là họ không biết hết được mọi thứ, nhưng những gì họ biết đem lại giá trị vô cùng to lớn.
    Thường thì họ sẽ làm trong các công ty tư vấn kỹ thuật, hoặc làm cho các công ty theo hợp đồng tính giờ để đóng vai trò tư vấn kỹ thuật, vì bạn phải trả cho họ rất nhiều.

Đó là những gì tớ biết. Có lẽ những giải thích trên có thiếu sót, vậy nên, as usual, contribution are welcome! :smile:

11 Likes

Theo kinh nghiệm núp lùm DNH, còn 1 cảnh giới nữa, người đạt tới mức này có thể ngủ mà vẫn code được.
Cảnh giới cấp cao này chưa thấy người thường nào làm được.

Just for fun :penguin:

10 Likes

“Hmm, thế sau đó anh chỉ in cái văn bản đó ra rồi nộp cho sếp thôi đúng không? Thế anh đánh cái văn bản “một cách có cấu trúc hệ thống và có logic” kia để làm gì? Đằng nào cũng in ra rồi nộp cho sếp thôi mà?” - Một người không biết gì về lập trình hỏi.


Nói vui vui chút, cảnh giới cao nhất của việc code chính là…không code!

6 Likes

Để test trình độ tiếng Anh thì có thang điểm TOEIC, IELTS, … còn test trình độ IT thì có gì ạ ?

Theo wiki

A computer programmer, sometimes called a software developer,

a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer software.

The term computer programmer can refer to a specialist in one area of computers, or to a generalist who writes code for many kinds of software.

Mình thấy cách giải thích này rất dễ hiểu và bám sát thực tế, chứ không cần phải cố gắng làm phức tạp lên những cái tên gọi.

Ngoài ra, những công ty outsourcing “thường” (mình nói là thường, chứ không phải là tất cả) sử dụng cách gọi là “Software Engineer” hoặc " Software Programmer". Một số ít còn gọi là “PC Programmer” thay vì Computer Programmer.

Sở dĩ mình nói “không cần phải cố gắng làm phức tạp lên những cái tên gọi”, vì mỗi quốc gia (và sau đó là mỗi công ty) sẽ có cách gọi theo cách hiểu của họ, cách họ xác định các roles và cách thức quản lý (và các họ dịch từ tiếng Anh sang tiếng của quốc gia họ, và sau đó dịch ngược cái title lại sang tiếng Anh nữa).

Riêng về tên gọi “developer”, do trong ngành IT mình sử dụng tên này nhiều, nghe quen, nhưng người ở ngành khác có thể nhầm lẫn, vì bản thân developer không chỉ hiểu là “lập trình viên” mà còn được hiểu theo nghĩa khác, ví dụ như Business Developer, etc.

Vấn đề tên gọi này còn được tranh cãi nhiều, thường gặp là giưa Technical Architect, Software Architect, Solution Architect, Enterprise Architect

hay giữa QC và QA.

Nhìn vào từng title, thấy có vẻ như là khác biệt rất rõ ràng dựa trên từ ngữ, không có gì để nhầm lẫn. Nhưng như đã nói ở trên, title còn tuỳ thuộc vào cách hiểu, công viêc thực tế ở từng công ty, và n lý do khác nữa, bao gồm cả lý do hiểu sai, ghi sai…

Còn các level junior, senior, expert, guru, etc thì chắc không cần bàn, vì mỗi công ty có mỗi tiêu chuẩn khác nhau, và nhiều khi cty đánh giá mình là junior, nhưng mình tự đánh giá bản thân của mình là senior cũng không chừng.

[edit] Nói thêm về senior hay junior. Tầm hơn chục năm về trước, 1 lập trình viên nói “tui là senior developer”, thì ắt hẳn người đó phải trên dưới 10 năm trong nghề. Hiên tại, không khó để thấy CV của 1 bạn 2-3 năm kinh nghiệm, ghi title là “Senior Developer/Programmer”.

Trước đây khi tuyển dụng cho khách US, họ tuyển Senior C++ Programmer. Khi mình giới thiêu những anh chị có thể gọi là top notch trong mảng C++ mà mình biết, thì mới vỡ lẻ ra là C++ đối với bọn US tại thời điểm đó, tiêu chuẩn của nó cao hơn bên mình khá xa.

Bây giờ thì “lập trình viên VN” có số má dữ lắm, chứ không bèo đâu nha. Còn title gì thì không quan trọng lắm ở đa số các trường hợp.

7 Likes

Cảnh giới gì không biết, ngày xưa mấy ông lập trình chỉ ngồi quanh quẩn với nhau và với máy tính, trong tay không có bất cứ tài liệu nào cũng vẫn viết được code. Mấy ông đó giờ hiếm như sao trên trời giữa trưa.

Ngày nay không thấy có thanh niên nào lập trình được kiểu đó, máy rớt mạng, công cụ tra cứu hỏng là xem như ngồi cả năm cũng không viết được gì.

7 Likes

Thật ra mình tự nhận mình là nhân viên văn phòng vì tính chất công việc 2 bên là tương đương như nhau. Họ dùng word, excel để nhập dữ liệu, mình dùng editor để viết code và cùng ngồi văn phòng hưởng máy lạnh.
Mình không muốn nói mình là kỹ sư hay lập trình viên vì một số người sẽ không hiểu công việc của mình là gì. Thay vào đó người ta lại hỏi về mua hoặc sửa đồ điện tử nhiều hơn.

Good point! :+1:
Tớ đồng ý với cậu, định nghĩa đơn giản và bám sát thực tế sẽ tốt hơn. Đồng thời, định nghĩa này cũng phụ thuộc vào trải nghiệm của từng đối tượng, và mang tính chủ quan nhiều hơn.

3 Likes

Hì hì, tớ có đọc đâu đó trên quora, và biết mấy bác lập trình thời đó cũng không nhớ hết mọi thứ, và luôn có trong tay manual/reference book nào đó để tra cứu. Tớ không tìm ra URL của quora hiện giờ, nếu ai đó tìm được thì share lại tớ nhé! :stuck_out_tongue:
Những kỹ sư thời đó là kho báu ở thời điểm hiện tại. Họ vô cùng thông minh, hiểu biết rất sâu và rộng.

Giờ đúng là internet đóng vai trò rất quan trọng trong việc tìm kiếm thông tin. Nó hiệu quả hơn rất nhiều so với việc tra cứu thời chưa có internet :smile:

6 Likes

Cứ tiếp tục “khiêm tốn” như thế tôi đoán sẽ đến lúc bạn được làm admin văn phòng.

3 Likes

A tìm thấy sinh viên Hoàng và hungsteve ở đây. Bữa nọ đang bàn về .NET Core sao lại chạy đâu mất tiêu? Rồi mấy bồ tèo khác nhảy vào vo ve… :slight_smile:

Để test trình độ tiếng Anh thì có thang điểm TOEIC, IELTS, … còn test trình độ IT thì có gì ạ ?

Sinh viên Hoàng lại lòi ra thói lười rồi. Chẳng chịu chủ động tìm hiểu các certifications trong ngành, chỉ chực xen ngang hóng hớt.

1 Like

Bà con bàn tán sôi nổi quá. Vấn đề lại to tát nữa chứ! :wink:

Cảnh giới gì không biết, ngày xưa mấy ông lập trình chỉ ngồi quanh quẩn với nhau và với máy tính, trong tay không có bất cứ tài liệu nào cũng vẫn viết được code. Mấy ông đó giờ hiếm như sao trên trời giữa trưa.

Xưa khác nay chứ. Trước khi Java ra đời, lập trình viên đâu có mạng tốc độ cao và thông tin phong phú để mà phân tâm. Sách lập trình (tiếng Anh) viết trước năm O’Reilly xuất bản cuốn sách đầu tiên thường công phu và thấu đáo. Hướng dẫn (manual) kèm theo công cụ lập trình (của Borland chẳng hạn) là mẫu mực về chi tiết, rõ ràng.

Tầm tuổi của superthin, những người lần đầu lên mạng (ở Việt Nam) thời điểm nhiều cháu ở daynhauhoc còn chưa ra đời, chê các cháu thời 4.0 (chỉ thích mỳ ăn liền và fastfood) cũng hợp lý nhỉ. :slight_smile:

Tớ nghĩ là tớ sẽ correct một vài định nghĩa, theo quan điểm của tớ, đồng thời bổ sung thêm các định nghĩa mới. Hi vọng nó sẽ giúp cho mọi người có cái nhìn tốt hơn về ngành này.

library lý giải rất thú vị, giàu thông tin nhưng e rằng có thiên kiến (bias) của một người thuộc big Java shop chuyên thi công hệ thống lớn (enterprise level software). (library kiếm ăn nhờ Java thì phải) :wink:

Đọc đi đọc lại vài lần, tôi vẫn không thể/biết xếp những người như Salvatore Sanfilippo (sinh năm 1978) hay Ryan Dahl (sinh năm 1981) vào đâu trong thang phân loại của library. :wink: Theo tôi, những người như họ mới là “nghệ sỹ” (Salvatore cũng tự nhận mình như vậy) chứ không phải Architect theo quan niệm của library.

Nếu hai người này từ sớm cũng định hướng theo Java để “phát triển sự nghiệp” thì không rõ bây giờ họ sẽ ở đâu trong thang phân loại của library nhỉ? :wink:

Bây giờ thì “lập trình viên VN” có số má dữ lắm, chứ không bèo đâu nha. Còn title gì thì không quan trọng lắm ở đa số các trường hợp.

Lập trình viên Việt Nam có thể có nhiều năm kinh nghiệm, mang chức danh Engineer hay Architect, đầu quân cho tập đoàn nước ngoài hàng đầu như Google hay Facebook, lương từ 100K đô Mỹ một năm trở lên (thấp hơn không tính). Nhưng nếu không có dev Việt nào đạt tầm như Jordan Walke, Evan You hay Misko Hevery thôi chẳng hạn (tôi có thể kể thêm nhiều cái tên ở tầm cao hơn) thì tôi vẫn cho rằng dev Việt vẫn chỉ đang ăn theo nói leo và là động vật nhai lại mà thôi. (Theo Wikipedia: Giai đoạn thứ nhất chúng ăn thức ăn thô và nuốt vào dạ dày. Giai đoạn thứ hai, chúng ợ thức ăn đã phân hủy một phần trong dạ dày trở lại miệng để nhai lại.)

Tôi xếp những tên tuổi tôi đã nêu danh vào một nhóm tôi gọi là những người cách tân (tạm dịch từ innovator của tiếng Anh): những người sáng tạo và kiến thiết, thay đổi và ảnh hưởng to lớn và sâu rộng tới công cụ, cách thức và lề lối làm việc và thi công trong ngành phần mềm nói riêng và ngành điện toán nói chung. Nhóm người này xứng đáng có vị trí đặc biệt và được nhìn nhận đánh giá khác. (với những bảng phân loại xếp hạng thông thường) :wink:

Niklaus Wirth, Roberto Ierusalimschy, Miguel de Icaza, Anders Hejlsberg, Donald D. Chamberlin, Bill Joy,… Ôi quá nhiều, kể sao cho hết!

Nhưng tôi đỏ mắt kiếm tìm mà không thấy một người Việt hay cụ thể hơn một dev Việt nào (dù chúng ta đều biết người Việt rất “giỏi”) để thêm vào danh sách.

Ai đó hãy chỉ ra tôi đã sai, đã lầm, đã thiếu sót, hãy cho tôi một cái tên người Việt, một lập trình viên người Việt, một dev Việt xứng đáng xếp vào hàng ngũ những nhà cách tân được không?

Nếu không, tôi vẫn hy vọng tương lai một ngày nào đó có thể thêm một người Việt nào đó vào danh sách. Còn không, rất tiếc dù danh xưng là gì, kiếm được bao nhiêu, kinh nghiệm nhiều như thế nào vẫn chỉ thuộc hạng ăn theo nói leo và là động vật nhai lại mà thôi!

3 Likes

I’m a recovering security researcher, best known for SSL attack trilogy: BEAST, CRIME, and POODLE. I was half of the team that discovered the crypto vulnerability in ASP.NET that affected millions of websites and won the Pwnie Awards of 2010.

These days I’m a staff software engineer at Google where I serve as a crypto/security tech lead. If you use Gmail, Search, Android, or YouTube, etc. my work has helped make them safer for you.

My team created Project Wycheproof and Tink.

đây cũng tầm thứ dữ nè anh nhưng nói đâu có “ai” nghe =]]

VN mở cửa năm 1989 thì phải? Còn Computer Science thì có từ năm 1950 hay 1970 rồi? Mỹ/châu Âu đi trước VN về CS ít nhất 20 năm thì hiện tại có bị lag tí cũng là điều tất nhiên thôi :joy:

6 Likes

Không quan tâm, quan trọng là kiếm bao nhiêu tiền 1 tháng và có gia đình hạnh phúc =))

6 Likes

Tôi ko quan tâm các a ở level nào nhé, tôi nghỉ ko đóng tiền hosting nữa, ở đó mà tán dóc ba xạo.

4 Likes

đây cũng tầm thứ dữ nè anh nhưng nói đâu có “ai” nghe =]]

tntxtnt khéo nhắc tới Dương Ngọc Thái (sinh năm 1984) đang làm cyber security cho Google. :wink:

Thái là người rất giỏi, tinh quái và ngoa ngoắt. Nhưng trong lĩnh vực cyber security, Thái vẫn chưa đủ trình đứng vào hàng ngũ những nhà cách tân tiên phong (innovator). So sánh ảnh hưởng và sự sáng tạo của Thái với Martin Hellman, Whitfield Diffie, Phil Zimmermann hay Werner Koch… Còn rất nhiều cái tên khác nhưng không thấy người Việt nào!

Nếu coi Thái là một hacker (theo định nghĩa của Eric S. Raymond nhé) thì còn nhiều hacker khác giỏi hơn, sáng tạo hơn và có ảnh hưởng lớn hơn Thái rất nhiều. Nhắc tới cái tên Fabrice Bellard (quá xứng đáng là một innovator!) thì chính Thái cũng phải xanh mặt, cúi đầu khâm phục:

Các bồ còn đề cử người Việt nào nữa không? :wink:

2 Likes

Không quan tâm, quan trọng là kiếm bao nhiêu tiền 1 tháng và có gia đình hạnh phúc =))

Quan điểm của một Việt kiều đang ở Canada và cũng là suy nghĩ của rất nhiều người Việt dù ở bất kỳ đâu. VietnameZe xếp tiền bạc trước hạnh phúc gia đình chắc cũng có lý do của nó. :wink:

Giả sử có tiền, có hạnh phúc gia đình rồi thì sao? Nhiều người vẫn cứ sống nhạt nhòa mà thôi.

Nếu tầm 28-30 tuổi, Linus Torvalds cũng chỉ nghĩ giản đơn, hài lòng với mức lương hàng tháng tại Transmeta cùng cuộc sống hạnh phúc bên vợ và con gái ở Santa Clara, California, lịch sử ngành điện toán chắc sẽ rất khác. :slight_smile:

Phong trần mài một lưỡi gươm,
Những loài giá áo túi cơm sá gì!
(Truyện Kiều)

1 Like

Số người Việt làm software engineer cho các cty như Google, Facebook, Amazon hơi nhiều, mỗi năm vẫn có sinh viên tốt nghiệp từ các trường THPT chuyên rồi đại học như Khoa Học Tự Nhiên, FPT, UIT (trong miền Nam, miền Bắc cũng có) hàng năm vẫn có người được vào thực tập và làm việc cấp entry level được ít năm rồi làm cty khác với vị trí cao hơn hoặc xây dựng start-up vân vân… :smiley:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?