Software Engineer hay CRUD Engineer

Mình nghĩ mình khá may mắn khi đã làm việc tại 2 công ty với hàng chục triệu user tại VN, tuy nhiên, với kỳ vọng ban đầu là có cơ hội học hỏi và giải quyết các bài toán/ vấn đề thú vị, như khả năng scale hệ thống xử lý hàng trăm ngàn request/s, hay xử lý 1 vấn đề có giới hạn nghiêm ngặt về hiệu năng,… Nhưng sự thật phũ phàng là công việc hằng ngày của mình là đi mapping hàng chục/trăm field json từ service này sang service khác, đọc hàng chục docs BA, maintain 1 đống if else hỗn độn của người đi trước, thêm thêm xóa xóa sửa sửa các field json, liệu rằng đây có phải công việc của software engineer không? Có phải software engineer ở đâu cũng vậy không mn ?

3 Likes

Software or CRUD engineer? If I understand correctly, you’re a recent graduate and this “job” is your first job. Is that right?
I’ll explain how to become a software or CRUD engineer. As an IT prodigy, your career always begins as a software developer or researcher—no matter what software: AI, operating system, tools, databases, etc.
The path to becoming a real software developer always begins with irrelevant tasks like fixing old apps, testing new apps, reviewing new installation procedures, etc. If you perform well, you’ll gradually be assigned smaller development tasks alongside your current responsibilities. And this path continues until you become a real software developer.
So, what you said about your current work is normal. There’s nothing unusual or extraordinary here. Even if you start at a pure software company like FPT or Google, you’ll have to work your way up the career ladder.
The saying “Ain’t no such thing as a free lunch” means that nothing comes from nothing.

2 Likes

Làm việc gì không quan trọng, quan trọng ở việc bạn làm việc đó với thái độ như thế nào. Những ai sống sot qua sự nhàm chán, người đó sẽ có ngày toả sáng.

Những ai chịu băng qua rừng già tăm tối, họ sẽ đến được đỉnh Olympus.

4 Likes

Mình ko ngại challenge, nhưng challenge cũng có loại này loại kia. Giải 1 bài toán khó trong kỳ thi HSG cũng là challenge, mò kim trong 1 bãi rác cũng là challenge. Nhưng mình tự hỏi challenge như thế nào mới đưa mình đi xa và phát triển hơn?

Ừm mình nghĩ đây là do tính chất dự án, phần mềm làm ra phục vụ cho business nên tính chính xác và ổn định được ưu tiên hơn các bài toán kĩ thuật. Thường thấy ở các enterprise system, có sự tham gia của nhiều team, công việc chủ yếu là maintain legacy code và develop code mới.

Loại dự án này vẫn có các bài toán riêng (về business, integration, compliance,…), bạn vẫn có thể lấy kinh nghiệm và level up bản thân. Tuy nhiên nếu bạn ở level thấp thì sẽ khó được đụng vào những phần quan trọng, nên trong trường hợp đó bạn có thể cân nhắc nhảy việc (các công ty startup, product thường sẽ có các bài toán thuần kĩ thuật hơn).

3 Likes

mình tự hỏi challenge như thế nào mới đưa mình đi xa và phát triển hơn?

If you don’t even know what challenge will push you forward and develop you further, how can you do your current job properly?
I think you’re either in the wrong business, or studied the wrong subject, or are bragging about your 10+ million users. Impatience is never good for a first-time employee, but it can lead to unexpected disasters.

2 Likes

Đồng cảnh ngộ, mình rất nản khi gặp project “code trâu”. Code trâu là gì?. Đa phần IT Việt Nam làm mảng outsource chứ R&D thì phải IT tinh anh mới có cơ hội nhúng tay vào. Mà outsource thì phần lớn đều CRUD, không ERP thì cũng CMS, không HRM thì cũng CRM.

