Tôi đã hoàn thành toàn bộ chương trình học freeCodeCamp trong 9 tháng khi làm việc toàn thời gian như thế nào

Trong năm qua, tôi đã hoàn thành toàn bộ chương trình học freeCodeCamp trong khi làm giáo viên toàn thời gian. Trong bài viết này, tôi sẽ phác thảo cách tôi quản lý để làm điều này. Đặc biệt là cách tôi sắp xếp thời gian của mình và những tài liệu bổ sung mà tôi đã sử dụng.

Lý lịch

Đầu tiên, câu chuyện phía sau. Tôi không hoàn toàn mới đối với việc viết mã. Tôi lớn lên trong một công ty công nghệ nhỏ.

Cha tôi đã thành lập công ty riêng trước khi tôi sinh ra, nơi họ thực hiện các hoạt động khác nhau trong lĩnh vực công nghệ, chẳng hạn như sửa máy tính, thiết lập kết nối Internet và mạng cho các công ty khác, dạy các khóa học máy tính và xây dựng các ứng dụng quản trị cho các công ty. Đó là một thị trấn nhỏ, vì vậy về cơ bản họ là những “tay máy công nghệ” cho cả thị trấn.

Văn phòng của công ty ở trong nhà của chúng tôi, vì vậy tôi thực sự lớn lên giữa những chiếc máy tính và những người thích chúng. Tôi bắt đầu chơi với Visual Basic khi còn nhỏ (một trong những người trong công ty đã dạy tôi cách sử dụng nó) và tôi đã dành tất cả thời gian rảnh để trực tuyến, trò chuyện với những người bạn mọt sách.

Khi tôi khoảng 12 tuổi, một trong những tên mọt sách đó đã gửi cho tôi một cuốn sổ tay hướng dẫn phát triển web (một tệp .txt khổng lồ về cơ bản xử lý HTML) và tôi đã sử dụng nó để xây dựng trang người hâm mộ của riêng mình. Nó thậm chí còn có một trong những quầy truy cập thú vị.

Tôi đã lưu trữ nó trên Geocities, có một URL ngắn miễn phí và liệt kê nó trên Yahoo và AltaVista (đây là những trang lớn nhất vào thời điểm đó).

Sau đó, cuộc sống đã xảy ra và tôi hoàn toàn từ bỏ ý định trở thành một lập trình viên, vì hoàn cảnh đòi hỏi phải có một cách tiếp cận “thực tế” hơn. Tôi sẽ không đi vào chi tiết bây giờ, nhưng về cơ bản tôi đã phải từ bỏ việc học và kiếm việc làm.

Tôi tiếp tục sống cuộc sống của tôi. Tôi đã xây dựng trang web không thường xuyên cho khách hàng của bố tôi, và sau đó cuối cùng quyết định bắt đầu dạy tiếng Anh, đó là điều dễ dàng đến với tôi, và về cơ bản tôi đã quên hết về phát triển web. Cho đến năm 2016 đó là.

Làm thế nào tôi quyết định chuyển đổi nghề nghiệp

Tôi thich dạy học. Đó là một nghề bổ ích, thú vị và vui vẻ. Nhưng nó có những mặt trái của nó. Lúc đầu, mọi thứ giống như một thử thách, nhưng sau nhiều năm làm việc đó, tôi bắt đầu cảm thấy mình không có mục đích. Rằng tôi đã không còn phát triển hay học hỏi nữa.

Tôi đã cảm thấy bế tắc. Giống như công việc của tôi giống hệt nhau năm này qua năm khác. Tôi chỉ đang đi qua các chuyển động. Nó cũng không mang lại nhiều cơ hội để chuyển chỗ ở, đó là điều trở nên rất quan trọng đối với tôi sau này.

Vào năm 2013, tôi gặp chồng mình, và năm tiếp theo, chúng tôi đã có một chuyến du lịch ba tháng đến châu Âu, đây là một bài đăng trên blog hoàn toàn khác, nhưng về cơ bản thì ngân sách cực kỳ thấp và chúng tôi đã có một trải nghiệm tuyệt vời. Chúng tôi yêu Châu Âu và chúng tôi quyết định sẽ trở lại trong một chuyến đi dài ngày khác.

Thời gian trôi qua, chúng tôi đã làm những việc khác, và sau đó tôi tìm thấy Codecademy và bắt đầu chơi với nó, cũng như đùa giỡn với ý tưởng trở thành một nhà phát triển toàn thời gian. Tôi đã có một số kinh nghiệm xây dựng trang web chỉ với HTML và CSS, nhưng không có JavaScript. Tôi đã đọc rất nhiều câu chuyện thành công trên mạng, nhưng tôi vẫn không coi đó là một nghề thực sự, không phải là một mục tiêu dài.

