Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Xin chào lần nữa! Tiêu đề của bài viết đã nói lên điều đó. Trong sự chờ đợi sự bắt đầu của khóa học Kỹ sư dữ liệu Chúng tôi khuyên bạn nên hiểu kỹ sư dữ liệu là ai. Có rất nhiều liên kết hữu ích trong bài viết. Chúc bạn đọc vui vẻ.

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Hướng dẫn đơn giản về cách nắm bắt làn sóng Kỹ thuật dữ liệu và không để nó kéo bạn xuống vực thẳm.

Có vẻ như ngày nay mọi người đều muốn trở thành Nhà khoa học dữ liệu. Nhưng còn Kỹ thuật dữ liệu thì sao? Về cơ bản, đây là sự kết hợp giữa nhà phân tích dữ liệu và nhà khoa học dữ liệu; Kỹ sư dữ liệu thường chịu trách nhiệm quản lý quy trình công việc, quy trình xử lý và quy trình ETL. Do tầm quan trọng của các chức năng này, đây hiện là một thuật ngữ chuyên nghiệp phổ biến khác đang được tích cực phát triển.

Mức lương cao và nhu cầu lớn chỉ là một phần nhỏ khiến công việc này trở nên cực kỳ hấp dẫn! Nếu bạn muốn gia nhập hàng ngũ anh hùng thì việc bắt đầu học không bao giờ là quá muộn. Trong bài đăng này, tôi đã thu thập tất cả thông tin cần thiết để giúp bạn thực hiện những bước đầu tiên.

Vì vậy, hãy bắt đầu!

Kỹ thuật dữ liệu là gì?

Thành thật mà nói, không có lời giải thích nào tốt hơn thế này:

“Một nhà khoa học có thể khám phá ra một ngôi sao mới, nhưng anh ta không thể tạo ra nó. Anh ấy sẽ phải nhờ một kỹ sư làm việc đó cho anh ấy.”

–Gordon Lindsay Glegg

Vì vậy, vai trò của một kỹ sư dữ liệu là khá quan trọng.

Như tên cho thấy, kỹ thuật dữ liệu liên quan đến dữ liệu, cụ thể là phân phối, lưu trữ và xử lý dữ liệu. Theo đó, nhiệm vụ chính của các kỹ sư là cung cấp cơ sở hạ tầng đáng tin cậy cho dữ liệu. Nếu chúng ta nhìn vào hệ thống phân cấp nhu cầu của AI, kỹ thuật dữ liệu chiếm 2–3 giai đoạn đầu tiên: thu thập, di chuyển và lưu trữ, chuẩn bị dữ liệu.

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Kỹ sư dữ liệu làm gì?

Với sự ra đời của dữ liệu lớn, phạm vi trách nhiệm đã thay đổi đáng kể. Nếu trước đây các chuyên gia này viết các truy vấn SQL lớn và chắt lọc dữ liệu bằng các công cụ như Informatica ETL, Pentaho ETL, Talend thì nay yêu cầu đối với kỹ sư dữ liệu đã tăng lên.

Hầu hết các công ty đang tuyển dụng vị trí kỹ sư dữ liệu đều có những yêu cầu sau:

  • Kiến thức tuyệt vời về SQL và Python.
  • Có kinh nghiệm với nền tảng đám mây, đặc biệt là Amazon Web Services.
  • Ưu tiên biết Java/Scala.
  • Hiểu biết tốt về cơ sở dữ liệu SQL và NoSQL (mô hình hóa dữ liệu, lưu trữ dữ liệu).

Hãy ghi nhớ, đây chỉ là những điều cần thiết. Từ danh sách này, có thể giả định rằng các kỹ sư dữ liệu là chuyên gia trong lĩnh vực phát triển phần mềm và phụ trợ.
Ví dụ: nếu một công ty bắt đầu tạo ra một lượng lớn dữ liệu từ nhiều nguồn khác nhau, nhiệm vụ của bạn với tư cách là kỹ sư dữ liệu là tổ chức việc thu thập, xử lý và lưu trữ thông tin.