Mình join vào dự án nào mà gặp code “độ chế”, “code tự phát minh” xem như cuộc đời chấm hết và não tự có suy nghĩ nhảy việc.

  • Nói tới task upload file thay vì dùng S3 của AWS, R2 của cloudflare hoặc giải pháp open source như minIO, nextCloud, rustFS, … nhưng không, họ lại nai lưng ra code, viết hàm xử lý file, lưu vào disk, validate, … phát minh lại bánh xe, đọc rất nản.

  • Đơn cử như trường hợp xử lý workflow kinh điển như A tạo purchase order (PO), rồi B duyệt, C duyệt D duyệt xong thì tạo sale order (SO),… trường hợp cty có nhiều phòng ban, nhiều role duyệt rất phổ biến. Đó là happy case thôi, thực tế B duyệt xong nhưng C reject thì xử lý thế nào? tất cả mọi người đều duyệt nhưng ông cuối không duyệt? Thế giới đã phát minh ra chuẩn BPMN 2.0 chuyên trị những trường hợp này, thay vì họ học chuẩn quốc tế để triển khai nhưng không, họ chế cháo bằng cách đặt một loạt if else, switch case, … họ mặc kệ Camunda 8 - ông tổ mảng BPMN, không thèm để mắt tới hàng tá open source chuyên đặc trị BPMN, họ vẫn cứ mindset if else tới chết.

  • Trong môi trường sản xuất việc phần mềm request tới phần cứng là không tránh khỏi, user nhập form để gửi thông số tới máy, nhân viên thì đông mà máy chỉ có một, gửi task dồn dập thì máy lỗi. Thay vì xếp hàng bằng rabbitMQ thì họ lại nai lưng code, họ phát minh ra “bộ điều tải lập dị”. Nếu họ có thù với rabbitMQ thì còn bullMQ, hàng tá loại queue top 1 thế giới, nếu lười setup, ok hàng tá loại queue cloud giá cực rẻ, thậm chí tôi sẵn sàng bỏ tiền túi để trả bill, nhưng thứ tôi nhận lại là “cái này tự code được mà”!

  • Phần mềm quản trị doanh nghiệp đã có từ thời COBOL, thay vì dùng SAP - Ông tổ ngành ERP (SAP nay đã có phiên bản nodejs, java), Salesforce - Đại ca trong mảng CRM của thế giới, … họ nói quá tốn chi phí. Thế còn Odoo, NextERP open source thì sao? Họ bảo không thể customize, tôi không biết họ cần customize tới đâu mà hàng tá tập đoàn đang dùng Odoo. Nhiều cty dùng Lark Suite vẫn tăng trưởng.

  • Có lẽ hơi lan man, một case đơn giản như này: đơn hàng có 3 trạng thái đặt hàng, giao hàngđã nhận hàng. Thế giới đã phát minh ra state machine ví dụ stately.ai là thuốc đặc trị cho những thể loại này, đơn hàng đã nhận thì không sửa lại trạng thái đã đặt hàng được. Thực tế phần mềm có rất nhiều status, rẽ nhánh, xem lịch sử status, … thay vì họ tìm framework state machine thì họ lại: cái này tự code được mà, bắt đầu if else validate, 10 trạng thái thôi cũng đủ gần trăm cái if ràng buộc, “rào dữ liệu”.

Tôi sẵn sàng OT, về nhà làm thêm, hy sinh ngày thứ 7, CN để học những chuẩn quốc tế đó, những cái gọi là ISO chứ không muốn bỏ ra 1 phút giây nào để đọc code người cũ để lại. Nó không giúp tôi lên trình mà maintain code “độ chế” làm não tôi bị úng.

Các bạn cứ tưởng tượng trong 1 cuộc họp:

  • Sếp: “Ngân sách để mua máy tính cho nhân viên mới em đã mua những gì?”
  • Nhân viên 1: Dạ em mua máy Dell, HP, Apple ạ.
  • Sếp: “Lần trước anh nhờ em mua xe để đưa đón nhân viên, giờ ra biển số, lăn bánh chưa em, em mua hãng nào?”
  • Nhân viên 2: “Dạ em tự lắp ráp rồi anh, nhà em có ông anh thợ hàn giỏi lắm, còn hàn cái cửa là xong à”.
    Thì trường hợp tự code cũng thế thôi, code độ chế vẫn là code cá nhân, code cảm tính.

