TCLT: Ông cha ta có câu: “Vạn sự khởi đầu nan”, rồi cũng lại có câu: “Có công mài sắt, có ngày nên kim”; là con người thì ai ai cũng muốn có được thành công, nhưng con đường bắt đầu thì thường lắm chông gai, trở ngại, và rồi sẽ có nhiều người sớm bỏ cuộc dọc đường. Thế nhưng, chính những khó khăn ban đầu đó là cơ hội để những người có ý chí, có quyết tâm rèn luyện bản thân mình. Có những lúc ta lo lắng, đôi khi sợ hãi, và rồi cũng có những lúc ta khát khao, miệt mài cố gắng, tất cả rồi cũng sẽ qua đi, để rồi khi nhìn lại ta thấy chặng đường ta đã qua như là một cuốn phim với nhiều cung bậc cảm xúc. Bạn Dương Văn Định, một lập trình viên, sẽ chia sẻ với chúng ta về con đường học lập trình mà mình đã trải qua, mời các bạn cùng đọc và suy nghẫm.

Bài viết này là nói về một quá trình học lập trình giống như một mớ bòng bong và bài viết này cũng vậy. Đây hầu hết là những kinh nghiệm mà tôi đúc rút  được và xin chia sẻ cùng mọi người.

Bỡ ngỡ

Bước đầu khi bắt tay vào một lĩnh vực nào đó, bỡ ngỡ là điều không thể tránh khỏi ở mỗi con người. Ở đây tôi muốn đề cập tới vấn đề học lập trình, nói nôm na là vậy. Ngay cả khi nhà trường đã có được rõ ràng các môn học ở từng kì nhưng tất cả đều là mới mẻ đối với tôi.

Khi đó tôi học thực sự là rất u mê, học mà không có phương hướng nào cả; không biết có phải là do tôi chưa hề có một chút nhận thức nào về con đường tôi chọn. Không có ai là người kèm cặp và định hướng, học xong kì I  mà kiến thức lập trình trong tôi dường như là chưa có gì hết vậy.

Cứng cáp hơn chút

Tới khi lên đến kì hai, mọi sự dường như mới bắt đầu đối với tôi. Được vào học một lớp mà hầu hết là các bạn bè mới và Thầy cũng mới. Tôi thực sự ấn tượng với ngày đầu tiên được học với một phương pháp hoàn toàn mới, điều này khiến cho tôi thực sự hứng thú; mỗi buổi học từ đó với tôi thực sự có chất lượng. Mỗi khi có bài tập được giao tôi luôn cố gắng hoàn thành sớm nhất có thể. Cộng thêm nữa là được sự hỗ trợ từ phía người Thầy. Mỗi khi không hiểu hay thắc mắc điều gì đó thì tôi lại “lôi” người Thầy đó ra để tra hỏi. :D.

Từng ngày, tôi dần dần giải quyết được hầu hết những trở ngại khi gặp phải. Cứ như vậy nó khiến cho tôi có thêm động lực và quyết tâm hơn cho những buổi học và bài tập tiếp theo.

Bước đầu lấy đà thực sự khó khăn với hầu hết ai đó trong mỗi công việc. Nhưng đến khi mọi thứ đã đi vào quỹ đạo của nó thì dường như những khó khăn trở ngại đối với tôi ngày một giảm đi.

Kiến thức ngày một lớn lên và đã đến lúc cần phải xác định xem mình theo con đường nào. Lúc đó tôi nghe mọi người đi trước đồn rằng: Có 2 hướng, một là Java, hai là .NET, trong đó thì Java khó hơn rất nhiều. Và bản thân tôi tự thấy rằng mình không khá khẩm gì nên tôi cứ đinh ninh trong đầu là sẽ chọn .NET.

Một lần vinh dự được ngồi trực tiếp trò chuyện với người Thầy của tôi, cũng với chủ đề theo ngôn ngữ này hay ngôn ngữ kia.  Mỗi lần được trò chuyện như vậy lại củng cố cho tôi thêm niềm tin để có thể vững bước hơn trong sự nghiệp này. Tôi không còn suy nghĩ là theo cái này cái kia nữa, mà thay vào đó tôi tập trung học Thầy rồi học bạn.

