Hi, xin chào tất cả các bạn, trước khi đi đến chủ đề chính của bài viết thì mình xin phép được tự giới thiệu Mình là Thái, hiện mình đang là một fullstack web developer với 5 năm kinh nghiệm.Mình ở đây để kể câu chuyện bản thân và mong rằng nó sẽ có ích phần nào đó với các bạn
1. Giới thiệu
Mình cảm thấy thấy ngành này
- Khó khăn, vô định cho người mới
Các bạn mới vào ngành không biết học như thế nào, bắt đầu từ đâu, hướng nào, ngày xưa mình cũng đã từng như các bạn. Thậm chí khi đã có một chút kiến thức rồi, thì lại không biết như thế nào là đủ để có thể đi xin việc, hay đi thực tập
- Hiện thực chưa được khả quan của ngành
Hiện tại mình thấy thị trường việc làm về lập trình nói chung và lập trình web nói riêng đã phình tới một mức độ nhất định Các công ty tuyển dụng ngày càng an toàn hơn, và khối lượng tuyển các bạn mới vào nghề đang có phần hạn chế hơn. Vì vậy cơ hội cho các bạn mới vào nghề đang khó khăn hơn
- NHƯNG không phải là không thể
Đúng thế, khó khăn lớn thì kết quả thu được sẽ nhiều hơn. Đây thực sự vẫn là một ngành cực hot và đang bị rất nhiều thiếu nhân lực chất lượng cao. Tức là các bạn giỏi thì không phải lo gì hết, vấn đề của chúng ta là phải giỏi. Hơn nữa đây vẫn là một trong cac ngành có mực lương cao nhất hiện nay, vua của mọi nghề. Thì mình mong rằng
- Câu chuyện của mình sẽ giúp bạn
Mình sẽ kể câu chuyện thật của bản thân mong rằng có thể có ích với các bạn. Cách đây 5 năm mình không biết gì về lập trình Không biết code ngôn ngữ lập trình nào cả. Mình đã từ số 0 đến web developer trong 8 tháng và nhận được ông việc đầu tiên sau đó. Mình nhớ không nhầm thì là 7tr khi làm partime khi đó mình vẫn còn học đại học và 15tr khi mà mình có thể fulltime. Và mình chưa từng phải đi thực tập
Sau khi hướng dẫn, đào tạo một số em bắt đầu với nghề. Thì mình nhận ra rằng nhiều bạn có thể sẽ cần lộ trình này. Tuy nhiên mình sẽ tổng quát hoá câu chuyện của mình để bạn nào cũng có thể tham khảo và làm theo được. Không quan tâm bạn chọn ngôn ngữ lập trình gì, công nghệ nàocứ làm theo mình và trở thành một sẽ web developer thực thụ
2. Xong làm được gì?
- Có cái nhìn cụ thể vể ngành web development
Các bạn sẽ biết làm web developer là làm gì, có những gì cần phải học ở trong đó. Không còn cảm giác vô định, học gì làm gì, đi về đâu nữa
- Đủ kiến thức để phát triển rộng/sâu
Các bạn sẽ đủ kiến thức để phát triển rộng hoặc sâu những cái mới hơn hoặc nâng cao hơn. Vì khi các bạn đã có kiến thức nền tảng, và đã biết cách học thì có thể học được mọi thứ
- Phỏng vấn đi làm luôn
Sau lộ trình này các bạn đã có đủ kiến thức và đã sản phẩm riêng để đi phỏng vấn đi làm luôn rồi. Khi xong lộ trình mình nói các bạn đã có thể làm 1 hệ thống web từ A đến Z. Hệ thống này bao gồm cả Backend, Frontend, Database, Server, ...
- Trình độ của các bạn lúc này sẽ là:
- Junior hoặc tối thiểu fresher fontend hoặc backend
- Fresher hoặc hơn với fullstack
Tuỳ thuộc vào mức độ nghiêm túc, kiên trì của các bạn. Thực ra khả năng của các bạn là rất lớn, chỉ là các bạn chưa nhận ra được mà thôi.
3. Chuẩn bị tâm lý
Ở đây các bạn sẽ phải quan tâm tới 2 phần:
Đầu tiên là bắt buộc có, tức là các bạn sẽ phải xác định trước, chuẩn bị tinh thần trước. Nếu các bạn cảm thấy là mình không thể, thì hãy chậm lại đã, vì rất có thể các bạn sẽ phải bỏ buộc tương lai
Thứ 2 đó là những việc có thể làm song song, tức là các bạn có thể làm trong lúc học, không cần phải có trước
3.1. Xác định trước
- Xác định đây là một công việc full-time
Mình nghĩ là như vậy, nếu đã xác định đi làm nghề này thì hãy học như đi thể đang đi làm full-time vậy. Có nghĩ là hãy dành ít nhất 8 tiếng/ngày để học nếu như bạn muốn bắt đầu từ số 0 và đi làm được ở tháng thứ 8. Không chỉ để kịp mục tiêu, mà điều này sẽ có bạn khả năng chịu đựng áp lực khi đi làm. Mình nhớ là cách đây tầm 5 năm, một ngày học của mình bắt đầu từ 9h sáng chơ tới 10h tối. Trừ đi thời gian không học thì sẽ rơi vào khoảng 9-10 tiếng. Và trừ đi những ngày bận thì trung bình khoảng 8 tiếng 1 ngày không kể ngày nghỉ
- Kiên trì và kỷ luật
Nếu các bạn không phải là người kiên trì và kỷ luật thì hãy rèn luyện và luôn từ bây giờ và để tâm điều này trong Đầu. Điều này sẽ giúp bạn hái được quả ngọt ở phía cuối con đường và không bỏ bị cuộc ở giữa chừng, rất là phí thời gian đã cố gắng.
Một câu chuyện cá nhân, cách đây vài hôm mình nhận ra, trong 2 năm đầu học lập trình mình đã làm tới tận 80 repository trên github cá nhân. Trung bình 2 tuần 1 cái, để học các công nghệ, và thư viện, và mình đã làm điều này liên tục trong suốt hai năm,
- Đây là cuộc chiến của việc tự học
Sẽ không có 1 mentor, hay một giáo viên, hay một leader nào chỉ dạy bạn mãi mãi trên con đường này. Sẽ không có một không nghệ phổ biến nào mà không cập nhật cái mới, và luôn có những công nghệ mới ra đời mỗi ngày. Nếu các bạn không xác định được mình phải tự học, phải thích nghi với cái mới, để phát triển và sinh tồn thì sự nghiệp của bạn sẽ rất là khó khăn.
3.2. Làm từ từ
- Tìm cho mình một người mentor
Việc này khá là quan trọng, các bạn sẽ có được rất nhiều lợi thế nếu như có một người mentor. Người mentor sẽ định hướng cho các bạn và ngăn không cho các bạn bị lạc lối. Người mentor sẽ giữ cho các bạn không bị quá rảnh, bởi vì họ sẽ có rất nhiều câu hỏi và đề bài, người mentor sẽ chỉ cho các bạn cách học hiểu quả hơn là việc bạn đang tự làm.Người mentor sẽ cho bạn một vài keyword khi các bạn thực sự bế tắc và muốn bỏ cuộc. Tuy nhiên điều này có thể là một con dao hai lưỡi, khiến các bạn có thể ý nại hơn và thiếu sự chủ động. Thì mình nghĩ, nếu người mentor không chủ động giúp đỡ thì hãy tìm đến chỉ khi các bạn đã thử cố gắng rất nhiều
- Một người bạn đồng hành trong việc học
Cùng với việc có một mentor, thì có một đồng đội cũng mang lại lợi ích rất nhiều, đây là một kèo win win. Một người đồng đội sẽ giúp bạn đỡ chán nản, đâu ai tự kỷ mà học một mãi được đúng không ạ. Người này sẽ kéo bạn lên khi bạn bị mất hứng, và ngược lại. Hai người cùng học cái mới, giải quyết cái khó sẽ hiểu quả hơn một người rất nhiều. Và việc giải thích cho nhau sẽ khiến các bạn hiểu sâu hơn và nhớ lâu hơn. Nếu các bạn là một cặp frontend backend thì quá tuyệt, vừa có thời gian học sâu mảng bạn thích, lại vẫn nắm được kiến thức fullstack tổng thể. Đây cũng là lý do mình có thể đi làm frontend ngay sau 8 tháng học, nhưng mình vẫn kiến thức và kỹ năng để có thể code backend
- Khả năng đọc hiểu tiếng anh
Đây là một điều quan trọng, nhưng hiện tại có rất nhiều công cụ có thể giúp các bạn đọc hiểu nên không phải là điều tiên quyết. Tuy nhiên đọc hiều được tiếng anh sẽ giúp các bạn học nhanh hơn, với các tài liệu chính thống, hoặc những công nghệ mới chưa có tài liệu tiếng việt. Ngoài ra tiếng anh mang lại cho các bạn những cơ hội gia tăng thu nhập đáng kể với các công ty nước ngoài.
Cá nhân mình ở năm thứ 3 của sự nghiệp đã rẽ sang làm remote với mức lương cao hơn rất nhiều. Và việc chủ động thời gian đã giúp mìnhcó thể làm 2 công ty remote một lúc và đạt được thu nhập mà mình ước mơ từ những ngày đầu sự nghiệp.
- Tư duy logic, toán học, bla bla
Mình thấy nhiều bạn hay hỏi, không giỏi toán thì có theo lập trình được không. Ngành khác thì mình không dám nói, nhưng với lập trình web thì các bạn không cần phải lo, thậm chí là theo mảng backend cũng không phải lo. Có thể các bạn muốn theo AI, big data thì có thể cần xem lại, nhưng lập trình web thì đây không phải là vấn đề. Tất nhiên có tư duy logic, toán học thì vẫn tốt hơn, nhưng không quá nhiều. Nếu các bạn chăm chỉ, thực chiến nhiều thì sẽ thấy kinh nghiệm thực tế không chỉ bù đắp mà còn lấn át tư duy toán học ở mảng này
4. Chọn hướng đi
Cái này phụ thuộc vào sở thích, thể mạnh của các bạn. Nhưng mình muốn giới thiệu, mảng lập trình web sẽ có 3 ví trí chính:Đó là frontend, backend và fullstack.
4.1 frontend
- Người code ra những đoạn code chạy ở trình duyệt là frontend developer
- Là người phát triển giao diện người dùng
- Bao gồm giao diện, bố cục, nút bấm, biểu mẫu, v.v.
Khi vào một trang web, cái gì các bạn nhìn thấy, thì đó là việc của frontend developer. Nếu bạn yêu thích cái đẹp, muốn code ra những website đẹp mắt. Hoặc thường cảm thấy khó chịu với một website lộn xộn, trải nghiệm người dùng tệ, không tiện lợi, hợp lý. Thì frontend là một lựa phù hợp với bạn.
4.2 Backend
- Người mà code ra các đoạn code chạy trên server được gọi là backend developer
- Xử lý logic đằng sau, sẽ phải tương tác với dữ liệu (còn gọi là database)
- Các bạn sẽ phải quan tâm tới tối ưu, và các vấn đề bảo mật giữ liệu, chống tấn công
Nếu các bạn cảm thấy vui vẻ khi tối ưu được một thuật toán, code được những hàm tốc độ xử lý cao. Hay là thích khám phá, tò mò về bảo mật website, chống các cuộc tấn công. Thì backend là một lựa chọn phù hợp vứi các bạn
4.3 fullstack
- Làm được cả frontend và backend được gọi là một fullstack developer
- Các bạn có thể làm được 1 hệ thống, một chức năng lớn mà không bị phụ thuộc vào người khác
Thì đây là vị trí được các công ty săn đón rất nhiều hiện nay. Bời vì các bạn có khả năng làm được nhiều thứ, có thể giảm thiều thời gian lãng phí như trao đổi tương tácCác bạn có sự hiểu biết tổng quan về cả hệ thống, từ đó có thể tối ưu kết hợp cả frontend và Backend. Thậm trí các công ty thích tuyển fullstack dev về nhưng chỉ làm một mảng frontend hoặc backend. Bởi vì những người nay vẫn có lợi thế rất lớn khi tương tác, và làm việc vì có kiến thức tổng quan
Thì lộ trình này mình hướng các bạn để trở thành một fullstack developer. Các bạn sẽ có kiến thức cơ bản để hiểu và làm cả frontend và backend. Sau đó các bạn có thể phát triển tiếp theo mảng các bạn thích hoặc làm một fullstack dev luôn cũng được.
Tiếp theo mình sẽ nói với các bạn về các học cụ thể, cũng như là lộ trình chi tiết mình đã áp dụng.
Tuy nhiên bài viết đã khá dài, nên sẽ hẹn các bạn ở phần 2 nhé ạ. Xin chào và hẹn gặp lại