Làm sao trở thành Developer từ Tester?

John-Sonmez

Anh John Sonmez, chủ blog SimpleProgrammer là một Developer với những bài viết rất hay về kỹ năng mềm và định hướng nghề nghiệp cho Developer.

Đọc ngay bài viết này để biết được:

  • Câu chuyện có thật của anh John trở thành Developer từ vị trí cũ là QA
  • Lời khuyên cho bạn nếu muốn chuyển sang làm Developer
  • Cách vượt qua những rào cản khi chuyển đổi

Đọc bản tiếng Anh tại đây.

Xem thêm mong đợi của nhà tuyển dụng với các Developer tại ITviec.

Tôi đã quyết định viết bài dài này vì có một số bạn đã bảo tôi rằng chuyển từ vị trí QA hay bất cứ vị trí Technical nào khác sang Developer là rất khó.

Mà tôi cũng đã tự chuyển đổi rồi đó, thật ra, tôi phải chuyển tới hai lần.

Lần đầu tiên tôi chuyển vị trí là khi tôi vừa mới bắt đầu đi làm.

Tôi là một lập trình viên tự học và đã học một năm đại học về khoa học máy tính, nhưng tôi không thể kiếm được việc làm Developer nào.  Vì vậy tôi bắt đầu sự nghiệp với vị trí QA theo hợp đồng cho HP.

Ban đầu, công việc của tôi rất đơn giản, không cần động não nhiều. Tôi sẽ so sánh một đống giấy in thử và một xấp giấy in khác đã được đánh dấu, và tôi sẽ nhìn những điểm khác nhau giữa chúng để coi có vấn đề hay bug gì đã được giới thiệu trong firmware mới nhất không.

Công việc hơi chán.

Chúng tôi chỉ phải nhìn vào sự khác nhau đã được ghi lại và quyết định xem nó có phải là một vấn đề lớn hay không.

Tôi không hài lòng với điều đó. Tôi muốn biết những gì gây ra sự khác biệt đó, vì vậy tôi bắt đầu nghiên cứu sâu hơn một chút.

Tôi đã yêu cầu được xem các  bản hướng dẫn in thật được gửi tới máy in cho mỗi lần Test. Các hướng dẫn in nằm trong PCL và cả PostScript, hai ngôn ngữ in ấn phổ biến. Tôi đã dành thời gian của mình và bất kỳ thời gian rảnh nào để tìm hiểu PCL và PostScript. Và cuối cùng, tôi đã trở thành một chuyên gia trong cả hai ngôn ngữ này.

Sau đó, khi tôi nhìn thấy lỗi, tôi sẽ đi qua kiểm tra máy in và chỉnh sửa chúng, sử dụng sự hiểu biết của tôi về ngôn ngữ máy in để xem thử phán đoán của tôi về nguyên nhân lệnh ngôn ngữ máy in đã gây ra các vấn đề đó. Khá lâu sau, tôi đã nộp báo cáo bug chi tiết với các đoạn code máy in, cho thấy chính xác những gì lệnh ngôn ngữ máy in đều có thể đang sai và gây ra lỗi.

Không lâu sau, các Development team đã kéo tôi vào hội như một nguồn tài nguyên để chỉ họ làm và cũng chỉ thêm cho tôi làm nữa. Cuối cùng, tôi đã được yêu cầu viết test cho máy in, và do đó tôi chính thức trở thành một lập trình viên và có chức danh Programmer.

Sau đó, tôi cũng đã trải qua một kinh nghiệm tương tự khi tôi không thể tìm được công việc lập trình nào và một lần nữa tôi lại về HP, làm QA Lead.

Thời gian này, tôi đang ngồi bên cạnh một Developer mới, chỉ mới nắm được cơ bản C++. Khi chúng tôi trò chuyện về một số vấn đề anh ta đang phải đối mặt, tôi phải qua chỗ anh ta rồi còn cho anh ta một số lời khuyên và giúp anh làm xong task nữa. Tôi không được lợi gì và chỉ cố gắng để làm cho anh ta trông có vẻ tốt nhất có thể.

Sau một vài tuần, anh ấy bắt đầu nói với sếp về kiến thức C++ mà tôi biết và có vẻ như họ đang lãng phí khi để một người biết code cứ ngồi viết test case. Khi deadline tới, Developement team hỏi mượn tôi để giúp họ làm cho xong. Một khi tôi đã làm việc với Developement team, họ không muốn để  tôi trở lại. Như vậy vai trò của tôi đã được chuyển sang Software Developer một lần nữa 🙂

Hàng rào lớn nhất bạn phải vượt qua

Có lẽ rào chắn lớn nhất bạn phải vượt qua trong việc chuyển đổi vị trí là nhận thức của mọi người về bạn.

