Hiện nay, có rất nhiều lập trình viên “tay ngang”, tự học lập trình tại nhà để có thể xin một việc làm với đồng lương ổn định. Bên cạnh nhiều khó khăn về tâm lý và nỗ lực, những người này còn gặp trở ngại về định hướng, không biết nên học từ đâu và học bao nhiêu là đủ.
Bài viết sau đây xin đưa ra một lộ trình tự học lập trình từ đầu tại nhà với hy vọng giúp đỡ được những người muốn bước chân vào nghề IT không qua trường lớp đào tạo. Nội dung được đúc kết từ thực tiễn của tác giả, là một freelancer, một lập trình viên “tay ngang” và cũng là người sáng lập công ty Mona Media,
Tại sao tự học lập trình?
Không phải là một nghề lao động chân tay như sửa xe máy hay may vá thêu thùa, nhưng lập trình lại là một trong những nghề có số lượng người tự học nhiều nhất. Và tất nhiên số lượng cá nhân thành công nhờ tự học lập trình cũng vượt trội hơn những nghề khác.
Vậy đâu là lý do? Hãy xem ngay video: https://www.youtube.com/watch?time_continue=6&v=So0luoTtl_o
1. Thiếu nhân lực
So với những ngành nghề truyền thống như bác sĩ, kỹ sư, thợ làm tóc, công nghệ thông tin (CNTT) là một nghề rất mới mẻ. Nó xuất hiện chỉ vài chục năm trước đây và đặc biệt phát triển kể từ khi Internet ra đời vào cuối thể kỷ trước.
Trong tương lai, lập trình sẽ là xương sống của cuộc sống hiện đại: thiết kế và điều hành những vật dụng thông minh giúp cuộc sống thêm thuận tiện và thoải mái.
Thế nhưng, ngay trước thềm cuộc cách mạng công nghiệp 4.0, ngành CNTT ở nước ta vẫn đang trong tình trạng thiếu nhân lực đáng kể. Theo thống kê, mỗi năm Việt Nam thiếu khoảng 80.000 lao động chất lượng cao trong các nhóm ngành lập trình, IT. Nhu cầu tuyển dụng của doanh nghiệp tăng cao nhưng chất lượng đầu ra của sinh viên CNTT không đủ đáp ứng đã dẫn đến tình trạng thèm khát nhân tài như hiện nay.
Đây cơ hội vàng cho những cá nhân có năng lực, biết thức thời dù cho không theo học các trường lớp CNTT. Rất nhiều người có khả năng đã tự mình học lập trình, học thiết kế website tại nhà với các giáo án, tài liệu trên mạng để có thể tìm cho mình một chỗ đứng trong ngành IT.
2. Gia đình không muốn con cái mạo hiểm vào ngành học mới
Đây là lý do cộng hưởng với nguyên nhân trên khiến cho việc thiếu hụt nhân lực CNTT càng thêm trầm trọng. Ngành học quá mới mẻ so với nhận thức của các bậc cha mẹ khiến họ không khuyến khích con cái đi theo hướng này.
Công việc IT mang tính kỹ thuật đặc thù nên nhiều người cũng không rõ học xong con mình sẽ làm gì để kiếm ra tiền, nếu có trục trặc thì phải làm như thế nào. Chưa kể đến mức độ cạnh tranh trong ngành cũng ngày càng được đẩy lên cao trào vì thiếu nhân sự, nhiều gia đình lo lắng con mình bị chèn ép, thi đua không lại người khác.
Ngoài ra, phần lớn các công ty công nghệ đều là tư nhân, nhỏ lẻ. Không được đảm bảo về biên chế, về lương hưu và các chế độ hỗ trợ người lao động cũng là mối lo canh cánh đối với cha mẹ khi cho con học và làm công việc IT.
3. Lập trình có thể tự học
Một lý do khách quan khiến ngành lập trình có nhiều người tự học đến như vậy chính là vì bạn hoàn toàn có thể tự học và thành thạo nó.
Tuy là một ngành kỹ thuật, nhưng lập trình lại dựa nhiều vào kinh nghiệm chứ không phải kiến thức chuyên môn. Chỉ cần thực hành nhiều, khám phá nhiều, bạn có thể làm chủ các ngôn ngữ lập trình và có khả năng xây dựng những công cụ, phần mềm có tính năng mạnh mẽ và phức tạp. Thời gian và kết quả học tập phụ thuộc nhiều vào năng lực và sự cần cù, chăm chỉ của bạn.
Giáo án, tài liệu và bài tập có ở khắp mọi nơi. Bạn có thể mua sách dạy lập trình, tải từ trên mạng về hoặc tham gia các hội nhóm, forum để học hỏi từ người có kinh nghiệm. Ngày nay, có hẳn những khóa học dạy lập trình hay thiết kế web trên các website học trực tuyến với học phí phải chăng, phù hợp với cả những tay mơ, tay ngang mới vào nghề.
Vô số các yếu tố ủng hộ việc tự học lập trình tại nhà, và cũng rất nhiều người từ đó mà thành công, có được công việc và thu nhập ổn định.
Trở ngại của việc tự học
Mạng xã hội là một trong những nguyên nhân chính gây mất tập trung khi tự học lập trình
Tuy nhiên, tự học lập trình, giống như bất cứ ngành nghề nào khác, cũng có những khó khăn, trở ngại mà ai cũng phải (nhưng không phải ai cũng có thể) vượt qua.
Dễ lơ là
Được học trong môi trường thân thuộc là ngôi nhà của mình tạo cho bạn một cảm giác thoải mái, ung dung và dễ chịu. Nhưng điều đó chưa hẳn là tốt, bởi việc học tự nó rất khó tạo động lực, hứng thú trong một thời gian dài.
Thực tế là phần đông mọi người đều ngán học, nhất là tự học!
Không có thầy cô coi sóc, đốc thúc bạn nghe giảng và làm bài tập, bạn sẽ dễ đâm ra luời biếng và chểnh mảng. Không có người đánh giá, chấm điểm cũng làm giảm bớt động cơ để bạn cố gắng học bài và làm bài tập. Không có các cuộc thi thường xuyên cũng làm ban quên hẳn cảm giác cạnh tranh, thi đua để nỗ lực vượt qua bản thân và bạn bè.
Chưa kể đến ở nhà có biết bao nhiêu thứ có thể làm bạn mất tập trung. Tin nhắn Facebook liên tục reo lên trong điện thoại, thông báo pop-up báo hiệu sự kiện trong game, bài hát trong bộ phim Hàn Quốc dài 169 tập mà bạn đang xem mỗi ngày lại vang lên, dàn đồng ca chó nhà hàng xóm lại khởi động hoặc con mèo cưng cứ nhảy lên máy tính đòi được nựng… Dường như tất cả mọi thứ xảy ra đều có một mục đích là ngăn bạn học.
Vì vậy, tự học ở nhà không hề dễ dàng. Nó đòi hỏi một sự quyết tâm, một ý chí kiên định, một khả năng kiểm soát bản thân cực kỳ mạnh mẽ.
Mất định hướng
Những kể cả khi bạn có thể đạt được cảnh giới tập trung như Bồ Tát ngồi thiền thì đó cũng chỉ là khả năng loại bỏ những yếu tố phân tâm từ bên ngoài. Nhưng bạn vẫn khó có thể chiến thắng được tiếng nói ở trong lòng: nỗi lo sợ khi mất định hướng.
Khi tự học, bạn sẽ không có thầy cô, giáo viên chủ nhiệm hay cụ thể hơn là người hướng dẫn, chỉ lối cho bạn. Bạn sẽ không biết được học như thế nào mới đúng cách và sẽ thành công; bạn cũng không biết được học đến đâu là đủ cho một lĩnh vực nào đó.
Ví dụ: Lập trình Javascript là một lĩnh vực vô cùng rộng lớn, nếu muốn “làm chủ Javascript” chắc cũng có thể tốn khoảng vài năm. Nhưng thực tế là bạn hầu như sẽ không sử dụng hết công năng của Javascript cho công việc, mà chỉ cần một nhánh nhỏ của nó chính là các plugin Javascript mà thôi.
Nếu tự học, có thể bạn sẽ không biết điều đó, không biết thứ gì thực sự có ích và nên học mà tốn thời gian sẽ học hết không chọn lọc. Thời gian tự học kéo dài ra khiến bạn càng thêm mơ hồ về tương lai và cảm thấy tự ti vào năng lực, khả năng tiếp thu của mình.
Băn khoăn về lựa chọn
Và trở ngại cuối cùng, là hệ quả từ những khó khăn đã nêu, bạn luôn cảm thấy băn khoăn không biết mình đã lựa chọn đúng hay chưa. Như đã nói có nhiều người bỏ con đường cũ, bỏ dở chuyên ngành đang theo học để nhảy vào ngành CNTT đang thiếu nhân sự. Nhiều người sử dụng tiền dành dụm và quỹ thời gian ít ỏi của mình để mua tài liệu và tự học lập trình tại nhà với mong muốn có thể kiếm một công việc IT ổn định.
Tuy nhiên, không mấy ai dám chắc chắn về lựa chọn làm “tay ngang” mà mình đã đưa ra trừ phi họ có một tình yêu cực lớn dành cho nghề lập trình. Họ cũng phải có một tinh thần sắt thép, một ý chí bền bỉ để không bị lung lay bởi các yếu tố phân tâm và đánh lạc hướng như đã kể ở trên. Rất nhiều người không làm được như vậy và đã bỏ cuộc và quay lại lối đi dễ dàng và an toàn hơn như trước kia.
Vì vậy, bài viết này là để tiếp thêm lửa cho các bạn, những người có ý định làm “tay ngang” trong ngành CNTT, muốn tự học lập trình và trở thành một lập trình viên có công việc với thu nhập ổn định.
Chúng tôi không thể giúp bạn loại bỏ những thứ làm bạn mất tập trung, nhưng chúng tôi có thể giúp bạn bớt hoang mang về hướng đi của mình. Với một lộ trình tự học lập trình tại nhà rõ ràng và hợp lý, bạn có thể biết nên đi như thế nào, học như thế nào là đúng và đủ.
Lộ trình tự học lập trình từ đầu tại nhà
Khi học bất cứ thứ gì, tất nhiên bạn phải bắt đầu từ những việc dễ, ít chuyên môn nhất trước. Đối với việc xây nhà, quét vôi và phết sơn nhẹ nhàng hơn nhiều so với việc đặt từng viên gạch. Đối với thiết kế website, xây dựng phần giao diện bên ngoài thì dễ dàng hơn là cơ sở hạ tầng bên trong.
Vì thế, quá trình học lập trình nhìn chung sẽ phải đi từ front-end (phần nhìn) cho tới back-end (phần kỹ thuật).
Đây là một lộ trình chung cho tất cả mọi loại lập trình viên, đi từ dễ đến khó, chứ không phải là con đường bắt buộc tất cả phải bước đi. Giai đoạn quan trọng nhất khó có thể bỏ qua chính là giai đoạn 1, thời điểm mà bạn có thể bắt đầu đi xin việc trong các công ty CNTT, công ty thiết kế website… Bạn không cần phải đi tiếp những giai đoạn khác của lộ trình này mới có thể sống an yên được với nghề.
Giai đoạn 1: Lập trình front-end cơ bản
Lập trình front-end là giai đoạn đầu tiên và quan trọng nhất trong lộ trình tự học lập trình tại nhà
Để trở thành một lập trình viên front-end cơ bản, bạn cần những kiến thức về 2 lĩnh vực: HMTL/CSS và Javascript.
1. HTML và CSS
HTML và CSS là ngôn ngữ lập trình hiển thị của một website, quy định website đó hiển thị ra sao. Chúng là thành phần cơ bản nhất của một website, cũng là ngôn ngữ lập trình dễ học và sử dụng nhất. HTML/CSS có những thẻ (tag) đơn giản, có ý nghĩa và cách vận hành dễ hình dung, dễ nắm bắt. Bạn có thể dễ dàng di chuyển, sắp xếp các thành phần hiển thị của website như banner, logo, textbox… bằng các câu lệnh ngắn, khi chỉnh sửa có thể quan sát các thay đổi ngay tức khắc.
Nhìn chung, HTML/CSS chỉ tốn của bạn khoảng 2 tháng tự học hỏi và thực hành. Nếu bạn có năng khiếu và tư duy lập trình, có thể bạn chỉ mất 1 tháng để hoàn thành phần này.
2. Javascript (plugin)
Môn thứ 2 bạn cần học để có thể trở thành front-end developer cơ bản và bắt đầu đi làm chính là Javascript. Nhưng, như đã đề cập trong ví dụ ở trên, Javascript rất bao la và phức tạp. Thứ bạn thực sự cần học chính là cách viết nên và sử dụng những plugin Javascript.
Có rất nhiều tài liệu hướng dẫn chi tiết và cặn kẽ về plugin Javascript. Nhưng học lập trình, lý thuyết phải đi đôi với thực hành. Và một bài tập thực hành đi kèm với lý thuyết trong quá trình này chính là: hãy tạo ra một bản sao của những trang web mà bạn thích.
Sau khi nắm được HTML/CSS và phần cơ bản của plugin Javascript, bạn nên tập thiết kế những website giống hệt với những trang đã có sẵn. Những website như vậy là những phiên bản hoàn thiện cho những chức năng của HTML/CSS và Javascript mà bạn đang học. Vì vậy bạn cần phải bắt chước sao cho giống nhất, tạo ra những giao diện và chức năng càng giống với bản gốc càng tốt.
Việc làm chủ plugin Javascript này có thể ngốn của bạn khoảng 3-6 tháng. Cộng thêm phần HTML/CSS ở trên nữa, để có đủ kiến thức và năng lực đi xin việc IT, bạn sẽ mất khoảng 4-6 tháng tự học lập trình từ đầu tại nhà.
Đây không phải là một khoảng thời gian quá dài đủ để bạn thấy nản chí và chùn bước. Và cơ hội công việc của bạn cũng rất sáng sủa. Hầu hết các công ty CNTT từ lớn đến bé đầu cần nhân lực trong khâu thiết kế front-end. Các công ty trong lĩnh vực khác cũng cần thuê người tạo, chỉnh sửa hoặc nâng cấp giao diện website, vì vậy nhu cầu cho front-end developer là không hề ít.
Ngoài ra, còn có một thị trường cực kỳ béo bở nữa dành cho các bạn, đó chính là việc gia công front-end cho các công ty Nhật Bản. Các công ty Nhật thuê rất nhiều nhân lực Việt Nam để gia công, chỉnh sửa phần hiển thị cho các website của họ rất nhiều. Và mỗi một đơn hàng như vậy, tùy thuộc vào quy mô và khối lượng công việc, có thể đem về cho công ty bạn trên dưới cả trăm triệu.
Nói tóm lại, là một front-end developer, bạn hoàn toàn có thể tìm được một vị trí trong công ty CNTT với mức lương ổn định. Nếu làm việc hiệu quả lâu dài bạn có thể được nâng lên tới 20 triệu đồng/tháng.
Giai đoạn 2: Học chuyên sâu front-end
Sau khi trở thành một front-end developer cơ bản và một vị trí tốt trong công ty, bạn có thể tiếp tục trau dồi kiến thức để hoàn thành tốt công việc được giao. Hoặc bạn cũng có thể học chuyên sâu thêm về các nhánh khác của lập trình front-end hay rẻ nhánh sang lập trình cơ sở hạ tầng kỹ thuật như một lập trình viên back-end.
3.1. Lập trình front-end chuyên sâu với custom Javascript
Sau khi làm chủ các kỹ thuật thiết kế plugin Javascript cơ bản, bạn có thể đi sâu hơn nữa và tạo ra những plugin tùy chỉnh chỉ riêng bạn mới làm được. Một số yêu cầu nhất định từ khách hàng mà chỉ có plugin tùy chỉnh của bạn mới có, nhờ vậy có thể giảm bớt cạnh tranh với các đối thủ khác. Ngoài ra, chúng cũng tạo cho bạn một thương hiệu cá nhân, cho phép bạn bán plugin của mình với giá cao hơn.
3.2. Lập trình front-end chuyên sâu với Javascript framework
Javascript framework là những cái khung được làm sẵn giúp lập trình viên hoàn thành công việc nhanh hơn, dễ dàng hơn. Đặc biệt, có những framework về front-end nhưng có ứng dụng các tính năng từ back-end, cung cấp cho bạn công cụ mạnh mẽ để nâng cấp cả giao diện lẫn trải nghiệm người dùng (user experience).
Một số Javascript framework phổ biến bạn có thể học chính là Angular, React hay Vue, v.v… Bạn có thể tự học thêm những framework này để có nhiều kiến thức hơn một front-end developer thông thường và có thể đảm nhận được những nhiệm vụ cao cấp, thử thách hơn trong công việc.
Giai đoạn 3: Chuyển hướng sang lập trình back-end
Học luôn back-end để trở thành full-stack developer
Xin nhắc lại, bạn hoàn toàn có thể ngưng lại sau khi hết giai đoạn một và tiếp tục trau dồi kiến thức của một front-end developer mà vẫn có thu nhập ổn định. Có thể hoàn thành tốt mọi công việc được giao và kiếm sống bằng nghề là đủ để chứng tỏ bạn là một lập trình viên “tay ngang” giỏi. Cố gắng đi sâu đến tận back-end không chứng minh thêm được gì mà đôi khi còn hao tốn rất nhiều thời gian và công sức của bạn.
Tuy nhiên, nếu bạn thực sự có hứng thú với cơ sở hạ tầng kỹ thuật của một website nói riêng và những gì cơ bản nhất của lập trình nói chung, thì bạn có thể chuyển hướng sang học lập trình back-end.
3. Lập trình back-end với một CMS
Việc đầu tiên bạn có thể làm là học sử dụng một CMS nào đó. CMS (content management system) là hệ thống quản trị nội dung dùng để thiết kế và quản lý nội dung của một website nào đó. CMS phổ biến nhất hiện nay chính là WordPress, và việc học về WordPress thôi cũng có thể giúp bạn hái ra tiền.
Người ta thường nghĩ những CMS mã nguồn mở như WordPress chỉ dùng để làm các website cá nhân, website giới thiệu hay website bán hàng nhỏ lẻ. Tuy nhiên, bạn hoàn toàn có thể dùng WordPress để xây dựng các hệ thống website đồ sộ, quy mô hơn nhiều. Không mấy người có thể khai thác hết tiềm năng của WordPress hay các CMS, nếu bạn là một trong số đó, hộp thư của bạn sẽ tràn ngập email đặt hàng.
Trung bình, mức lương tối thiểu của một WordPress developer là vào khoảng 8 triệu đồng/tháng. Nếu bạn có nhiều kinh nghiệm hoặc sáng kiến tốt, bạn có thể cán mốc 20 triệu đồng/tháng.
Ngoài ra, việc học WordPress giúp bạn có thể thiết kế những giao diện (theme) WordPress độc đáo và hấp dẫn. Sau đó, bạn có thể bán chúng trên những chợ giao diện nổi tiếng quốc tế như Envato hay Themeforest… Theme càng đẹp, càng hợp trend hoặc phù hợp với mục đích sử dụng của khách hàng thì càng bán được giá cao.
Một ưu điểm nữa là để học WordPress bạn cần học ngôn ngữ lập trình PHP. Nhưng vì không phải đang xây dựng hệ thống gì nên bạn cũng chỉ cần biết những kiến thức cơ bản của PHP liên quan WordPress mà thôi.
4. Lập trình full-stack bằng những ngôn ngữ lập trình thực thụ
Đây hẳn là lựa chọn khác biệt hoàn toàn so với những giai đoạn trên của lộ trình tự học lập trình từ đầu tại nhà cho tay ngang. Bạn sẽ trở thành một full-stack developer (gọi nôm na là lập trình viên biết tuốt) bằng cách học thêm các ngôn ngữ lập trình lớn và phổ biến, như: C#, Java, PHP, hay Python, v.v…
Tức là giờ đây, không chỉ front-end mà cả lập trình back-end một cách chuyên sâu bạn đều có thể làm được. Nhờ vậy, bạn sẽ có thể đảm nhận mọi công việc, mọi yêu cầu được khách hàng giao phó, từ phần nhìn cho đến phần kỹ thuật bên trong. Khi có trục trặc xảy ra, việc làm chủ cả front-end lẫn back-end cho bạn khả năng nhận biết và gỡ lỗi một cách nhanh chóng và chính xác hơn.
Để học lập trình back-end hoàn chỉnh không phải dễ dàng. Khi đã có được một vị trí và thu nhập ổn định, bạn có thể dành thời gian rảnh mỗi ngày để học hỏi thêm từ đồng nghiệp và tiền bối trong công ty. Nhờ những chuyên viên về back-end tư vấn, giải đáp những thắc mắc và chỉ dẫn những mẹo vặt là cách dễ nhất để tự học. Tất nhiên bạn cũng cần tự tin và gan dạ để xin được nhúng tay vào những dự án có liên quan đến cơ sở hạ tầng kỹ thuật mà công ty đang đảm nhiệm.
Bằng thực hành và sự cố gắng bền bỉ, bạn sẽ có thể am hiểu lập trình back-end trong một tương lai không xa và trở thành một lập trình viên full-stack cái gì cũng biết.
Kết luận
Trên đây là lộ trình tự học lập trình từ đầu tại nhà, đặc biệt hữu ích dành cho những người tay ngang vào nghề lập trình.
Tự học không phải là dễ khi bạn không được trợ giúp, chỉ bảo từ bất cứ ai, phải tự mình bơi giữa biển kiến thức và nỗi hoang mang về tương lai. Hy vọng những gì được đút kết từ trải nghiệm thực tế của tác giả, cũng là một lập trình viên “tay ngang”, có thể giúp các bạn nắm được những gì mình cần phải làm trong quá trình tự học lập trình.
Và cũng hy vọng bài viết này có thể tiếp sức cho những bạn tay ngang vào nghề lập trình khi biết rằng chỉ cần chăm chỉ học tập kiến thức cơ bản về HTML/CSS và plugin Javascript là bạn đã có thể tìm được một công việc IT với thu nhập tốt và cơ hội thăng tiến rồi.