Những lần mà tôi có một bước nhảy vọt trong kỹ năng của mình là khi tôi đấu tranh để học hỏi được điều gì đó mới mẻ và không bỏ cuộc. Điều này không phải lúc nào cũng dễ dàng đối với tôi. Tôi đã có một vài ý tưởng, thứ mà thúc giục tôi vượt qua khuôn khổ của bản thân.

Có lẽ bạn có thể liên hệ với bản thân.

 


 

Mọi thứ quá dễ dàng để cảm thấy thất vọng khi bạn phải đối mặt với các kỹ thuật phần mềm khó khăn. Đôi khi tôi cảm thấy muốn bỏ cuộc. Trong những tình huống như thế những suy nghĩ hợp lý hiện lên trong đầu tôi với lý do tại sao tôi nên dành thời gian cho một điều gì đó quen thuộc hơn hoặc phàn nàn rằng vấn để đó nằm ngoài sức của tôi.

Tôi biết tôi không cô độc.

Tôi thấy mọi người trên Reddit nói về các thách thức họ đã gặp phải trong quá trình học và tôi đã có một vài cuộc thảo luận với các kỹ sư chuyên nghiệp, những người đang phải đối mặt với các nghi ngờ về khả năng nắm bắt các khái niệm phức tạp mà các đồng nghiệp của họ dường như chỉ "just get".

Mặc dù không dễ dàng nhưng kiên trì đối mặt với những thử thách này rất có giá trị.

Trong những năm qua tôi đã phát triển được một vài chiến lược cho tinh thần của mình để giúp tôi vượt qua khoảng thời gian khó khăn này.

Dưới đây là một vài quan điểm thôi cảm thấy hữu ích đối với mình.

1. Một người trở thành một developer tốt hơn nhờ công việc khó khăn và nỗ lực của họ.

Tài năng hay công việc khó nhọc làm nên một developer giỏi?

Bạn nghĩ sao? Có phải một số người sinh ra đã là một developer giỏi hay họ phải rất nỗ lực mới đạt được điều đó?

Tôi tin rằng không thể biết câu trả lời thực sự cho câu hỏi này nên tôi đã chọn để tin rằng để trở thành một developer giỏi cần phải nỗ lực rất nhiều.

Đó là quan điểm đúng đắn hơn. Điều đó có nghĩa là nếu tôi đang cố gắng học hỏi điều gì đó, tôi có thể làm được nếu tôi làm việc chăm chỉ.

Điều đó có nghĩa là tôi phải chấp nhận mọi thứ không thể lúc nào cũng suôn sẻ và dễ dàng được. Khó khăn là điều không thể tránh khỏi.

2. Khi bạn cố gắng làm điều gì đó lần đầu tiên, nó có thể khó - và tôi không nên làm điều này ngay lập tức.

Là một lập trình viên, tôi đôi lúc thấy bực bội vì tôi gặp phải điều gì đó không thể hiểu được và tôi cảm thấy rằng mình nhất định phải hiểu được nó.

Đã có khoảng thời gian khi tôi vào một công ty, nơi mà đã sử dụng git và bao quoanh bởi các chuyên gia sử dụng git. Có thời gian tôi phải đối mặt với thực tế rằng kỹ năng SQL của tôi không được tốt lắm.

Trong những trường hợp như thế này, tôi cảm thấy mình cần phải giỏi những kỹ năng này. Xét cho cùng, tôi có phải là một kỹ sư giỏi với nhiều năm kinh nghiệm không?

Thực tế, mặc dù tôi đã là một kỹ sư nhiều năm kinh nghiệm nhưng không có kinh nghiệm nào có thể thay đổi hiện thực của tôi. Lần đầu tiên tôi đã học được những kỹ năng một cách trọn vẹn nhất, và vào thời điểm mới bắt đầu tôi thực sự không giỏi bất cứ thứ gì trong số đó.

Mặc dù đôi khi những điều mới khá là dễ dàng, đôi khi thì lại không. Tôi đã rút ra được một quan điểm đúng đắn là khi tôi làm điều gì đó lần đầu tiên thì tôi thực sự sẽ không làm được tốt cho lắm.

Nó như thế này...

" Tôi chưa bao giờ lập trình bằng Java trước đây - Tôi sẽ không được cho là hiểu biết về nó. Đó là lý do tôi tham gia vào lớp học này ".

" Trước đây, tôi chưa bao giờ cam kết sẽ viết code cho 1 repo git - Tôi sẽ không biết cách làm việc này như thế nào. Đó là lý do tôi cần sự giúp đỡ của đồng nghiệp ".

