Bí kíp học skill lập trình mới cho dev

2612

Điều tốt nhất về ngành lập trình viên hiện đại là chúng ta sở hữu rất nhiều nguồn tài nguyên sẵn có. Và đó cũng là điều tồi tệ nhất.

Cũng giống như tôi, bạn được tận hưởng thành quả của sự phát triển hiện đại. Dù cho bạn đã từng có kinh nghiệm từ trước đây hay chưa thì thực tế là bạn vẫn có thể lên mạng để học các kỹ năng trở thành developer, có được việc, trở thành 1 freelancer, hoặc khởi nghiệp bằng cách xây dựng 1 star-up

Lúc còn nhỏ, ai đó đã tặng tôi một thẻ quà tặng. Tôi dành khoảng 1 tiếng vừa đi bộ vừa suy nghĩ về cách sử dụng thẻ quà tặng, sau đó tới cửa hàng và mua thứ tốt nhất ở đó. Tuy vậy, rất nhiều lần, tôi đã không thực sự có được thứ mà mình muốn dù nếu kiên nhẫn hơn, tôi đã có thể nhận được một thứ gì đó tốt hơn. Tuy nhiên, tôi cảm thấy muốn mua một cái gì đó ngay lập tức và thường thất vọng.

Cảm giác đó giống như khi bạn cố gắng học để trở thành developer hiện đại. Có rất nhiều điều tuyệt vời để học hỏi và các chủ đề để khám phá, nhưng có rất ít thời gian trong ngày. Nếu không được xử lý ổn thỏa,  điều này có thể dễ dàng dẫn đến sự mệt mỏi.

Một mặt, Modern Development mang lại nhiều cơ hội hơn, mặt khác nó cũng mang lại không ít những khó khăn khi phải lựa chọn nên tập trung vào một bộ kỹ năng cụ thể và khó có thể duy trì được động lực trong những lúc mệt mỏi

Vô tình, tôi đã phát hiện ra một phương pháp cho phép tôi tập trung vào các kỹ năng hiện tại mà tôi đang học và cho tôi nhiều động lực hơn (bao gồm cả khuyến khích tài chính).

Phương pháp kiểm tra dummy (The Test Dummy Method)

Phương pháp The Test Dummy là việc thử nghiệm kỹ năng mới và tạo nội dung về những điều đang học.

Hãy để tôi giải thích kĩ hơn về điều này bằng câu chuyện của tôi về cách tôi vô tình phát hiện ra phương pháp này và những lợi ích mà nó mang lại.

Câu chuyện của tôi

Tôi tốt nghiệp vào tháng 12 năm 2015 với bằng về Khoa học Máy tính. Tôi đã học các nguyên tắc cơ bản của C + +, Java, và một chút về phát triển các trang web lỗi thời.

Mặc dù có bằng tốt nghiệp để thêm vào CV xin việc nhưng tôi vẫn chưa có ý tưởng gì về việc tập trung phát triển kỹ năng nào hay sẽ làm công việc gì.

Tôi tìm kiếm sự giúp đỡ từ các trang về công nghệ, cho đến khi tôi có được một công việc developer.Vào ngày đầu tiên đi làm tôi phải làm công việc vặn bóng đèn bắt đầu cho những chuỗi ngày thất vọng.

Cũng trong khoảng thời gian này, tôi tham gia vào kinh doanh podcast. Điều này khiến tôi quan tâm đến web developer hiện đại vì tôi quan tâm đến các công ty startup mà chúng tôi cung cấp các ứng dụng web. Tôi cũng đã nhận được những lời khuyên về tạo ra sản phẩm dựa trên niềm đam mê và kỹ năng của bạn.

Khi mối quan tâm về web development của tôi ngày càng tăng lên, tôi đã quyết định cố gắng học React trong thời gian rãnh của mình

Chỉ trong thời gian ngắn, tôi mệt mỏi và muốn bỏ cuộc. Dưới đây là một cuộc nói chuyện được thực hiện để tóm tắt những khó khăn mà tôi gặp phải:

Tài liệu trực tuyến (Online Resources): React là những gì bạn muốn tập trung vào để tạo giao diện người dùng cho các ứng dụng web hiện đại.

Tôi: Nghe có vẻ thật tuyệt, những gì tôi cần là bắt đầu 1 project React mới

OR: Vâng. Chúng tôi có thể khởi tạo dự án của chúng tôi với npm. Sau đó, chúng ta chỉ cần cài đặt và cấu hình Webpack và Babel, chúng ta có thể viết trong ES6instead của ES5. Sau đó, chúng ta có thể cài đặt React và ReactDOM để có thể bắt đầu viết mã với React.

Tôi: ES6 là cái gì? Tại sao chúng ta cần phải sử dụng webpack và Babel. Đồng thời cả React và React Dom đều sử dụng React? Có lỗi đánh máy gì ở đây không?

OR: ES6 là phiên bản mới của ECMAScript. Nó không được thực hiện tốt trong các trình duyệt nhưng có một số tính năng hay ho mà chúng ta có thể sử dụng. Babel xử lý mã ES6 và làm cho nó tương thích với các trình duyệt hỗ trợ ES5. Chúng ta có thể sử dụng Webpack để đóng gói code của chúng tôi và áp dụng Babel. React là một thư viện nhưng bạn cũng cần cà thư viện ReactDOM để làm cho mọi thứ hoạt động

Tôi: ECMAScript? Tôi nghĩ chúng ta đang nói về JavaScript. Tôi không chắc chắn về tiến trình đóng gói code mà bạn đề cập đến. Bạn biết đấy … điều này có vẻ như rất nhiều việc phải làm chỉ để bắt đầu. Sau tất cả thì lợi ích của React là gì?

OR: Bạn có thể xây dựng một giao diện người dùng bên ngoài các componient đóng gói JSX và data. Nó thực sự mô đun.

Tôi: JSX là gì?

Tôi: Điều đó có vẻ thú vị Chúng ta hãy tiếp tục

OR: Tuyệt vời! Tôi biết bạn có vẻ bối rối về việc tạo một dự án React mới. Đừng lo. Có một bộ starter tuyệt vời trên GitHub được tải bằng Webpack, Babel và Webpack Dev Server , hãy tiếp cận và nhân bản nó ngay thôi

Tôi: Woah. Tôi không hiểu một phần đoạn code này. Tuy nhiên, các componient này trông quen thuộc. Tôi nhận được các componient cơ bản, nhưng tại sao lại phải sắp xếp các componient này?

OR: Oh! Đó chỉ là vì chúng có thể chia ra thành 2 phần : một về giao diện người dùng, 2 là các componient cha mẹ và con cái của chúng. Sau đó, chúng ta có thể truyền dữ liệu giữa họ.

Tôi: Nhưng có nhiều hơn 1 cha mẹ và con! Giống như một ông bvà những đứa cháu và cả dòng họ tổ tiên ở đó nữa. Vậy phải truyền cái gì?

…..

Bạn biết đấy…. bạn không cần phải trả lời điều đó. React rất phổ biến nên nó chắc hẳn đơn giản. Tôi có lẽ quá ngốc khi hỏi rất nhiều câu hỏi. Rõ ràng, tôi không phù hợp để trở thành một developer. Tôi sẽ từ bỏ nỗ lực tìm hiểu về web developer hiện đại.

Sau những lần đấu tranh tư tưởng như thế này, tôi thấy khó có thể cố gắng tiếp tục học phát triển web hiện đại sau một ngày dài làm việc (và tập tạ lúc 5 AM) thay vì chơi PS4.

Tôi đặt React sang 1 bên và chơi Uncharted.

Tuy nhiên, khi tôi nhận thêm công việc thiết kế đồ họa vector trong giờ ăn trưa vì nó làm tôi cảm thấy như giảm stress. Tôi bắt đầu cảm thấy thực sự tốt và tự tin vào kỹ năng mới này

Một ngày nọ, tôi khám phá ra Codepen và bắt đầu tạo ra các hình ảnh CSS thuần túy vì chúng tương tự như đồ hoạ vector mà tôi đang làm.