Một khi bạn có một vai trò gì đó trong công ty, mọi người dường như luôn nhìn bạn ở vị trí nhất định đó, mặc kệ kỹ năng mà bạn đạt được hay bạn đã lên tay như thế nào.

Trong lĩnh vực lập trình, cụ thể, đã có một sự khác biệt rõ rệt giữa Developer và Tester (hoặc gọi là QA).

Xem thêm 7 thất bại đầu đời của một QA.

Bởi vì sự thiên vị này, đi làm ở một công ty mới với chức danh Developer thường dễ hơn là chuyển sang làm Developer từ Tester hoặc vị trí khác ở công ty hiện tại.

Chuyện này nản cực độ, đặc biệt nếu bạn trội hơn ở công việc trước.

Bạn sẽ phải kiên nhẫn và biết rằng cần phải có thời gian để nhận thức thay đổi.

Bạn càng làm nhiều trong phần lập trình ở công ty hoặc làm nhiều task lập trình hơn, thì những người khác trong công ty càng nhìn bạn ở vai trò mới.

Đôi lúc, dù bạn có thể phải nhảy việc sang một công ty mới để thoát khỏi cái bóng mà bạn đã có.

Bây giờ hãy nói về những chiến lược mà những Developer khác và tôi thường dùng để trở thành Developer từ vị trí không phải là Developer.

Hãy cho mọi người biết mục tiêu của bạn

Lời khuyên đầu tiên của tôi cho bạn là bạn nên tiến về phía trước và làm cho mục tiêu của bạn được truyền đi càng rộng càng tốt.

Hãy cho các đồng nghiệp biết bạn đã rất khao khát chuyển sang lập trình.

Hãy yêu cầu có một cuộc họp với Manager, và nói thẳng rằng bạn muốn trở thành Developer và bạn sẵn sàng làm bất cứ gì để chuyển sang.

Khi bạn nói mục tiêu này của mình với sếp, hãy giải thích rằng background về testing của bạn sẽ sinh lợi cho công ty cũng như khi bạn chuyển sang làm Developer.

Hãy nói về những lợi ích nà công ty sẽ có được từ việc bạn chuyển vị trí.

Bạn càng thể hiện là mình muốn chuyển sang làm Developer, thì bạn sẽ càng khiến cho những người muốn giữ bạn ở lại vị trí cũ vơi bớt ý định, vì thế đừng sợ mà cứ nói thẳng về chuyện đó.

Nhưng nói không chưa đủ.

Nếu bạn cứ nói là một ngày nào đó bạn muốn thành Developer và bạn chưa làm gì để thực hiện hay thậm chí là học lập trình, thì bạn giống như một người nằm mơ giữa ban ngày đấy.

Hãy chắc chắn rằng bạn phải hành động đi đôi với lời nói.

Khi bạn nói chuyện với sếp, hãy cho sếp thấy bạn có một danh sách các yêu cầu và khóa học mà bạn đang học để giúp bạn chuyển từ vị trí hiện tại sang Developer. Nếu bạn có thể đưa ra danh sách các thứ bạn cần phải học hay mục tiêu phải hoàn thành, bạn càng có cơ sở vững chắc để chuyển vị trí, bất cứ khi nào bạn sẵn sàng.

Tôi đã dùng chính xác kỹ thuật này không chỉ để chuyển sang vị trí mới mà còn để thăng tiến nữa.

Đơn giản, tôi đã hỏi sếp rằng tôi cần làm gì để được thăng tiến hoặc kỹ năng nào tôi cần cải thiện để được thăng tiến, sau đó tôi đi thực hiện hết chúng và tiếp tục hỏi về cơ hội được thăng tiến.

Đó không phải là chuyện điên rồ đâu – bạn vẫn có thể bị phủ nhận – nhưng nếu bạn có một danh sách những gì bạn cần làm và chứng minh là bạn đã thực hiện hết thì người ta sẽ rất khó để bác bỏ những thành tựu của bạn.

Hỏi về cơ hội mới

Nếu bạn thật sự muốn chuyển sang làm Developer, đừng chờ ai dâng cho bạn chức danh đó và bổ nhiệm bạn vào làm việc. Thay vào đó, hãy hỏi về cơ hội mới trong vị trí lập trình ngay cả khi bạn còn đang làm vị trí cũ.

Hãy hỏi sếp bạn cho một hay hai task đơn giản.

Hãy hỏi có bug nào cho bạn fix không.

Và cứ hỏi tiếp đi.

Bạn có thể bị từ chối trong vài lần đầu tiên, hoặc có vẻ sẽ rắc rối khi chỉ định cho bạn một task mà sẽ phải có ai đó ngồi giải thích và chỉ cho bạn làm. Tuy nhiên, nếu bạn cứ gây chú ý và cứ tiếp tục yêu cầu, thì sẽ có một lúc nào đó bạn cũng nhận lại được kết quả, thậm chí đôi khi chỉ để bạn…đừng đòi nữa 🙂