Danh sách các công cụ được sử dụng trong trường hợp này có thể khác nhau, tất cả phụ thuộc vào khối lượng dữ liệu này, tốc độ nhận và tính không đồng nhất của nó. Hầu hết các công ty hoàn toàn không xử lý dữ liệu lớn, vì vậy, với tư cách là kho lưu trữ tập trung, còn gọi là kho dữ liệu, bạn có thể sử dụng cơ sở dữ liệu SQL (PostgreSQL, MySQL, v.v.) với một tập hợp nhỏ các tập lệnh cung cấp dữ liệu vào nhà kho.

Các gã khổng lồ CNTT như Google, Amazon, Facebook hay Dropbox có yêu cầu cao hơn: kiến ​​thức về Python, Java hoặc Scala.

  • Kinh nghiệm với dữ liệu lớn: Hadoop, Spark, Kafka.
  • Kiến thức về thuật toán và cấu trúc dữ liệu.
  • Hiểu các nguyên tắc cơ bản của hệ thống phân tán.
  • Có kinh nghiệm với các công cụ trực quan hóa dữ liệu như Tableau hoặc ElasticSearch sẽ là một lợi thế.

Nghĩa là, có một sự thay đổi rõ ràng đối với dữ liệu lớn, cụ thể là trong việc xử lý nó dưới tải trọng cao. Các công ty này đã tăng yêu cầu về khả năng chịu lỗi hệ thống.

Kỹ sư dữ liệu Vs. nhà khoa học dữ liệu

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?
Được rồi, đó là một so sánh đơn giản và hài hước (không có gì cá nhân cả), nhưng trên thực tế nó phức tạp hơn nhiều.

Đầu tiên, bạn nên biết rằng có rất nhiều điều mơ hồ trong việc phân định vai trò và kỹ năng của nhà khoa học dữ liệu và kỹ sư dữ liệu. Nghĩa là, bạn có thể dễ dàng nhầm lẫn về những kỹ năng cần thiết để trở thành một kỹ sư dữ liệu thành công. Tất nhiên, có một số kỹ năng nhất định trùng lặp với cả hai vai trò. Nhưng cũng có một số kỹ năng hoàn toàn trái ngược nhau.

Khoa học dữ liệu là một ngành kinh doanh nghiêm túc nhưng chúng tôi đang hướng tới một thế giới khoa học dữ liệu chức năng nơi những người thực hành có thể thực hiện các phân tích của riêng họ. Để kích hoạt đường ống dữ liệu và cấu trúc dữ liệu tích hợp, bạn cần các kỹ sư dữ liệu chứ không phải nhà khoa học dữ liệu.

Kỹ sư dữ liệu có được săn đón nhiều hơn nhà khoa học dữ liệu không?

- Đúng vậy, bởi vì trước khi có thể làm bánh cà rốt, trước tiên bạn cần phải thu thập, gọt vỏ và kho cà rốt!

Kỹ sư dữ liệu hiểu lập trình tốt hơn bất kỳ nhà khoa học dữ liệu nào, nhưng khi nói đến thống kê thì điều ngược lại mới đúng.

Nhưng đây là lợi thế của kỹ sư dữ liệu:

Không có anh ấy/cô ấy, giá trị của mô hình nguyên mẫu, thường bao gồm một đoạn mã chất lượng khủng khiếp trong tệp Python, thu được từ một nhà khoa học dữ liệu và bằng cách nào đó tạo ra kết quả, có xu hướng bằng không.

Nếu không có kỹ sư dữ liệu, mã này sẽ không bao giờ trở thành một dự án và sẽ không có vấn đề kinh doanh nào được giải quyết một cách hiệu quả. Kỹ sư dữ liệu đang cố gắng biến tất cả những thứ này thành một sản phẩm.

Thông tin cơ bản một kỹ sư dữ liệu nên biết

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Vì vậy, nếu công việc này mang lại ánh sáng cho bạn và bạn nhiệt tình - bạn có thể học nó, bạn có thể thành thạo tất cả các kỹ năng cần thiết và trở thành một ngôi sao nhạc rock thực sự trong lĩnh vực kỹ thuật dữ liệu. Và vâng, bạn có thể thực hiện được điều này ngay cả khi không có kỹ năng lập trình hoặc kiến ​​thức kỹ thuật khác. Thật khó khăn, nhưng có thể!

