Thực tập PHP tại Agency - Những điều mới mà tôi học được

Chào, lại là tôi đây.

Thật sự là một khoảng thời gian dài từ lúc tôi đăng bài blog cuối cùng của mình, có vẻ hôm nay là ngày tôi sẽ vào quét mạng nhện và tiếp tục chia sẻ về những cảm nhận nhảm nhí mà lại vô cùng ý nghĩa trong cuộc sống của mình. Do việc cân bằng giữa việc làm và cuộc sống còn là một việc khá mới mẻ đối với một cu cậu lơ ngơ như tôi nên việc phân bổ thời gian cho những chuyện cá nhân (ví dụ là viết blog này) trong thời gian đầu đi làm khá là lộn xộn, quên hẳn luôn cái blog này... thật là tội lỗi...

Tôi bắt đầu dựng CV trên một nền tảng tạo CV Online trên mạng với tư cách là một thực tập sinh PHP, ngay sau khi vừa public thì có rất nhiều nhà tuyển dụng gọi điện hỏi chuyện và hẹn lịch phỏng vấn, công ty mà tôi đặt chân đến để phỏng vấn sau cùng là một agency như tôi đã đề cập trên tiêu đề bài viết. Nếu bạn chưa biết thì: 
"Agency là các công ty dịch vụ truyền thông quảng cáo cung cấp dịch vụ tiếp thị quảng cáo cho các công ty khác. Có thể hiểu agency một cách đơn giản là một đơn vị cung cấp dịch vụ tiếp thị, quảng cáo cho những công ty khác một cách chuyên nghiệp."


Sau một thời gian làm việc tại công ty thì tôi đã học được rất nhiều điều mới từ mọi người ở đó (tuy có một chút không theo dự định) và cho đến tận bây giờ - sau hơn 4 tháng làm việc thì tôi vẫn còn có rất nhiều điều mới để học hỏi. Những điều mà tôi liệt kê sau đây là kinh nghiệm cá nhân được đúc kết sau khoảng 4 tháng làm việc.

#1. Cào dữ liệu với PHP (cURL)

Vâng dĩ nhiên rồi, làm việc tại một công ty Agency thì bạn (có thể) sẽ phải biết đến cách để cào dữ liệu từ các website khác về. Để làm gì ư? Dữ liệu là loại tài sản quyết định số mệnh của hầu hết các công ty cung cấp dịch vụ quảng cáo, họ cần dữ liệu để phân tích thị trường, đưa ra giải pháp quảng cáo, tìm hiểu hiệu quả của chiến lược đang được vận hành của một doanh nghiệp nào đó,....

Khi được phân công nghiên cứu để cào dữ liệu từ một website về tôi cảm thấy khá bối rối vì trước đây chưa tiếp xúc với cái kỹ thuật "cào dữ liệu" bao giờ. Thế rồi sau cuộc thảo luận với một anh cùng team về việc lấy dữ liệu thì tôi cũng bắt tay vào nghiên cứu một cách nghiêm túc.



Khi lang thang trên Google thì tôi biết được rằng PHP sẽ cào được dữ liệu với tính năng cURL, cơ bản thì nó sẽ gửi REQUEST lên server nơi ta cần lấy dữ liệu và đem phản hồi lại từ server về trả lại cho chúng ta, từ đó ta chỉ cần xử lý những dữ liệu trả về. Và may mắn thay website mà chúng tôi đang có ý định lấy dữ liệu đang thực hiện lấy/trả dữ liệu theo phương thức GET, điều đó sẽ khiến việc lấy kết quả trả về rất dễ dàng.