Tạo cơ hội cho mình

Đôi khi, thực sự bạn sẽ không có được cơ hội để làm lập trình, thậm chí nếu bạn yêu cầu.

Giống như tôi đã nói, nó có thể là bởi vì giải thích một task cho bạn làm sẽ mất thời gian hơn giá trị nó mang lại, và hầu hết các dự án luôn xếp hàng đằng sau chờ được làm.

Nó có thể là bởi vì, nói thẳng ra là, ông chủ hoặc đồng nghiệp của bạn không tin bạn có khả năng kỹ thuật để đảm nhận công việc lập trình, vì họ thấy bạn là “chỉ là một Tester” hoặc “Linux admin” hoặc “người hỗ trợ kỹ thuật”, hoặc bất cứ vị trí nào đó.

Bạn có thể phải tạo ra cơ hội của riêng bạn.

Bạn có thể phải mất thời gian để tìm kiếm một Development team ,nơi bạn có thể giúp đỡ và đóng góp mà không phiền việc của bất kỳ ai hoặc mất thời gian đặt câu hỏi cho họ.

Thường thì những cơ hội nằm trong những gì tôi gọi là “công việc không ai muốn làm.”

Có thể nói là code tương đương với lau sạch nhà vệ sinh chẳng hạn.

Có lẽ là debug các bug cực khó nhằn mà mà không ai có thể nhận ra.

Có thể là viết document cho một API hoặc xây dựng một tool để làm cho mọi việc dễ dàng hơn cho tất cả mọi người.

Đó có thể sẽ là công việc nhàm chán và khó khăn, nhưng nếu bạn muốn tìm một dự án mà không có ai sẽ chiến đấu cho bạn, nó có thể sẽ là “công việc không ai muốn làm.”

Hãy sẵn sàng xắn tay áo của bạn lên và bắt tay vào làm nào!

Sử dụng thời gian của riêng mình

Một số sếp có thể chỉ định cho bạn một số task lập trình nhỏ mà bạn có thể làm như một phần của workload hằng ngày.

Một số sếp có thể đồng ý cho bạn bỏ ra thêm ít thời gian làm các “công việc không ai muốn làm”, loại dự án tôi đã đề cập ở trên.

Tuy nhiên, điều này sẽ không phải luôn luôn đúng.

Trong thực tế, trong nhiều công ty, bạn có khả năng sẽ bị nắm đầu nếu bạn code khi bạn đang có nghĩa vụ phải làm công việc hằng ngày của mình.

Trong những trường hợp đó, nếu bạn thực sự muốn có được công việc Developer, bạn sẽ phải sẵn sàng bỏ ra ít nhiều thời gian ngoài giờ (dĩ nhiên không được trả lương) của riêng bạn để tiếp tục sứ mệnh của mình.

Thậm chí, nếu bạn chỉ có một ít thời gian để làm công việc hiện tại thì vẫn là một ý tưởng tốt khi bạn hy sinh vài giờ không được trả lương cho những công việc mà từ đó bạn có thể tiến xa hơn, nhanh hơn nhiều.

Hãy sẵn sàng để đi sớm hơn hoặc ở lại sau giờ làm việc để dự án phụ được làm xong.

Nếu bạn đang vất vả tìm kiếm những người cho phép bạn làm các công việc liên quan đến phát triển phần mềm, bạn có thể sẽ có thành công nhiều hơn nữa nếu bạn sẵn sàng code hoặc học code trong thời gian của riêng bạn.

Đó là một đề nghị mà hầu hết các công ty sẽ khó từ chối.

Tìm kiếm cầu nối

Một cách thực sự tốt để chuyển đổi từ một công việc như QA sang Developer là tìm một công việc bắt cầu mà sẽ bạn sẽ làm một ít ở cả hai vai trò.

Đối với nhiều Tester, Automation là một cầu nối tuyệt vời.

Đọc bài viết này để biết Automation Tester là gì

Nếu bạn có thể bắt đầu làm Automation Testing, bạn sẽ nhận được một cơ hội viết code để tự động hóa manual test.

Thuyết phục sếp của bạn cho bạn làm Automation Tester thì thường sẽ dễ dàng hơn là thuyết phục anh ta để cho bạn trở thành một Junior Developer mà không có bất kỳ kinh nghiệm thực tếnào.

Đó là một cách win-win vì bạn có được kinh nghiệm lập trình có giá trị thực sự, và công ty của bạn đạt được lợi ích từ Automation Testing, làm cho toàn bộ tổ chức hiệu quả hơn.