Kiểu suy nghĩ này làm mất đi dọng nói "Tôi sẽ không làm được hoặc tôi sẽ thất bại" trong đầu tôi. Tôi sẽ vẫn ổn khi thất bại và cho là mình chưa đủ kỹ năng. Tôi không được cho là giỏi - Đó là lý do tôi không ngừng cố gắng để trở nên hoàn thiện hơn.

3. Viết code không phải lúc nào cũng thoải mái, vui vẻ vì sẽ có những dự án khó khăn nhưng nó vẫn sẽ được thực hiện.

Đôi khi tôi phải làm những dự án phát triển phần mềm không mấy hay ho.

Một số đoạn code xử lý trong cụm spark của tôi bị lỗi mà tôi không tìm ra hoặc một số thư viện không hoạt động bất kể tôi làm gì.

Đó là khoảnh khắc không vui chút nào và đôi khi tôi đã thực sự làm những việc khác mới mẻ hơn là ngồi cố tìm ra những nguyên nhân gây ra lỗi.

Vấn đề là tôi biết rằng coding không phải lúc nào cũng vui vẻ và đôi khi tôi chỉ cuộn tay áo lên và "Làm thôi".

4. Bạn học được nhiều nhất là khi gặp những thách thức lớn - và thất bại vào những lúc này là chuyện bình thường.

Khi tôi thử thách bản thân bằng cách cố gằng làm một điều gì đó nằm ngoài khả năng của tôi và tôi nhận ra rằng đó là lúc tôi thực sư cố gắng để hoàn thành nó.

Với tôi, có rất nhiều ví dụ nổi bật.

Đó là lần đầu tiên tôi phải chọn một cuốn sách lập trình - Tôi phải vật lộn cho đến khi tôi học được cách viết code.

Có những lúc tôi cố gắng thiết lập những ứng dụng lớn hơn. Tôi gặp  rất nhiều khó khăn cho đến khi tôi khám phá ra các khuôn mẫu kiến trúc và tìm hiểu về những mấu thiết kế - Vào thời điểm đó chúng tôi đã bỏ bê hàng tháng việc viết code, bắt đầu lại và xây dựng lại ứng dụng của chúng tôi trong một vài tuần sử dụng các mẫu thiết kế mới.

Có khoảng thời gian tôi cuối cùng cũng thực sự học được SQL. Sau đó tôi có các kỹ năng để làm việc với nhóm khoa học dữ liệu của công ty mình.

Có những lúc tôi cố gắng thiết lập cơ sở hạ tầng xử lý dữ liệu của công ty chúng tôi bằng cách sử dụng công nghệ ứng dụng web. Tôi gặp khó khăn cho đến khi học về data lakes, ETL pipelines và các giải pháp tính toán phân tán.

Danh sách cứ kéo dài.

Mỗi trải nghiệm này đều có những khoảnh khác đau đớn. Tôi đi xuống rất nhiều, lâm vào cảnh đường cùng và bỏ viết code rất lâu. Tôi thữ rất nhiều thứ và cũng thất bại, rất nhiều là đằng khác.

Nhưng áp lực đó đã dạy tôi nhiều kỹ năng mới và khiến tôi trở thành mọt developer tốt hơn. Nếu không có áp lực đó tôi sẽ không bao giừo học được bài học của cuộc đời mình

Và...

Tôi đã học được cách để chào đón những cảm xúc hồi hộp đó.

Tâm trí là một công cụ mạnh mẽ

Bạn có thể chọn những điều mà bạn tin tưởng và niềm tin của bạn có thể cung cấp cho bạn sức mạnh để đối mặt với các thách thức, giúp cho bạn trở thành một developer hoàn hảo hơn.

Tôi hy vọng điều này sẽ giúp bạn vượt qua được những cuộc đấu tranh của chính bản thân mình.

Đừng bỏ cuộc. Hãy cố gắng bước tiếp.

Khi không hiểu điều gì đó, hãy tiếp tục làm việc thật chăm chỉ và tiếp tục cố gắng để hiểu nó. Bạn sẽ ngạc nhiên với khả năng của mình khi bạn chỉ cần cố gắng.

Cảm ơn bạn đã dành thời gian để đọc bài viết này của tôi. Nếu bạn thấy hữu ích hãy cho tôi biết.

Lập trình Java cơ bản và nâng cao 

Lập trình Web Java Spring 2018