Khi tôi bắt đầu hành trình học lập trình, tôi vừa làm việc toàn thời gian vừa nuôi hai con nhỏ- một bé 4 tuổi, một bé 5 tháng. Đó là một quá trình lâu dài và gian khổ. Nhưng cuối cùng, tôi đã được đền đáp. Tôi đã có thể bước chân vào lĩnh vực kỹ thuật phần mềm.
Nhiều bạn đã hỏi tôi rằng họ có thể nghiên cứu những nguồn nào để tự học lập trình và làm việc trong CNTT. Tôi sẽ trình bày các bước mà tôi đã thực hiện dưới đây.
1. Chọn một con đường trên Codecademy
Tôi rất thích Codecademy. Nền tảng này đã giúp tôi khơi dậy niềm yêu thích lập trình do các bài học tương tác và thân thiện với người dùng.
Bạn sẽ không dành hàng giờ để xem các video hướng dẫn hoặc đọc các trang code. Thay vào đó, bạn sẽ làm việc với một môi trường tương tác, nơi bạn có thể nhập code của mình để trả lời câu hỏi và xem kết quả ngay lập tức.
Bạn sẽ không phải mất hàng giờ để cố gắng cài đặt và học cách sử dụng môi trường phát triển tích hợp (IDE), một bước khiến một số người không muốn bắt đầu viết mã ngay từ đầu. Codecademy sẽ giải quyết vấn đề đó cho bạn.
Dưới đây là các con đường chính trên Codecademy :
– Phát triển Web: Bạn sẽ học cách xây dựng các trang web và các ứng dụng tương tác. Các ngôn ngữ chính được dạy là HTML, CSS, JavaScript.
– Khoa học máy tính: Bạn sẽ học Python và các nguyên tắc cơ bản của khoa học máy tính như cấu trúc dữ liệu và thuật toán. Bạn cũng có thể xây dựng các ứng dụng thú vị bằng cách sử dụng thư viện và ngôn ngữ Python.
– Khoa học dữ liệu: Con đường này dành cho những ai muốn trở thành nhà phân tích dữ liệu hoặc nhà khoa học dữ liệu. Ngôn ngữ chính của hướng dẫn là Python.
Còn tôi, tôi bắt đầu với Python và đi theo con đường Khoa học máy tính. Sau đó, tôi cũng đã thử con đường Phát triển Web và tham gia một số khóa học về Khoa học Dữ liệu. Nhưng con đường Khoa học Máy tính là con đường yêu thích nhất của tôi vì tôi phải tìm hiểu về các cấu trúc dữ liệu khác nhau và giải quyết các vấn đề bằng cách sử dụng chúng.
Codecademy cũng có các môn học tuyệt vời khác như Học máy, Thiết kế web, Phát triển trò chơi, Phát triển thiết bị di động và Trực quan hóa dữ liệu.
2. Tham gia các khóa học Khoa học Máy tính trên Coursera
Sau khi hoàn thành khóa học về Khoa học máy tính và Phát triển web trên Codecademy , tôi không biết mình nên làm gì tiếp theo. Tôi quyết định tham gia các khóa học sau để tìm hiểu thêm về cấu trúc dữ liệu và thuật toán trên Coursera.
– Khoa học máy tính: Lập trình có mục đích
– Thuật toán II (Tôi chỉ đề cập đến đồ thị trong khóa học này)
Tôi đọc sách, xem video bài giảng và làm hầu hết các bài tập về nhà cho các khóa học này. Thực sự rất khó. Tôi đã tìm kiếm rất nhiều trên mạng để tìm ra câu trả lời cho bài tập về nhà. Tôi cũng đã hỏi một người đã tham gia các khóa học này trước đây để được giúp đỡ.
Tôi đã học được rất nhiều kiến thức cơ bản về khoa học máy tính từ các khóa học này. Quan trọng nhất, tôi đã học được Java, ngôn ngữ sau này đã được chứng minh là có lợi cho sự nghiệp mới của tôi tại Microsoft, nơi tôi cần sử dụng C #, một ngôn ngữ có nhiều điểm tương đồng với Java.
3. Tìm hiểu thiết kế web đáp ứng và JavaScript trên FreeCodeCamp
Sau khi kết thúc các khóa học Java, tôi một lần nữa không biết mình cần phải làm gì tiếp theo. Tôi đã đọc nhiều bài báo về cách một số người tự học lập trình. Tôi thấy rằng họ liên tục đề cập đến FreeCodeCamp và cách họ có được công việc phát triển phần mềm chỉ sáu tháng sau khi bắt đầu với nền tảng này.
Tôi rất muốn làm việc trong ngành CNTT. Tôi cảm thấy mình đang chạy đua với chính mình, vì vậy tôi quyết định nghe theo lời khuyên của họ và hoàn thành hầu hết các tài liệu về Thiết kế web đáp ứng (thiết kế web để chạy trên nhiều thiết bị) và JavaScript.
4. Xây dựng dự án
Sau khi học HTML, CSS và JavaScript, tôi quyết định xây dựng trang web cá nhân, nơi tôi có thể giới thiệu danh mục dự án của mình cho các nhà tuyển dụng. Tôi đã có thể sử dụng một mẫu trang web trên WordPress bằng cách sử dụng một máy chủ web như BlueHost. Nhưng tôi quyết định xây dựng mọi thứ từ đầu để thực hành những gì tôi đã học.
Trên trang web cá nhân của mình, tôi đưa các dự án mà tôi đã xây dựng cho Codecademy và FreeCodeCamp. Tôi cũng đã theo dõi các hướng dẫn trên YouTube để lấy ý tưởng cho các dự án.
Tôi đã tham gia khóa học Python – Từ số 0 đến chuyên gia trên Udemy, nơi người hướng dẫn đã giới thiệu về các khái niệm cơ bản và nâng cao của Python. Sau đó, ông ấy chỉ cách xây dựng một số dự án rất thú vị bằng Python và các thư viện của nó.
Bạn nên cố gắng sáng tạo và tạo ra phiên bản dự án của riêng bạn. Điều này sẽ cung cấp cho bạn nhiều điều để chia sẻ và thể hiện sự sáng tạo của bạn trong các cuộc phỏng vấn tuyển dụng.
Sau đó, tôi nhận ra rằng mối quan tâm của tôi không phải là xây dựng các trang web tương tác. Tôi quan tâm hơn đến Python và việc sử dụng logic để giải quyết vấn đề. Tôi quyết định bước tiếp theo sẽ là bước đệm quan trọng cho hành trình học lập trình của tôi.
5. Giải quyết vấn đề trên LeetCode
Nếu tôi phải chọn yếu tố quan trọng nhất giúp tôi có được công việc Kỹ sư phần mềm, thì đó phải là LeetCode . Tôi bắt đầu cố gắng giải các câu hỏi về LeetCode khoảng một tháng rưỡi sau khi tôi bắt đầu học Python.
Quá trình vô cùng khó khăn và gây nản lòng. Tôi thực sự nghi ngờ bản thân và đã phải tạm dừng trong một tháng. Sau khi học Java trên Coursera, tôi muốn quay lại với Python và cố gắng áp dụng kiến thức đã có về cấu trúc dữ liệu và thuật toán.
Tôi dành nhiều ngày cho một vấn đề mà không biết làm thế nào để giải quyết nó. Sau đó, tôi tìm kiếm cách những người khác đã thực hành trên LeetCode và tìm ra hướng đi.
Sau khi dành nhiều giờ, thậm chỉ nhiều ngày, cho một vấn đề, tôi sẽ chuyển sang phần Thảo luận để xem xét các giải pháp của người khác và cố gắng hiểu các giải pháp của họ cũng như các kỹ thuật mà họ đã sử dụng. Tôi cũng sẽ tra cứu các câu hỏi trên YouTube để hiểu rõ hơn về vấn đề.
Dần dần, tôi nhận thấy các mẫu số chung trong các câu hỏi và giải pháp trên LeetCode, điều này giúp tôi giải quyết nhiều vấn đề hơn trong tương lai. Tôi đã dành phần lớn hành trình học code của mình để giải quyết các câu hỏi LeetCode (khoảng 350) trước khi tôi nhận được ba lời mời làm việc từ Microsoft.
6. Nghe podcast và xem video viết code trên YouTube
Trên đường đi làm và đi làm, tôi sẽ đọc cuốn sách Các yếu tố của Phỏng vấn lập trình bằng Python: Hướng dẫn của Người trong cuộc trên tàu điện và nghe podcast về lập trình trong khi đi bộ.
Khi làm việc nhà ở nhà (dọn dẹp, cho con ăn, làm các món ăn), tôi cũng sẽ nghe các chương trình podcast.
Khi muốn hiểu rõ hơn về các khái niệm khoa học máy tính, tôi sẽ tìm kiếm các video trên YouTube có nhiều lượt xem nhất và từ FreeCodeCamp để hiểu rõ hơn.
Kết luận
Về cơ bản, tôi đã cố gắng học nhiều nhất có thể bất cứ khi nào và bất cứ nơi nào có thể. Và tôi đã kiệt sức. Tôi không phải là nữ siêu nhân. Tôi không dùng ma túy hay uống cà phê, trà để tỉnh táo như một số bạn đã hỏi. Phần lớn thời gian tôi vô cùng thiếu ngủ.
Trong 6 tháng đầu tiên học lập trình, tôi hầu như không vào mạng xã hội và xem video YouTube để giải trí như trước đây. Tôi đã không thể dành nhiều thời gian cho bạn bè hoặc gia đình như tôi muốn. Vì con tôi mới được 5 tháng tuổi khi tôi bắt đầu nên tôi thường cho con bú bằng một tay và làm việc với tay kia, thường là lúc 10 giờ tối, nếu không phải muộn hơn.
Đôi khi con tôi thức dậy lúc 2 giờ sáng và muốn được bế đến tận 3-4 giờ sáng. Tôi sẽ ôm con và viết mã bằng một tay trong suốt thời gian đó. Tôi không muốn lãng phí bất kỳ phút nào. Sau đó, tôi thức dậy lúc 6:30 sáng để đi làm vào ngày hôm sau.
Một số bạn hỏi tôi làm thế nào tôi có được siêu năng lực như vậy. Tôi không có. Sức khỏe của tôi bị ảnh hưởng nặng nề. Tôi đã phải vào viện hai lần. Tôi bị eczema một tháng sau khi bắt đầu học và kéo dài cho đến một tháng sau khi tôi tham gia chương trình LEAP.
Tôi rất stress.
Nhưng những gì tôi có là một niềm đam mê và sự quyết tâm để hành động và đạt được mục tiêu của mình. Và đó là những thứ mà bạn hoặc là đã có hoặc có thể phát triển trong tương lai.
Tôi hy vọng rằng lộ trình trên sẽ giúp bạn định hình rõ hơn kế hoạch trở thành một nhà kỹ sư phần mềm của riêng mình. Và tôi tin rằng bạn sẽ làm được nếu bạn không bỏ cuộc.
Evelyn Le (Vân Nguyễn dịch)
Bình luận (0
)