Các câu hỏi trên Reddit hoặc Quora thường có dòng "Làm cách nào để biết liệu tôi có thành công với tư cách là một lập trình viên hay không?", đặt biệt là khi ai đó đang cân nhắc thay đổi nghề nghiệp, hoặc tò mò về phát triển phần mềm.

Trên thực tế, đây là một rào cản lớn trong suy nghĩ khi những người không được đào tạo chính thức về máy tính muốn gia nhập thế giới lập trình. Quá là điều bình thường khi bạn nghĩ rằng nếu bạn không giỏi việc này, thì mong muốn của bạn là vô nghĩa. Giống như nếu bạn muốn trở thành một diễn viên và tự hỏi liệu mình có diễn xuất giỏi không.

Tác giả bài viết là một giảng viên dạy lập trình Web full-stack khẳng định rằng: hiếm khi thấy một sinh viên không thể học lập trình, kể cả những người lần đầu tiếp xúc. Lập trình như một kỹ năng cơ bản của con người, giống như đọc, viết và số học. Ai cũng có thể làm được, đó là một phần năng lực của con người chúng ta, nhưng cần phải đầu tư thời gian để trau dồi và học hỏi. Tuy nhiên, ông cũng đã chứng kiến nhiều sinh viên vật lộn với việc lập trình theo nhiều kiểu. Và nếu bạn nhìn thấy chính mình trong danh sách này, bạn thực sự tệ ở lập trình và có lẽ nên tìm một công việc khác. Nhưng nếu bạn vẫn cam kết với mục tiêu trở thành lập trình viên, bạn có thể dễ dàng đối mặt với những vấn đề này và thay đổi.

“Lập trình là một kỹ năng cơ bản của con người, giống như đọc, viết và số học. Bất cứ ai cũng có thể học lập trình với thời gian và nỗ lực.”

Danh sách sau đây sẽ giúp bạn biết liệu bạn có tệ ở lập trình không - và bạn có thể làm gì với nó nếu muốn thay đổi.

1. Thiếu tò mò

Nếu bạn thiếu sự tò mò về máy tính và cách thức hoạt động của công nghệ, bạn sẽ không bao giờ thành công với tư cách là một lập trình viên.

Yêu cầu cơ bản cho việc học là sự quan tâm tích cực đối với điều bạn đang học. Nếu bạn không sở hữu óc tò mò về công nghệ, bạn sẽ không có đủ nghị lực để kiên trì học hỏi những kiến ​​thức sâu và rộng cần thiết để trở thành một lập trình viên thành công.

Ngược lại, thế giới công nghệ giống như một đại dương khổng lồ gồm những lĩnh vực thú vị, những ý tưởng có liên quan với nhau và những khả năng có thể kích thích trí tưởng tượng. Cần phải có động lực nội tại vốn có để muốn đi sâu vào và khám phá tất cả những gì bạn có thể.

Tìm sự tò mò của bạn: Hãy tự hỏi bản thân xem lập trình có thực sự khiến bạn hứng thú hay không. Nếu câu trả lời trung thực của bạn là không, hãy tìm thứ gì đó mà bạn quan tâm. Tiết kiệm thời gian và năng lượng cho bản thân. Nhưng nếu câu trả lời của bạn là “Có”, thì hãy thúc đẩy bản thân tìm kiếm điều gì đó mới mẻ mà trước đây bạn chưa nhận ra, nhận ra đại dương bao la và lặn sâu hơn một chút.

2. Thiếu tự chủ và tháo vát

Nếu bạn không phát triển khả năng giải quyết vấn đề cho chính mình, bạn sẽ không bao giờ thành công với tư cách là một lập trình viên.

Không nghi ngờ gì nữa, để trở thành một lập trình viên thành công, bạn phải tự tin vào khả năng học hỏi của CHÍNH BẠN. Đây thực sự là một kỹ năng sống cơ bản - nếu bạn trên 18 tuổi, không ai có nghĩa vụ phải dạy bạn bất cứ điều gì. Đó là thực tế. Việc tìm kiếm thông tin và sự trợ giúp là tùy thuộc vào bạn để tìm hiểu điều gì quan trọng đối với bạn.

