Từ Designer Thành Front-end Dev Trong 5 Tháng

Từ Designer Thành Front-end Dev Trong 5 Tháng

Là một front-end developer, tôi muốn chia sẻ vài dòng về câu chuyện vì sao tôi lại có được một công việc ở vị trí này, điểm thú vị là tôi chưa từng học code trước đó mà chỉ bắt đầu nung nấu ý tưởng làm dev trong 5 tháng.

Vậy nên bài viết này không được viết từ quan điểm của lập trình viên dày dạn kinh nghiệm để có thể minh họa một learning path rõ ràng cho bạn follow. Tuy nhiên, tôi nghĩ bài viết này đáng để bạn đọc bởi nó được chia sẻ một cách chân thực con đường trở thành front-end developer của một người không có background gì về code đó chính là tôi.

Background của tôi

Tôi là một nhà thiết kế đồ họa 24 tuổi, không có kinh nghiệm gì liên quan đến viết code hết. Thời đi học, điểm thi các môn toán, lý, hóa, khoa học của tôi thấp kinh khủng. Những môn học này khiến tôi sợ hãi với những công thức phức tạp và các con số tẻ nhạt. Vậy nên tôi đã chọn tiếng Anh là chuyên ngành của mình, và tôi cũng bị cuốn hút bởi văn học, văn hóa, nhiếp ảnh và thiết kế ở trường đại học.
Tôi đã tự học thiết kế như thế nào ở trường đại học và cuối cùng trở thành một nhà thiết kế đồ họa sau khi tốt nghiệp là câu chuyện khác. Vấn đề là, trong quá trình đi học của mình, tôi chưa bao giờ nghĩ mình sẽ biết code chứ nói gì đến làm một developer.

Sao tôi lại muốn code?

Đối với tôi, thiết kế đồ họa là để giải quyết một vấn đề với hình thức trực quan hấp dẫn. Tuy nhiên, điều đáng nói ở đây là các nhà thiết kế chỉ được phép giải quyết “vấn đề của khách hàng”, thay vì giải quyết “vấn đề thực sự mà khách hàng gặp phải”. Các nhà thiết kế dành phần lớn thời gian để đoán mong muốn của khách hàng mà không có dữ liệu và phân tích sâu sắc mà chỉ dựa vào trực giác, kinh nghiệm hoặc cảm nhận chung. Tôi đã cảm thấy khá mệt mỏi với điều này trong hai năm trong sự nghiệp thiết kế đồ họa của mình.
Đó là lúc tôi quyết định xem xét nghiêm túc đến sự nghiệp front-end developer của mình.

Tôi nhận thấy rằng trở thành một developer có kỹ năng thiết kế đồ hoạ cho phép bạn có nhiều cơ hội phát triển và làm chủ được các tình huống trong công việc hơn nhiều. Bên cạnh đó, phát triển web hoặc ứng dụng cho phép bạn truyền bá thông tin một cách hiệu quả.
Tôi đã rời bỏ công việc thiết kế đồ họa của mình vào cuối tháng Hai. Không có kế hoạch chi tiết và ngân sách hạn chế, tôi bắt đầu hành trình trở thành một front-end dev như vậy đó.

Tôi phải làm gì?

Những bước đầu tiên luôn thật khó khăn. Nhưng nếu bạn nhận ra lý do thúc đẩy bạn là gì, mọi thứ sẽ trở nên đơn giản hơn. Ví dụ: nếu mục đích của bạn nhanh chóng kiếm được việc làm với vị trí lập trình viên, thì bạn nên tìm hiểu những ngôn ngữ/công nghệ đang hot trên thị trường.
Trong trường hợp của tôi, vì tôi nhận ra rằng mục tiêu hiện tại của mình là để kết hợp thiết kế với các kỹ năng lập trình, tôi tập trung vào việc thể hiện cả hai khả năng.
Vì vậy, tôi đặt mục tiêu và lập danh sách các nhiệm vụ bắt buộc với hiểu biết nông cạn tại thời điểm đó của mình:

1. Mục tiêu

Tìm được một công việc với vị trí là front-end developer.

2. Làm thế nào để đạt được mục tiêu?

Xây dựng trang portfolio show được toàn bộ khả năng của tôi

3. Việc cần làm

  • Học HTML, CSS, jQuery/JavaScript
  • Design portfolio với các kinh nghiệm làm việc và skill của bản thân