Tôi phải xoay sở trong một thời gian khá dài để có thể nắm vững các kiến thức ở mức độ nhất định nào đó. Đôi lúc nhìn về tương lai, tôi lo lắng cho sau này, liệu lựa chọn của mình có đúng hay không? Mọi thứ thật mông lung, nhiều lúc nó khiến tôi sợ sệt. Có thật nhiều thăng trầm mà tôi không thể kể hết.

Đến một thời điểm khác tôi lại được sự giảng dạy của người Thầy khác, người Thầy này cũng ảnh hưởng tới tôi rất nhiều. Và sau nay tôi cảm thấy mình thật may mắn khi được hầu hết các Thầy tâm huyết giảng dạy cho mình. Có một câu nói của Thầy thế này: “khi code cũng sẽ phải như là lúc em muốn ăn gì đó và phải biết được nó ở đâu để mà đi tới đó mua”, đại loại là như vậy. Thật vậy, làm cái gì cũng cần phải hiểu biết, từng khâu từng bước. Cũng giống như bạn nấu ăn vậy, lúc nào thì cần lửa to, thêm gia vị, v.v.. Khi bạn đã thực sự kiểm soát được những điều này thì đó là lúc đó lập trình đã bắt đầu ngấm vào người rồi đó.

Điểm nhấn

Thời điểm cao trào nhất là lúc tôi làm đồ án bảo vệ kì II bằng Java, khi đó kiến thức của tôi cũng chưa đâu vào đâu cả. Và một điều bất ngờ khiến tôi cảm thấy lo lắng đó là việc tôi được chọn làm nhóm trưởng. Tôi cũng không nhớ là tôi  đã chiến đấu như thế nào để hoàn thành cái đồ án đó cả. Khi đó tôi đã phải nỗ lực hết mình, tìm hiểu thật nhiều để có thể làm được. Có lẽ ai mà ở trong hoàn cảnh thời gian gò bó, luôn ở trong tình trạng nước rút thì sẽ hiểu được tâm trạng của tôi lúc đó. Chính nhờ đó mà tôi đã vượt qua chính mình, và cũng bắt đầu từ đó tôi đã chính thức định hình được chắc chắn con đường của mình đi sau này. Cũng vì tôi không quá xuất sắc nên tôi luôn luôn cố gắng học hỏi.

Cần thiết

Đổi chủ đề một chút, bỗng nhiên tôi cần phải đề cập tới vấn đề giảng dạy. Cách giảng dạy của người Thầy đầu tiên của tôi ở kì 2 luôn khiến tôi thấy hứng thú. Đó là việc cho học sinh chúng tôi nói lên những suy nghĩ của mình. Không sợ sai, sợ ai đó mắng chửi hay cho điểm thấp cả. Ở đó chúng tôi được thỏa sức hỏi và trả lời kể cả là sai nhưng khi đó nó làm cho mỗi cá nhân chúng tôi cảm thấy tự tin vào chính mình hơn rất nhiều. Cả một tập thể cùng nhau chia sẻ và học tập.

Đúng vậy, sau một thời gian khá dài tôi đã đã thấy được rằng không nhất thiết là phải theo cái này cái hay cái kia. Bởi vì mỗi ngôn ngữ đều có những khái niệm hay tư tưởng tương đồng nhau cả. Cứ như vậy để bắt tay vào một ngôn ngữ mới nào đó cũng không quá khó khăn.

Khi bạn cảm nhận được tức là bạn đã thông được tư tưởng. Khi học không nhất thiết là cùng một thời điểm là phải hiểu toàn bộ các khái niệm hay vai trò của các hàm hay của một design pattern nào cả. Cái chính theo tôi nghĩ là cần phải hiểu được từ những cái nhỏ nhặt nhất rồi dần dần tích tụ kiến thức lại khi đó ta sẽ có một cái nhìn tổng quan hơn. Lúc đó bạn sẽ ngộ ra kiểu như: à ừ, gật đầu và thực sự tâm đắc, cười vui khôn tả về vấn đề mà bây lâu nay ta chưa hiểu. Cứ như vậy bạn sẽ có được một nền tảng vững chắc.