Trong thế giới phát triển, tất cả thông tin bạn cần đều được tìm thấy ở nơi kỳ diệu trước đây được gọi là Siêu xa lộ thông tin (Information Super Highway). Thư viện đồ sộ này có một cánh cửa khổng lồ: Google. Biết rằng bạn có thể chỉ cần gõ bất cứ thứ gì bạn muốn vào Google và nhận thông tin bạn cần là rào cản đầu tiên phải vượt qua khi bạn muốn học các kỹ năng cần thiết trong công nghệ.

Ngoài việc trở thành một người tra google tốt, tất cả các ngôn ngữ lập trình đều có tài liệu và thông số kỹ thuật rất rõ ràng về cách chúng hoạt động. Nó giống như sử dụng từ điển - khi bạn thấy một từ mà bạn không nhận ra, bạn sẽ tra từ đó. Cách nhanh nhất, đáng tin cậy nhất để xây dựng kỹ năng của bạn như một lập trình viên là chỉ cần đọc tài liệu. Tất cả tài nguyên nằm trong đó.

Sử dụng các Nguồn lực: Bạn phải nhận ra rằng tất cả các câu trả lời bạn cần thực sự đều ở đâu đó ngoài kia. Khi bạn có một câu hỏi, buộc mình phải tra google nó trước khi hỏi người khác để có câu trả lời và kiểm tra tài liệu. Tiết kiệm thời gian của người khác khi bạn đã cố gắng và thực sự không tìm được câu trả lời mình cần.

3. Thiếu kiên trì khi đối mặt với một vấn đề

Nếu bạn dễ dàng bỏ cuộc khi đối mặt với các vấn đề, bạn sẽ không bao giờ thành công với tư cách là một lập trình viên.

Bản chất của lập trình là giải quyết vấn đề. Đó là toàn bộ lý do máy tính được phát minh! Bất cứ khi nào bạn bắt đầu làm việc trên một chương trình, bạn sẽ gặp phải một đống vấn đề. Và một khi bạn giải quyết một vấn đề, hầu như luôn có một vấn đề khác ngay sau nó. Bạn đang tiến bộ, nhưng luôn có những vấn đề mới phải đối mặt.

Đối mặt với đống vấn đề đó có thể khiến bạn nản lòng và chán nản. Nếu bạn cảm thấy mọi thứ chỉ nên “hoạt động”, thì bạn sẽ không có năng lượng để tiếp tục khi các vấn đề tiếp tục và từng chút một đánh gục tinh thần của bạn. Theo nghĩa đen, công việc của bạn là tìm ra lý do tại sao mọi thứ không hoạt động.

Thường có một hoặc hai sinh viên mỗi lớp dường như có tật gặp phải nhiều vấn đề hơn các học sinh khác - những vấn đề thường khá ngẫu nhiên và khó hiểu. Bạn càng phải đối mặt trước nhiều vấn đề thì khả năng học sâu và kỹ hơn càng tăng lên. Nếu họ có thể hiểu được những vấn đề này, họ sẽ nhanh chóng nhận ra rằng họ tự tin hơn vì họ đã đối mặt và giải quyết nhiều vấn đề hơn so với các sinh viên bình thường.

Kiên nhẫn chấp nhận: Bạn cần nhận ra rằng các vấn đề bình thường không phải là vấn đề, mà thực tế là thách thức. Mỗi thử thách bạn phải đối mặt và vượt qua mang lại cho bạn sự hiểu biết sâu sắc hơn và khả năng tốt hơn để đối mặt với những thử thách mới và nhanh chóng giải quyết những thử thách cũ.

4. Không có cảm giác thành công trong việc vượt qua một vấn đề

Nếu bạn không cảm thấy hứng thú và hoàn thiện sau khi giải quyết một vấn đề, bạn sẽ không bao giờ thành công với tư cách là một lập trình viên.

Liên quan đến vấn đề trước đây của việc từ bỏ quá dễ dàng, là thiếu “cảm giác hưng phấn” khi bạn đã giải quyết thành công một vấn đề. Khi việc sửa lỗi và các vấn đề trở thành guồng quay như không bao giờ kết thúc, bạn sẽ vụt mất sự phấn khích khi khắc phục một vấn đề.