Ban đầu tôi chỉ vạch ra các mục trên cho bản thân. Nhưng khi tôi đọc thêm các bài báo, hướng dẫn và yêu cầu công việc, tôi đã đưa thêm những kỹ năng sau vào list công việc mình cần làm:

  • Sass
  • Gulp
  • CS50
  • Basic Unix
  • Basic Wordpress
  • Jekyll
  • Basic AWS knowledge
  • Basic networking knowledge

Để thực hiện đúng kế hoạch, tôi đặt mục tiêu làm việc 48 giờ/tuần cho bản thân. Điều đó có nghĩa là tôi sẽ làm việc tám giờ một ngày và chỉ được nghỉ một ngày trong một tuần. Tôi đã sử dụng Toggl để theo dõi hiệu suất của mình.

Ngoài ra, tôi cũng đặt ra các mục tiêu dài hạn hơn như mục tiêu hàng tháng, hàng quý,... và Asana là trợ lý tốt nhất của tôi trong việc quản lý những công việc này.

Học ở đâu nhỉ?

Tôi đã cố gắng học hỏi từ nhiều nền tảng, hướng dẫn hoặc bài viết trên mạng. Dưới đây là danh sách các tài nguyên mà tôi đã sử dụng trong quá trình tự học của mình:

1. Nền tảng dạy trực tuyến

Hồi đó, tôi ghét những bài hướng dẫn chỉ cho tôi những dòng code mà không hướng dẫn tôi phải làm gì. Một số nền tảng dạy học cứ mặc định rằng tôi đã biết 1 chút gì đó hoặc bảo tôi là cứ bỏ qua 1 đoạn code khó hiểu nào đó thôi. Oh please, tôi hoàn toàn là một beginner cơ mà!

Những bài giảng kiểu đó khiến tôi mệt mỏi thực sự và thỉnh thoảng làm tôi thấy mình hơi ngu ngốc. Nói chung, không có nền tảng hoàn hảo để học mọi thứ. Tôi cố gắng trở nên linh hoạt nhất có thể, nên tôi đã học từ mỗi nơi một ít.

  • Codecademy - Rất nhiều người đã giới thiệu nó cho tôi, nhưng tôi đã khá thất vọng với các bài hướng dẫn của nó hồi đó. Tôi luôn luôn mắc kẹt trong thực hành mà không có bất kỳ hướng dẫn cụ thể nào.
  • Code School - Tôi đã dành rất nhiều thời gian ở đây, vì các giáo viên giải thích lý do rõ ràng. Highly recommended!
  • freeCodeCamp - Cộng đồng này có một con đường rõ ràng cho những người mới bắt đầu theo đuổi lập trình. Tôi đã từng lo lắng về việc phải làm gì tiếp theo sau khi học HTML, CSS và JavaScript cơ bản, nhưng freeCodeCamp đã đưa ra các project nhỏ thích hợp trong lộ trình học tập của tôi. 
  • codelearn.io - Nền tảng dạy và học lập trình trực tuyến của Việt Nam. Tôi khá bất ngờ vì những bài giảng chi tiết của trang web này. Các bài tập đi kèm thực hành và lý thuyết khiến kiến thức được đưa vào đầu một cách rất tự nhiên, thích hợp cho những bạn mà kiến thức lập trình gần như bằng 0.

2. Các kênh youtube

Đây là nơi tốt nhất để học miễn phí hoặc giải trí. Các video trên Youtube không chỉ tuyệt vời để học kỹ các chủ đề nhất định từ danh sách phát mà còn rất tiện lợi để tìm hiểu một số kiến thức thú vị.

  • The Coding Train - Được tổ chức bởi giáo sư ITP Daniel Shiffman của NYU, người là giáo viên năng động nhất mà tôi từng thấy, kênh cung cấp các video dễ hiểu dễ làm theo lắm luôn.
  • Fun Fun Function  - Người dẫn chương trình của kênh này là Mattias Petter Johansson, một nhà phát triển đã từng làm việc tại Spotify và Blackberry. Kênh của anh ấy là một nơi thú vị để học JavaScript một cách dễ dàng.
  • Linux Academy  - Tôi đã học một số kiến thức cơ bản về AWS tại đây. Cực thích nó!
  • mycodeschool - Người bạn thân nhất của tôi khi tôi học CS50. Nó giải thích công cụ khoa học máy tính một cách rõ ràng. 
  • Codelearn io - Đây là một kênh dạy học mới của trang codelearn.io. Hiện tại chỉ mới có các video dạy học C++ cơ bản nhưng tôi tin rằng trong tương lai kênh này sẽ update thêm nhiều khoá học nữa. Một cách học rất hay!