Tuy nhiên nếu nó thực sự easy như tôi đã mô tả thì việc lấy dữ liệu sẽ không phải là một công việc khó khăn. Công cụ mà tôi viết để lấy dữ liệu về đã phải trải qua rất nhiều phiên bản chỉnh sửa để hoàn thiện và chạy ổn định. Trong quá trình đó có một số thứ mà cần phải làm, kiểm tra, sấp mặt mới phát hiện ra được:

  • Muốn lấy ít dữ liệu thì sử dụng Request cURL thông thường (mỗi lần khởi tạo một request lên server), muốn lấy nhiều dữ liệu thì sử dụng multi_curl (gửi Request song song).
  • Giả sử nếu muốn gửi 100 request lên server, vị chi mỗi Request mất 5 giây => 500 giây >> 8.3 phút. Tuy nhiên bài toán mà tôi cần phải giải quyết là vài chục nghìn Request cho nên sử dụng cURL thông thường là một điều cực kỳ tốn thời gian.
  • Sử dụng multi_curl nếu không kiểm tra toàn vẹn dữ liệu chặt chẽ thì sẽ xảy ra tình trạng thất thoát do server chưa xử lý kịp khi có những Request chạy song song.
  • Apache của phần mềm Xampp không thể chạy multi_curl ổn định và toàn vẹn dữ liệu với hơn 50 Request, càng gửi nhiều Request song song thì tỉ lệ thất thoát dữ liệu và quá tải môi trường sẽ càng tăng.
Theo sau đó là vô số những lỗi kỹ thuật và logic khác được tôi phát hiện và chỉnh sửa trong khi xây dựng công cụ cào dữ liệu khiến kiến thức về lĩnh vực này của tôi cũng được cải thiện chút đỉnh. Kết quả là sau nhiều lần chỉnh sửa và tối ưu thì tôi đã có thể lấy được một mẫu dữ liệu hoàn chỉnh với một lần lấy là 20,000 dòng trong khoảng 5 phút với các thuộc tính được chia và phân biệt rõ ràng để giảm khối lượng công việc cho đội ngũ phân tích dữ liệu. Nghe ngầu phết nhỉ!

#2. Cào dữ liệu với Java (Selenium)

Khác một chút so với cào dữ liệu PHP khi tôi phải tự tìm mọi phương pháp để xây dựng ra một công cụ hoàn chỉnh, ở phần cào dữ liệu với Selenium thì tôi đã vô tình nhìn thấy anh cùng team sử dụng, cảm thấy thú vị và xin từ khoá để tự thử nghiệm thẩm du luôn, từ khoá mà tôi có là - Selenium.

Cho những ai chưa biết thì Selenium là một thư viện cho ngôn ngữ Java (có cả những ngôn ngữ khác nhưng tôi sẽ không đề cập tại đây) để thực hiện các tác vụ kiểm thử website một cách tự động, nói cách khác, đây là công cụ giả lập những hành vi của người dùng thật dựa trên những thuộc tính đã được người lập trình viết sẵn trong khi thực hiện.


Chương trình đầu tiên tôi viết là dùng để lấy danh sách bạn bè của một link Facebook bất kỳ, trong quá trình thực hiện thì cũng nhận ra được rất nhiều điều hay ho mà tôi chưa bao giờ nghĩa sẽ có ngày mình phải đụng tới. Đây cũng là nền tảng và bước đệm để tôi thực hiện kha khá những nhiệm vụ cào dữ liệu bề mặt trong khoảng thời gian sau đó.

Đây là một phương thức có nhiều ưu điểm do tính cấu trúc chặt chẽ khi có thể luồn sâu vào các element nằm trong các trang web và lấy những nội dung theo nhu cầu của người lập trình. Tuy nhiên việc cào dữ liệu sẽ khiến cho những tác vụ khác của máy bị hạn chế, nghĩa là nếu đang cào dữ liệu với Selenium thì hầu như bạn không thể thực hiện việc gì khác trên máy tính nếu muốn chương trình này chạy trơn tru.

Tóm lại: Đây là một chương trình để cào bất cứ dữ liệu nào mà bạn có thể nhìn thấy khi truy cập một website nào đó.

#3. Học cách làm việc hiệu quả hơn