Thực sự là bạn phải cần một liều dopamine khi vượt qua một vấn đề, tương tự như trải nghiệm hoàn thành một cấp độ trong trò chơi điện tử hoặc giải quyết một thử thách như ô chữ hoặc sudoku. Nhưng nếu bạn đã mất khả năng cảm nhận những cảm giác đó, hoặc không bao giờ thực sự quan tâm ngay từ đầu, bạn sẽ không thể trải nghiệm niềm vui đến từ việc lập trình. Nếu bạn xem lập trình là một công việc cực nhọc diễn ra đều đều mà bạn chỉ muốn đạt được kết quả dễ dàng nhất có thể, bạn sẽ không bao giờ thực sự là một lập trình viên thành công.

Ăn mừng chiến thắng của bạn: Bất cứ khi nào bạn giải quyết một vấn đề mà bạn gặp khó khăn, dù nhỏ đến đâu, hãy luôn tự hào về thành tích của mình, nghỉ ngơi và tự chúc mừng vì công việc đã hoàn thành tốt. Hãy để cảm giác thành công tràn ngập và tiếp thêm năng lượng cho bạn cho vấn đề tiếp theo mà bạn phải đối mặt.

5. Thiếu kiên nhẫn về học tập và hiểu biết

Nếu bạn thiếu kiên nhẫn trong việc học và mong muốn làm chủ mọi thứ một cách nhanh chóng và dễ dàng, bạn sẽ không bao giờ thực sự thành công trong việc lập trình.

Là con người, chúng ta là những sinh vật có giới hạn. Mặc dù thế giới của chúng ta chuyển động ngày càng nhanh hơn và máy tính là nguyên nhân chính dẫn đến điều đó, chúng ta chỉ có thể di chuyển nhanh nhất có thể. Bộ não của chúng ta hoạt động ở một tốc độ nhất định, và tùy thuộc vào quá khứ, niềm tin, trạng thái cảm xúc, sức khỏe của chúng ta,… tất cả chúng ta sẽ học và tích hợp thông tin với tốc độ khác nhau.

Thế giới công nghệ giống như một đại dương bao la mà bạn sẽ không bao giờ khám phá hết, bạn sẽ không bao giờ đạt đến điểm mà bạn là bậc thầy, mà không có gì khác để học. Nếu bạn để bản thân bị choáng ngợp, bạn sẽ luôn cảm thấy áp lực phải “bắt kịp” và cảm thấy rằng bạn không bao giờ biết đủ. Nếu bạn không thể chấp nhận những gì bạn biết và sau đó học thêm một chút nữa, bạn sẽ cảm thấy mình chẳng đi đến đâu và bỏ cuộc.

Thay vào đó, bạn cần tận hưởng hành trình học hỏi cho chính mình. Mỗi kiến ​​thức nhỏ bạn có được, hoặc kỹ năng mới bạn đạt được cần phải khiến bạn hứng thú. Giống như giải quyết vấn đề, bạn cần để bản thân cảm thấy tự hào khi nhận ra rằng bạn đã tiến được một bước, dù đó là một bước nhỏ.

Thừa nhận sự tiến bộ của bạn: Có rất nhiều điều để học hỏi và hành trình lập trình không bao giờ kết thúc. Nhưng kiến ​​thức là tích lũy, vì vậy hãy tự hào về những gì bạn biết và tin tưởng rằng mọi nỗ lực bạn thực hiện trong quá trình học tập của mình sẽ tạo ra nền tảng kiến ​​thức vững chắc cho bất cứ nơi nào sự nghiệp của bạn đưa bạn đến.

6. Chán hoặc mệt mỏi vì suy nghĩ

Nếu bạn lười suy nghĩ và xem việc tập trung suy nghĩ như một việc vặt, bạn sẽ không bao giờ thực sự thành công trong việc lập trình.