Trong khi đó, chúng tôi đang lên kế hoạch cho chuyến đi dài tiếp theo, tiết kiệm tiền, lên kế hoạch, v.v. Tôi ngày càng làm việc như một dịch giả tự do, rất gắn bó với sự nghiệp của mình, dịch những thứ hay ho như tiểu thuyết và thơ. Năm 2017 đã đến và chúng tôi lại đến châu Âu lần này trong hai tháng.

Ở đó, chúng tôi đã gặp một loạt các nhà phát triển. Nó bị điên. Mọi người lướt đi-văng mà chúng tôi gặp dường như đều làm trong lĩnh vực CNTT bằng cách nào đó, với tư cách là người quản lý sản phẩm phần mềm, nhà phát triển, người thử nghiệm, v.v. Tất cả đều khuyến khích chúng tôi tham gia vào lĩnh vực công nghệ. Vào thời điểm đó, chúng tôi đã quyết định muốn chuyển đến châu Âu nên rất nhiều người đã nói với chúng tôi: “Bạn có thể tìm được việc làm ở đây. Các nhà phát triển đang có nhu cầu ở đây, chúng tôi cần rất nhiều trong số họ ”.

Trước khi chuyến đi kết thúc, chúng tôi đã quyết định đăng ký lấy chứng chỉ kỹ thuật 2 năm tại một trường đại học kỹ thuật mới thành lập gần quê hương. Chương trình chủ yếu là Java nên khi quay lại, chúng tôi bắt đầu một khóa học Java ở Cousera. Mô-đun đầu tiên thực sự là một khóa học JavaScript, vì vậy chúng tôi thực sự bắt đầu với JavaScript ngay lập tức.

Trong khi chúng tôi học JavaScript, chúng tôi đã chờ đợi đầu năm học vào tháng 3 năm 2018. Chỉ có 50 điểm cho Uni, vì vậy chúng tôi đã rất chuyên tâm và tìm hiểu trước. Chúng tôi đã đi, làm bài kiểm tra, vượt qua các khóa học, và sau đó chúng tôi phải đợi cho đến khi họ quyết định. Chúng tôi đạt điểm cao nhất trong số tất cả các ứng cử viên, nhưng những điểm đó không tạo ra sự khác biệt. Các điểm sẽ được chỉ định thông qua một hệ thống xổ số. Chồng tôi vào trong và tôi bị bỏ lại.

Anh ấy quyết định thích tự học hơn, anh ấy không còn hứng thú với Java nữa vì anh ấy đã bị cuốn hút vào JavaScript, vì vậy chúng tôi bắt đầu tự học.

Chúng tôi bắt đầu với Codecademy, nhưng nó quá khó đối với chúng tôi (chúng tôi không có tài khoản Premium). Ở đâu đó chúng ta đã đọc về freeCodeCamp. Và chúng tôi bắt đầu nó, rất chậm rãi lúc đầu (tôi mất hàng tháng để lấy chứng chỉ đầu tiên, phải thừa nhận là ở giữa chương trình học đã bị thay đổi và tôi đánh rơi máy tính xách tay của mình và phải sửa nó). Sau khi kỳ nghỉ hè kết thúc và tôi quay lại làm việc toàn thời gian, mọi thứ trở nên khó khăn.

Làm việc toàn thời gian và làm miễn phíCodeCamp ở tốc độ tối đa

Nó không dễ dàng, tôi sẽ không nói dối. Điều đó đã giúp hầu hết bạn bè và người quen của tôi không sống gần tôi, và tôi sống trong một thị trấn nhỏ không có nhiều cơ hội giải trí. Theo nghĩa đó, lập trình là một cứu cánh. Tôi có một cái gì đó thú vị để làm, và nó gây nghiện để tôi có thể giết hàng giờ chán nản với nó.

Vì vậy, điều đó đã giúp ích rất nhiều khi đối phó với lượng giờ tôi làm việc trí óc (dạy và học).

Chứng chỉ đầu tiên mất hàng tháng, một phần vì tôi đang chờ đợi để được vào Uni và một phần vì tôi đã làm việc 10 tiếng một ngày trong 3 tháng đầu năm học.

Thật không may, tôi không thể bỏ việc và học toàn thời gian, vì tôi cần phải trả các hóa đơn, vì vậy tôi phải thực sự giỏi 3 điều:

  1. Quản lý thời gian
  2. Kỷ luật
  3. Cơ quan