Vì đây có thể được coi là một công ty theo dạng startup nên bản thân tôi phải tiếp xúc với người đứng đầu công ty rất nhiều, gần như là phải hợp cùng với sếp trong mọi dự án có liên quan đến công nghệ (chủ yếu là web). Tôi và các chị account trong công ty thường hay bị khiển trách do cách làm việc thiếu tính liên kết dẫn đến việc không đạt hiệu quả như mong muốn, đại loại là có những việc dù làm siêng làm lâu nhưng vì không hiệu quả nên nó cũng không đi được đến đâu, không đạt được mục đích.



Tôi thực sự thấy được hiệu quả của phương pháp họp cả nhóm và đưa ra một chiến lược hiệu quả, mục đích chủ đạo là làm việc cùng nhau sao cho để đạt hiệu suất cao và đồng thời cũng cho ra được một kết quả tốt nhất có thể. Thực tế thì tôi cũng không thể nói rằng mình có thể lĩnh hội hết được những kỹ năng ấy ngay trong khoảng thời gian ngắn, việc quản lý công việc và thời gian của mình cho các tác vụ vẫn còn đang là một thử thách khá lớn.

Điều mà tôi cảm nhận được sau khi học được cách làm việc hiệu quả này là tôi tự tin hơn khi sắp xếp thứ tự ưu tiên cho công việc của mình, tự đưa ra được các quy trình thực hiện một tác vụ nào đó, xây dựng được một tầm nhìn tổng quan của việc mình sắp làm và đưa ra một con đường cụ thể để dựa vào đó và đi theo. Tôi áp dụng cách làm việc hiệu quả không chỉ trong công việc trên công ty mà còn trong rất nhiều công chuyện khác trong mọi khía cạnh cuộc sống của mình.

#4. Làm quen với áp lực

Đối với tôi, hai từ "áp lực" không thực sự có một định nghĩa chính xác, đó đơn giản chỉ là một loại cảm giác ức chế não bộ khiến cho chúng ta bị mệt mỏi và căng thẳng kéo dài, hệ quả của việc đó là chán nản và muốn buông xuôi thứ mình đang làm.



Áp lực của tôi không chỉ đến từ công việc, nó lẩn khuất trong mọi ngóc ngách cuộc sống và chực chờ lao ra để nuốt chửng tôi, kéo tôi vào cái vòng xoáy tiêu cực đen ngòm của nó. Tuy tôi không phải là một người xuất chúng nhưng có một thứ mà tôi luôn tự tin về mình, đó là một "khung tư duy" vững chắc, hay còn gọi là "strong mindset".

Không thể phủ nhận áp lực của tôi khi làm tại công ty, tuy nhiên sau khi dần quen với nó, tôi lại hấp thu nó và xem như đó là một chuyện hiển nhiên, và suy nghĩ tích cực đã giúp tôi rất nhiều trong việc thực hiện chuyện đó. Cái cảm giác mà tôi gọi là áp lực vẫn chưa là gì so với những người thành công bận rộn ở bên ngoài kia, bấy nhiêu việc này nếu tôi xem là áp lực không thể vượt qua thì biết bao giờ mới vươn ra biển lớn, tự mình đương đầu với những công việc còn khó khăn và áp lực gấp nghìn lần? Bạn có nghĩ như vậy không?

#5. Cân bằng mọi thứ không hề dễ dàng

Vấn đề này không khỏi khiến tôi đau đầu xuyên suốt thời gian làm việc tại công ty, việc cân bằng giữa việc làm và cuộc sống như là một cuộc chiến dài đằng đẵng không hồi kết giữa tôi và tâm trí của bản thân.

