Con đường để trở thành một fullstack developer (Phần 2: Xem xét lại các Kế hoạch)

4454

Một trở ngại lớn tôi thường tạo cho bản thân là không xem lại các kế hoạch sau khi lên được chúng. Tôi thường dễ chán nản khi phải quay lại làm một thứ nhàm chán nhiều lần. Nhưng nó cũng ám chỉ rằng “Tôi có thể sẽ không làm theo đầy đủ những cam kết của bản thân”, và nó khá là đúng với đa số các trường hợp và việc này thật sự nguy hiểm. Một trong những ưu tiên hàng đầu cho năm 2020 sẽ là thận trọng hơn trong những gì tôi đang làm hoặc không làm. Tại sao không bắt đầu trước khi năm cũ kết thúc?

Trong bài viết trước trong seri này, tôi nêu ra vài hành động cho bản thân mình. Khi tôi xem xét lại chúng, ngay lập tức tôi nhận ra vài điều: 

  1. Quá nhiều tiêu đề cùng 1 lúc = thiếu tập trung
  2. Tôi đã không theo sát mọi thứ (có thể xem 1 phần hậu quả của điền #1)
  3. Một vài thứ khá là mờ nhạt. Thông thường tôi sẽ đổ lỗi cho điều này để khiến tôi thêm thời gian chần chừ, trừ khi tôi cho đó là một cái gì đó thú vị thôi!

Hãy cùng xem tôi đã tiến hành được đến đâu và xem xét lại những chỗ cần thiết.

Tuyển dụng Full Stack lương cao cho bạn tại Topdev

Full stack web development

Gồm những cái gì – “What”

  • Database
  • Dựng API
  • Docker & Kubernetes
  • Khai triển
  • Làm cho nó nhìn ổn với React & Material

Mục cuối có vẻ là mục thú vị nhất: Tôi biết cách nó vận hành như thế nào và học những thứ này có thể cần thiết cho vài công việc cụ thể nhưng vào lúc này trong hành trình thì nó chỉ làm tôi mất ngủ. Tôi xem nó như là 1 lựa chọn vào lúc này và nó không phải là ưu tiên hàng đầu của mình. Thôi tạm biệt, React & Material! Tôi sẽ tiếp tục với Bulma và than phiền về JavaScript thêm 1 thời gian nữa..

Ngoài ra, những điều trên cũng là bài giảng cần thiết cho Nanodegree của tôi và là nền móng cho tương lai tôi đang hướng đến. Tôi sẽ chia sẻ thêm những khó khăn tôi trải qua để đạt được Nanodegree trong  một bài viết khác, nhưng về tổng thể thì nó vẫn đang đúng hướng. Thời gian thì khá là hạn hẹp nhưng cái chính lúc này là sắp xếp ưu tiên rõ ràng. Và tôi thực sự muốn trả cho tháng thứ 4, phải, có cả lợi nhuận trong đó nữa.

Bằng cách nào – “How”

  • Học Nanodegree qua Udacity 
  • Các project riêng, vd website hiện tại của tôi
  • Code Camp miễn phí

Nanodegree khá là dễ hiểu rồi, chúng ta không cần nói nhiều thêm về nó nữa. Còn lại thì vẫn rất mơ hồ và tôi vẫn chưa định thần lại tâm trí về việc phải làm gì với website của tôi. Nó dựa trên nền tảng Django & không phải Flask và hiện tại tôi chưa có nhiều cảm hứng để đặt vào đó cái gì đó có ý nghĩa lắm. Thứ tôi vẫn muốn làm đó là add thêm Google Analytics, nhưng lần nữa, phần này là tuỳ chọn và thường không được chọn để web gọn gàng.

Free Code Camp giúp tôi duy trì cuộc chiến với Javascript. Cụm từ “kiến thức cơ bản” là một hành trình dài dăng dẳng và tôi đã cố gắng né tránh nó bằng mọi lí do lí trấu. Tuy nhiên, tôi đã nhận thức về tầm quan trọng và thấy được những lợi ích đáng kể khi nắm được nó, cũng là nguyên do tôi quyết định hoàn thành 3 bài học mỗi ngày trên Free Code Camp.

Tôi đã và đang làm nó như thế nào

Đây là lúc nhìn lại và những tuần vừa qua được khá là hỗn độn, về nghĩa tiến bộ. Tôi đã đánh giá quá thấp sự chặt chẽ của Nanodegree và trong trường hợp của tôi, sự tập trung là một điểm thiếu sót lớn. Tuy nhiên, tôi sẽ không thể đắm chìm quá lâu vì tôi biết đây cũng chỉ là 1 phần của nó – phần còn lại phụ thuộc vào tôi. Cụ thể hơn: tôi sắp kết thúc phần đầu của Nanodegree và chỉ chậm nhịp 1 chút so với kế hoạch. 

Lập kế hoạch trước

Hai tuần vừa qua đã trở nên khá khả quan, nói về khoản tập trung & tiến độ và tôi muốn vực lại phong độ như thế đến sau cả dịp nghỉ Giáng Sinh. Vì phần đầu tương đối dài (và không thú vị cho lắm – database…), tôi tin rằng vấn đề nằm ở lên kế hoạch cho nó. Sự thật là tôi đã bỏ thói quen viết JS sau vài ngày, khá đáng buồn nhưng tôi chỉ cần đơn giản nhặt nó lại thôi! 

Học Machine Learning

Gồm những cái gì – “What”

  • Khía cạnh research (Computer vision và NLP)
  • Keras & Tensorflow
  • Triển khai Cloud 

Dù cho phần “what” này còn khá chung chung, tôi đã hiểu rõ tôi cần làm gì với mỗi thứ. Thứ duy nhất có vẻ không phù hợp trong nhóm này đó là triển khai Cloud và, mặc dù khá là quan trọng, quan trọng nhất vẫn là việc xem trọng mọi việc như nhau.

Tensorflow là trường hợp khác khá quan trọng nhưng không phải bây giờ. Trong khi nó là nền tảng cho Keras, 1 người có thể đi rất xa tới đích trước khi đi 1 lớp sâu hơn. Tôi thích so sánh 2 thứ đó như Python và C: Bạn có thể dành cả đời làm việc với Python và làm mọi thứ xong xuôi mà không cần phải lo lắng về cách nó thực hiện ra sao. Sự so sánh này không hoàn hảo cho lắm nhưng ít ra nó cũng chứng minh cho quan điểm của mình.

Bằng cách nào – “How”

  • Thực tập không lương tại colabel
  • Đọc 1 trang research mỗi ngày
  • Kaggle

… và cái hay là dạo này tôi không cần phải viết quá nhiều code cho machine learning nữa! Kaggle vui đấy nhưng bạn chỉ có thể ngồi xuống khoảng 20 phút và không trông đợi điều kì diệu xảy ra. Như thế cũng tốt thôi: tôi đã hiểu được phần lớn câu chuyện rồi – chắc chắn là nhiều hơn về phát triển web – điều ngạc nhiên tới tự nhiên thông qua việc giải quyết vấn đề hay 1 cuộc thi, điều mà tôi không có thời gian để làm. 

Liên quan tới sách vở, tôi đã đọc được khoản 12 trong 20 sách đã định. Theo lịch làm việc của tôi suốt những tuần vừa qua vẫn làm tôi khá hài lòng dù tôi đã bỏ lỡ cái dự định đầy tham vọng. 

Progress

Lên kế hoạch trước

Về khoản machine learning, và cụ thể là về deep learning, nó thật sự rất khó – tôi nhận ra điều này mỗi khi tôi đụng đến 1 trong 2 thứ đó. Khi so với lập trình web, thuật toán đóng vai trò thiết yếu và các ý tưởng có thể khá là trừu tượng. Ngoài ra, mục tiêu của tôi là để thấu hiểu “bleeding edge of research”, đơn giản nghĩa là tôi cần phải đối đầu với những “bộ óc” siêu khủng tại Facebook, Google và những nơi “ông lớn” công nghệ tương tự. Và tôi cam đoan rằng những gã này chỉ như đang làm bài tập về nhà.

Về phần sách vở, tôi tiếp tục theo đuổi kế hoạch ban đầu. Tôi có thể nói rằng đọc sách ít làm tôi căng não bây giờ hơn là nó từng làm cách đây 6 tuần về trước và tôi mong đợi kiến thức tổng hợp như mọi khi. 1 điều tôi muốn trải nghiệm là luân phiên đọc sách và đọc code. Xem được 1 đoạn code tốt thực sự có tác dụng đòn bẩy trên từng vùng (kỹ thuật phần mềm) và trong hầu hết trường hợp nó còn thực tế hơn là chỉ trên sách vở. 

Về Keras, tôi không chắc có hợp lí không khi thêm nó vào trong quá trình làm việc với Nanodegree. Có vẻ là không. Chỉ nhắc tới cho vui thôi, nhưng những khoảnh khắc đó cũng khá là hiếm mà.

Có 2 cách tôi có thể duy trì mọi thứ, Pomodoro và tự tránh xa xã hội: Pomodoro là 1 kĩ thuật phổ biến cho việc quản lý thời gian và cũng là bài viết thường xuyên về chống chọi với trì hoãn. Tôi tìm ra rằng nó khá là hữu dụng cho cả 2, và cũng là 1 cách để não tôi khỏi quá sức: tôi không có vấn đề gì với việc đọc sách khoa học tận 45 tới 60 phút dài. Tuy nhiên, căng thẳng đầu óc trong thời gian dài để lại hậu quả phải phục hồi lâu hơn – thời gian mà thường phải dành cho thư giãn đầu óc trong trường hợp của mình. Pomodoro khá hợp với tôi, nhưng chỉ nếu tôi bỏ công nghệ tầm 20-25 phút 1 lúc thôi. 

Nhốt mình vào trong phòng hoạt động khá ổn chỉ khi đi tàu và máy bay, nơi kết nối internet tệ hại hay không tồn tại. Tôi thường chọn 1 thứ để làm cho xong trong chuyến đị và thấy rằng nó cũng khá dễ dàng để tập trung trong vài tiếng đồng hồ. Cho 1 vài lí do kì lạ, nó vẫn chưa có tác dụng khi tôi ở nhà… 

Kết luận 

Cũng như bạn đã thấy, tôi chỉ mới dừng hoạt động và có vài lí do: việc thêm vào 1 danh sách thì rất dễ ai cũng làm được. Nhiều người đã làm thay bạn rồi, cho dù là ngụ ý hay muốn nói với bạn như vậy. Và bởi vì chúng ta được huấn luyện để tuân theo thẩm quyền khi nhắc đến chuyện học, lùi bước cũng là 1 lỗi lầm tệ hại và dẫn tới thất bại. Tập trung vào thứ quan trọng mới là kỹ năng cần phải có được. 

Mọi thứ mà tôi đã ghi rõ chính là những kỹ năng thích hợp, và thích hợp cho 1 vài người. Nhưng nó không có nghĩa rằng tôi (hay bạn) phải ưu tiên nó. Nó có thể ngăn tôi thoát ra khỏi cuộc tranh luận đầu tiên với các nhà tuyển dụng tài năng. Nhưng tôi thà chọn phải làm vậy hơn là lạc lối trong kiến thức đã học. Không gian đó như là bất tận… 

Bonus: Social Media – Các kênh mạng xã hội

Trong quá khứ, tôi dễ bị phân tâm bởi rất nhiều nội dung không liên quan trên mạng xã hội. Cụ thể là Facebook, Linkedin và Youtube đều nằm trong top list của tôi. Không cần phải giải bày vấn đề là gì, và bằng cách nào đó tôi cắt giảm hầu hết những platform này vì mục tiêu tốt hơn và chỉ sử dụng có chủ đích. 

Hiểu rõ tính gây nghiện của những thứ này, càng làm tôi tránh xa Twitter. 

Đó là chưa đến 1 vài tuần trước khi tôi đăng nhập lại vào tài khoản đóng đầy bụi và vô tình khám phá lệnh ‘Tìm kiếm’. Và thành ra, những người dùng vi tính dường như thích bàn luận về những thứ thú vị trên mạng, với cả thế giới dõi theo!

Trong trường hợp bạn vẫn chưa dùng Twitter, tôi rất khuyến khích bạn nên lướt qua 1 chút, tôi đảm bảo sẽ có nhiều nội dung làm bạn thích thú. 

TopDev via Dev.to

Xem thêm việc làm Fullstack Developer mới nhất tại TopDev

Đừng bỏ lỡ những bài viết hay về tự học lập trình:

  Con đường để trở thành một fullstack developer (Phần 1: Những nỗi sợ)
  Những thứ mà bạn không được dạy ở trường đại học cho công việc lập trình đầu tiên của bạn