Mình nghĩ khi code mà tất cả các khái niệm đều mông lung thì cái sản phẩm của mình tạo ra đó gần như là một cách sao chép và kiến thức đọng lại trong đầu bạn chẳng được là bao.

Tập cách diễn đạt biện luận, giải thích

Khi học nghề này cái mà theo tôi nghĩ không thể thiếu là những lúc tụ tập anh em, bạn bè, hay người Thầy để cùng trao đổi về một chủ đề nào đó, hay đơn giản chỉ là ngồi cafe, trà đá chém gió. Một cá nhân sẽ không thể hiểu được một cách cặn kẽ về tất cả các khía cạnh của một vấn đề; mỗi người mỗi vẻ, do đó việc trao đổi với nhau sẽ giúp cho ta có được những câu hỏi hay và những câu trả lời thật lý thú.

Khi bạn càng lấy được nhiều các ví dụ thực tế để gắn kết với vấn đề của bài toán thì khi đó bạn đã nắm chắc nó trong tầm tay, và bạn không hề cảm thấy có chút băn khoăn nào cả.

Học cái này là không được giấu dốt, phải liên tục hỏi thì như vậy vấn đề trong mình sẽ được giải đáp. Đừng để một sự không hiểu biết nhỏ nó ngày một lớn lên trong người mình, điều này thực sự là nguy hiểm.

Tôi ngày một trưởng thành và cứng cáp hơn, tôi đã tự biết được cần phải tìm hiểu những thứ gì để phục vụ cho việc đi làm sau này. Lúc này mọi người nên tìm một ai đó là anh chị ở thế hệ đi trước để mách cho mình. Để tránh trường hợp khi đi phỏng vấn người ta hỏi tới mà mình vẫn chưa hề hay biết về công cụ hay ngôn ngữ nào đó. Khi bạn tìm việc, các yêu cầu của nhà tuyển dụng cũng đã cho ta một số câu trả lời, trong yêu cầu của họ đã liệt kê sẵn các ngôn ngữ mà họ cần tuyển.

Đi du lịch hay đi đâu đó gần gần để ngắm cảnh, ngắm những con người  quanh ta để ta lấy được những cảm xúc từ họ. Quanh ta có bao nhiêu người có khát vọng sống mạnh mẽ. Để từ đó ta tránh được những cảm xúc bi quan, những tác động không tốt cho con đường này vốn có nhiều khó khăn. Cố lên, quanh ta còn có mọi người nữa, hãy cũng  quyết tâm và cùng sánh bước.

Thói quen đọc sách

Không những chỉ đọc sách lập trình mà ta cần đọc những cuốn sách có tính chất làm thức tỉnh những tiềm năng có trong ta, ta cũng nên học tập theo những tấm gương sáng, từ đó rút kinh nghiệm và giúp cho bản thân mình có nhiều cách nhìn nhận sự việc từ nhiều góc độ khác nhau.

Mẹo nhỏ khi tìm những cái mà nhà tuyển dụng họ cần

Tìm kiếm những trang tuyển dụng, lúc đó bạn sẽ thấy được vô số các công nghệ mà ta cần phải tìm hiểu để tránh việc bỡ ngỡ khi đi phỏng vấn.

Bắt tay ngay đi nào!!!!!

Nguồn hay:

(Please Don’t Learn to Code)  http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html

(Creative Code: 14 Ways to Learn From Creative Programmers) http://lifedev.net/2008/07/programmer-creativity-boost/

Hi hi. Như vậy mình nghĩ cũng đã chia sẻ khá nhiều quá trình học tập của mình. Hy vọng khi các bạn đọc bài viết này cũng sẽ thấy và lấy được chút kinh nghiệm. Nhưng cũng không tránh khỏi những ý kiến trái chiều.

Cảm ơn mọi người.

Java passion!

Dương Văn Định