Tôi bắt đầu tweet về những cây viết mới mà tôi đã làm và nhận được rất nhiều phản hồi tích cực về những kỹ năng nâng cao.

Vì những phản hồi tích cực như vậy, tôi đã quyết định tiếp tục làm hiều hơn thế, và tôi đã viết bài đăng lên Medium với tiêu đề Hướng dẫn của Người mới bắt đầu về các hình ảnh CSS thuần túy.

Mặc dù tôi chỉ biết những điều cơ bản về hình ảnh CSS thuần túy và không biết gì về các hoạt hình, SCSS, vv, tôi đã nhận được nhiều phản hồi tuyệt vời. Nó có tác dụng khuyến khích tôi vô cùng hiệu quả

Sau đó, tôi quyết định thử nghiệm Vue.js bằng cách tạo ra một số nội dung thân thiện với hình ảnh trên Codepen.

Sau đó, tôi sẽ viết một bài đăng trên Medium dạy cho mọi người Phương pháp làm thế nào để tạo ra những điều tôi đang làm với Vue.js.

Tôi tập hợp các bài đăng này trong bài viết đăng trên Medium mà tôi gọi nó là Coding Artist.

Tôi đạt được những bước tiến xa hơn trong web developer  hiện đại và cuối cùng tạo ra các sản phẩm như là 1 cuốn ebook có tên là React.js cho Visual Learner.

Đó là một câu chuyện dài, cuối cùng tôi đã có thể học những điều mới trong thế giới web development hiện đại mà không gặp phải sự mệt mỏi bằng cách tạo ra nội dung mà tôi đang học.

Tôi đã trở thành một Dummy thử nghiệm. Tôi đã thử nghiệm các kỹ năng mới và sau đó tạo ra nội dung để dạy lại những kỹ năng đó một cách thực tiễn nhất bằng những trải nghiệm của bản thân mình cho mọi người

Bởi vì tôi tạo ra nội dung giảng dạy những gì tôi đang học, tôi đã không bị phân tâm bởi việc học nhảy cóc các kỹ năng khác quá sớm. Tôi cũng có động lực rất lớn để giúp đỡ những người khác học hỏi và nhận được những phản hồi tích cực  kết nối với các developer khác và tạo ra các sản phẩm mà tôi có thể bán được.

Bây giờ, tôi muốn đưa ra các bước để thực hiện Implementing the Test Dummy Method.

Implementing Test Dummy Method

Bước 1: Tìm kiếm đam mê

Ethical hacking? Machine learning? Frontend development?

Bạn quan tâm điều gì nhất?

Điều này có vẻ mâu thuẫn. Một mặt, phương pháp Implementing the Test Dummy là phương pháp giúp những người học không bị lan man không mục đích. Mặt khác, bạn cần phải khám phá kỹ năng nào bạn quan tâm nhất. Làm thế nào bạn có thể cân bằng được cả 2 mặt này.

Bạn vẫn có thể khám phá ra đam mê của bạn mà không cần phải nhảy vào học tất cả các kỹ năng khác nhau, mà thường liên quan đến công việc hiện tại của bạn

Nghiên cứu các kỹ năng khác nhau để trở thành developer hiện đại. Hãy suy nghĩ về cách chúng được ứng dụng trong thế giới hiện đại và những cơ hội nghề nghiệp của nó trong tương lai. Nếu có thể, bạn có thể thử nghiệm nó trên một quy mô rất nhỏ.

Viết ra những ưu- nhược điểm và những câu hỏi liên quan cho đến khi bạn giải quyết được các vấn đề trên. Bạn sẽ biết mình thật sự đam mê điều gì

Bước 2: Học Bite-Sized

Một khi bạn biết mình thật sư đam mê điều gì, bạn có thể bắt đầu học các kỹ năng mới theo phong cách bite-sized fashion

Hãy sử dụng frontend development  như một ví dụ. Thay vì cố gắng bắt đầu bằng cách tạo một ứng dụng React động bạn có thể đặt trên Product Hunt (Tôi đã từng nhìn thấy điều này xảy ra), tạo các ứng dụng mini kết hợp các kỹ năng mới mà bạn học được. Trong trường hợp của tôi, tôi tạo ra một đồng hồ Pomodoro khi tôi đang học Vue.js và các ứng dụng mini khác.