Một khi bạn có chức danh Automation Tester hoặc Testing Software Developer, sẽ rất dễ cho bạn để chuyển sang vị trí Developer ở bất kỳ công ty nào bởi vì bây giờ bạn có kinh nghiệm thực tế với code rồi.

Trong thực tế, bạn có thể thấy rằng Automation Testing có nhiều niềm vui và bổ ích hơn là chỉ kiểm thử không thôi hoặc phát triển phần mềm thông thường.

(Tôi yêu việc thiết kế ra các framework cho Automation Testing. Đó là một trong những lĩnh vực công nghệ yêu thích của tôi, mà tôi thấy chúng vô cùng bổ ích và đầy thử thách.)

Có những cơ hội bắt cầu để lập trình từ nhiều công việc kỹ thuật khác nữa.

Ví dụ, các Linux Admin có thể trở thành Developer cho các tool hoặc dễ dàng di chuyển vào vị trí DevOps, lúc mà họ có thể sử dụng kỹ năng quản trị Linux, viết script, và lập trình để tự động hóa các task, xây dựng các tool có lợi cho tất cả mọi người.

Những bạn làm hỗ trợ kỹ thuật có thể chuyển sang vai trò hỗ trợ kỹ thuật cho các Developer hoặc thậm chí trở thành kỹ thuật viên hỗ trợ cấp cao, với nhiệm vụ xem code để thử và giải quyết các vấn đề của khách hàng hoặc thu thập thông tin để gửi đến các Developer.

Hãy tìm cách để bạn có thể tận dụng các kỹ năng và trách nhiệm hiện tại của mình cho một số task lập trình, và bạn có thể tạo ra công việc bắt cầu riêng của bạn.

tester-thanh-developer

Chuyển đến công ty khác

Hầu hết những gì tôi đã nói đến trong bài này đã giả định rằng bạn muốn được chuyển từ QA hoặc một số vai trò kỹ thuật khác sang Developer trong cùng một công ty, nhưng chuyện này không phải luôn luôn khả thi hoặc được như mong muốn.

Làm thế nào, sau đó, để bạn trở thành Developer từ vị trí Tester tại một công ty khác?

Trên thực tế, hầu hết các lời khuyên tôi đã đưa cho bạn trong bài này vẫn áp dụng được; chỉ là chức danh công việc của bạn không thay đổi cho đến khi bạn chuyển sang công ty khác.

Những gì tôi muốn nói là bạn nên cố gắng để có được kinh nghiệm về lập trình tại công việc hiện tại của bạn, ngay cả khi bạn không thể chuyển sang chức danh Developer tại đó. Chỉ đơn giản là bạn có thể đưa kinh nghiệm đó vào CV khi bạn xin làm Developer ở một công ty khác.

Thậm chí nếu bạn xây dựng một số tool giúp bạn làm công việc của chính mình, mà không có một ai biết, và bạn đã làm vào thời gian riêng của bạn, thì bạn cũng nên đưa vào CV như là một công việc lập trình thực sự. Nó sẽ giúp bạn rất nhiều trong việc ứng tuyển thành công công việc Developer đầu tiên.

Việc làm bắt cầu cũng sẽ vô cùng hữu ích, đặc biệt là nếu bạn có thể nhận được chức danh có chữ Developer hay Engineer trong đó.

Đọc bài viết này để biết được 7 điều mà bạn nên chú ý khi tìm việc làm IT.

Lời khuyên cuối cùng của tôi

Đừng nản chí.

Thường sẽ khó khăn hơn khi chuyển từ một vai trò kỹ thuật nào đó sang Developer, đơn giản chỉ vì định kiến tôi đã nói trước đó, khi mọi người có xu hướng nhìn thấy bạn “chỉ là một Tester” hoặc “chỉ là một Sever Admin”, vv

Tuy nhiên, nếu bạn sẵn sàng để làm thêm nhiều việc khác và làm “tốt đến nỗi không ai có thể phớt lờ bạn,” như Cal Newport nói trong cuốn sách cùng tên của ông , thì cuối cùng bạn sẽ thành công.

Tiếp tục học tập, tiếp tục cải thiện kỹ năng của bạn, tiếp tục tìm kiếm cơ hội và tạo ra cơ hội cho mình, và bạn sẽ có được những gì bạn muốn sau đó.

Kiên nhẫn và kiên trì là chìa khóa cho bạn.

Bạn có gặp khó khăn gì khi chuyển sang vị trí Developer? Bạn đã vượt qua như thế nào? Hãy chia sẻ cho ITviec nhé!

Xem thêm các việc làm Developer và việc làm Tester “chất” tại ITviec.

About the Author:

Content Lead

I love language and I believe it can change people's mind. Read more...

Comments