Quản lý thời gian

Tôi bắt đầu làm việc lúc 7 giờ sáng, vì vậy hầu hết các ngày tôi bắt đầu dậy lúc 4:30 sáng. Tôi bắt đầu một ngày với những thử thách và cà phê freeCodeCamp. Đôi khi tôi cũng đọc sách hoặc làm các bài hướng dẫn khác, tùy thuộc vào những gì tôi đang làm vào lúc này. Tôi cũng học trong giờ nghỉ trưa và sau giờ làm việc, nhưng tôi chấp nhận thực tế là tôi không hiệu quả trong tuần vì công việc. Vì vậy, trong tuần, tôi chủ yếu thực hiện các thử thách ngắn, đọc, v.v. Và tôi đã làm các dự án vào cuối tuần, ngày lễ và thời gian rảnh.

Nếu tôi có 30 phút, tôi sẽ đọc 30 phút. Nếu tôi có 15, tôi đã làm một số bài học trong 15 phút. Tôi đã tận dụng mọi khoảnh khắc rảnh rỗi trong ngày của mình để học.

Vào Chủ nhật, tôi sẽ chuẩn bị bữa ăn cho hầu hết các bữa ăn trong tuần để tôi không phải mất thời gian nấu nướng và không phải ăn những thứ không lành mạnh. Tôi cũng đã lên kế hoạch và tập hợp mọi thứ cần thiết cho công việc trong tuần, vì vậy tôi không cần phải dành thêm thời gian ngoài giờ làm việc bình thường.

May mắn thay sau tháng 6, giờ làm việc của tôi đã giảm từ 10-12 xuống còn 8 giờ, vì vậy tôi hiện đang làm việc theo lịch trình bình thường và tôi bắt đầu bắt đầu nhịp độ.

Kỷ luật

Bạn sẽ phải học ngay cả những ngày bạn cảm thấy không thích. Đây là nơi mà động lực cũng đóng một vai trò lớn, nhưng kỷ luật là rất quan trọng - đặc biệt nếu bạn giống tôi và bị phân tâm nhiều với mạng xã hội và video về mèo.

Mẹo hay nhất mà tôi có thể cho bạn để chống lại sự cám dỗ đọc các bài báo trực tuyến là: nếu bạn nảy ra một câu hỏi trong đầu như "máy bay bay như thế nào?" (thường là loại câu hỏi khiến tôi mang đi và hút tôi trong 30 phút), hãy viết nó ra đâu đó và tự hứa với bản thân rằng bạn có thể đọc tất cả về nó sau khi hoàn thành công việc đang làm.

99% thời gian bạn sẽ không quan tâm nữa, bởi vì những câu hỏi đó cứ hiện lên trong não bạn vì nó muốn làm bạn mất tập trung. Đẩy qua và bạn sẽ đánh bại nó.

Một khía cạnh khác của kỷ luật là phải chọn nghiên cứu hơn những thứ khác. Đây không phải là một phần quá vui. Tôi đã phải từ bỏ rất nhiều thứ mà tôi yêu thích để ưu tiên cho việc học, và tôi không thể chờ đợi để có thể quay lại với chúng. Tôi đã làm điều đó chỉ vì tôi muốn trở thành một nhà phát triển càng sớm càng tốt (xem Động lực bên dưới), nhưng ngay cả khi bạn không vội vàng như tôi, bạn có thể thấy rằng bạn dành rất nhiều thời gian để làm những việc đó, thậm chí mặc dù chúng thú vị và đẹp mắt, nhưng lại chiếm quá nhiều thời gian của bạn.

Bạn sẽ phải ưu tiên và đưa ra những lựa chọn khó khăn.

Động lực

Tôi có một động lực rất mạnh mẽ đó là trở thành một nhà phát triển và chuyển đến Châu Âu. Đây là mục tiêu của tôi trong một thời gian dài và tôi đã đạt đến mức thất vọng khi không đạt được nó. Tất cả bạn bè của tôi đã rời thị trấn, tôi hầu như không có gia đình ở đây, tôi cảm thấy bị cô lập và muốn rời đi.

Đó là điều đã thúc đẩy tôi. Cảm giác như có lửa đốt dưới chân, tôi cảm thấy mình không còn lựa chọn nào khác. Bạn cần một động lực mạnh mẽ để thực hiện những thay đổi căn bản. Tôi không biết bạn thế nào, nhưng tôi là một người "không sửa chữa những gì không bị hỏng", vì vậy thật khó để bắt tôi làm mọi thứ chỉ vì lợi ích của chúng.