Những bước đầu tiên là gì?

Bạn nên có một ý tưởng chung về cái gì là cái gì.

Trước hết, Kỹ thuật dữ liệu đề cập đến khoa học máy tính. Cụ thể hơn, bạn phải hiểu các thuật toán và cấu trúc dữ liệu hiệu quả. Thứ hai, vì các kỹ sư dữ liệu làm việc với dữ liệu nên cần phải hiểu các nguyên tắc của cơ sở dữ liệu và cấu trúc làm nền tảng cho chúng.

Ví dụ: cơ sở dữ liệu SQL cây B thông thường dựa trên cấu trúc dữ liệu B-Tree, cũng như trong các kho phân tán hiện đại, LSM-Tree và các sửa đổi khác của bảng băm.

*Các bước này dựa trên một bài viết hay Adilya Khashtamova. Vì vậy, nếu bạn biết tiếng Nga, hãy ủng hộ tác giả này và đọc bài đăng của anh ấy.

1. Thuật toán và cấu trúc dữ liệu

Sử dụng cấu trúc dữ liệu phù hợp có thể cải thiện đáng kể hiệu suất của thuật toán. Lý tưởng nhất là tất cả chúng ta nên học về cấu trúc dữ liệu và thuật toán trong trường học của mình, nhưng điều này hiếm khi được đề cập đến. Trong mọi trường hợp, không bao giờ là quá muộn để làm quen.
Vì vậy, đây là các khóa học miễn phí yêu thích của tôi để học cấu trúc dữ liệu và thuật toán:

Ngoài ra, đừng quên tác phẩm kinh điển của Thomas Corman về thuật toán - Giới thiệu về thuật toán. Đây là tài liệu tham khảo hoàn hảo khi bạn cần làm mới trí nhớ của mình.

  • Để cải thiện kỹ năng của bạn, hãy sử dụng Leetcode.

Bạn cũng có thể đi sâu vào thế giới cơ sở dữ liệu với các video tuyệt vời của Đại học Carnegie Mellon trên Youtube:

2. Học SQL

Toàn bộ cuộc sống của chúng ta là dữ liệu. Và để trích xuất dữ liệu này từ cơ sở dữ liệu, bạn cần phải “nói” cùng ngôn ngữ với nó.

SQL (Ngôn ngữ truy vấn có cấu trúc) là ngôn ngữ giao tiếp trong miền dữ liệu. Bất kể ai nói gì, SQL đã tồn tại, đang tồn tại và sẽ tồn tại trong một thời gian rất dài.

Nếu bạn đã phát triển trong một thời gian dài, có lẽ bạn đã nhận thấy rằng những tin đồn về sự khai tử sắp xảy ra của SQL thỉnh thoảng xuất hiện. Ngôn ngữ này được phát triển vào đầu những năm 70 và vẫn rất phổ biến đối với các nhà phân tích, nhà phát triển và những người đam mê đơn giản.
Nếu không có kiến ​​thức về SQL thì bạn sẽ không thể làm gì trong lĩnh vực kỹ thuật dữ liệu vì chắc chắn bạn sẽ phải tạo các truy vấn để truy xuất dữ liệu. Tất cả các kho dữ liệu lớn hiện đại đều hỗ trợ SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL server

... và nhiều người khác.

Để phân tích một lớp dữ liệu lớn được lưu trữ trong các hệ thống phân tán như HDFS, các công cụ SQL đã được phát minh: Apache Hive, Impala, v.v. Hãy xem, nó sẽ chẳng đi đến đâu cả.

Làm thế nào để học SQL? Chỉ cần làm điều đó trong thực tế.

Để làm điều này, tôi khuyên bạn nên xem một hướng dẫn tuyệt vời, nhân tiện, nó hoàn toàn miễn phí, từ Chế độ phân tích.

  1. SQL trung cấp
  2. Nối dữ liệu trong SQL

