Đóng góp ý kiến và báo lỗi phiên bản mới tại đây

public6 năm trước

6 Điều Tôi Vỡ Lẽ Khi Tự Học Code

Tôi được khuyến khích và muốn chia sẻ kinh nghiệm của mình để bản thân vui hơn, vì vậy tôi viết bài này để các bạn đến sau hiểu được nhiều hơn con đường mình đi. Hãy lưu ý rằng chuyên ngành của tôi là phát triển web, vì vậy stack của tôi phản ánh điều đó.

1. Hãy sẵn sàng vứt bỏ tất cả mọi thứ, kể cả những thứ tốt nhất, giải pháp hợp lí mới giải quyết mọi vấn đề

Điều này đúng với mọi khía cạnh từ code đến các ngôn ngữ lập trình đến ý tưởng. Lập trình thay đổi rất nhanh và có rất nhiều cách hay để tiếp cận các vấn đề, nhưng cần nhớ rằng tìm ra giải pháp mới là lý do của lập trình. Mục đích chính là giải quyết vấn đề thành công chứ không phải về quá trình tìm ra cách giải quyết. Bạn chắc hẳn sẽ rất tức giận hoặc có những hành động bồng bột khi gặp tình huống sau: Bạn dành 2 ngày để viết code hoặc xây dựng một page, bỗng nhiên có người bước ngang qua và chỉ ra một giải pháp nhanh hơn/ tốt hơn?!

Nếu bạn tập trung vào giải pháp tốt nhất, nó sẽ giúp bạn giải quyết code dễ dàng hơn. Gần đây, tôi đã dành 2 ngày xử lý một số flexbox cho một dự án và đối tác kinh doanh của tôi (họ không phải là dân tech) đã quyết định rằng không có tính năng đó sẽ tốt hơn cho chiến lược phát triển của họ. Trực giác của tôi mách bảo rằng tôi sẽ phát điên lên và không muốn thay đổi code cho dù có chuyện gì xảy ra, nhưng sau khi hít thở sâu vài lần và nghĩ thật thông, tôi nhận ra đối tác của tôi đã nói đúng.

Hơn nữa, nếu tôi trung thực, khách hàng của tôi có thể tiết kiệm được một khoảng thời gian quan tâm đến số giờ tôi đã làm việc để tạo ra widget x hoặc code của y đẹp đến mức nào. Họ chỉ muốn sản phẩm của họ tốt nhất có thể.

2. Ngôn ngữ lập trình bạn đang học không quan trọng bằng ý kiến của mọi người

Tôi chưa bao giờ là fanboy của một công nghệ cụ thể nào, tôi yêu thích Windows 10, và tôi có một máy tính xách tay khác chạy Kubuntu mà tôi rất thích. Tôi cũng thích sử dụng MacBook của vợ tôi. Tôi đã tiếp cận nhiều ngôn ngữ lập trình cùng một cách. Tôi đã quyết định học vài ngôn ngữ lập trình để phục vụ cho việc kinh doanh của tôi (HTML/ CSS/ JS) (tôi biết HTML và CSS không hẳn là ngôn ngữ lập trình) và sau đó tôi chọn một vài thứ tôi muốn học (SQL, Python, Perl, Java), rồi tôi học thêm C vì tôi muốn bổ sung vào trình độ compsci thấp của mình với một ngôn ngữ cơ bản hơn.

Sau khi học xong, tôi đã học được rằng mọi thứ mình học đều có giá trị về lâu về dài. Nếu bạn không có nhu cầu cấp bách học một ngôn ngữ cụ thể nào, hãy thử nhiều thứ cùng lúc và tìm ra ngôn ngữ phù hợp nhất. Hãy tìm hiểu về ngôn ngữ bạn sử dụng nhiều nhất, và quyết tâm học nó bất kể mọi người nói gì. Nếu bạn đam mê ngôn ngữ Assembly, nó sẽ giúp bạn đi rất xa trong mảng này.

3. Lập trình thực sự khó như mọi người nói

Khi tôi mới bắt đầu, tôi thực sự nghĩ rằng tôi là một thiên tài có thể hiểu mọi thứ trong vài giờ học. C và CSS đã khiến tôi tỉnh mộng. Tôi đã dành rất nhiều thời gian để hiểu các khái niệm trong CSS khiến tôi có chút thất vọng về bản thân, vì thế tôi đã thay đổi phương châm thành ”Dành đủ thời gian, stack overflow, ghi chép lại để tìm hiểu sâu hơn.”

Nếu bạn hiểu rằng lập trình là khó để theo đuổi, và khi đó bạn sẽ tiếp cận nó với tâm thế sẽ rất khác, bạn sẽ cố gắng hơn, khi gặp khó bạn sẽ coi đó là điều đương nhiên và ít nản lòng hơn, thậm chí xác suất bỏ cuộc giữa chừng cũng thấp hơn. Thay vì thất vọng khi gặp bug hoặc trang bị sập, tôi đã hiểu ra nó là một phần của quá trình và khiến tôi đỡ đau đớn hơn. Đó là sự thật sau một sự kiện không thể tìm ra một dấu chấm phẩy sau hơn 4 tiếng tìm kiếm vào lúc 3 giờ sáng.

4. Mặc kệ người ta nói! Cứ thử những cái mới!