Sở thích của tôi đều rất thiết thực và hiệu quả: làm vườn, yoga, nấu ăn. Tôi cần phải có lý do để làm chúng (Tôi muốn ăn rau miễn phí, tôi đau lưng và tôi đói). Nếu bạn giống tôi, bạn sẽ cần tìm một củ cà rốt để tiếp tục.

Hãy dành một chút thời gian để suy nghĩ về điều này, chính xác thì bạn muốn đạt được điều gì khi hoàn thành freeCodeCamp? Bạn muốn thay đổi hoặc nhận được điều gì trong cuộc sống cá nhân của mình thông qua nó?

Chương trình giảng dạy + Tài nguyên bổ sung

Sau đây là một số tài nguyên bổ sung mà tôi đã sử dụng trong hành trình freeCodeCamp của mình. Hãy nhớ rằng đây không phải là một danh sách đầy đủ bởi vì tôi đã thực hiện rất nhiều Google Googling và một số khóa học này không miễn phí.

Thiết kế web đáp ứng: Đây là phần mà tôi đã có một số kinh nghiệm, vì vậy nó rất dễ dàng và thú vị. Tôi đã sử dụng một số tài nguyên bổ sung, đặc biệt là cho Flexbox. Nơi yêu thích của tôi cho điều này là Interneting rất khó.

Thuật toán JavaScript và cấu trúc dữ liệu: Khi tôi đến với các mô-đun JavaScript, tôi đã bị mắc kẹt. Mọi thứ thật vui, tôi đã học được rất nhiều điều và tôi háo hức áp dụng nó vào thực tế.

Đối với phần này, tôi chủ yếu sử dụng sách. Tôi đã có đủ bài tập với freeCodeCamp, nhưng tôi cần nhiều hơn trong cách giải thích. JS bắt đầu cũng có rất nhiều bài tập.

  • Bắt đầu phiên bản thứ 5 của JavaScript
  • Bạn không biết JS
  • Nền tảng lập trình với JavaScript, HTML và CSS
  • Tài liệu JavaScript

Vào thời điểm tôi đến phần này, tôi cũng đã tham gia chương trình Lập trình mùa hè của 1 triệu phụ nữ đến công nghệ (1MWTT). Tôi đã học Python cơ bản và JavaScript cơ bản đến nâng cao, điều này giúp ích rất nhiều, đặc biệt là với Promises.

Học Python cũng giúp tôi củng cố một số khái niệm lập trình cơ bản. Tôi thực sự khuyên rằng khi bạn cảm thấy tự tin với JavaScript, bạn hãy thử một ngôn ngữ mới, chỉ là những khái niệm cơ bản của nó. Bạn sẽ cảm thấy thoải mái hơn sau đó khi bạn biết cách làm điều tương tự với các công cụ khác nhau.

Khung JavaScript: Phần này cũng rất tuyệt vì nó đã cho tôi nền tảng về React và Redux. Tôi đã theo học một khóa học React trên Udemy, React 16.6 - Hướng dẫn hoàn chỉnh (bao gồm React Router & Redux).

Tôi thực sự giới thiệu khóa học này và các khóa học khác của cùng một tác giả. Anh ấy cực kỳ cặn kẽ và những lời giải thích của anh ấy thật tuyệt vời. Đây là một trong số ít các khóa học của Udemy mà tôi thực sự theo dõi dự án mà anh ấy thực hiện: Tôi thường xem các video và áp dụng các nguyên tắc cho bất cứ điều gì tôi đang làm.

Trên 1millionwomentotech, chúng tôi đã có một tuần React chủ yếu là React gốc và sau đó tôi bắt đầu chơi với nó. Vào thời điểm đó, tôi cũng bắt đầu thực hiện dự án phụ của mình với chồng, mà chúng tôi quyết định sẽ trở thành PWA với React.

Tôi không thể nhấn mạnh tầm quan trọng của việc xây dựng một cái gì đó của riêng bạn từ đầu. Tôi đã học được nhiều cách hơn trong vài tuần xây dựng ứng dụng của chúng tôi so với những gì tôi đã học với bất kỳ khóa học hoặc hướng dẫn nào.

API và Microservices: Phần này là một tiết lộ lớn đối với tôi và thay đổi mọi thứ. Cho đến khi mô-đun đó, tôi chắc chắn rằng tôi muốn trở thành một nhà phát triển front-end, nhưng sau khi học Node.js, tôi bắt đầu nghĩ đến việc trở thành một nhà phát triển back-end hoặc Full Stack. Xây dựng API rất thú vị và bạn thấy kết quả nhanh chóng. Tôi bắt đầu xây dựng các dự án Full Stack nhỏ đầu tiên của mình và tôi rất hào hứng.