Điều làm cho các khóa học này trở nên đặc biệt là chúng có môi trường tương tác nơi bạn có thể viết và chạy các truy vấn SQL ngay trong trình duyệt của mình. Nguồn SQL hiện đại sẽ không thừa. Và bạn có thể áp dụng kiến ​​thức này vào Nhiệm vụ Leetcode trong phần Cơ sở dữ liệu.

3. Lập trình bằng Python và Java/Scala

Tại sao bạn nên học ngôn ngữ lập trình Python, tôi đã viết trong bài rồi Python vs R. Chọn công cụ tốt nhất cho AI, ML và Khoa học dữ liệu. Khi nói đến Java và Scala, hầu hết các công cụ lưu trữ và xử lý lượng dữ liệu khổng lồ đều được viết bằng các ngôn ngữ này. Ví dụ:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Tổ ong Apache (Java)

Để hiểu cách các công cụ này hoạt động, bạn cần biết ngôn ngữ mà chúng được viết. Phương pháp tiếp cận chức năng của Scala cho phép bạn giải quyết hiệu quả các vấn đề xử lý dữ liệu song song. Thật không may, Python không thể tự hào về tốc độ và khả năng xử lý song song. Nhìn chung, kiến ​​thức về một số ngôn ngữ và mô hình lập trình sẽ giúp ích cho việc mở rộng các phương pháp tiếp cận giải quyết vấn đề.

Để đi sâu vào ngôn ngữ Scala, bạn có thể đọc Lập trình trong Scala từ tác giả của ngôn ngữ. Twitter cũng đã xuất bản một hướng dẫn giới thiệu hay - Trường Scala.

Đối với Python, tôi tin rằng Python thông thạo cuốn sách cấp trung tốt nhất.

4. Công cụ làm việc với dữ liệu lớn

Dưới đây là danh sách các công cụ phổ biến nhất trong thế giới dữ liệu lớn:

  • Apache Spark
  • Kafka Apache
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache cassandra

Bạn có thể tìm thêm thông tin về việc xây dựng các khối dữ liệu lớn trong tài liệu tuyệt vời này. môi trường tương tác. Các công cụ phổ biến nhất là Spark và Kafka. Chúng chắc chắn đáng để nghiên cứu, nên hiểu cách chúng hoạt động từ bên trong. Jay Kreps (đồng tác giả Kafka) xuất bản tác phẩm hoành tráng năm 2013 Nhật ký: Những điều mọi nhà phát triển phần mềm nên biết về tính năng trừu tượng tổng hợp dữ liệu theo thời gian thựcNhân tiện, những ý tưởng chính từ Talmud này đã được sử dụng để tạo ra Apache Kafka.

5. Nền tảng đám mây

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Kiến thức về ít nhất một nền tảng đám mây nằm trong danh sách yêu cầu cơ bản đối với người ứng tuyển vào vị trí kỹ sư dữ liệu. Các nhà tuyển dụng thích Amazon Web Services hơn, với nền tảng đám mây của Google ở ​​vị trí thứ hai và Microsoft Azure lọt vào top ba.

Bạn phải có kiến ​​thức tốt về Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Hệ thống phân tán

Làm việc với dữ liệu lớn ngụ ý sự hiện diện của các cụm máy tính hoạt động độc lập, việc liên lạc giữa chúng được thực hiện qua mạng. Cụm càng lớn thì xác suất thất bại của các nút thành viên của nó càng lớn. Để trở thành một nhà khoa học dữ liệu giỏi, bạn cần hiểu các vấn đề và giải pháp hiện có cho hệ thống phân tán. Khu vực này cũ và phức tạp.

Andrew Tanenbaum được coi là người tiên phong trong lĩnh vực này. Đối với những người không sợ lý thuyết, tôi giới thiệu cuốn sách của anh ấy "Hệ thống phân phối", điều này có vẻ khó khăn đối với người mới bắt đầu, nhưng nó thực sự sẽ giúp bạn trau dồi kỹ năng của mình.

