Cuộc sống là một trò chơi nhưng tùy vào mỗi người mà nó sẽ mang thể loại khác nhau. Đi làm cũng thế, với mình những ngày đầu thì đi làm đúng nghĩa là một trò chơi sinh tồn.
Khoảng thời gian khó khăn
Như đã kể trong phần trước thì mình có nói về việc mình bị tống cổ ra khỏi căn nhà PHP, mặc áo tơi lao vào một cơn bão mang tên Javascript. Thì trong phần này mình xin kể sơ về vụ việc trước đó. Mình đã trãi qua một khoảng thời gian chật vật nếu không muốn nói là khủng hoảng trong vài tháng. Khi ra trường nhưng không xin được việc làm, thi rớt liên thông lên hệ hoàn chỉnh của trường. Mỗi ngày trôi qua là một ngày áp lực khi mà cái bóng đen thất nghiệp cứ treo lơ lững trên đầu. Trong thời gian đó mình cũng bí quá đi làm một số nghề như internet sale, quản lý channel Youtube nhưng vài ngày rồi quit khi được gọi đi làm chổ khác tốt hơn. Hay đúng hơn là gần với chuyên ngành hơn. Đến một lần mình được nhận vào làm trong một công ty nhỏ chỉ có vài mạng ở Tân Phú. Công ty làm Java, mình được nhận vào và ngày đầu tiên của mình là được dạy sơ sơ về system admin. Đến ngày thứ hai, mình có được một cú điện thoại định mệnh. Một người gọi tên lên và phỏng vấn về công việc PHP developer. Thế là mình lại quit công việc hiện tại. Cuối cùng mình cũng tìm được một công việc phù hợp với chuyên môn PHP của mình. Lúc lên công ty, mình được đưa ra task là làm một project đăng tin và quản lý đơn giản bằng Phalcon. Mình nhớ là mình làm xong trong vòng 3,5 ngày thì phải. Sau này, mình mới biết luật bất thành văn của ông ty là nếu sau một tuần mà không xong thì cho đi bụi hết. Sau đó, mình làm một lô lốc công việc trước khi join vào một dự án product của công ty. Lúc này, mình đảm nhận một phần khá lớn frontend lẫn backend (PHP) của project. Chỉ trừ phần tương tác với database là mình không chạm vào. Do lúc đó công ty sử dụng API kèm với elasticsearch để xử lý. Do mình không đủ khả năng làm nên phần đó công ty giao cho một ông anh làm (các bạn có thể follow him tại Node++). 
Nếu hỏi lúc đó mình ngán cái gì nhất thì mình có thể khẳng định đó là HTML, CSS, Javascript. Mình code xấu cực kì và rất tệ. Sử dụng các class có sẵn của Foundation cực kì bừa bãi. Bất lực trước các thứ như plugin slider hoặc là menu, map. Do chất lượng kém thêm phải sửa liên tục nên đống source đó nhìn chả khác gì một mớ hỗn độn. Thời gian đó mình cực kỳ stress và thường xuyên tự nhủ là "mình tuyển vào đây để làm backend mà?". Có một chuyện vui là đến tận sau này sếp mới biết mình làm backend, chứ trước đó ổng toàn đinh ninh là mình là frontend dev. Đến một ngày, mọi thứ thay đổi khi sếp cử hai anh qua hỗ trợ phần frontend của project (cuối cùng một anh sa lầy trong cái project này luôn). Code ở tầng frontend được đập đi và cơ cấu lại. Cả về trúc file và folder cũng được gom gọn lại để đảm bảo DRY (Don't repeat yourself). Code css thì được tổ chức chỉnh chu lại. Nói đơn giản chứ nó mất cũng gần nửa tháng. 
Liên tục là những đêm thức tới 2, 3 giờ sáng để chờ deploy. Chủ nhật thì hai anh em đi cafe ở BlackBerry Cafe nằm bên quận 4 (thời gian đó cũng chính là cái thời gian mình đang mơ về em BlackBerry Classic). Ngồi đến tận lúc quán sắp đóng cửa anh vẫn cố nói với bạn phục vụ "chờ tí nha em, để bọn anh up cái này lên đã". Xong hai anh em ra ăn hủ tíu gõ (vì giờ đó chỉ còn bán hủ tíu gõ). Về ngủ vài tiếng sau là phải thức tiếp để làm nối một số phần và kiểm tra trên production sau khi deploy.
Những bước đầu tiên
Sau khi được refactor đống code cũ. Mình lại tiếp tục những ngày code frontend của mình, chỉ khác là giờ được hướng dẫn nhiều thứ nên công việc cũng thú vị hơn. Mình dần nhận ra là frontend không quá đáng ghét như mình nghĩ. Mình nhớ cái lần mà được dạy về absolute và relative hay là dùng jQuery để listen event cho các element được render theo dạng dưới đây:
$("body").on("click", ".btn-delete" function () { })
Mỗi lần như thế cảm giác đầu như được khai sáng một ít. Lại được các anh dạy cả cách search google để dễ ra được solution đúng, cách tổ chức file, function. Đặc biệt là leader có nhắc mình một câu là không biết phải hỏi ngay những vấn đề mới. Mình nhớ một lần anh nói với mình:
 Cái gì mà không biết là phải hỏi ngay. Cứ việc hỏi đi. Ngày xưa vào đây anh cũng không biết gì. Nhưng mà anh chịu hỏi. Lúc đó, anh ngồi kế anh Khánh, không biết cái gì là anh hỏi liền. Hỏi riết ổng bực luôn...
Trong project của mình thì phần kinh dị nhất là cái trang tìm kiếm và trang đăng tin, cập nhật tin. Hai cái form với kha khá thông tin và logic hơn hết là yêu cầu thay đổi liên tục. Đầu tiên mình xài CSS mặt định của Foundation nhưng càng về sau nó càng xấu và lạc lỏng giữa trang web. Vì giao diện trang này lấy lại từ một trang khác dùng Bootstrap. Mà style của Bootstrap thì bo tròn và đổ bóng trong khi style của Foundation thì góc cạnh và phẳng. Chính vì lý do đó mà bọn mình phải làm cái việc khác buồn cười đó là style lại những cái có sẵn của Foundation sang Bootstrap. Bào tròn mọn góc nhọn, từ các thẻ button đến label, table. Cũng nhờ quá trình này mà mình cũng học được kha khá trong việc... sử dụng cái plugin javascript. 
Trở lại với ba cái form của mình. Nếu mình nhớ không lầm thì nó dài lên đến hơn cả ngàn line mỗi file. Điều đáng nói là trong code của mình cẩu thả và bị lặp lại khá nhiều. Nhưng mình có nói trong bài trước thì một thứ khiến mình từng cực kì ghét đó là Asynchronous. Cảm giác một load theo dạng cha con của lần lượt bốn cái selectbox. Nhưng cứ luôn tự hỏi là tại sao nó có load tới các thứ hai là đứng hẳn. Đến khi biết được mình đã làm đủ trò để đảm bảo cho chạy đúng nhất và không bị sót. Theo mình nhớ thì lúc đó mình dùng when và done của jQuery thì phải. Buồn cười là vì yêu cầu thay đổi liên tục nên mình chèn đủ chổ trong file Javascript. Lỡm chổm những chổ mình in biến PHP ra. Sau tất cả, cuối cùng mình cũng hoàn thành các chức năng đó, chạy khá mượt nhưng mỗi lần maintain thì cứ phải gọi là khóc ròng vì code không hề tối ưu một tí nào. Sau lần đó, mình không học được quá nhiền thứ về Javascript những cũng trang bị được kha khá khả năng làm việc với jQuery và không còn cảm giác sợ hãi khi bị giao task fix một đoạn Javascript nào đó trong các hiệu ứng hoặc các UI đơn giản. 
Có thể nói lúc đó mình nghĩ kiến thức lúc đó cũng chẳng bổ béo gì lắm vì mình vẫn còn nghĩ rằng đây là thứ mà các lập trình viên đều biết cả, chỉ là mình biết quá trễ so với mọi người thôi. Mình suy nghĩ như thế cũng một phần vì trước lúc vào đây mình đã phỏng vấn trượt khá nhiều công ty, họ đều đưa ra cho mình bài test có chứa kha khá các câu trắc nghiệm có liên quan đến bộ ba quyền lực (HTML - CSS - Javascript). Nhưng đến sau này, khi mình đi làm những chổ khác thì mình mới biết rằng là mình đã nhầm vì cũng khá nhiều người trong các môi trường sau này không code được những thứ đó. Lúc đó, những kiến thức trong giai đoạn đó đã giúp đỡ cho mình khá nhiều.
Tôi nghe đâu đó có ai nhắc đến Angularjs
Lúc đi làm thì mình cũng được nghe về Angular. Có thể nói Angular 1 (hay còn gọi là Angularjs) là một thứ khá hot thời điểm đó. Trên khắp các trang tuyển dụng vị trí frontend thường xuyên gắn kèm theo nó. Thật chí là nhan nhản các tin tuyển dụng PHP, các nhà tuyển dụng cũng cố chèn thêm được dòng chử Biết Angular là một lợi thế. Nói thêm một chút về xu thế tuyển dụng PHP lúc đó, hai thứ thường xuyên xuất hiện nhất chính là Wordpress và Angular. Buồn cười là đến giờ mình đều chưa làm được hai cái đó. Trong một lần nói chuyện vào buổi sáng với các anh thì mình biết thêm được một thứ tên là React. Lúc mình hỏi chơi thì ổng khuyên nên học React đi. Trong lúc đang phân vân thì công ty lại có một project là một trang quản trị bán hàng. Mọi người đều định làm bằng Angular nhưng rồi vì một điều gì đó mà một người dùng jQuery. Site vẫn chạy mượt mà không một tí vấn đề. Sau lần đó, mình cũng bỏ hẳn luôn cái thắc mắc nên chọn cái nào trong hai cái. Đúng là sau này mình không dùng cái nào thật, mình bắt đầu làm Javascript thật sự với Angular 4 (Angular.io). Nhưng đó là một câu chuyện khác rồi.
Tiếp tục bước đi
Một thời gian, thì bọn mình rời công ty cùng một ngày với một chầu nhậu bét nhè ở Phạm Văn Đồng. Sau đó, mỗi người một hướng đi. Mình bước vào một môi trường mới và được làm khá nhiều với PHP và có thể nói gần như là không còn dính tới Javascript. Theo kiểu mình nói ở bài đầu tiên đó là sau một năm trùm áo tơi bước trong mưa thì mình cũng tìm được một cái miếu hoang trú mưa. Đương nhiên, miếu hoang vẫn không phải là nhà. Vậy nên mình lại đi tiếp sau thời gian nghỉ chân. Có điều, lần này khi bước ra khỏi miếu thì cơn mưa càng lúc càng lớn, lớn đến mức mình chưa từng gặp bao giờ. Và đó chính là câu chuyện của phần tiếp theo.
Các bạn có thể follow trang cá nhân của mình ở địa chỉ https://tasynguyen3894.github.io hoặc Twitter của mình @tasyit để theo dõi các bài viết linh tinh của mình.