Lập trình là một hoạt động tư duy. Là con người, chúng ta thực sự giỏi suy nghĩ, mặc dù thực tế là chúng ta thường dành cả ngày để suy nghĩ, nhưng chúng ta lại lười… làm việc đó. Khả năng duy trì sự tập trung và nỗ lực tập trung vào một vấn đề duy nhất trong một khoảng thời gian là rất khó nếu bạn chưa quen với nó.

Các triệu chứng của điều này bao gồm nhìn chằm chằm vào màn hình một cách trống rỗng, cảm thấy có một đám mây phủ xuống suy nghĩ của bạn, trì hoãn một vấn đề, lật giữa các tab trình duyệt và tuyệt vọng quét StackOverflow để tìm “câu trả lời”. Đây là những dấu hiệu cho thấy bạn đã gặp phải hạn chế về tinh thần và cần phải tìm cách vượt qua.

Trong khi lập trình, bạn sẽ cảm thấy mệt mỏi và suy nghĩ thực sự đốt cháy năng lượng thể chất giống như tập thể dục. Khi bạn không quen sử dụng năng lượng tinh thần cần thiết, bạn có thể cảm thấy khó tập trung. Nhưng nó cũng giống như đến phòng tập thể dục, bạn càng tập nhiều, bạn sẽ càng khỏe.

Tâm trí của bạn là cơ bắp: Hãy tin tưởng rằng bộ não của bạn giống như một cơ bắp - khi bạn sử dụng nó, nó sẽ trở nên tốt hơn và hiệu quả hơn trong suy nghĩ. Khi bạn ghép các mảnh lại với nhau và phát triển các khái niệm tinh thần, việc khám phá các giải pháp trở nên dễ dàng hơn nhiều.

7. Không có khả năng suy nghĩ cho chính mình

Nếu bạn mong đợi người khác nghĩ cho bạn và không sẵn lòng xem xét chi tiết tình hình của chính bạn, bạn sẽ không bao giờ là một lập trình viên thành công thực sự.

Khi bạn đang học một điều gì đó mới, bạn rất dễ cảm thấy mình thiếu kiến ​​thức và kinh nghiệm để có ý kiến ​​của riêng mình. Chủ động đem đến sáng kiến hay làm/nói ra một điều sai bét? Có vẻ rủi ro.

Có một nỗi sợ cố hữu mà tất cả chúng ta đều mắc là sợ sai. Khi nỗi sợ sai đó kìm hãm sự tìm tòi và tò mò của bạn, bạn sẽ dập tắt khả năng phát triển kiến ​​thức đích thực, kiến ​​thức thu được từ kinh nghiệm và “thất bại”. Khi bạn cần dựa vào ý kiến ​​của “bậc thầy”, một blogger nổi tiếng, phương pháp hay nhất hoặc câu trả lời “mang tính sách giáo khoa”, thì bạn vẫn chưa thực sự tích hợp kiến ​​thức làm việc về lập trình.

Bạn cần phát triển ý kiến ​​của riêng mình về những gì hiệu quả và những gì không. Bạn cần hiểu tại sao bạn cho rằng giải pháp của mình hoạt động và lợi ích là gì. Bạn cần phát triển một quan điểm khác lạ vượt ra ngoài những gì hiển nhiên. Bạn cần có khả năng “tranh luận” về phía của mình, và sau đó nếu bạn thay đổi, bạn có thể sở hữu quan điểm mới mà bạn đã đạt được.

Tự suy nghĩ: Thông qua kinh nghiệm và kỹ năng tư duy phản biện, hãy phát triển quan điểm của riêng bạn. Đưa ra những phỏng đoán hợp lý, có lập trường và sẵn sàng thay đổi khi thông tin mới được đưa ra.

8. Tư duy cứng nhắc, hạn hẹp và/hoặc vô tổ chức

Nếu bạn cứng nhắc trong suy nghĩ của mình và bạn gặp khó khăn trong việc giữ cho code và suy nghĩ của mình có tổ chức, bạn sẽ không bao giờ thành công trong việc lập trình.