3. Đọc một số bài viết hữu ích

Đọc báo cũng hay đấy, đặc biệt là các bài viết mà bạn cảm thấy bản thân mình có sự đồng cảm với nó. Đọc báo cũng là một cách để bạn khơi nguồn cảm hứng mỗi khi cảm thấy hơi "đuối" trong con đường tự học của mình. Dưới đây là một số bài báo mà tôi đọc, toàn là bằng tiếng Anh nhưng cũng dễ đọc thôi:

4. Một số nguồn tham khảo khác

  • JavaScript: Understanding the Weird Parts - Khóa học tuyệt vời của Udemy giúp tôi làm rõ rất nhiều phần khó hiểu của JavaScript.
  • CS50 at Harvard - Tôi biết rằng kiến thức Khoa học Máy tính không phải là kiến thức bắt buộc phải có để ứng tuyển cho vị trí front-end dev, nhưng tôi không thể cưỡng lại sự cám dỗ của khóa học này vì nó là một khoá học cực hay từ Harvard! Cũng đáng note lại để sau này có thời gian học lại đấy chứ.

Làm sao để kiếm được việc làm?

Sau khoảng 4 tháng không ngừng viết code và thiết kế, cuối cùng tôi cũng biết một chút về giao diện người dùng. Tôi cũng đã hoàn thành gần 80% portfolio rồi. Đồng thời, số tiền tiết kiệm còn lại của tôi chỉ đủ để tôi sống trong vài tháng nữa.
Đã đến lúc tìm kiếm một công việc mới.
Thật không may, tôi hầu như không có bất kỳ sự lựa chọn nào. Không nhiều công ty muốn một người không có kinh nghiệm, và càng ít công ty đánh giá cao giá trị khả năng thiết kế đồ họa của tôi. Tôi cũng buồn khi chỉ có 3 nơi làm việc là có thể thích hợp với tôi. Nhưng nhìn về mặt tích cực thì khi càng ít lựa chọn, tôi sẽ càng tập trung vào những cơ hội quý giá này.

Tôi đã theo dõi công ty thiết kế Tenten ít nhất ba năm. Đây là nơi duy nhất có thể khai thác đồng thời thiết kế, phát triển và đổi mới kỹ thuật số. Tôi đã gần như chắc chắn mình sẽ làm mọi cách để được nhận vào làm tại đây.
Trong hai tháng cuối cùng của cuộc hành trình, tôi đã học được nhiều nhất có thể về vị trí junior front-end dev của Tenten. Cùng lúc đó, tôi cũng đã hoàn thành portfolio của mình. Khi thời cơ chín muồi, tôi ứng tuyển vào vị trí này. Tôi cũng tôi cũng gửi sơ yếu lý lịch và portfolio của mình cho các công ty khác như một backup plan. Tôi đã đợi.
Và cuối cùng…

Tạm kết

Nhìn lại thì tôi không thấy việc chuyển từ một nhà thiết kế thành một nhà phát triển là dễ dàng, nhưng nó cũng không khó như tôi nghĩ. Phần khó nhất của quá trình này không phải là những dòng code, mà là có động lực mạnh mẽ nào để thúc đẩy bạn tiến lên.
Xin chúc mừng nếu bạn đã tìm thấy động lực này. Nếu chưa, hãy thử thêm một lần nữa trước khi quyết định từ bỏ. Nếu bạn không bao giờ thử, bạn sẽ không bao giờ biết được đâu.
Bài học quan trọng nhất mà tôi học được là hãy bắt đầu bắt tay vào làm khi bạn có ý tưởng càng sớm càng tốt. Tôi biết sẽ khó là khó khăn để bắt đầu xây dựng một thứ gì đó, nhưng đó là cách duy nhất để bạn có thể học thêm những điều mới. Hãy nhớ rằng, dù sao thì bạn cũng không có gì để mất.
Tôi rất vui vì đã trở thành một front-end developer và tôi sẽ tiếp tục học thêm những kiến thức mới trong quá trình làm việc của mình. Chúc các bạn thành công!

Nguồn: Medium.com