Chào bạn!
Mình là Tuấn, còn được biết đến với tên gọi "evondev". Hiện tại, mình là người sáng lập và phát triển blog evondev.com - một nơi chia sẻ kiến thức về Web, đặc biệt là về việc học HTML, CSS và JS.
Trong bài viết này, mình muốn chia sẻ với bạn về cuộc hành trình tự học Frontend trong suốt 4 năm qua của mình, và những thành công nhỏ mà tôi đã đạt được ngày hôm nay. Nếu bạn đang theo đuổi lĩnh vực web như tôi, hy vọng rằng bài viết này sẽ mang lại động lực và giúp ích cho bạn trong quá trình tự học.
Mình cũng từng là một newbie, vì vậy có thể bạn sẽ tìm thấy sự tương đồng giữa chính bạn và mình trong hành trình của chúng ta.
Đôi chút về tôi - Evondev
Tôi sinh ra và lớn lên ở một vùng sâu xa của Bà Rịa Vũng Tàu. Học từ lớp 1 đến lớp 12, tôi không có điểm nổi bật nào đặc biệt. Lúc đó, tôi học Pascal nhưng không hiểu mấy, và tôi không ngờ mình sẽ trở thành một lập trình viên sau này.
Khi lên cao đẳng, tôi vẫn duy trì phong cách học tập như trước và đạt được kết quả khá. Ban đầu, tôi thích Photoshop hơn là lập trình vì thấy chỉnh sửa ảnh và tạo màu sắc rất thú vị. Nhưng trường không dạy Photoshop cho hệ chính quy.
Rồi vào năm thứ 2, tôi bắt đầu tự học HTML, CSS và JS và đã làm được nhiều thứ thú vị. Mặc dù làm việc của tôi rất gớm và code cũng không tốt, nhưng niềm đam mê đó đã đưa tôi tiếp cận với lập trình.
Hiện tại, tôi là một Frontend Developer. Ngoài giờ giấc làm việc tại công ty, tôi còn xây dựng blog và kênh Youtube để chia sẻ kiến thức của mình với nhiều người khác và cộng đồng lập trình. Tôi cũng quản lý một nhóm mạnh về frontend trên Facebook.
Gần đây, tôi đã quay hơn 100 video về HTML/CSS và biến chúng thành một khóa học trực tuyến.
Tự học và làm việc tại công ty đầu tiên
Khi tôi mới bắt đầu học lập trình, mọi thứ đều rất mơ hồ. Quá trình tự học ban đầu rất gian nan và gặp nhiều khó khăn. Tôi phải tìm kiếm thông tin trên Internet, nhưng khó khăn ở chỗ mọi người chia sẻ kiến thức theo nhiều cách khác nhau. Mỗi người đều cho rằng quan điểm và kiến thức của họ là đúng.
Sau khi nghiên cứu và lập kế hoạch, tôi quyết định theo đuổi 3 chuyên môn chính: HTML, CSS và Javascript. Khi đã xác định được hướng đi này, tôi lựa chọn học tại w3schools - một nền tảng uy tín.
Thời gian học HTML, CSS và JS tại w3schools cũng chính là thời gian tôi đi thực tập tại một công ty outsource web.
Tại công ty này, tôi được kiểm tra kiến thức từng thuộc tính để biết mức độ hiểu biết của mình, và tôi cũng được học cách sử dụng chúng đúng cách. Dù áp lực là code sai sẽ bị chỉ trích, tôi đã học được nhiều điều hay ho mà trường học không thể dạy được.
Sau đó, tôi tìm công việc và nhờ kinh nghiệm học tập từ các anh chị trong công ty thực tập, tôi biết cách viết email, trả lời mail, thương lượng lương, trả lời phỏng vấn, cách ứng xử và cách ăn mặc, những điều này đều là kỹ năng mềm quan trọng.
Cuối cùng, tôi đã đậu và làm việc tại một công ty sản phẩm của Singapore có trụ sở tại Việt Nam, với vai trò là thiết kế giao diện và code giao diện (HTML/CSS). Tôi là người duy nhất chịu trách nhiệm làm giao diện, và đậu là do tôi có thể thiết kế và code. May mắn là trước đó tôi đã làm freelance về thiết kế giao diện web và được một chị lâu năm trong nghề chỉ dạy.
Tự học và làm việc tại công ty đầu tiên
Trong công ty, tôi làm việc độc lập mà không cần sự trợ giúp của ai. Sếp chỉ định công việc và tôi tự thiết kế và code giao diện với HTML/CSS.
Nhược điểm lớn nhất của việc làm đơn độc là khi gặp khó khăn, tôi không thể nhờ sự giúp đỡ của ai. Vào thời điểm đó, năm 2016, chưa có nhiều nhóm lập trình trên Facebook như hiện nay, và dù có thì tôi cũng không bao giờ hỏi.
Để tìm câu trả lời cho những câu hỏi mà tôi đặt ra, tôi thường tự tìm kiếm trên Google và Stackoverflow. Mặc dù chỉ làm một mình, nhưng tôi luôn cố gắng và giải quyết hầu hết các vấn đề mà tôi gặp phải, và do đó trình độ của tôi đã cải thiện rõ rệt.
Ngoài ra, để nâng cao trình độ của mình, tôi tự học thêm trên hai nền tảng là Codecademy và Udemy. Tôi cũng học thêm về jQuery để tạo các hiệu ứng và thao tác với HTML, đọc thêm kiến thức từ các blog nước ngoài như CSS-Tricks và teamtreehouse.
Lúc đó, tôi chưa biết gì về Javascript (mặc dù nó là mục tiêu ban đầu của tôi), có người đồng nghiệp làm ngôn ngữ khác hỏi tôi về Javascript và tôi chỉ biết về jQuery.
Thời điểm đó, vào năm 2016, Angular 1 là một framework JS phổ biến, nhưng do trình độ của tôi chưa đủ, nên tôi không hiểu gì về nó và tiếp tục làm giao diện với HTML/CSS và các chuyển động với jQuery.
Việc tối ưu trải nghiệm người dùng và giao diện là một trong những kỹ năng quan trọng của người làm web. Do đó, tôi đã cập nhật kiến thức về UX/UI mỗi ngày qua các blog như goodui.org, uxdesign.cc, và xem các thiết kế trên dribbble và medium muz li để lấy cảm hứng. Tuy nhiên, tôi nhận thấy mình không giỏi lĩnh vực này nên tôi quyết định chỉ viết code trực tiếp thay vì thiết kế trên Photoshop.
Việc tự học chỉ là lý thuyết và bạn sẽ không tiến bộ nếu không thực hành. Trong quá trình tự học HTML, CSS và JS, tôi luôn đặt câu hỏi cho chính mình như:
- Thẻ trong HTML này để làm gì?
- Nó có công dụng gì?
- Tại sao phải đặt tên class như này?
- Tại sao phải sử dụng đoạn code này cho thuộc tính trong CSS, chỗ khác lại sử dụng thuộc tính khác để nó chạy?
- ...
Đặt câu hỏi và tìm câu trả lời cho các tình huống khác nhau sẽ giúp bạn hiểu rõ vấn đề hơn và ghi nhớ lâu hơn so với việc học thuộc lòng như khi còn là học sinh.
Bước chuyển mình sang môi trường mới
Sau một năm làm việc tại công ty nước ngoài, tôi nghỉ do công ty đã đủ thiết kế và không còn công việc cho tôi. Sau đó, tôi xin vào làm việc tại công ty hiện tại - KTcity và làm cho đến nay.
Trong khoảng thời gian từ năm 2017, tôi làm việc trực tiếp với sếp thông qua việc chỉnh sửa giao diện WordPress với các tùy chỉnh giao diện. Tôi code trực tiếp để sếp xem và chỉnh sửa tại chỗ, chỉ khiến tôi code nhanh và đúng theo yêu cầu sếp mới thôi. Khi đó, tôi đã có trình độ tìm kiếm và trình độ code rất nâng cao.
Khi làm việc với WordPress, đôi khi tôi phải tùy chỉnh lại CSS và cấu trúc HTML của WordPress để có thể ghi đè code lên code của WordPress và code của tôi mới có tác dụng.
Trong quá trình làm việc nhiều template khác nhau của WordPress, trình độ tôi đã tăng lên một bậc. Tôi hiểu thêm về WordPress và ngôn ngữ PHP.
Thời điểm này, tôi vẫn làm việc với jQuery và làm các hiệu ứng và thao tác với CSS. Đến năm 2018, tôi mới bắt đầu tìm hiểu về Javascript thuần và bắt đầu quá trình tự học JS.
Sau đó, tôi áp dụng những kiến thức đã học vào các tính năng được yêu cầu bởi sếp thay vì dùng jQuery. Từ đó, tôi thấy thích thú với Javascript và tiếp tục tìm hiểu và nghiên cứu thêm về nó để nâng cao trình độ của mình.
Viết blog chia sẻ kiến thức (Evondev Blog)
Vào tháng 7 năm 2018, tôi đã bắt đầu xây dựng blog cá nhân mang thương hiệu "evondev".
Với kiến thức và kinh nghiệm thực chiến của mình, đặc biệt là về HTML, CSS, tôi quyết định chia sẻ nhiều hơn trên blog.
Tôi đã cải thiện giao diện để đảm bảo người dùng có trải nghiệm tốt khi ghé thăm blog của tôi. Đối với tôi, yếu tố này là ưu tiên hàng đầu sau kiến thức.
Tuy nhiên, vấn đề lớn nhất của tôi là không biết cách viết và quảng bá blog. Tuy nhiên, thông qua blog Kiemtiencenter, tôi đã học và cải thiện rất nhiều. Nhờ đó, thương hiệu "Evondev" đã được biết đến bởi nhiều người trong lĩnh vực, và tôi cũng nhận được hơn 35k lượt xem trang mỗi tháng từ các từ khóa chính đứng đầu trên Google.
Đồng hành cùng dự án có hơn 60.000 người dùng
Vào cuối năm 2018, tôi đã hoàn thành việc học JS cơ bản và áp dụng vào công việc. Tôi tiếp tục rèn luyện và làm việc với HTML, CSS và JS trên codepen.io - một trình soạn thảo code trực tuyến dành cho lập trình viên.
Sau đó, tôi tiếp tục nghiên cứu thêm về NodeJS và ReactJS. Tôi nhận ra rằng để trở thành một "Frontend Developer", tôi cần học thêm nhiều thứ khác ngoài HTML, CSS và JS. May mắn, tôi tìm được nhiều khóa học chất lượng từ Wesbos, dù giá cả không rẻ nhưng tôi vẫn quyết định đầu tư vào kiến thức mà không tiếc tiền.
Nhờ đó, vào năm 2019, tôi trở thành một trong những người đầu tiên áp dụng ReactJS và NodeJS trong dự án mới tại KTcity. Cùng với một người bạn, chúng tôi tự học và làm việc dựa trên kiến thức học từ các khóa học trực tuyến. Sản phẩm mà chúng tôi hoàn thành đáng mong đợi và hiện đã có hơn 60.000 người dùng.
Làm ra một sản phẩm đẹp từ thiết kế cho mình cảm giác rất thú vị, đặc biệt là khi thiết kế đến từ các Designer tài năng trong công ty. Nhờ kinh nghiệm thực tế trong nhiều năm, tôi tự tin và luôn hoàn thành công việc đúng deadline.
Ra mắt khóa học HTML, CSS online đầu tiên
Từ năm 2019, tôi bắt đầu tham gia cộng đồng Frontend Việt Nam và chia sẻ kiến thức trên blog của mình. Tôi nhận thấy nhóm hoạt động rất mạnh và tôi muốn chia sẻ nhiều hơn. Vì vậy, tôi trở thành Mod cho nhóm và chia sẻ những kiến thức và kỹ năng mà tôi đã học được trong hơn 4 năm qua.
Hiểu được việc tự học và tiến bộ trong nghề frontend không hề dễ dàng, và nhờ ủng hộ từ nhiều người, năm 2020 tôi quyết định mở khóa học offline đầu tiên và nó đã khá thành công. Nhưng để đảm bảo chất lượng, tôi thường không nhận quá nhiều học viên.
"Trời tính không bằng Covid tính", trong năm 2020, tôi chuyển sang dạy online qua Zoom và được sự hưởng ứng rất lớn từ cộng đồng. Số lượng học viên tham gia rất đông và đến nay, tôi đã có tổng cộng 7 lớp.
Tôi không chỉ tâm huyết với tương lai và sự phát triển cá nhân, mà còn với tiến bộ của cộng đồng lập trình ở Việt Nam.
Không chỉ đến đó, bên cạnh công việc chính vào ban ngày, tôi dành thời gian ban đêm để tạo ra những video chất lượng để tạo thành khóa học trực tuyến.
Vì tôi tin rằng việc dạy offline hoặc qua Zoom chỉ có thể hướng dẫn được cho một số học viên hạn chế trong từng lớp. Nhưng nếu có khóa học trực tuyến, tôi có thể truyền tải kiến thức cho hàng nghìn bạn trong một năm.
Và gần đây, tôi đã ra mắt khóa học HTML, CSS trực tuyến tại KTcity với gần 120 video. Khác với các nền tảng khác chỉ làm video một lần, tôi tập trung cập nhật kiến thức mới vào cuối tuần để giúp việc học của bạn hiệu quả nhất có thể.
Nếu bạn muốn học, bạn có thể sử dụng mã giảm giá "EVONTET".
Phát triển Visual Studio Code Extension
Trong quá trình code bằng phần mềm VSCode, tôi nhận thấy việc sử dụng các giao diện mặc định không phù hợp với ý tưởng của mình và cộng đồng. Vì vậy, tôi đã tìm hiểu và phát triển một theme riêng cho mình và cộng đồng sử dụng với tên gọi "Evondev Dracula".
Nếu bạn sử dụng VSCode để code, bạn có thể tìm và cài đặt extension "Evondev Dracula" trong phần Extensions.
Ngoài ra, khi code HTML CSS, tôi nhận thấy có nhiều đoạn mã mà chúng ta thường sử dụng đi và sử dụng lại nhiều lần. Để tiết kiệm thời gian và làm việc hiệu quả hơn, tôi đã phát triển một extension khác có tên "Evondev Snippets" để giúp bạn code CSS nhanh hơn với hàng tá snippets rất hữu ích trong CSS.
Tạm kết
Bây giờ, tôi đã trở thành một Frontend Developer và không còn là một newbie như 3, 4 năm trước. Càng tiến cao trình độ, công việc và trách nhiệm càng lớn.
Tôi vẫn còn luôn cập nhật kiến thức mới mỗi ngày và thách thức bản thân để làm những việc mà bản thân chưa làm được.
Tôi không chỉ quan tâm đến tương lai và sự phát triển cá nhân mà còn đóng góp vào cộng đồng lập trình ở Việt Nam.
Đây là toàn bộ quá trình học và đúc kết kinh nghiệm của tôi trong vòng 4 năm qua. Hy vọng rằng nó sẽ là một phần động lực cho những người mới bước chân vào lĩnh vực này và giúp bạn phấn đấu và thành công hơn.
(Article translated and adapted from the original)