Cũng không nằm ngoài khả năng đây là tâm lý chung của mọi người lần đầu đi làm, tôi rất siêng năng và hào hứng vì nhận được những công việc mà mình có thể làm tốt và hiệu quả, từ đó nó khiến tôi bỏ qua gần hết những vấn đề đang tồn tại xung quanh mà cũng cần tôi quan tâm không kém. Tôi nghĩ rằng rất nhiều thứ trong cuộc sống đã bị tôi trực tiếp tác động đến trong thời gian đầu đi làm thực sự của mình, lúc đó tôi cũng chả mảy may nghĩ đến chuyện cân bằng thời gian cho mọi thứ, tôi chỉ quan tâm đến việc đoạn code mình viết có chạy không, làm thế này đã vừa ý của khách hàng chưa, ngày mai có task gì đang chờ mình nữa không. Tất cả đều là những câu hỏi liên quan đến việc tôi đang làm.


Sau đó một thời gian thì tôi bắt đầu sốc lại tinh thần, tôi bắt đầu nghĩ đến chuyện cân bằng về thời gian giữa cuộc sống và công việc của mình. Tuy dự án ngày càng nhiều và tôi ngày càng phải học thêm rất nhiều những thứ mới, những thứ có thể khiến tôi bị căng thẳng, song tôi vẫn phải giành ra đủ thời gian cho chính bản thân và cho những điều quan trọng đối với tôi trong cuộc sống, đồng thời cũng phải đảm bảo trách nhiệm đối với công việc của mình.

#6. Học thêm công nghệ mới

Mục đích của tôi luôn là học tập và không ngừng nâng cao kiến thức để phục vụ cho tương lai của bản thân sau này. Thú thật là trong 2 tháng đầu thì tôi không thực sự được tiếp xúc với những khái niệm quá mới mẻ, tôi chỉ việc phải áp dụng và tận dụng kinh nghiệm từ những gì mình đã biết để hoàn thành công việc được giao. Tôi luôn mong chờ một dự án mang tính đột phá, có thể không phải là đột phá so với người khác nhưng đối với tôi nó phải là một thứ gì đó mới mẻ mà khiến tôi phải căng não hoạt động để có thể thực sự hiểu và làm tốt nó.

Gần đây sếp có kéo tôi vào họp để chuẩn bị triển khai một hệ thống lớn mà trong marketing gọi là "Social Listening". Nếu bạn chưa biết ta có thể xem qua một khái niệm ngắn:

Social listening là công cụ nhằm thu thập dữ liệu trên Internet dựa trên những từ khóa được xác định trước. Nó thường được sử dụng để giám sát hình ảnh thương hiệu và theo dõi lượng người thảo luận đang thảo luận trực tuyến về nhãn hàng. Tuy vậy, chúng ta vẫn có thể áp dụng social listening trong nhiều hoạt động khác của công ty.
Cơ chế ‘lắng nghe’ này hướng đến công nghệ có những đặc tính sau:
  • Quét các mạng xã hội chuyên biệt để tìm kiếm thông tin trao đổi liên quan đến từ khóa hoặc nhóm từ khóa cho sẵn.
  • Quét các blog, diễn đàn, trang tin tức,… để tìm kiếm những nội dung liên quan đến từ khóa hoặc nhóm từ khóa cho sẵn.
  • Sử dụng qui trình xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) có xét đến yếu tố cảm xúc (sentiment) để phân tích các kết quả thu được từ quá trình quét ở trên. Các phân tích này cũng được thực hiện để cho ra những hiểu biết có khả năng thúc đẩy hành động khác nhau, bao gồm các chủ đề chuyên sâu hay các nhân vật có khả năng gây ảnh hưởng quan trọng (Influencer).
- theo AtpSoftware


Đại khái là hệ thống này sẽ truy quét tất cả những thứ liên quan đến mạng xã hội hay những nơi bạn có thể thảo luận tương tác trên mạng internet để lấy những nội dung mà người dùng đăng lên theo một bộ từ khoá được định sẵn.
Ví dụ nhãn hàng Vinamilk muốn khảo sát chiến dịch "Con bò biết đi" của mình thì họ sẽ sử dụng hệ thống Social Listening (thuê ngoài) để quét tất cả những từ khoá liên quan đến chiến dịch đó trên mạng xã hội, sử dụng quy trình NLP để phân loại các phản ứng của người dùng về chiến dịch này, từ các dữ liệu đó họ sẽ tạo ra được một bản báo cáo chi tiết về số liệu và xác định được rõ ràng chiến dịch này có hiệu quả hay không, có đạt được những gì mà họ đề ra ban đầu hay không và có một chiến lược thích hợp để đối phó nếu chiến dịch không đạt được kết quả mong muốn.