Nói ra thì luôn có 2 trường phái là tự code và dùng framework. Luôn có người cho rằng thư viện có bug. Đi siêu thị cũng biết lựa đồ mà, không lẻ dại đến mức cài thư viện có 10 lượt download 1 tuần, tác giả là nhockute2k lần commit gần nhất là 4 năm, github có mỗi 5 star. Có những thư viện, framework lượt star vài chục nghìn, commit liên tục, dự án có tổ chức tài trợ, ngay cả các cty lớn cũng tin dùng, thậm chí họ còn được các quỹ đầu tư săn đón. Tôi không tìm được lý do gì để chê cả, cũng có thể trình họ cao hơn nên tự tin về việc tự code của mình.

Thực tế có những dev code REST API mà header trả 200 nhưng trong body thì 500 error mà lại rất thích chê framework có sẵn trên mạng. Cho dù có dùng n8n hoặc các giải pháp no code, low code tôi cũng không bao giờ hợp tác với dev có mindset build from scratch.

Trừ những sản phẩm phục vụ cho cty product, cần sản phẩm sáng tạo, tiên phong đổi mới thì code chay luôn được đánh giá cao về performance, sự phù hợp. Còn thể loại CRUD quản trị, quản lý quy trình thì thế giới có hàng tỉ chuẩn ISO để tuân theo, engine, framework đủ cả. Nếu người quản lý có tầm nhìn hoặc cty có vị trí CIO thì điều tối thiểu phải hiểu là việc làm phần mềm không như nấu ăn, món ăn tự tay nấu, nhà làm, tự trồng lúc nào cũng chất lượng hơn so với hàng quán. Phần mềm thuộc nhóm ngành kỹ thuật, mua máy móc cần phải chính hãng, tuân thủ thông số của nhà sản xuất, phần mềm chỉ cần “bám” vào framework có tiếng từ đó thêm extension nếu cần customize hoặc viết thêm adapter, proxy, ghép nối lại thành quy trình, temporal.io sinh ra để làm điều đó.

2 Likes

Đã thử search từ khoá BPMN trong diễn đàn, may là vẫn có kết quả, vẫn còn người theo chủ nghĩa ưu tiên chuẩn quốc tế, cái gì chưa ai open source thì mới tự làm :joy: Hỏi về định hướng làm Lập trình Web back-end với Nodejs

You and @907pqv are too naive and unrealistic. Life is never easy, and nothing is free. Listen carefully to this video by Mr. Hoàng Nam Tiến, who passed away a week ago.

https://www.youtube.com/watch?v=XjIfyZB3IBI

Các bợm GenZ bị chứng FOMO + FUD và chứng nghiện dopamine rẻ tiền nó làm cho đứng núi này trông núi nọ và nhìn những cái hào nhoáng để rồi “nhảy nhót hết công ty này đến công ty khác như khỉ mắc phong” và rồi tỉ lệ làm nên cơm cháo cũng không hơn gì các thế hệ trước. Mình không chê gì GenZ vì thế hệ nào cũng có niềm vui và nỗi khó khăn, nhọc nhằn, nói chung là “có vấn đề của nó” cả. Nhưng vấn đề ở đây là bị những cái trên mạng xã hội nó làm cho góc nhìn về cuộc đời thật bị méo mó thì quá tai hại.

Ai bị Mr Pips lừa nhiều nhất? GenY và GenZ và khá đông sinh viên - tức là những người gần với “xã hội thông tin” nhất, được xem là có kiến thức, kỹ năng tốt nhất, thức thời nhất. Chuyện quái gì xảy ra vậy?

Nếu bạn không phải là thành phần đặc biệt, có tài năng vượt trội được người ta offer công việc từ khi còn rất trẻ, còn đang ngồi trên ghế nhà trường thì cứ đi làm việc cực nhọc, nhàm chán ít nhất 2 năm để mồ hôi đổ xuống thì não sẽ khôn ra và ngày nào đó đã như con rùa trong câu chuyện Thỏ & Rùa <= mình quan sát thấy như vậy khi đọc hồ sơ nhân sự của một công ty 300 người trải qua 10 năm.

Sẽ có bạn đặt câu hỏi thế hệ trước thì có FOMO & FUD không? Có chứ sao không, nhưng mức độ nhẹ vì họ không bị nghiện mạng xã hội, không bị điện thoại… bắt cóc. Ngoại trừ thế hệ sinh ra trong chiến tranh, trong thời đất nước loạn lạc thì sự lựa chọn ít ỏi nhưng lại thổi bùng lý tưởng là có cơ hội tham gia vào cái gì dó để… làm nên lịch sử.