Có hai thái cực mà đôi khi gặp phải ở sinh viên. Đầu tiên là cách tiếp cận tư duy cứng nhắc và hạn hẹp. Thái độ này từ chối sự giúp đỡ và bất chấp phản hồi, không thay đổi. Mọi thứ chỉ được nhìn từ một góc độ và các đề xuất bị bỏ qua. Thứ hai là suy nghĩ vô tổ chức. Sinh viên dường như làm mọi thứ phức tạp hơn mức cần thiết, code của họ lộn xộn và khó theo dõi. Họ thái quá các vấn đề và viết 100 dòng code, trong khi đó chỉ cần 10 dòng là đủ.

Khi hai tư duy này được kết hợp, kết quả là tạo nên một cách tiếp cận đầy lo lắng về lập trình, giống như một cách tiếp cận cục súc dẫn đến các lớp và nhiều lớp sửa lỗi và “code mẹo”. Điều cần thiết là khả năng quay lại tìm giải pháp, đánh giá lại nó, từ bỏ cách tiếp cận ban đầu và tổ chức lại.

Không thể nhìn thấy các khả năng khác hoặc nhận được phản hồi sẽ hạn chế khả năng phát triển và cải thiện. Việc vô tổ chức sẽ làm bạn chậm lại và ngăn cản bạn nhìn thấy những hình mẫu mà lẽ ra là hiển nhiên. Và chất lượng tổng thể công việc của bạn bị giảm sút.

Suy ngẫm: Bạn cần lùi lại một bước và nhìn vào bức tranh toàn cảnh hơn về cách bạn đang tiếp cận mọi thứ. Làm thế nào bạn có thể làm điều này tốt hơn? Bạn có thể làm gì để giúp cuộc sống của mình dễ dàng hơn không? Bạn đang thiếu điều gì mà có thể giúp bạn?

9. Chỉ cần câu trả lời "đúng" thay vì nhận ra nhiều câu trả lời "tốt" và "không tốt"

Nếu bạn xem mục tiêu cuối cùng của lập trình chỉ là tìm ra giải pháp phù hợp, thay vì một loạt các giải pháp, bạn sẽ không bao giờ thực sự thành công với tư cách là một lập trình viên.

Khi bắt đầu học các kỹ năng hoặc lập trình, sinh viên thường muốn biết liệu những gì họ đã làm có “đúng” hay không. Câu trả lời luôn luôn là "tùy".

Khoa học Máy tính là một ngành khoa học đánh giá sự cân bằng. Với những hoàn cảnh khác nhau, con đường nào tốt hơn? Tất cả phụ thuộc vào hoàn cảnh và mục tiêu. Khi bạn xem lập trình là một bài kiểm tra với câu trả lời đúng hoặc câu trả lời sai, bạn đang đánh mất bức tranh toàn cảnh hơn và vứt bỏ sự sáng tạo của mình. Bất kỳ câu trả lời nào cũng có thể là “đúng” nếu bạn có thể biện minh cho nó trong các hoàn cảnh.

Thực tế là việc lập trình giống như viết thơ hoặc truyện ngắn (hoặc có thể là tiểu thuyết nếu chương trình lớn). Code của bạn mang vẻ đẹp và có tính thẩm mỹ, và đôi khi nó chỉ được nhận ra bởi bạn và các lập trình viên khác. Lý do bạn quyết định về giải pháp của mình và cách bạn hình dung về câu trả lời của mình quan trọng hơn “cách đúng” hay “cách sai”. Có tư duy của một nghệ sĩ cho phép bạn chơi đùa với các tùy chọn và khả năng, thay vì nghĩ rằng chỉ có một cách. Đó là vẻ đẹp của lập trình, có nhiều cách để giải quyết một vấn đề và việc cân nhắc các khả năng khác nhau dẫn đến cảm giác về cách nào là tốt nhất cho tình huống.

Sáng tạo: Nhận ra rằng có nhiều cách để giải quyết một vấn đề, và thông qua kinh nghiệm và sự tiếp xúc, bạn sẽ phát triển sự hiểu biết khác lạ về cách giải quyết nào tốt hơn những giải pháp khác. Nhìn vào bức tranh toàn cảnh, tưởng tượng ra những khả năng khác nhau và tin tưởng vào bản lĩnh của bạn sẽ dẫn đến những giải pháp tốt hơn khiến bạn hài lòng hơn.

