Đầu tiên, mặc dù cách đặt câu hỏi của bạn, không có kết thúc cho bất kỳ nghiên cứu nào, đặc biệt là không phải trong lĩnh vực của chúng tôi, nơi những điều mới xuất hiện nhanh hơn bạn có thể đọc về chúng. Điều đó đang được nói, khi bạn muốn cải thiện, có những loại sau đây mà tôi xem xét. Để có lợi ích / ROI nhất, bạn nên chọn thứ gì đó từ khu vực yếu nhất của bạn.
Kiến thức nền tảng
Mặc dù biết ngôn ngữ lập trình và có kinh nghiệm thực tế, người ta thường có các lĩnh vực (đặc biệt là tự học) trong đó các vấn đề cơ bản cơ bản vẫn chưa hoàn thành. Hãy suy nghĩ về những thứ như cấu trúc dữ liệu, thuật toán, chiến lược bộ đệm, hàm băm, ...
Lưu ý rằng điều này cũng bao gồm nền tảng của các ngôn ngữ lập trình - mọi thứ từ trình biên dịch, kỹ thuật tối ưu hóa và hệ thống loại, cho đến lý thuyết danh mục, đơn nguyên và tương tự.
Nếu bạn được dạy tốt, như đã duy trì bằng cấp đại học trong vài năm, thì có khả năng bạn đã mạnh về hạng mục này (tất nhiên là không hoàn thành khóa học, nhưng là một cơ sở vững chắc). Mặt khác, hãy thử đọc một vài cuốn sách trong các lĩnh vực này để tìm hiểu xem có bất cứ điều gì bạn thậm chí không biết bị thiếu trong tiết mục của mình không. Thể loại này là dễ nhất để ước tính quá mức bản thân bạn trong.
Kiến thức nghịch lý
Tôi luôn luôn ngạc nhiên khi các lập trình viên xuất hiện, những người nghĩ rằng họ là những người hiểu biết, nhưng hoàn toàn không biết gì về các mô hình chính thống. Nếu bạn nghĩ rằng hướng đối tượng là kết thúc của nó, thì đây là thể loại của bạn để cải thiện. Nếu bạn nghĩ lập trình chức năng cũng tồn tại và thậm chí có thể đã nghe nói về lập trình logic, thì đó vẫn là một lựa chọn tốt. Có nhiều mô hình ngoài kia và tìm hiểu về chúng có tác dụng sâu sắc trong việc mang đến cho bạn một cái gì đó giống với một cái nhìn mới về thế giới lập trình.
Đừng quên: thường có những lý lẽ (khá triết học trong bản chất của họ) về những gì có thể được coi là một mô hình hay không. Đừng để bị theo dõi bởi những thứ này. Mục tiêu của bạn là mở rộng tầm nhìn của bạn và điều đó có nghĩa là tìm hiểu về những điều này, cho dù người khác có tự coi X là một mô hình hay không, không có gì khác biệt với điều đó.
Kiến thức chuyên môn
Đơn giản nhất trong số chúng - và ít hữu ích nhất cùng một lúc. Tất nhiên, bạn có thể cam kết với một công nghệ duy nhất và tìm hiểu tất cả mọi thứ, nhưng bạn nên chuẩn bị để trả giá. Thời đại công nghệ và họ làm như vậy với một tốc độ ngày càng tăng, điều đó gần như đảm bảo rằng thời gian đầu tư ở đây sẽ vô giá trị trong vài năm nữa.
Ngoài ra vấn đề giảm trở lại tỏa sáng ở đây. Bởi bản chất là một chuyên gia về một cái gì đó có nghĩa là bạn phải dành vô số thời gian cho chủ đề hẹp đó, và do đó, theo định nghĩa, bạn sẽ mất nhiều thời gian để tìm hiểu một cái gì đó mới và điều mới đó sẽ là một mảnh ghép nhỏ bé sẽ không thay đổi quan điểm của bất cứ ai về bất cứ điều gì.
Kiến thức tên miền
Có thể bởi vì đó là miền của công việc của bạn, hoặc đơn giản dựa trên sở thích cá nhân của bạn, nhưng là một chuyên gia về khoa học máy tính và một miền nhất định là rất có giá trị và bổ ích. Tôi không nói về các lĩnh vực phụ của CS ở đây, như đồ họa máy tính hoặc AI. Thay vào đó, lưu ý rằng máy tính đã ảnh hưởng đến cuộc sống của mọi người và điều đó khiến mọi lĩnh vực khác phải tuân theo máy tính và một lĩnh vực bạn có thể vào.
Cái này rõ ràng rơi vào loại "bên ngoài lĩnh vực của bạn", nhưng nó không phải là một "toán học" bên ngoài sắc nét, mà là một lĩnh vực ứng dụng. Cân nhắc về y học: Tôi không ủng hộ bạn trở thành bác sĩ. Tuy nhiên, học các nền tảng của y học để áp dụng kiến thức hiện có của bạn về khoa học máy tính vào các vấn đề của lĩnh vực đó thực sự đáng giá. Điều này bao gồm từ các kỹ thuật trực quan, qua robot, đến các hệ thống chuyên gia và quản lý dữ liệu đơn thuần cho kế toán / quản trị. Mặc dù bạn đã làm tất cả những điều đó trước đây, nhưng thực hiện nó trong một tên miền khác có thể sẽ trở thành một trải nghiệm hoàn toàn mới.
Mặc dù vậy, hãy ghi nhớ rằng đây là một cách thay đổi triệt để theo hướng của bạn hơn các danh mục khác. Bạn có thể không có bất kỳ liên hệ nào với lĩnh vực đó trong công việc hàng ngày của bạn, điều này khiến cho việc này rất khó khăn. Nó thậm chí có thể có nghĩa là chuyển đổi công việc. Ngoài ra, bạn sẽ cần một số loại chứng nhận về tên miền mới của mình - rốt cuộc bạn là một người mới hoàn toàn với miền đó và bạn phải cạnh tranh với những sinh viên tốt nghiệp từ các nghiên cứu liên ngành, đã bắt đầu hành trình trở thành chuyên gia trong lĩnh vực đó.
Kiến thức bổ trợ
Như Mike Brown đã thêm, đó cũng là lĩnh vực kiến thức mà theo một cách nào đó đi kèm với công việc hiện tại của bạn, nhưng không thực sự cần thiết. Bạn không cần phải là người quản lý dự án để tìm hiểu về quản lý dự án, nhưng như thường lệ, kiến thức bổ sung sẽ cung cấp cho bạn cái nhìn sâu sắc hơn về cách bên kia đánh dấu. Người ta thậm chí có thể khái quát điều này đến mức tập trung vào các kỹ năng mềm. Tôi đoán tất cả những người đã làm việc trong một dự án thực sự với những người khác đều biết giá trị của những điều này.