Còn các thế hệ thời bình như mình đây thì thuở nhỏ đói ăn, phải tự chăm sóc bản thân và phụ giúp gia đình nên kiếm được công việc là trân trọng, cày cuốc. Có thể cách “phải quỵ luỵ nhà tuyển dụng” bị các bạn GenZ cười là… ngu, thiếu sự lựa chọn, bán rẻ sức lao động ngu ngục… nhưng các bạn cần biết rằng khi không còn con đường nào khác, người ta đã làm rất tốt. Và dù gì đi nữa, GenZ cũng phải nhìn lại gia đình mình, xem thử các bạn tự ra ngoài kiếm sống và làm thêm, đi học trung cấp, cao đẳng, đại học như các thế hệ trước ở tuổi 18 có bao nhiêu người làm được? Tỉ lệ so với các thế hệ trước cao hay thấp?

Nói dông dài… mình nghĩ các bạn GenZ nên biết cái này để tránh tham lam vừa có suy nghĩ vừa được trả lương vừa được học hỏi điều hay ho mà tài năng ban đầu không có gì góp vào thì đó là… hoang tưởng.

Có 2 bạn @907pqv@denayof tham gia chủ đề này đang trong tình cảnh chán nản thì mình kể câu chuyện của mình cho các bạn nghe có khi các bạn lại thấy con đường. Đó là mình là dân tự học 12 năm mới đi làm CNTT. Đầu tiên là tham gia dự án như là một “kỹ sư mạng máy tính” dù chỉ có chứng chỉ MCSE & CCNA mà không có bằng cao đẳng/ đại học liên quan CNTT. Dự án kết thúc thì mình được anh em cùng team giới thiệu để apply vào 1 công ty làm đủ thứ từ bán máy móc thiết bị, viết phần mềm, và đầu tư & cho thuê điện toán đám mây và mình vào đó làm với vai trò là… shipper - chủ yếu chờ hàng đi giao nửa năm, chưa có đụng tới code kiếc gì… mãi 1 năm 2 tháng sau đó thì được giao sửa CSS (thời trình duyệt IE 6 thì sửa CSS nói thật là một cơn ác mộng và thách thức kinh khủng khiếp). Tức là 1 năm + 8 tháng thì cũng chỉ mới ngồi để soạn báo cáo, sửa CSS và phụ các bạn văn phòng tổ chức các cuộc họp (vì mình có base là thư ký văn phòng 6 năm). Khi ngồi vật vã ở máy tính chán quá, vì sếp không biết phân việc mình vào đâu vì nói thật ra là mình chỉ biết căn bản về C/C++ và chút ít Perl, chơi game thì bị sếp nhắn tin (phần mềm chat nội bộ trong mạng LAN) rằng nếu không biết làm gì thì đi phụ các bạn sales bán hàng… và đi thật, và uống rượu ói mửa chết mịa luôn (đi miền Tây & Tây Bắc) - vật vã như vậy chừng 10 tháng thì mởi bắt đàu được cài Windows Server và cài đặt, cấu hình M$ Sharepoint, IBM WebSphere rồi hướng dẫn người dùng bên khách hàng, làm cái này có lẽ 1,5 năm mới được đụng đến code C Sharp, Java - việc đụng code này là do các bạn dev gửi bản fix lâu quá nên mình tự mò fix luôn cho nhanh vì ngồi ở tỉnh thành khác, ở khách sạn bình dân (có nhiều khách sạn toàn gái mại dâm lượn lờ :smile: ) mà đợi thì rất là… teo chym. Đến khi code vững rồi thì mình đi làm chủ yếu maintain các dự án cũ ở công ty, còn tối về thì tham gia với vài bạn viết các phần mềm nhỏ nhỏ bán cho doanh nghiệp nhỏ từ POS bán cà phê cho đến quản lý kho, cửa hàng tiện lợi, và ngay cả VBA để các bạn kế toán chạy trên Excel.

