Thẳng thắn thừa nhận đi, kể cả dân lập trình chuyên nghiệp đôi lúc cũng cảm thấy như thế. Chính bản thân Sơn ngày xưa cũng từng như vậy đấy Bạn à!
Điều đó còn tồi tệ hơn khi mà Bạn - những người đang tìm hiểu lập trình bị ngộ độc thông tin hay những Bạn mất căn bản đang khao khát tìm kiếm 1 giải pháp, 1 liệu trình đúng đắn hơn. Thì bài viết này chính là dành cho Bạn.
Sơn không tiếc 10 tiếng để viết, Bạn hãy dành 10 phút để đọc.
TƯỞNG TƯỢNG RẰNG, Bạn có 1 bức tranh cụ thể về con đường đi trong lập trình của mình, nơi mà Bạn thấy được ở điểm bắt đầu, và cả những quá trình Bạn sẽ bước đi, đích tới Bạn hằng mong muốn.
Bức tranh đó, nó sẽ không phai mờ theo thời gian, mỗi khi Bạn gặp khó khăn gì, Bạn đều vượt qua nó và Bạn biết cách vượt qua nó và Bạn chắc chắn vượt qua nó.
Cũng như 1 trò game, khi Bạn mới ban đầu chơi, Bạn vẫn chưa rõ đường đi nước bước của game, nhưng khi chơi nhiều lần, Bạn sẽ dần dần rõ và tự vẽ cho mình bản đồ. Bạn biết mọi chướng ngại vật, vì thế dù có bị tổn thương 1 chút xíu trên hành trình đường đi đó, Bạn vẫn chắc chắn vượt qua được. Vì Bạn đã quá rõ trò chơi đó rồi.
Sơn muốn gọi trò chơi đó, tên là “Trò Chơi Lập Trình”.
Bạn chính là nhân vật Mario - đích đến chính là lúc Bạn thành công trong ngành CNTT - Bạn sẽ phải vượt qua rất nhiều chướng ngại vật trong suốt hành trình |
Để Sơn kể cho Bạn nghe những giai đoạn ban đầu khi Sơn học lập trình, liệu Bạn có nhìn thấy được chính bản thân Bạn trong hành trình của Sơn không nhé:
Sơn đã từng chạy đôn chạy đáo, hỏi hết các Thầy Cô về giáo trình lập trình, giáo trình nào nên học, cách học thế nào, rồi rất rất nhiều thứ khác mà Sơn không nhớ hết được.
Có thể kể đến như: 1000 bài tập của Thầy Nguyễn Tấn Trần Minh Khang, giải thuật và lập trình của Thầy Lê Minh Hoàng, nhập môn lập trình của trường đại học Khoa Học Tự Nhiên …
Nhưng Bạn à, Sơn xin thú thật. Lần đầu tiên khi Sơn đọc những thứ đó, Sơn rất rối trí! Sơn đọc nhưng Sơn không hiểu sâu xa. Ngay khi Sơn bắt đầu tìm hiểu về lập trình, Sơn thấy nó là 1 ngôn ngữ gì đó rất khó, 1 ngôn ngữ “trên trời”. Nó không như Sơn tưởng tượng ban đầu: “Chắc cũng chỉ giống như ngôn ngữ tiếng Anh, tiếng Việt thôi”, nào ngờ ... L
Sơn tải rất nhiều các tài liệu về đọc chả biết nó có liên quan gì đến cái mình cần không, cứ thấy có chữ “Lập Trình” là Sơn tải về hết (thực ra cũng có biết mình đang cần cái gì đâu). Rồi Sơn tham gia vào rất nhiều group Lập Trình (thực ra cũng vẫn là thấy chữ Lập Trình là tham gia vào thôi cũng chả biết nó có phù hợp với mình không). Rồi khi Sơn post bài chia sẻ hỏi về cách học thì Sơn như bị tẩu hỏa nhập ma vì không có ai chỉ cho mình 1 lối đi đúng đắn rõ ràng cả: Người thì khuyên nên học ngôn ngữ này, người thì lại khuyên nên học ngôn ngữ kia, người thì lại khuyên nên học công nghệ nọ. Tất cả như 1 mớ lùm xùm mà Sơn không thể nào gỡ rối được.
Và Sơn biết, Sơn đã bị tẩu hỏa nhập ma.
Tồi tệ hơn, khi Sơn tìm hiểu, thì lúc đó trên trường cũng có deadline bài tập, Sơn hầu như dành 1 ngày 18 tiếng đồng hồ để học lập trình. Nhưng Sơn học không đúng cách, Sơn học không bài bản, mỗi deadline với Sơn là một nỗi sợ.
Sơn nói câu này với mọi người là “Sơn cần code để có thể nộp bài kịp lúc”. Và đã có rất nhiều lúc, Sơn muốn bỏ cuộc, vì Sơn thấy nó khó quá, thấy nó khô khan quá, thấy nó chán quá…
Okay, Sơn tạm thời dừng ở đây.
Cho Sơn hỏi 1 câu này để gửi những Bạn đã học qua lập trình: Bạn đã từng cảm giác như Sơn hay hiện tại Bạn đang cảm giác như Sơn?
Cho những ai đang tính đi theo con đường lập trình vì vô tình 1 lí do nào đó. Sơn không hù các Bạn, vì đó là những cảm giác ai học lập trình cũng sẽ trải qua trong đời. Nhưng chỉ có những người vượt qua nó thì đó mới là những người có ý chí sắt đá, đương đầu được với mọi thử thách.
Sơn không tung hô lập trình. Sơn nói với Bạn ở đây bằng những sự trải nghiệm sau 5 năm gắn bó với nó: Những trải nghiệm mà để có được nó Sơn đã phải đánh đổi tiền bạc, thời gian, công sức và cả sức khỏe.
Sơn tin chắc, những ai đang bị mất căn bản sẽ hiểu được nỗi đau của Sơn, vì Sơn đã trải nghiệm rồi. Sơn biết. Nhưng với những người mới đang tìm hiểu về lập trình, về cách học tập, cách nghiên cứu, kỹ năng cần thiết thì đây là 1 bài dành cho Bạn.
Sơn không muốn các bạn phải trải qua quá trình khổ cực nữa.
Không phải khổ cực như Sơn đã từng.
Bởi lẽ đó, Sơn đã tự mình chiêm nghiệm lại - sắp xếp lại hết tất cả kiến thức và trải nghiệm của bản thân sau ngần ấy năm lăn lộn cho nó thành 1 trình tự để chia sẻ đến Bạn. Sơn nói thật không phải ai cũng có thể làm được như vậy đâu Bạn nhé – vì Sơn là dân Lập Trình mà. Vì bản chất Bạn phải hiểu 2 từ LẬP TRÌNH chính là Lập ra Trình tự mà ^^.
Sơn đã bỏ ra 2 tuần liên tục từ sáng sớm đến tối khuya ngồi sắp xếp hết lại tất cả kiến thức và trải nghiệm của mình trong suốt hành trình lặn ngụp trong ngành từ đó đến nay và có cơ hội trải nghiệm ở nhiều lĩnh vực khác nhau để có sự nhìn nhận tổng quát nhất về ngành Công Nghệ Thông Tin và Sơn viết thành 3 bài chia sẻ đến tất cả các Bạn học CNTT.
Nhưng nguyên nhân – động lực nào khiến Sơn lại làm như vậy?
Đó là vì Sơn có 1 niềm đam mê và sự trân trọng to lớn dành cho Công Nghệ Thông Tin cũng như quyền năng đáng kinh ngạc của nó đang tác động đến đời sống hiện nay. Lập trình hiện hữu như những nguồn năng lượng có cánh, đưa cả thế giới đến những chân trời mới. Sơn cảm thấy rất tiếc khi chứng kiến nhiều Bạn không nhìn thấy được những điều hay ho ấy (giống như Sơn ngày xưa) và Sơn tin rằng chỉ cần Bạn nhìn ra được thì tâm thế đón nhận của Bạn với ngành sẽ thay đổi và nó sẽ mang đến nhiều thành công với Bạn. Sơn cảm thấy tiếc nuối vì giá như những điều này ngày xưa Sơn được biết sớm hơn thì Sơn đã không mất nhiều thời gian lặn ngụp và thành quả chắc chắn tốt hơn những gì bây giờ. Nhưng tiếc là chẳng có ai nói với Sơn cả. Cuộc sống là 1 cuộc hành trình trao nhận giá trị và Sơn đang cố gắng góp phần mang đến nhiều giá trị cho cuộc sống này thông qua những kiến thức và trải nghiệm của mình. Bạn sẽ mở lòng để đón nhận giá trị từ Sơn chứ? Dẹp bỏ đi cái tôi của bản thân “Tôi biết rồi” chắc chắn Bạn sẽ gặt hái nhiều giá trị và thành công!
Tham khảo các bài viết của Sơn dưới đây để có cái nhìn đúng và chuẩn trong lập trình.
Phần 1: Người chọn nghề hay Nghề chọn người: https://goo.gl/Zn5ZuV
Phần 2: Những điều hay ho của ngành CNTT – Cơ hội và Thách thức cho những ai dấn thân với ngành: https://goo.gl/6XVvF7
Phần 3: Con đường khởi đầu với ngành CNTT: https://goo.gl/PQ9wJK
Chợt nhận ra Sơn có vài câu mà Sơn muốn hỏi bạn:
- Bạn có đang làm việc chăm chỉ chưa?
- Bạn có cố gắng nỗ lực hết mình chưa?
- Bạn có đang trong tình trạng dậm chân tại chỗ? Điều đó với bạn là ổn, hay là tốt?
Bạn nhận thấy rằng việc phát triển bản thân, để gạt bỏ đi cái lòng tự tôn của bản thân “ừ em biết, em biết là em cần nỗ lực, em cần phải chăm chỉ, em cần phải bla bla đủ kiểu thì em mới học lập trình được” và rồi Bạn từ chối mọi lí do để tiếp thu thêm thông tin từ người khác, Bạn biết nhưng Bạn chưa hành động quyết liệt. Bạn hành động quyết liệt nhưng Bạn chưa có kết quả, Bạn khao khát kết quả tốt đẹp nhưng nó không tới, nó mãi mãi bị xoay vòng trong cái mớ bòng bong vớ vẩn của 3 chữ “mất căn bản”.
Dừng. Dừng lại!
Thà rằng bỏ đi hết, ta bắt đầu lại từ đầu.
Thà rằng bỏ đi hết, liệu đau khổ đến thế có đáng hay không?
Dành cho những Bạn đang đọc đến đây, Sơn trân quý các Bạn, vì các Bạn tin ở Sơn nên các Bạn mới vẫn còn đọc.
Sơn mong Bạn hãy lấy 1 tờ giấy ra, trả lời cho Sơn 3 câu hỏi sau:
- Mục đích sống của bản thân Bạn là gì?
- Công cụ nào giúp Bạn thực hiện được mục đích sống ấy?
- Mỗi sáng thức dậy tâm trạng của Bạn đón chào 1 ngày mới như thế nào?
Dành thời gian trả lời nó đi các Bạn, và để đối chiếu xem suy nghĩ của các Bạn và suy nghĩ của Sơn giống nhau mấy phần nhé. Vì bài viết này chính là giúp Bạn có cái nhìn đúng đắn về việc chọn lựa ngành nghề trong cuộc sống. Giúp Bạn hiểu được căn bản giá trị của ngành CNTT và quan trọng vẫn là giải đáp 3 câu hỏi trên. Bài viết này dành tặng Bạn: Phần 1: Người chọn nghề hay Nghề chọn người: https://goo.gl/Zn5ZuV
Nếu Bạn đang vất vả tìm cho mình những lí do vì sao mình học tệ lập trình, đó không phải lỗi của Bạn.
Cách hiểu của Bạn trong lập trình, sự tìm tòi và dành thời gian cho nó của Bạn là ít, hay chưa đúng khiến cho Bạn duy trì mãi tình trạng “mông lung như 1 trò đùa”.
Bạn không cố ý làm điều đó, Bạn không xấu. Vì khi Bạn đọc đến đây, là Bạn đang tìm kiếm 1 giải pháp sâu sắc hơn giúp giải quyết vấn đề của Bạn.
Sơn cũng đã từng như vậy, khi Sơn tưởng rằng “mình đã hiểu rất rõ về ngành Công Nghệ Thông Tin” cũng là thời khắc Sơn nhận ra sự thật rằng: Sơn chẳng hiểu gì về nó cả.
Sơn không có khái niệm rõ về ngành CNTT này nó tác động sâu sắc đến cuộc sống ở mức nào, Sơn chỉ biết là nó có tác động nhưng Sơn không biết nó xoáy sâu cụ thể thế nào.
Trải nghiệm làm việc ở nhiều lĩnh vực khác nhau và gặp gỡ nhiều người ở những lĩnh vực khác nhau – lắng nghe họ chia sẻ và thấy được những thành tựu của họ - Sơn ngày càng nhìn thấy và hiểu rõ bản chất của ngành CNTT hơn. Hiểu sâu về giá trị của ngành CNTT đang tác động đến đời sống hiện nay ở tất cả mọi ngành nghề lĩnh vực như thế nào? Hiểu về những cơ hội kiếm tiền trong ngành CNTT và thấm thía 1 chân lý “Kiến thức đến đâu thì tiền đến đấy”, cả những nỗi khó khăn chỉ người trong ngành mới thấu.
Nếu Bạn cảm thấy đã sẵn sàng để tiếp nhận nó, để tránh cho mình cũng mắc phải nó. Thì đây – Phần 2: Những điều hay ho của ngành CNTT – Cơ hội và Thách thức cho những ai dấn thân với ngành: https://goo.gl/6XVvF
Cảm xúc của Sơn bây giờ đang rất hỗn độn các Bạn ạ! Vì Sơn phải nhớ lại quãng thời gian đầu khi Sơn mới tiếp xúc với ngành Công nghệ thông tin, về những lời khuyên - có đúng và có sai.
Có ai đó từng nói với Sơn là: Không quan trọng là Bạn bắt đầu từ đâu, miễn là Bạn cứ tiếp tục rồi tiếp tục viết code, tiếp tục đọc code, tiếp tục chỉnh sửa code thì điều đó là SAI LẦM!!
Đó là 1 sai lầm rất lớn. Nền móng của 1 lập trình viên đó là phải có TƯ DUY LẬP TRÌNH trước tiên, lập trình viên không phải những con vẹt học thuộc lòng.
Để Sơn cho Bạn 1 ví dụ giúp Bạn dễ hình dung thế nào được gọi là TƯ DUY LẬP TRÌNH nhé:
Yêu cầu: Tính tổng các số từ 1 đến 100.
Cách 1: cộng lần lượt 100 số đó lại. S = 1 + 2 + … + 100 => Bạn sẽ cho 1 vòng lặp chạy liên tục từ 1 đến 100 và liên tục cộng dồn các giá trị lại.
Cách 2: Ta nhìn thấy từ số 1 đến số 100 có chính xác 50 cặp số, lấy số (1+100)*50 là ra được kết quả (vì 1 + 100 = 2 + 99 = 3 + 98 = … 50 + 51). Vậy công thức S = 1 + 2 + … + n kết quả luôn là: (1 + n) * n / 2 => Chỉ cần thế giá trị n vào là chúng ta ra ngay kết quả không cần phải mất công xét duyệt vòng lặp.
Kết luận: Cách 2 tốt hơn Cách 1 sẽ nhanh ra kết quả hơn.
Bạn khi làm bài này thường áp dụng cách nào?
Sơn tin chắc 99% các Bạn khi gặp vấn đề trên đều sẽ áp dụng cách 1 vì đó là cách mà “Các Bạn được dạy” và các Bạn ngầm như học thuộc lòng theo lối mòn tư duy đó cứ thế mà áp dụng không suy nghĩ gì hơn (theo kiểu mặc định như đó đã là 1 công thức)
ĐÓ, LÀ TƯ DUY LẬP TRÌNH.
Việc mà sở hữu tư duy lập trình nó rất quan trọng, khi có được nó thì các bạn sẽ có cái nhìn rất logic ở mọi vấn đề, có khi bạn sẽ lật ngược vấn đề lại mà giải quyết.
Có thể với ví dụ trên Bạn sẽ nghĩ rằng: “Thì cách nào chả ra kết quả như vậy”. Đúng là kết quả như nhau nhưng cách làm thì khác nhau từ đó năng suất cũng khác nhau. Hãy thử tượng nếu bài toán trên với n không phải là 100 mà là 1 tỷ thì liệu các Bạn áp dụng Cách 1 thì máy tính của Bạn sẽ chạy trong bao lâu mới ra được kết quả? So với cách thứ 2 chỉ Enter là ra kết quả ngay. Đấy mới chính là vấn đề đấy!
Bạn có biết sự thật rằng ngành CNTT ngày nay đã rất khác xưa, công nghệ ngày nay đã quá mạnh mẽ và hỗ trợ quá đa dạng từ các tập đoàn công nghệ và cộng đồng hỗ trợ to lớn. Các ngôn ngữ lập trình mới mẻ và uyển chuyển - các bộ framework đồ sộ hỗ trợ đa dạng xử lý mọi vấn đề (xử lý hình ảnh, xử lý giọng nói, xử lý âm thanh …). Thậm chí có thể nói vấn đề của Lập Trình lúc này không phải là cố gắng tư duy ra cái gì đó mới nữa mà là sử dụng triệt để những thứ đang có sẵn. Việc ra cái mới là việc của các tập đoàn công nghệ lo, còn chúng ta – dân lập trình viên trước tiên hãy sử dụng triệt để tất cả những thứ đã có sẵn đi đã. Mà muốn làm được như vậy thì TƯ DUY LẬP TRÌNH là cái không thể thiếu với 1 dân lập trình viên trên con đường sự nghiệp.
CĂNG CƠ PHẢI VỮNG.
Mà để căng cơ vững, Bạn cần hiểu đường đi nước bước trong công nghệ thông tin này là như thế nào. Bài viết sẽ giúp Bạn hiểu về ngành CNTT với các chuyên ngành cụ thể ở bên trong – Hiểu về các hướng đi của Lập Trình và cách để tiếp cận tốt nhất – Hiểu tầm quan trọng của 4 môn tứ trụ nền tảng đối với ngành CNTT – Hiểu chi tiết từng môn sẽ học những gì ở bên trong với giá trị ứng dụng thực tế như thế nào? (Đây cũng là sai lầm phổ biến của những Bạn khi mới học lập trình không hiểu rõ tầm quan trọng của những kiến thức nền tảng để có tâm thế đón nhận tốt hơn). Cuối cùng là lời khuyên lộ trình để rút ngắn thời gian sớm đạt đến thành công trong ngành.
Tất cả nằm trọn ở đây đang chờ Bạn khám phá: Phần 3: Con đường khởi đầu với ngành CNTT: https://goo.gl/PQ9wJK
Ma lực của thói quen trì trệ là gì? Đó chẳng phải là khiến cho chúng ta tìm kiếm những lý do để biện hộ cho cá nhân trước những việc gấp gáp cần làm, hay chỉ là việc nhỏ nhặt không muốn thay đổi?
Đọc đi Bạn à, trải nghiệm không chỉ là người Thầy tốt nhất, mà đó còn là người Thầy duy nhất.
Và cuối cùng, nếu Bạn đang gặp vấn đề trong việc học Lập Trình CNTT có thể inbox Facebook tâm sự nếu Bạn cảm thấy tin tưởng Sơn. Sơn luôn dành thời gian mỗi ngày ra để lắng nghe và cho Bạn những lời khuyên định hướng tốt nhất trong ngành. Không nhất thiết Bạn phải đăng ký học với Sơn, giúp được Bạn là điều Sơn mong muốn và từ đó Bạn giới thiệu Sơn đến với nhiều người bạn bè của Bạn là điều tốt nhất Bạn trả ơn Sơn rồi.
Ngày ý nghĩa là ngày học được kiến thức mới, hãy để ngày hôm nay là ngày ý nghĩa của Bạn.
Tất cả vì sự thành công của Bạn.
Chúc những điều tốt đẹp nhất đến với Bạn - Bạn của Sơn!
Nguyễn Việt Nam Sơn
.
FOUNDER & CEO Công ty Việt Nam Sơn
.
Website: http://www.sondeptrai.com
Email: [email protected]
Mobile: 01267.666.702
Facebook: https://www.facebook.com/nvnamson
0 nhận xét:
Đăng nhận xét