Đến thời điểm hiện tại thì tôi cũng chỉ đang ở trong giai đoạn nghiên cứu chứ chưa thực sự xây dựng nó, đây là một hệ thống lớn và có rất nhiều những khái niệm mà tôi chưa từng nghe qua (hoặc nghe rồi mà chưa biết làm) như NodeJS, AngularJS, Hadoop,...
Thế là tôi phải bắt tay vào tìm hiểu NodeJS để chuẩn bị chinh chiến dự án này, và như tôi đã nói đấy, tôi rất hào hứng đối với những cái mới.

#. Đồng nghiệp trẻ trung và dễ thương

Đây là một đề cập ngoài lề và nó không liên quan đến những điều mới mà tôi học nhưng môi trường làm việc ở đây rất dễ gần và vui vẻ (tuy vẫn phải chịu áp lực công việc và những trận sấm gầm từ sếp tổng). Một phần cho những thái độ làm việc tích cực này cũng là vì đây là một tập thể với rất nhiều người trẻ, văn hóa công ty về cách đối xử giữa đồng nghiệp với nhau được xây dựng tốt và quan trọng hơn hết là hầu như ai trong số mọi người đều toát ra những năng lượng tích cực, mọi người rất chịu khó giúp đỡ và hỗ trợ nhau trong công việc và cuộc sống.


Kết

Có mỗi bài viết này thôi mà tôi mất tận vài tháng để hoàn thành đấy, tin nổi không! Như tôi nói đó, việc cân bằng giữa công việc và cuộc sống vẫn là một công cuộc mà tôi phải cố gắng làm chủ trong suốt khoảng thời gian này. Hôm nay là ngày Chủ Nhật và đang có chút thời gian nên nổi hứng gõ phím viết blog bình thiên hạ, mong là giọng văn và ngôn từ của tôi không bị mai một khi bỏ lỡ việc viết lách quá lâu.


Thực tế thì còn rất nhiều những loại kiến thức khác mà tôi không đề cập ở đây vì tôi không giỏi lắm ở chuyện nhớ các chi tiết công việc mà mình đã từng trải nghiệm, nói chung đây là một trải nghiệm đi làm rất đáng nhớ về cả kiến thức lẫn các anh chị em trong công ty. Nếu mọi người có đọc bài blog này thì xin gửi lời cảm ơn đến mọi người vì đã cho tôi một trải nghiệm thú vị và sẽ không thể nào quên.

Hẹn gặp lại bạn ở những bài viết kế tiếp!

- Thien Nguyen

2 comments

Write comments
November 18, 2019 at 10:28 PM delete

Giọng văn rõ ràng, mạch lạc, dễ hiểu. Trải nghiệm thú vị và rất đáng để học hỏi. Khi đi làm thì tạo được giá trị cho bản thân và mọi người, chia sẻ trải nghiệm để nhân rộng giá trị đó ra. Chúc Ý Thiên sẽ học hỏi được nhiều và ngày càng phát triển, chúc bạn sẽ có nhiều trải nghiệm thú vị hơn nữa, và đừng quên giữ thói quen chia sẻ nó với mọi người nhé! Thanks u so much.

Reply
avatar
Admin
AUTHOR
November 24, 2019 at 7:38 PM delete

chia sẻ thú vị về phần data collection, chúc bạn sau 1 thời gian lăn lê bò lết tại môi trường startup vn bạn sẽ sớm tích lũy được kiến thức để thực hiện cú nhảy tiếp theoo. :D

Reply
avatar