Rồi sau này sao? Khi mà mình không đi làm ở công ty nữa, khi tham gia các team freelance chuyên về tạo ra các mạng lưới “site vệ tinh” cho các công ty hoặc cá nhân chuyên kiếm tiền online thì sao? Thì ban đầu anh em ngồi copy & paste bục mặt ra ấy chứ. Đến khi khôn rồi thì bắt đầu nghiên cứu mấy cái crawling, scrapping gì đó rồi sau đó dần dần áp dụng các công cụ được bán sẵn ban đầu chưa có AI tích hợp, giờ có AI thì đỡ vất vả hơn… và đó là cơ hội để tự học hỏi tiến lên, nhưng có học được trong lúc làm đâu? Toàn ngoài giờ mà thôi. Tự học tất cả, không có trường lớp nào chỉ dạy mà học lẫn nhau, thi thoảng thuê người “thông não”, có những cái chưa bao giờ nghe đến luôn dù nó nằm chình ình trên các website cả chục năm.

Một điều nhảm nhí nhất mà GenZ cần tránh đó là tránh nộp đơn vào công ty nào đó ngẫu nhiên hoặc chỉ biết nó một cách sơ sài và rồi vào làm mà không chịu tìm hiểu kỹ mình sẽ làm việc với những ai khi được nhận việc? Những người đó ở độ tuổi nào, người quản lý tính cách có phù hợp, các bạn ngồi chung phòng có ai toả mùi thơm hoặc ai bị hách từ trong nôi? Hoặc xa hơn là “văn hoá doanh nghiệp” như thế nào? Mấy cái này mình cân nhắc rất kỹ vì ngay cả đi chợ mua cá mình còn phải ngửi để xem cá có ướp hoá chất độc hại hoặc bị ươn hay không, thì chẳng có lý do gì “bán thân” vôi Campuchia được, Nếu đã học đại học xong mà vẫn vậy thì đi Campuchia từ sớm có khi còn tốt hơn.

Nói chung: người viết code nên tìm kiếm & nghĩ ra cái gì đó gây “ngứa ngáy” để tự giải quyết, còn ông nào mà có tư duy “thợ đụng” hoặc “Thiên Lôi” thì có vào công ty nào làm cũng không thể làm nên trò trống gì.

Cho nên, nếu trình không cao, hãy bắt đầu ở những công việc “vô tri” nhất để nơ-ron não được kích hoạt, đó là kết luận.

2 Likes

Lời khuyên cho việc nghỉ việc: Triết lý “nhảy việc” của mình là khi nào cảm thấy chỗ làm không còn đáp ứng nhu cầu phát triển bản thân của mình nữa thì mình sẽ ra đi. Bạn sẽ cảm thấy mình nhảy rất nhiều nhưng thực ra từ khi đi làm tới giờ mình mới nhảy 2 lần sau 2 năm và 3 năm. Công ty hiện tại mình đã làm được 6 năm và vẫn sẽ tiếp tục làm nhiều năm nữa.

Lời khuyên cho công ty tiếp theo: Hãy chọn 1 công ty product và họ đang phát triển ít nhất 1 dự án hoặc product nào đó. Làm sao để biết chuyện này? Xem website của họ, và hỏi họ lúc phỏng vấn. Phỏng vấn là việc 2 chiều, mình tìm hiểu họ, họ tìm hiểu mình.

3 Likes

Mình đang làm cty product ấy chứ. Nhưng team mình làm tool internal như kiểu HRM, ERP thôi. :sob::sob::sob: không khác outsource là mấy, vì phòng ban khác yêu cầu gì thì team mình làm theo để đáp ứng nhu cầu của họ thôi

Thì mình bảo là “đang phát triển ít nhất 1 dự án”, chứ không phải là bảo trì, vận hành.
Bạn nghỉ làm đi. Bạn bị ì rồi.

1 Like

Muốn challenge thì ngồi viết tool để auto cho mấy công việc nhàm chán đó, challenge siêu lớn, vì nếu bạn giải quyết được bài toán ‘nhàm chán’ này, thì bạn có thể nghỉ việc, mở công ty riêng, bán giải pháp cho hàng triệu doanh nghiệp.

Có công ty kia tự bán mình giá chục triêu đô, vì họ có giải pháp làm mapping mấy cái ‘fields’ từ hệ thống này qua hệ thống khác. Vậy thôi.

Còn kiểu "việc này nhàm chán quá, tui muốn xxx yyy’ thì có việc nào mà không nhàm chán, việc nào mà không lặp đi lặp lại? Mà bạn có chắc bạn đủ năng lực để làm mấy bài toán khó không?

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