Có rất nhiều nguồn để học hỏi từ các đồng nghiệp giàu kinh nghiệm hơn: sách, blog của các nhà phát triển khéo léo, Stack Exchange, bài giảng / hội nghị, v.v. Đánh giá mã cũng rất quan trọng và CodeReview.SE là một tài nguyên quý giá.
Chúng ta hãy xem làm thế nào nó có thể làm việc trên một ví dụ.
Thí dụ
Bạn đang đọc một bài đăng trên blog có đề cập đến thuật ngữ "ETL". Bạn không biết ý nghĩa của nó, nhưng từ bài viết này, bạn mơ hồ hiểu rằng đó là một loại quy trình hoặc quy trình làm việc để chuyển dữ liệu từ một số hỗ trợ dữ liệu sang một hỗ trợ khác.
Bạn vào Wikipedia và các tài nguyên khác và có được tầm nhìn chính xác hơn về sự việc. Vẫn chưa rõ ràng khi nào sẽ hữu ích khi sử dụng ETL. Rốt cuộc, có vẻ dễ dàng hơn nhiều để viết một truy vấn SQL sẽ thực hiện tất cả công việc, thay vì dành quá nhiều thời gian để xây dựng một ETL thực sự.
Để trả lời những câu hỏi đó, bạn mượn một cuốn sách về các ETL từ thư viện địa phương của bạn. Nó giải thích rằng một số quy trình tải chuyển đổi trích xuất không dễ thực hiện với một truy vấn SQL đơn giản: không chỉ giai đoạn trích xuất có thể xử lý một số, hỗ trợ dữ liệu đa dạng, không chỉ là cơ sở dữ liệu quan hệ, mà cả bước chuyển đổi có thể rất phức tạp đối với cả xác nhận / chuẩn hóa dữ liệu và ánh xạ dữ liệu.
Bây giờ bạn có một tầm nhìn rõ ràng về ETL là gì, làm thế nào để sử dụng nó và đặc biệt là khi bạn cần một ETL và khi nó không phải là một công cụ thích hợp. Trong khi đó, bạn đã triển khai một ETL nhỏ như một dự án cá nhân. Dự án này cho phép bạn khám phá một số điểm không đủ rõ ràng cho bạn và không được bao phủ bởi một cuốn sách. Những điểm này khá trừu tượng và không liên quan đến mã nguồn, bạn gửi câu hỏi lên Lập trình viên .
Khi bạn có cơ hội xây dựng một công ty trong công ty của mình, bạn bắt đầu tạo nó. Bạn có một vài vấn đề. Một số có liên quan đến mã; bạn gửi câu hỏi trên Stack Overflow . Những người khác có liên quan đến cơ sở dữ liệu; bạn hỏi câu hỏi trên DBA.SE .
Cuối cùng, có một hội nghị được thực hiện bởi một nhà phát triển có kỹ năng cao về cách tối ưu hóa các ETL. Bạn tham dự hội nghị này và nó cung cấp cho bạn những gợi ý quý giá về những cải tiến bạn có thể làm cho dự án của mình.
Bạn cũng bắt đầu theo dõi blog của một nhà phát triển đã làm việc trên các ETL khác nhau trong nhiều năm. Thật thú vị khi thấy các cách tiếp cận khác nhau và thông qua blog này, bạn tìm hiểu về ECCD; bạn quan tâm, vì vậy bạn mượn Bộ công cụ kho dữ liệu ETL của Ralph Kimball, cuốn sách nói chi tiết về quy trình "giải nén, làm sạch, tuân thủ và phân phối". Blog tương tự cũng đề cập đến rất nhiều ứng dụng nhằm tạo ra các ETL mà không cần kỹ năng lập trình. Điều này đặc biệt hữu ích cho ETL bạn đã thực hiện cho công ty của mình, vì sếp của bạn, người không chuyên về công nghệ, liên tục yêu cầu bạn thực hiện một số thay đổi nhỏ đối với những gì bạn đã làm.
Khám phá những điều
IMHO, phần khó khăn, khi bạn không có một người cố vấn hoặc một đồng nghiệp giàu kinh nghiệm hơn, là để khám phá mọi thứ, và bằng cách khám phá, tôi có nghĩa là chuyển từ trạng thái "Tôi chưa bao giờ nghe về điều này" cho "Tôi đã nghe về nó nhưng không biết rõ nó là gì ".
Nếu ai đó xem lại mã của tôi và nói rằng tôi thực sự nên bắt đầu sử dụng một số quy ước về phong cách, với một chút tò mò tôi có thể thấy rằng trong lập trình, có nhiều kiểu viết mã khác nhau, người ta nên gắn bó với một phong cách cho ngôn ngữ và cơ sở mã nhất định, và nhiều ngôn ngữ có các công cụ để thực thi một kiểu (như StyleCop cho C #).
Nếu không ai nói với tôi về phong cách, làm sao tôi biết rằng một thứ như vậy tồn tại?
Đó là nơi các tài nguyên như blog hoặc Stack Exchange rất tiện dụng. Wikipedia sẽ không giúp ích gì (trừ khi bạn dành nhiều ngày vào các trang ngẫu nhiên về lập trình) và sách hiếm khi nói về những điều đó.
Điều tương tự cũng áp dụng cho các mẫu và thực tiễn hoặc những thứ ít liên quan đến mã. Ví dụ, tôi khó có thể tưởng tượng một số nhà phát triển thức dậy vào buổi sáng nói với bản thân rằng anh ta phải học một cái gì đó về ITIL trong khi anh ta không bao giờ trải lòng về ITIL trước đây.
Một khi bạn phát hiện ra một thuật ngữ mới, thật dễ dàng để tìm hiểu về nó. Nếu bạn đã đưa ra một thuật ngữ "hợp đồng mã" mới và bạn là nhà phát triển C #, bạn có thể dễ dàng tự tìm đủ thông tin trên MSDN (hoặc, tốt hơn, trong cuốn sách của Jon Skeet).
Tò mò giúp
Khi tôi làm việc với thực tập sinh, tôi luôn nhận thấy rằng những người giỏi nhất là những người tò mò bên ngoài bài giảng của họ. Họ có thể biết rằng có một thứ gọi là lập trình chức năng ngay cả khi không có giáo viên nào của họ không bao giờ đề cập đến nó, và mặc dù họ có thể không biết bất kỳ ngôn ngữ chức năng nào, họ vẫn có thể giải thích một cách chung chung về FP là gì và nó khác với ngôn ngữ khác như thế nào mô thức. Họ có thể biết về Agile, hoặc về Unicode, hoặc về mô hình tin cậy một phần / hộp cát, chỉ vì họ đang đọc blog và sử dụng Stack Exchange, thay vì chỉ đơn giản là tham dự các bài giảng của họ.
Ngay cả khi họ không có người cố vấn, họ vẫn học tất cả những điều không được kể ở trường đại học.