Bạn cảm thấy choáng ngợp với lượng thời gian dành cho việc học trở thành một nhà thiết kế cơ sở dữ liệu? Đọc về các kỹ năng và tài năng cần thiết mà bạn cần - nó không quá tệ!
Khi bạn bước xuống các lối đi của siêu thị, tay kia cầm giỏ hàng và tay kia là danh sách hàng tạp hóa, bạn đang nghĩ gì? Nếu bạn giống tôi, bạn đang hình dung cách cải thiện việc sắp xếp các kệ hàng để việc mua sắm hàng tuần của bạn ít tốn thời gian hơn. Hoặc có thể bạn cũng cảm thấy mong muốn sắp xếp và cấu trúc thông tin khi một người bạn cho bạn xem bộ sưu tập tạp chí lớn của họ. Hoặc có thể nó xảy ra khi bạn đang quản lý danh sách phát của mình để phù hợp hơn với sở thích của bạn. Nếu bạn suốt đời suy nghĩ về cách biểu diễn thực tế dưới dạng các thực thể, thuộc tính và mối quan hệ, thì nhiệm vụ của bạn là trở thành một người lập mô hình cơ sở dữ liệu.
Có thể bạn không quá cực đoan nhưng bạn vẫn bị thu hút bởi ý tưởng theo đuổi thiết kế cơ sở dữ liệu như một nghề nghiệp. Dù bằng cách nào, bạn sẽ cần phải thành thạo một vài kỹ năng mới. Một số trong số đó là kỹ thuật thuần túy; bạn có thể học những kỹ năng này bằng cách nghiên cứu hoặc đọc và đào sâu chúng thông qua kinh nghiệm làm việc. Các kỹ năng khác liên quan đến kiến thức phi kỹ thuật mà bạn có thể học qua các khóa học, bài viết trên blog hoặc bằng cách quan sát những người khác.
Dưới đây là tóm tắt các kiến thức và kỹ năng cần thiết mà mọi nhà thiết kế cơ sở dữ liệu cần phải có.
Cần những nhà thiết kế cơ sở dữ liệu kỹ năng cứng
Kỹ năng cứng là những kỹ năng có được thông qua học tập và rèn luyện qua thực hành. Nếu bạn có thể chứng minh bằng bằng chứng cụ thể rằng bạn đã thành thạo một kỹ năng khó, điều đó có nghĩa là bạn có khả năng thực hiện bất kỳ nhiệm vụ nào liên quan đến nó.
Về kiến thức cơ sở dữ liệu, các kỹ năng cứng bao gồm các nguyên tắc cơ bản của lý thuyết cơ sở dữ liệu và các kỹ thuật khác nhau được sử dụng để áp dụng các khái niệm lý thuyết để giải quyết các vấn đề cụ thể. Hãy xem xét từng kỹ năng khó mà nhà thiết kế cơ sở dữ liệu cần.
Lý thuyết cơ sở dữ liệu
Lý thuyết cơ sở dữ liệu chứa đầy các khái niệm trừu tượng có thể khó hiểu nếu chúng không gắn với các sự kiện thực tế. Mô hình quan hệ, miền, thuộc tính, quan hệ và mối quan hệ, khóa chính và khóa ngoài, tính toàn vẹn của thực thể, tính toàn vẹn của tham chiếu và ràng buộc miền chỉ là một vài ví dụ. Nếu bạn thêm những vấn đề phức tạp hơn nữa (chẳng hạn như đại số quan hệ hoặc phép tính quan hệ), bạn có thể tự hỏi liệu sẽ không tốt hơn nếu chọn một nghề liên quan đến những việc cụ thể như làm vườn hoặc nấu ăn cho người sành ăn.
Không hoảng loạn. Kiến thức thấu đáo về lý thuyết cơ sở dữ liệu là rất quan trọng nếu bạn định dạy các lớp đại học hoặc phát minh ra một phương pháp mới để tổ chức thông tin. Nhưng để thiết kế cơ sở dữ liệu, bạn chỉ cần nắm vững các khái niệm lý thuyết áp dụng vào việc giải quyết các vấn đề trong cuộc sống thực. Điều quan trọng nhất - ABC của thiết kế cơ sở dữ liệu - là mô hình quan hệ.
Mô hình quan hệ
Các giáo sư đại học sẽ cho bạn biết rằng mô hình quan hệ là một cơ chế tổ chức dữ liệu dựa trên lý thuyết tập hợp và logic vị từ. Nhưng điều đó sẽ không giúp ích gì nhiều cho bạn trong công việc hàng ngày với tư cách là người lập mô hình cơ sở dữ liệu. Trong thực tế, bạn cần biết rằng mô hình quan hệ là một cách trực quan và đơn giản để tổ chức dữ liệu dưới dạng bảng - được gọi là quan hệ - bao gồm các hàng (còn được gọi là bộ giá trị). Mỗi bảng (hoặc mối quan hệ) được xác định bởi các thuộc tính (hoặc cột) của nó.
Các khái niệm cơ bản về mô hình quan hệ.
Tất cả các quan hệ phải có một hoặc nhiều thuộc tính nổi bật đại diện cho một số nhận dạng duy nhất cho mỗi bộ giá trị. Trong tiếng lóng của cơ sở dữ liệu, đó là chìa khóa của bảng. Các thuộc tính không khóa phụ thuộc vào khóa theo nghĩa là mỗi giá trị khóa xác định một giá trị duy nhất có thể có cho mỗi thuộc tính.
Hãy tưởng tượng một bảng thông tin xe, trong đó chìa khóa là biển số. Biển số xác định các thuộc tính của mỗi phương tiện (chẳng hạn như nhà sản xuất, kiểu xe, chủ sở hữu, v.v.), vì các quy tắc của miền ngăn cản hai phương tiện khác nhau chia sẻ cùng một biển số.
Cơ sở dữ liệu quan hệ
Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) thực hiện mô hình quan hệ, tôn trọng các nguyên tắc của nó. Họ đưa ra các cách để lấy thông tin thông qua các truy vấn và cập nhật thông tin thông qua các giao dịch. Để thông tin trong cơ sở dữ liệu quan hệ phản ánh các sự kiện và tình huống thực tế, bạn có thể xác định các điều kiện hoặc ràng buộc cụ thể cho miền mà cơ sở dữ liệu áp dụng. Ví dụ:trong một bảng lưu trữ thông tin về học sinh của trường, có thể áp đặt một ràng buộc để ngày sinh không cho phép các ngày trong tương lai hoặc ngày quá xa trong quá khứ.
Việc tổ chức các bảng trong cơ sở dữ liệu thường được gọi là lược đồ cơ sở dữ liệu. Ngoài các bảng, lược đồ nêu chi tiết các ràng buộc liên quan đến các cặp bảng được gọi là các mối quan hệ. Mối quan hệ kết nối hai bảng bằng cách áp đặt ràng buộc rằng các giá trị trong trường của một trong các bảng tương ứng với các giá trị trong khóa chính của bảng kia.
Các lược đồ cơ sở dữ liệu thường được biểu diễn bằng biểu đồ mối quan hệ thực thể (ERD), một công cụ phổ biến cho bất kỳ nhà thiết kế cơ sở dữ liệu nào.
ERD đại diện cho mô hình dữ liệu khách hàng.
Sự bất thường và chuẩn hóa
Tất cả các khái niệm chúng ta đã thảo luận cho đến nay đều khá rõ ràng, phải không? Bây giờ chúng ta có thể nói về những bất thường xảy ra trong cơ sở dữ liệu do thiết kế bị lỗi hoặc không phù hợp (tức là cơ sở dữ liệu không phản ánh đầy đủ thực tế mà nó đang cố gắng đại diện).
Sự bất thường xảy ra khi thao tác chèn, cập nhật hoặc xóa tạo ra sự không nhất quán trong dữ liệu. Ví dụ:giả sử bạn có một bảng để lưu trữ dữ liệu bán hàng. Đối với mỗi lần bán hàng (tức là trong mỗi bản ghi của bảng), tên và địa chỉ của khách hàng được ghi lại. Sự bất thường như sau:
- Nếu địa chỉ của khách hàng được sửa đổi trong một trong các lần bán hàng và
- Cùng một khách hàng có doanh số bán hàng khác,
- Bán hàng khác sẽ có địa chỉ cũ.
Để tránh dị thường, bạn có thể áp dụng một kỹ thuật thiết kế được gọi là chuẩn hóa cơ sở dữ liệu. Điều này liên quan đến việc phân tách các bảng và cột (tức là chia chúng thành các phần nhỏ hơn) để tránh các lỗi thiết kế như:
- Các cột chứa nhiều thông tin (ví dụ:số ID của một mặt hàng cũng như tên của nó).
- Lưu trữ cùng một thông tin nhiều lần trong cùng một bảng.
- Các trường phụ thuộc vào các trường không phải khóa khác.
Bảng không chuẩn hóa (trái) so với giản đồ chuẩn hóa (phải).
Kho dữ liệu và chuẩn hóa
Một số cơ sở dữ liệu được sử dụng để truy vấn khối lượng lớn thông tin thay vì xử lý giao dịch trực tuyến (OLTP). Các cơ sở dữ liệu này được gọi là kho dữ liệu.
Thông tin trong kho dữ liệu không đến từ giao diện người dùng (ví dụ:được nhập trực tiếp từ hệ thống đặt hàng thương mại điện tử). Nó đến từ các quy trình hàng loạt thu thập thông tin từ các nguồn khác nhau, xử lý, làm sạch và lưu trữ trong các bảng. Vì lý do này, chúng tôi có thể giả định rằng các kho dữ liệu không có những bất thường giống như các cơ sở dữ liệu thông thường.
Do đó, kho dữ liệu không cần phải duy trì các điều kiện chuẩn hóa giống như cơ sở dữ liệu OLTP. Mặt khác, điều quan trọng hơn là tối ưu hóa hiệu quả truy vấn trong kho dữ liệu. Đây là lý do tại sao không chuẩn hóa được áp dụng trong kho dữ liệu; kỹ thuật này sử dụng một lượng dư thừa nhất định để đơn giản hóa các truy vấn và tránh các lược đồ lộn xộn với số lượng bảng quá nhiều.
Lược đồ kho dữ liệu điển hình.
Dữ liệu lớn
Giống như kho dữ liệu, khái niệm Dữ liệu lớn đề cập đến các kho lưu trữ lượng lớn dữ liệu. Tuy nhiên, có một sự khác biệt quan trọng giữa hai khái niệm. Kho dữ liệu được thiết kế cho một mục đích cụ thể và nhằm tạo ra các báo cáo có hành vi và định dạng được biết trước.
Mặt khác, Big Data nhằm mục đích thu thập khối lượng lớn dữ liệu được tạo với tốc độ cao từ các nguồn khác nhau - ví dụ:thông tin từ mạng xã hội, giao dịch vi mô hoặc cảm biến thông minh. Lượng thông tin khổng lồ này có thể được sử dụng để khám phá và phân tích hoặc để đào tạo các mô hình học máy.
Trong thiết kế cơ sở dữ liệu Big Data, việc tiết kiệm không gian lưu trữ và phân vùng dữ liệu (trong số những thứ khác) được ưu tiên để cho phép thu thập dữ liệu song song và thời gian thực. Ngoài ra, các hệ thống cơ sở dữ liệu không quan hệ hoặc NoSQL được sử dụng, cung cấp các lựa chọn thay thế tốt hơn để xử lý thông tin phi cấu trúc.
Bản thân các công nghệ như NoSQL và khái niệm Dữ liệu lớn là tương đối mới so với cơ sở dữ liệu quan hệ, vốn đã có hơn 40 năm tuổi. Đó là lý do tại sao, là một nhà thiết kế cơ sở dữ liệu, bạn phải chú ý đến những phát triển mới trong lĩnh vực này. Hãy nhớ rằng Dữ liệu lớn cũng là một công việc kinh doanh lớn. Nhiều công ty muốn chiếm vị trí dẫn đầu trong lĩnh vực này và đang phát triển các công cụ và công nghệ mới để làm như vậy.
Quản trị cơ sở dữ liệu
Một khi cơ sở dữ liệu được thiết lập và chạy, ai đó phải quản lý hàng ngày của nó. Điều này có nghĩa là thực hiện các tác vụ thường xuyên để cơ sở dữ liệu không bao giờ trở thành điểm nghẽn đối với các ứng dụng sử dụng nó. Các tác vụ quản trị bao gồm duy trì các bản sao lưu, theo dõi mức tiêu thụ không gian lưu trữ, phát hiện sự cố giữa các quy trình và khắc phục sự cố dữ liệu ngăn hoạt động bình thường của ứng dụng.
Người có kỹ năng cơ sở dữ liệu để đảm nhận những công việc này là người quản trị cơ sở dữ liệu, hoặc DBA - khi có một công việc. Trong các tổ chức rất nhỏ - hoặc trong môi trường phát triển nơi hoạt động của cơ sở dữ liệu không quan trọng đối với doanh nghiệp - trách nhiệm bảo trì cơ sở dữ liệu có thể thuộc về người lập mô hình cơ sở dữ liệu. Do đó, bạn nên có một số kiến thức sẽ cho phép bạn tiếp quản DBA trong một số tình huống nhất định. Tuy nhiên, trong mọi trường hợp, bạn không nên chấp nhận trách nhiệm quản lý cơ sở dữ liệu trong môi trường sản xuất hỗ trợ các ứng dụng quan trọng trong kinh doanh hoặc nhiệm vụ .
Các nhiệm vụ quản trị rất khác nhau tùy thuộc vào hệ thống cơ sở dữ liệu và cơ sở hạ tầng mà nó được gắn kết. Ví dụ, các nhiệm vụ quản lý cơ sở dữ liệu Microsoft SQL Server rất khác với các nhiệm vụ quản lý cơ sở dữ liệu MySQL hoặc Oracle. Và việc quản lý một máy chủ mà bạn đang chạy cục bộ trên sổ ghi chép của mình rất khác với việc quản lý một máy chủ chạy trong Đám mây.
Tôi không khuyên bạn nên dành nhiều nỗ lực để học cách quản lý một máy chủ cơ sở dữ liệu cụ thể, vì bạn sẽ xử lý các cơ sở dữ liệu và môi trường rất khác nhau trong suốt sự nghiệp của mình. Bạn sẽ không giỏi lắm nếu chỉ chuyên về một lĩnh vực.
Quản lý giao dịch và tiền tệ
Truy cập đồng thời vào cơ sở dữ liệu có thể gây ra sự cố trong ứng dụng khi một số người dùng cố gắng truy cập vào cùng một tài nguyên cùng một lúc. Chúng tôi có thể nghĩ rằng, với tư cách là nhà thiết kế, đây không phải là việc của chúng tôi và DBA có trách nhiệm giải quyết những vấn đề này. Chúng tôi cũng có thể nghĩ rằng đó là lỗi của lập trình viên khi tạo ra các ứng dụng cho phép họ.
Tuy nhiên, các nhà thiết kế có thể làm phần việc của mình để giảm thiểu các vấn đề đồng thời tiềm ẩn bằng cách thiết kế các chương trình tránh chúng.
Nhiều vấn đề đồng thời xảy ra khi các giao dịch dài và phức tạp được thực hiện trên cơ sở dữ liệu; trong khi giao dịch đang được xử lý, các bảng liên quan sẽ bị chặn đối với các quy trình khác cần chúng đọc hoặc ghi thông tin. Để tránh loại vấn đề này, điều tốt nhất bạn có thể làm là đảm bảo rằng các thiết kế của bạn ít nhất phải tuân theo mẫu bình thường thứ ba. Sau đó, lập trình viên có trách nhiệm phải suy nghĩ kỹ các giao dịch một cách chính xác để tránh bế tắc.
Nhưng bạn cũng có thể sử dụng các chiến lược tránh đồng thời, chẳng hạn như lược đồ phân vùng hoặc nhóm các bảng theo chức năng mà mỗi cái đáp ứng.
Hãy hình dung một cơ sở dữ liệu cho một trang thương mại điện tử. Bạn có thể đặt các bảng dữ liệu chính cho sản phẩm, kho hàng và giá cả trong một lược đồ và đơn đặt hàng và bán hàng trong một lược đồ khác, cùng với các chế độ xem hoặc bản sao chỉ đọc của các bảng từ giản đồ đầu tiên. Điều này giúp tránh lỗi khi thực hiện các giao dịch cập nhật dữ liệu chính.
Công cụ thiết kế cơ sở dữ liệu
Nếu bạn hiểu mô hình quan hệ, sơ đồ mối quan hệ thực thể và kỹ thuật chuẩn hóa, bạn có thể thiết kế cơ sở dữ liệu mà không cần công cụ nào khác ngoài bút chì và giấy. Tuy nhiên, hiệu suất của bạn sẽ được nâng cao đáng kể nếu bạn sử dụng một công cụ thông minh, đặc biệt là một công cụ có thể tự động hóa các tác vụ thiết kế nhất định như chuyển vị trí hoặc sửa đổi các đối tượng trong sơ đồ, phát hiện lỗi thiết kế, tạo tập lệnh SQL để tạo hoặc cập nhật cơ sở dữ liệu và đảo ngược- kỹ thuật một thiết kế cơ sở dữ liệu hiện có.
Thành thạo một công cụ chuyên dụng như nền Vertabelo sẽ cho phép bạn làm việc nhanh hơn nhiều. Và nó sẽ cho phép bạn nổi bật so với những nhà thiết kế khác không có sự trợ giúp này.
SQL và lập trình
Tất cả chúng tôi đều muốn có thể cung cấp một thiết kế cơ sở dữ liệu, tự hào nói rằng “Công việc của tôi ở đây đã xong” và rời đi cho một kỳ nghỉ xứng đáng. Nhưng thông thường, tình huống lý tưởng đó không bao giờ xảy ra. Sau khi bạn hoàn thành thiết kế của mình, các lập trình viên ứng dụng sẽ cần sử dụng nó và họ sẽ cần bạn ở bên để giúp họ.
Một cách bạn nên tiếp tục hỗ trợ trong một dự án phát triển là viết các khung nhìn, trình kích hoạt, thủ tục được lưu trữ và những thứ khác trong SQL (Ngôn ngữ truy vấn có cấu trúc) để giải quyết các nhu cầu ứng dụng cụ thể. Một cách khác là giám sát các tác vụ lập trình được thực hiện bằng thứ gọi là Ánh xạ quan hệ đối tượng (ORM).
ORM nhằm mục đích trừu tượng hóa việc truy cập dữ liệu từ một RDBMS cụ thể. Mặt tốt của điều này là các lập trình viên không phải lo lắng về các chi tiết cụ thể của cơ sở dữ liệu mà họ sẽ sử dụng - nói cách khác, họ không cần quan tâm xem RDBMS có phải là MySQL, Oracle, IBM DB2, MS SQL Server hay không. hoặc cái gì khác.
Nhược điểm của ORM là các đối tượng thiết kế cơ sở dữ liệu - bảng, thuộc tính và mối quan hệ - được định nghĩa trong mã của ngôn ngữ lập trình cấp cao như Java, Python, R hoặc C #. Nói cách khác, chúng là nơi mà các nhà thiết kế cơ sở dữ liệu không thể nhìn thấy chúng.
Giải pháp cho vấn đề này nằm trong các phương pháp luận phát triển Agile và triết lý hợp tác của chúng. Những điều này thúc đẩy các nhà thiết kế và lập trình viên làm việc cùng nhau trong suốt một dự án, vì vậy bạn sẽ muốn duy trì mối quan hệ tốt đẹp với các lập trình viên. Bạn nên sẵn sàng ngồi cạnh họ, xem mã lập trình và cùng viết định nghĩa của các đối tượng dữ liệu.
Nhà thiết kế cơ sở dữ liệu kỹ năng mềm nên có
Ngoài kiến thức lý thuyết và kỹ thuật cụ thể cho thiết kế cơ sở dữ liệu, một nhà thiết kế lý tưởng nên có các kỹ năng khác được gọi là 'kỹ năng mềm'. Những kỹ năng này - chẳng hạn như trở thành một người giao tiếp tốt và hiểu được tầm nhìn của doanh nghiệp đối với sản phẩm cuối cùng - ảnh hưởng gián tiếp đến sự thành công trong công việc của bạn. Những điều tôi đề cập dưới đây chỉ là một vài ví dụ, nhưng còn rất nhiều kỹ năng mềm khác được các nhà tuyển dụng tiềm năng đánh giá cao.
Tầm nhìn kinh doanh
Khi bạn thiết kế một cơ sở dữ liệu, bạn đang đại diện cho thực tế của một doanh nghiệp dưới dạng các đối tượng dữ liệu có liên quan với nhau. Chúng tôi nhận thấy rằng thiết kế phải đáp ứng các điều kiện tiêu chuẩn hóa và thiết kế phải tránh các vấn đề mâu thuẫn, bất thường và đồng thời. Nhưng điều quan trọng không kém - hoặc có lẽ hơn thế nữa - là thiết kế có phù hợp với tầm nhìn kinh doanh của bất kỳ ai đang trả lương cho bạn hay không.
Hiểu được tầm nhìn kinh doanh sẽ cho phép bạn nắm bắt tốt hơn tầm quan trọng của từng yêu cầu và hướng dẫn các quyết định của bạn để thiết kế của bạn phù hợp hơn với mục tiêu của tổ chức.
Dưới đây là một ví dụ đơn giản về cách hiểu tầm nhìn kinh doanh sẽ hình thành công việc của bạn. Bạn có thể nghĩ rằng việc sử dụng một phím thay thế trong bảng sẽ làm xáo trộn thiết kế của bạn, thêm một yếu tố không cần thiết và gây khó chịu. Nhưng bằng cách bỏ qua khóa thay thế, bạn có thể làm chậm các truy vấn trên bảng đó vì khóa kiểu INTEGER có thể mang lại hiệu suất vượt trội. Nếu tầm nhìn kinh doanh là cung cấp các truy vấn nhanh, thì chìa khóa thay thế là cách để thực hiện.
Kỹ năng giao tiếp
Nó không đủ để tạo ra những thiết kế tuyệt vời. Bạn cũng phải có khả năng giải thích tại sao thiết kế của bạn hoạt động. Cách để làm điều này là biết cách trình bày nó, cả diễn ngôn (nói hoặc viết) và trực quan.
Lập danh sách các điểm mạnh trong thiết kế của bạn để chúng nổi bật. Hãy suy nghĩ về những quyết định bạn đã thực hiện để tạo ra nó và viết ra lý do cho những quyết định đó. Hãy chuẩn bị để bảo vệ các quyết định và thiết kế của bạn trước những người không hiểu nó hoặc những người muốn thay đổi nó, làm cho nó không hoàn hảo hoặc thiếu sót.
Nhưng bạn cũng phải sẵn sàng chấp nhận những lời chỉ trích mang tính xây dựng và cân nhắc những quan điểm khác với quan điểm của mình. Đôi khi, một lập trình viên có thể phát hiện ra vấn đề mà bạn không thấy và đưa ra lời khuyên bổ ích cho bạn. Đừng sa thải đồng nghiệp của bạn vì nghĩ rằng họ không có kiến thức về cơ sở dữ liệu.
Kỹ năng giữa các cá nhân
Tôi đã nhận xét ở trên về những lợi thế của việc có mối quan hệ tốt với các lập trình viên. Bất kể bạn có trình độ chuyên môn cao đến đâu, điều quan trọng là bạn phải duy trì thái độ đồng hành với tất cả các thành viên trong nhóm, cho dù đó là người kiểm tra đã phát hiện ra lỗi buộc bạn phải suy nghĩ lại một phần thiết kế của mình hay người quản lý dự án cần bạn hoàn thành một nhiệm vụ vào một ngày nhất định. Nói tóm lại, bạn phải là người chơi cùng nhóm . Không ai muốn có những chiếc bánh rán sơ khai trong nhóm của họ, những người cảm thấy không thể thay thế và muốn áp đặt các quy tắc của họ.
Có thể xảy ra trường hợp bạn không phải là nhà thiết kế cơ sở dữ liệu duy nhất trong nhóm phát triển. Có thể bạn phải lãnh đạo một nhóm con gồm các đồng nghiệp của mình. Để làm được như vậy, bạn phải thể hiện kỹ năng lãnh đạo và đóng vai trò là người quản lý dự án, đảm bảo rằng nhóm thiết kế cơ sở dữ liệu đáp ứng các mục tiêu của mình và luôn có động lực.
Cách Học Kỹ năng Thiết kế Cơ sở dữ liệu
Bạn có thể có được các kỹ năng cần thiết để trở thành một nhà thiết kế cơ sở dữ liệu từ bằng đại học, các khóa học, sách và các bài báo chuyên ngành. Ưu điểm của các khóa học đại học là họ cung cấp cho bạn tất cả kiến thức bạn cần và xác nhận kiến thức đó với bằng cấp được công nhận. Điểm bất lợi là chúng đòi hỏi sự đầu tư lớn về thời gian và tiền bạc.
Nếu bạn thích tự học bằng cách đọc sách và bài báo, bạn sẽ tiết kiệm thời gian và tiền bạc - nhưng bạn sẽ cần một người hướng dẫn để dẫn dắt bạn qua các chủ đề cần thiết và đánh giá kiến thức của bạn. Và bạn sẽ phải chứng minh kiến thức của mình một cách thực tế, vì bạn sẽ không có bằng cấp để sao lưu nó.
Trong mọi trường hợp, cho dù bạn học bằng cách tham gia các khóa học hay đọc, kiến thức đó sẽ chỉ đóng vai trò là nền tảng. Bạn sẽ học được nhiều điều nhất bằng cách tạo ra các mô hình, đối mặt với các vấn đề thực tế và quan sát hành động của đồng nghiệp và đồng nghiệp của bạn.