Tôi đã dùng đủ mọi cách, từ vùi đầu vào sách, cho tới thử các khoá học online. Không cái nào giúp được tôi cả. Thậm chí tôi cũng đã thử tham gia một số diễn đàn nhưng nó càng làm mọi thứ trở nên “tùm lum tà la” hơn. Cuối cùng, tôi cũng tìm ra được một số khóa học bằng video vừa ý và mọi thứ bắt đầu trở nên dễ dàng hơn.

Bạn cứ thử hết tất cả đi, xem videos, đọc sách, mua các khóa học trực tuyến, tham gia diễn đàn, không bổ chiều ngang cũng bổ chiều dọc. Nếu mà đâm đầu vào đọc sách không, chắc tôi cũng “Tạch” từ lâu rồi, thật!. Hồi xưa tôi không ưa video, nhưng xài thử mới thấy sự lợi hại. Nó giúp bạn chủ động thời gian một cách kinh khủng.

Cách học tốt nhất tôi đã tìm ra là chú ý vào bản chất của ngôn ngữ, hơn là những thứ lằng nhằng râu ria khác, có thể thử học 7 - 8 ngôn ngữ cùng một lúc. Nghe có vẻ hơi căng, nhưng đối với bản thân mình, tôi thấy nó lại phát huy hiệu quả một cách bất ngờ. Hiện nay, tôi đã nắm chắc được 5 ngôn ngữ, mấy cái ngôn ngữ còn lại dành để giải trí những lúc rảnh (ahihi). Như bạn biết, tôi là người cả thèm chóng chán, tôi hay bỏ giữa chừng lắm, tôi thường thay đổi khẩu vị cho đỡ ngán, như chuyện chuyển đổi từ việc xây dựng SQL database đến việc tìm hiểu các về pointers trong C, đến học về Git. Thử đi, nó giúp mở rộng tư duy kinh luôn ấy.

Những cái trên có thể phù hợp với tôi, nhưng chưa chắc nó hợp với bạn. Quan trọng là phải thử cả.

5. Chọn cái mà bạn cảm thấy mình làm “ngon” nhất

Tôi thích vọc các text editor mới. Cá nhân tôi đã thử qua một số Linux Distro phổ biến trước khi quyết định “an phận” các công cụ hiện tại. Đừng nghe người ta nói gì cả, cứ thử hết đi. Tôi cực thích những thứ là lạ so với những gì bà con hay dùng (ví dụ tôi yêu PHP) nhưng tôi cũng theo cộng đồng ở một số cái, vì nhiều khi nó dùng ngon thật (như việc dùng Linux đã thay đổi toàn bộ quy trình làm việc của tôi, nó khiến mọi thứ trở nên tốt hơn rất nhiều).

Đừng bao giờ dành cả tuổi thanh xuân vì một thứ chỉ vì một lời khen trên một diễn đàn hoặc blog công nghệ nào đó.

6. Tri thức làm ta khiêm tốn, ngu si làm ta kiêu ngạo

Khiêm tốn là yếu tố quyết định thành công, dù ở bất cứ nơi đâu. Vì tính chất công việc, tôi thường không có quá nhiều cơ hội làm việc với các developers khác, và hầu hết các khách hàng của tôi đều không biết hoặc không quan tâm đến code. Tôi luôn tâm niệm rằng khiêm tốn là chiếc cầu để tôi có thể làm việc tốt với các developers khác. Chắc bạn đã quá hiểu chuyện làm việc với các lập trình viên không phải là dễ nuốt, vì họ thường không có nhiều kỹ năng giao tiếp lắm. Kết quả là… nhiều khi dự án kết thúc mà 2 bên đều không happy, kiểu “bằng mặt mà không bằng lòng”.

Khi có cơ hội làm việc với một team đỉnh, ai cũng tập trung cao độ cũng như tôn trọng ý kiến của nhau, bạn sẽ thấy được sức bật khủng khiếp của team đó như thế nào. Hãy nhớ rằng con cá chắc chắn sẽ không bao giờ biết leo cây, hãy nhìn vào thế mạnh của người đồng đội của mình và tận dụng nó tối đa. Dù trở thành một team player hay leader, thì việc mở lòng để thật sự hiểu nhau khi làm việc chính là chiếc chìa khoá cho sự thành công.

Tôi luôn giữ cho mình một tâm thế cầu thị, mở lòng cho những cái mới. Bạn nên tự thôi thúc chính mình bằng những câu hỏi kiểu như “làm sao cho code đơn giản hơn, chạy ngon hơn”. Nhiều khi những cái đơn giản thì lại cần rất nhiều thời gian để thấu hiểu và chiêm nghiệm.

Những lời nhắn cuối cùng

Tôi hi vọng bài viết này phần nào có thể giúp các bạn có những cái nhìn khác trong lập trình. Lập trình tuy khó, nhưng khi chinh phục được nó thì sẽ cảm thấy rất “yo-most!”.

Cảm xúc lập trình có đủ cả, nó cho phép bạn sáng tạo, giải quyết vấn đề, v.v. Từ trước đến nay chỉ có lập trình mới khiến tôi lăng xả làm việc thâu đêm. Chỉ có vậy thôi! Hãy tiếp tục code thật nhiều nhé. Happy Coding!

Theo topdev.vn

----------------------------

Hợp Tác Cùng YBOX.VN Truyền Thông Miễn Phí - Trả Phí Theo Yêu Cầu tại http://bit.ly/YBOX-Partnership

616 lượt xem