Một số tài nguyên tôi đã sử dụng:

  • Toàn bộ khóa học dành cho nhà phát triển Node.js (Phiên bản thứ 2)
  • Node Girls Intro to Backend Development with Express
  • Node Docs
  • Tài liệu nhanh
  • NodeSchool
  • Giới thiệu về Node.js
  • Thiết kế API REST & GraphQL trong Node.js, v2 (sử dụng Express & MongoDB)

Trong thời gian này, tôi cũng đang tình nguyện cho “1MWTT” và tôi được yêu cầu xây dựng một ứng dụng Probot cho các tình nguyện viên nội trú với Node. Điều này cũng giúp tôi thực hành với Node, điều đó rất thú vị.

QA và Bảo mật Thông tin: Mô-đun này cũng là một công cụ mở mang tầm mắt. Cho đến tận lúc đó tôi chưa bao giờ viết một bài kiểm tra nào trong đời. Bây giờ tôi thích viết các bài kiểm tra, và tôi thậm chí còn cực kỳ quan tâm đến Phát triển theo hướng kiểm tra.

Tôi chủ yếu sử dụng tài liệu cho phần này nhưng sau đó tôi cũng quyết định thử nghiệm giao diện người dùng của mình và tôi thấy khóa học tuyệt vời này trên Udemy mà tôi không thể giới thiệu đủ. Người hướng dẫn cho đến nay là người hướng dẫn tốt nhất mà tôi từng thấy trên Udemy. Tôi không thể chờ đợi để sử dụng bất kỳ khóa học nào khác mà cô ấy phát hành trong tương lai.

- Chai tài liệu

- Thử nghiệm phản ứng với Jest và Enzyme

Trực quan hóa dữ liệu với D3: Đây là chứng chỉ khó nhất. Những lời giải thích rất hay, nhưng khi bạn đến với các dự án, bạn phát hiện ra rằng những thách thức chỉ bao gồm dự án đầu tiên và bạn sẽ tự mình làm phần còn lại. Và không có nhiều tài nguyên tốt trên mạng. Tôi chủ yếu đọc tài liệu và hướng dẫn đã sử dụng. Đây là những tài nguyên cuối cùng đã giúp tôi đạt được chứng nhận này:

- Hướng dẫn D3.js của d3Vienno

- Tài liệu D3

Mẹo để hoàn thành chương trình học

Tóm lại, đây là những điều đã giúp tôi nhiều nhất trong việc hoàn thành mục tiêu hoàn thành chương trình học:

  • Sử dụng chương trình học như một lộ trình, nhưng bổ sung bằng các nguồn khác
  • Đừng để bị mắc kẹt lâu: hãy đặt câu hỏi, Google, chương trình ghép nối.
  • Đặt mục tiêu thực tế cho mỗi ngày và mỗi tuần. Đừng đánh bại bản thân nếu một tuần bạn chậm hơn: cuộc sống sẽ xảy ra. Đừng để nó khiến bạn đi chệch hướng.
  • Hãy ghi nhớ động lực của bạn: đó là thứ sẽ thúc đẩy bạn vượt qua những ngày khó khăn.
  • Ưu tiên: bạn sẽ phải cắt giảm thời gian làm những việc khác.
  • Đừng quên nghỉ ngày. Chúng rất quan trọng đối với quá trình học tập. Và ngủ đủ giấc!

Sau khi freeCodeCamp, tôi cảm thấy hơi mất hứng. Đây là lộ trình đã hướng dẫn tôi trong suốt hành trình từ giáo viên trở thành nhà phát triển.

Sau vài ngày suy nghĩ và lập kế hoạch, tôi dành hết tâm trí cho dự án phụ mà tôi đang cùng chồng xây dựng. Chúng tôi đang học và vui chơi, và chúng tôi rất vui mừng về điều đó.

Và vâng, tôi đã nhận được một lời mời làm việc ngay sau khi kết thúc chương trình học , nhưng nhiều hơn thế vào một bài báo sắp tới.

Nói chung, tôi không thể học được tất cả những gì tôi đã học nhanh như vậy nếu nó không có trong freeCodeCamp và tôi vô cùng biết ơn tất cả những người đã tạo nên một dự án tuyệt vời như vậy.

Nếu bạn cảm thấy như vậy và có thể trả lại, vui lòng xem xét đóng góp cho freeCodeCamp tại đây.