10. Không chú ý đến các chi tiết

Nếu bạn không chú trọng chi tiết và bỏ qua những điều nhỏ nhặt, bạn sẽ không bao giờ là một lập trình viên thành công thực thụ.

Máy tính là cỗ máy chính xác. Khi nói đến lập trình máy tính, bạn cần cung cấp các lệnh cần thiết một cách chính xác theo cách mà máy tính mong đợi. Nếu bạn không làm như vậy, chẳng có gì hoạt động. Không hề có “xém” hoạt động hay sắp hoạt động - có hoặc không.

Điều đó có nghĩa là khi bạn đang lập trình, bạn phải quan sát để biết chi tiết. Mọi dấu cách, dấu ngoặc hoặc dấu chấm phẩy đều được tính. Khi không đúng vị trí, không hoạt động. Khi máy tính trả lại một thông báo lỗi, bạn phải xem thông báo đó và hiểu chính xác những gì nó đang nói với bạn. Và thực tế là nếu bạn bỏ lỡ những chi tiết như vậy, bạn có thể mất hàng giờ để theo dõi một vấn đề thực sự là kết quả của một lỗi đánh máy.

Như họ nói, ma quỷ ở trong các chi tiết. Và điều đó chắc chắn đúng với lập trình.

Chú ý đến các chi tiết: Các chi tiết rất quan trọng và bạn phải chấp nhận điều đó. Sau khi làm như vậy, bạn có thể bắt đầu luôn quét code của mình để tìm bất kỳ thứ gì không phù hợp. Bạn có thể sắp xếp code của mình và sử dụng các công cụ giúp bạn xác định vấn đề một cách nhanh chóng.

Bonus: Có đầu óc kinh doanh

Những sinh viên đặc biệt có đầu óc kinh doanh, thường tập trung vào kết quả hơn là quá trình. Họ muốn có được một “ứng dụng hoạt động” để thúc đẩy ý tưởng kinh doanh của họ, họ muốn “tiếp cận thị trường trước” và họ coi đường cong học tập là rào cản đối với mục tiêu đưa doanh nghiệp của họ phát triển.

Sự thiếu kiên nhẫn với quá trình sẽ ngăn cản việc học cần thiết để thực sự hiểu công nghệ. Họ có xu hướng coi công nghệ như một bàn đạp, thay vì một lĩnh vực kiến ​​thức chính đáng để được khám phá và tận hưởng.

Và hiển nhiên, một số sinh viên lập trình có xu hướng kinh doanh nhiều hơn thường gặp khó khăn trong việc học của mình. Bên cạnh đó, họ thường nhanh chóng có những khách hàng freelance hợp tác làm ăn trong khi bản thân họ không thực sự có kỹ năng! Họ sẽ chộp giật để tìm các tài nguyên / mẫu để có được một dự án làm việc cho khách hàng, hoặc thuê người khác làm. Họ thực sự tệ trong việc lập trình, nhưng thật tuyệt vời khi thu hút được mọi người trả tiền cho họ để lập trình!

Vì vậy, những sinh viên mong muốn bắt đầu kinh doanh, xuất sắc trong việc bán hàng, xây dựng quan hệ và phát triển kinh doanh có thể gặp khó khăn hơn những người khác khi học kỹ năng lập trình. Mong muốn tự nhiên của họ là tạo ra các cơ hội tài chính và kết nối mọi người với các giải pháp khiến họ mất kiên nhẫn với những chi tiết tẻ nhạt liên quan đến lập trình.

Kết luận

Mặc dù lập trình có thể là một kỹ năng khó học, nhưng nó chắc chắn là kỹ năng mà hầu hết mọi người đều có thể học được. Danh sách trên chứa đựng những thái độ và tư duy cản trở, nhưng hầu hết mọi người đều có thể vượt qua chúng và phát triển năng lực trong lĩnh vực lập trình.

Nếu bạn có đam mê với lĩnh vực lập trình, hãy bắt đầu hành trình ngay. Bạn sẽ không hối tiếc.

 VietnamWorks inTECH

Theo Medium