Ở giai đoạn này, bạn có thể bắt đầu chia sẻ công việc của bạn trên Twitter và nhận phản hồi từ các developer khác.

Bước 3: Viết bài đăng

Một khi bạn đã bắt đầu học hỏi những kỹ năng mới với đam mê của chính mình, hãy chia sẽ về cách bạn thực hiện nó với mọi người trên Medium

Hãy ghi nhớ cảm giác của bạn khi nổ lực học các kỹ năng mới , những thử thách mà bạn phải đối mặt trong quá trình học. Giữ cho bài viết càng thức tế, càng chi tiết càng tốt

Một bài tốt nên kể một câu chuyện. Dưới đây cách mà tôi thích sử dụng:

  • Đề cập đến một vấn đề
  • Kể câu chuyện về cách tôi giải quyết vấn đề
  • Chỉ cho mọi người cách giải quyết vấn đề

Ở giai đoạn này, chia sẻ bài đăng của bạn trên Twitter.

Bước 4: Tạo sản phẩm

Ở bước này, bạn nên hiểu những điều cơ bản về các kỹ năng mới mà bạn đang học và có được sự tự tin nhất định sau khi chia sẻ sản phẩm và bài đăng của mình.

Tuy nhiên, bạn có thể cân nhắc đến việc áp dụng các kỹ năng vào một project thực tế.

Khi bạn thực hiện kỹ năng của mình và theo đuổi 1 dự án thực tế, bạn có thể tạo ra một sản phẩm dạy cho mọi người toàn bộ quá trình.

Ví dụ: khi tôi có một sự hiểu biết tốt về những điều cơ bản của React bằng cách tạo ra các ứng dụng mini trên Codepen. Tuy nhiên, tôi chưa bao giờ tạo giao diện mô đun riêng của mình. Tôi quyết định viết một cuốn sách điện tử có thể hướng dẫn người mới bắt đầu React thông qua quá trình học những điều cơ bản và sau đó tạo ra một giao diện người dùng kiểu mô-đun từ đầu. Tôi đã phát hành mỗi chương trên Medium.

Bởi vì bạn đang tạo ra một sản phẩm khi bạn đang học, bạn sẽ có một động lực lớn để vượt qua rào cản và không cảm thấy mệt mỏi.

Bạn có thể nghĩ: “Tôi có thể tạo ra sản phẩm gì?”

Đối với các developer sản phẩm tốt nhất là:

  • Khóa học video
  • Ebook

Tuy nhiên, bạn có thể sáng tạo hơn và có những sự lựa chọn khác. Theo kinh nghiệm của tôi, tạo ra một ebook dễ dàng hơn và nhẹ nhàng hơn tạo ra một khóa học video.

Đối với ebook tôi đã viết 10 chương và mỗi chương mất 8-20 giờ.

Bước 5: Bán sản phẩm

Nếu bạn đã dành rất nhiều tâm huyết vào sản phẩm của mình và cảm thấy sản phẩm của bạn là rất hữu ích cho cộng đồng developer thì không có gì là sai khi bán nó.

Nếu bạn bán các khóa học video, Teachable là một nơi tốt để bán nó.

Nếu bạn đang bán ebook, tôi thực sự thích sử dụng Leanpub.

Với ebook của tôi, tôi đã tạo ra doanh thu $ 11 trong 3 tuần. Điều đó có vẻ vô cùng nhỏ bé, tuy nhiên, nó có thể bán thụ động, tốt hơn so với doanh thu $ 0 từ các phương pháp tự học thông thường, và nó là một thành tích thực sự ấn tượng để đề cập đến trong các cuộc phỏng vấn xin việc .

Trong tất cả các phương pháp mà tôi đã thử Phương pháp test Dummy là phương pháp hữu ích nhất để trở thành 1 developer tốt hơn không hề mệt nhọc

Nguồn: hackernoon.com