Tôi xem xét Thiết kế các ứng dụng sử dụng nhiều dữ liệu của Martin Kleppmann cuốn sách giới thiệu hay nhất. Nhân tiện, Martin có một điều tuyệt vời Blog. Công việc của anh sẽ giúp hệ thống hóa kiến ​​thức về xây dựng cơ sở hạ tầng hiện đại để lưu trữ và xử lý dữ liệu lớn.
Dành cho những ai thích xem video thì có khóa học trên Youtube Hệ thống máy tính phân tán.

7. Đường dẫn dữ liệu

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Đường ống dữ liệu là thứ bạn không thể sống thiếu với tư cách là một kỹ sư dữ liệu.

Hầu hết thời gian, một kỹ sư dữ liệu xây dựng cái gọi là đường ống dữ liệu, nghĩa là anh ta tạo ra một quy trình cung cấp dữ liệu từ nơi này đến nơi khác. Đây có thể là các tập lệnh tùy chỉnh truy cập API của dịch vụ bên ngoài hoặc tạo truy vấn SQL, tăng cường dữ liệu và đưa dữ liệu đó vào kho lưu trữ tập trung (kho dữ liệu) hoặc kho dữ liệu phi cấu trúc (hồ dữ liệu).

Tóm lại: danh sách kiểm tra cơ bản dành cho kỹ sư dữ liệu

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Tóm lại, cần có sự hiểu biết tốt về những điều sau đây:

  • Hệ thông thông tin;
  • Phát triển phần mềm (Agile, DevOps, Design Techniques, SOA);
  • Hệ thống phân tán và lập trình song song;
  • Nguyên tắc cơ bản về cơ sở dữ liệu - Lập kế hoạch, thiết kế, vận hành và khắc phục sự cố;
  • Thiết kế thử nghiệm - Thử nghiệm A/B để chứng minh các khái niệm, xác định độ tin cậy, hiệu suất hệ thống và phát triển các đường dẫn đáng tin cậy để nhanh chóng đưa ra các giải pháp tốt.

Đây chỉ là một số yêu cầu để trở thành kỹ sư dữ liệu, vì vậy hãy tìm hiểu và hiểu hệ thống dữ liệu, hệ thống thông tin, phân phối/triển khai/tích hợp liên tục, ngôn ngữ lập trình và các chủ đề khoa học máy tính khác (không phải tất cả các lĩnh vực chủ đề).

Và cuối cùng, điều cuối cùng nhưng rất quan trọng tôi muốn nói.

Con đường trở thành Kỹ sư dữ liệu không đơn giản như người ta tưởng. Anh ấy không tha thứ, anh ấy làm bạn thất vọng, và bạn phải chuẩn bị cho điều này. Một số khoảnh khắc trong hành trình này có thể khiến bạn bỏ cuộc. Nhưng đây là công việc thực sự và là một quá trình học tập.

Chỉ cần đừng phủ đường nó ngay từ đầu. Mục đích chung của việc đi du lịch là học hỏi càng nhiều càng tốt và sẵn sàng cho những thử thách mới.
Đây là một bức tranh tuyệt vời mà tôi đã xem qua để minh họa rõ điểm này:

Kỹ sư dữ liệu là ai và bạn trở thành kỹ sư dữ liệu như thế nào?

Và vâng, hãy nhớ tránh kiệt sức và nghỉ ngơi. Điều này cũng rất quan trọng. Chúc may mắn!

Bạn nghĩ gì về bài viết, bạn bè? Chúng tôi mời bạn hội thảo trên web miễn phí, sẽ diễn ra vào lúc 20.00h hôm nay. Trong hội thảo trực tuyến, chúng tôi sẽ thảo luận cách xây dựng hệ thống xử lý dữ liệu hiệu quả và có thể mở rộng cho một công ty nhỏ hoặc công ty khởi nghiệp với chi phí tối thiểu. Thông thường, chúng ta sẽ làm quen với các công cụ xử lý dữ liệu của Google Cloud. Thấy bạn!

Nguồn: www.habr.com

Thêm một lời nhận xét