Các lập trình viên vẫn cần phải có kỹ năng Linux?

Việc làm quen với các công cụ Linux CLI, quy ước hệ thống tệp và thói quen quản trị hệ thống là rất quan trọng để viết ứng dụng vì nhiều ứng dụng trong số đó sẽ được lưu trữ trên máy chủ Linux trong nhiều thập kỷ, trừ khi bạn chỉ tập trung vào việc phát triển ứng dụng dành cho máy tính để bàn cho . Việc viết ứng dụng cần có kiến ​​thức về các công cụ CLI, quy ước hệ thống tệp và quy trình quản trị hệ thống vì nhiều ứng dụng trong số đó sẽ được lưu trữ trên máy chủ Linux. Điều quan trọng là phải hiểu các quy ước hệ thống tệp, quy trình quản trị hệ thống và ngôn ngữ lập trình khi tạo ứng dụng vì nhiều ứng dụng sẽ được lưu trữ trên máy chủ Linux

Tuy nhiên, có thể lập luận rằng kiến ​​thức về Linux ít quan trọng hơn đối với các lập trình viên hiện đại;

Linux và phát triển phần mềm. Tổng quan lịch sử

Tại sao tôi tiếp tục sử dụng Linux trên máy tính để bàn của mình, liên quan

Hãy bắt đầu bằng cách xem mọi thứ diễn ra như thế nào trong quá khứ để hiểu rõ hơn những gì đã thay đổi

Trước đây, kiến ​​thức về Linux là cần thiết đối với các nhà phát triển bởi vì, bất kể hệ điều hành mà người dùng cuối sử dụng, các máy chủ chạy Linux (hoặc một hệ điều hành giống Unix khác có các quy ước và công cụ tương đương) thường được sử dụng trong môi trường lưu trữ ứng dụng

Có liên quan. Linux ở tuổi 305 huyền thoại hàng đầu về Linux được sử dụng ngày nay

Ứng dụng Android chạy trên hệ điều hành ít nhiều là một dạng của Linux và phần lớn các trang web cũng như ứng dụng web được lưu trữ trên Linux hoặc các máy chủ tương tự Unix khác. Hơn nữa, bất kỳ ứng dụng đa nền tảng nào chạy cục bộ đều phải hỗ trợ Linux để có quyền sử dụng thuật ngữ "đa nền tảng". "được lưu trữ trên Linux hoặc các máy chủ tương tự Unix khác. Các ứng dụng Android chạy trên hệ điều hành ít nhiều là một dạng của Linux. Và bất kỳ ứng dụng nào được thiết kế đa nền tảng và chạy cục bộ cần phải hoạt động trên Linux nếu ứng dụng đó muốn xứng đáng với biệt danh "đa nền tảng".

Vì những lý do này, các nhà phát triển cần hiểu Linux nếu họ kiểm tra phần mềm trước khi triển khai, quản lý tệp trên hệ thống Linux, cài đặt các gói Linux, v.v. Các nhà phát triển cũng cần hiểu Linux nếu họ được kỳ vọng sẽ đóng vai trò trong việc triển khai và quản lý phần mềm sau khi triển khai

Tại sao Linux ít quan trọng hơn đối với các lập trình viên hiện đại

Nhưng ngày nay, có một số lý do khiến việc làm quen với Linux không còn quan trọng nữa

1. Ứng dụng serverless và triển khai PaaS

Sự gia tăng của nền tảng dưới dạng dịch vụ (PaaS) và cho phép lưu trữ ứng dụng mà không phải lo lắng về cơ sở hạ tầng máy chủ hoặc hệ điều hành tương ứng. dịch vụ. Cả hai loại giải pháp đều có thể lưu trữ ứng dụng mà không phải lo lắng nhiều về cơ sở hạ tầng lưu trữ hoặc hệ điều hành bên dưới. nền tảng dưới dạng dịch vụ (PaaS) và . Cả hai loại đều có thể lưu trữ ứng dụng mà không phải lo lắng nhiều về cơ sở hạ tầng hoặc hệ điều hành máy chủ bên dưới. dịch vụ. Cả hai loại giải pháp đều có thể lưu trữ ứng dụng mà không phải lo lắng nhiều về cơ sở hạ tầng lưu trữ hoặc hệ điều hành bên dưới.

Ví dụ: bạn sẽ không phải tương tác nhiều với môi trường Linux để kiểm tra và triển khai ứng dụng của mình nếu bạn sử dụng dịch vụ PaaS như Heroku hoặc chạy dịch vụ đó dưới dạng chức năng serverless trên AWS Lambda. Thay vào đó, bạn có thể chủ yếu dựa vào công cụ của PaaS hoặc nền tảng không có máy chủ để cung cấp máy chủ Linux và chạy ứng dụng trên chúng

2. Hệ thống con Windows cho Linux

Việc giới thiệu Hệ thống con Windows cho Linux (WSL), một khuôn khổ tạo ra, là một bước ngoặt quan trọng khác trong cách các nhà phát triển nhìn nhận về Linux. Hệ thống con Windows dành cho Linux (WSL), một khung tạo.

Mặc dù toàn bộ điểm của hệ thống con WSL là mô phỏng môi trường Linux gốc trong Windows, nhưng mức độ chuyên môn về Linux mà các nhà phát triển bắt buộc phải có thấp hơn do môi trường được nhúng vào Windows. Hầu hết họ chỉ cần biết các công cụ Linux CLI cơ bản;

3. Máy Mac làm hộp phát triển

Mặc dù một số công cụ mà các nhà phát triển sẽ tìm thấy trên máy Mac không giống với các công cụ của hệ thống Linux và macOS thiếu khả năng tương thích nhị phân với Linux, cả hai hệ thống đều cung cấp quyền truy cập vào cùng các công cụ Unix cốt lõi, một cách khác để truy cập các tiện ích cốt lõi của Linux mà không thực sự chạy Linux là . Họ cũng quản lý tệp và người dùng theo cùng một cách

Tất nhiên, điều này luôn xảy ra kể từ khi Apple chuyển sang hệ điều hành giống Unix làm nền tảng cho máy tính của mình, nhưng điều đã thay đổi là thị phần của macOS đã tăng đều đặn. Nhưng giờ đây, hệ điều hành của Apple đã được sử dụng rộng rãi, đây là một giải pháp rõ ràng hơn cho các lập trình viên muốn có một môi trường giống như Unix để tạo và thử nghiệm các ứng dụng nhưng không muốn sử dụng Linux. Vào những năm 1990, ít nhà phát triển sử dụng Mac vì ít người nói chung sử dụng Mac. Tất nhiên, đã sử dụng hệ điều hành giống Unix để cung cấp năng lượng cho các máy tính của mình. Nhưng điều đã thay đổi là thị phần của macOS vẫn tăng đều đặn. Vào những năm 1990, ít nhà phát triển sử dụng Mac vì ít người nói chung sử dụng Mac. Nhưng bây giờ hệ điều hành của Apple đã phổ biến, đó là một giải pháp rõ ràng hơn cho các lập trình viên muốn có một môi trường giống như Unix để viết và thử nghiệm các ứng dụng nhưng không muốn sử dụng Linux.

Trường hợp bảo trì kỹ năng Linux vẫn cần thiết

Tất cả những điều trên không có nghĩa là Linux hoàn toàn không quan trọng đối với hầu hết các nhà phát triển; . Lượng kiến ​​thức về Linux cần thiết để thử nghiệm, triển khai và quản lý các ứng dụng đó phải ở mức thấp nhất có thể đối với các lập trình viên tạo ứng dụng sẽ được triển khai trực tiếp trên máy chủ Linux mà không có bất kỳ dịch vụ trừu tượng hoặc quản lý nào

Nhà phát triển điển hình có thể sử dụng giải pháp như Hệ thống con Windows cho Linux hoặc chọn dịch vụ lưu trữ cung cấp quyền truy cập vào môi trường Linux mà không yêu cầu kỹ năng quản trị hệ thống Linux truyền thống, nhưng nhìn chung, các nhà phát triển ngày nay không cần biết nhiều về Linux

Linux và Windows cùng nhau phân chia phần lớn thị trường, về máy chủ web, lưu trữ và khung mã. Có một hình ảnh liên tục về môi trường Windows mượt mà và thiết bị đầu cuối Linux nơi mã thô truyền qua màn hình. Nó có vẻ khó khăn khi nghĩ về nó, chứ đừng nói đến việc học, và nó khiến nhiều người quay lưng

Bạn có cần biết Linux, hoặc thực sự là bất kỳ ai trong gia đình *nix, để trở thành nhà phát triển ngăn xếp đầy đủ không?

Một câu trả lời đơn giản

Bạn có thể biết rằng không có gì trong cuộc sống là thực sự chặt chẽ và khô khan. Sẽ không bao giờ có một câu trả lời đơn giản phù hợp với tất cả mọi người. Như vậy, câu trả lời đơn giản của chúng tôi ở đây là “có”, nhưng với trình độ

Thực tế là bạn có thể đi cả đời mà không cần chạm vào môi trường Linux. Nếu bạn dành đủ tâm huyết cho nó, bạn có thể sử dụng trong một thời gian rất dài mà không cần chạm vào môi trường Windows, nhưng bạn sẽ bị hạn chế đáng kể về những gì bạn có thể làm. Windows ở khắp mọi nơi trong thế giới kinh doanh, nhưng sau đó, Linux cũng vậy. Linux chỉ là, chúng ta sẽ nói, ẩn tốt hơn

Một điều chúng ta cần nhấn mạnh là hình ảnh trên, về môi trường GUI Windows và môi trường Linux tập trung vào mã, đơn giản là không chính xác. Rốt cuộc, cả hai công nghệ đã đi một chặng đường dài kể từ những năm 80 và 90

Nếu bạn đang làm việc trong môi trường Windows, bạn cũng có khả năng tiếp xúc với quyền truy cập trực tiếp vào thiết bị đầu cuối. Bạn sẽ cần biết cách của mình, chẳng hạn như Apache, dòng lệnh Windows, các tiện ích dòng lệnh khác nhau và mã hóa trực tiếp như Powershell

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Ngược lại, không phải tất cả công việc *nix đều được thực hiện ở cấp mã. Không chỉ có một mà có rất nhiều GUI dành cho Linux, và một số trong số chúng trông giống Windows đến mức một người bình thường sẽ không nhận thấy sự khác biệt trừ khi họ tìm kiếm nó

Có những khó khăn và thách thức với cả môi trường Windows và Linux. Bạn phải tìm hiểu thông tin chung và kiến ​​thức chuyên ngành về công việc bạn đang làm

Tại sao bạn nên học Linux

Vậy thì lợi ích của việc học Linux là gì?

Trước hết, phần lớn máy chủ web sử dụng Linux. Thống kê từ năm 2017 chỉ ra rằng 2/3 số máy chủ web đang sử dụng môi trường Linux. Và, chắc chắn rồi, nếu tất cả những gì bạn đang làm là lưu trữ một trang web và sử dụng một số công cụ cơ bản, thì bạn hầu như không cần chạm trực tiếp vào Linux

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Nhưng bạn không dừng lại ở đó, phải không? . Điều đó có nghĩa là bạn cần biết nền tảng mà bạn đang làm việc để đảm bảo rằng mã của bạn sẽ hoạt động ngay từ đầu

Linux cũng rất phổ biến với tư cách là cốt lõi của môi trường phát triển. Không phải lúc nào bạn cũng có thể phát triển và kiểm tra mã của mình trên máy cục bộ; . Bạn không thể triển khai mã chưa được kiểm tra vào sản xuất và gây rủi ro cho công ty mà bạn đang làm việc, vì vậy bạn cần sử dụng môi trường kiểm tra. Thông thường, điều đó có nghĩa là Linux

Một lợi ích tuyệt vời của việc học Linux là hầu hết những gì bạn cần học đều không khó chút nào.

  • Tìm hiểu cách cài đặt gói phần mềm
  • Tìm hiểu sự khác biệt giữa các bản phân phối Linux
  • Tìm hiểu cách điều hướng thiết bị đầu cuối, thay đổi thư mục, tạo thư mục và thao tác với tệp
  • Tìm hiểu cách đặt quyền
  • Tìm hiểu cách sử dụng các công cụ cơ bản để theo dõi hiệu suất của máy chủ
  • Tìm hiểu cách thực hiện các biện pháp phòng ngừa bảo mật cơ bản và củng cố máy chủ cũng như ứng dụng

Có rất nhiều cách sử dụng trong thế giới thực cho các kỹ năng Linux cơ bản. Nếu bạn định thực hiện một số bước phát triển trong Ruby on Rails, bạn sẽ cần biết cách giải nén và định cấu hình nó để thiết lập môi trường của mình. Nếu bạn đang phát triển mã cho môi trường Linux, bạn sẽ cần học cách kiểm tra và chẩn đoán các lỗi bạn gặp phải

Linux cũng là tài liệu rất tốt. Nó được sử dụng cực kỳ rộng rãi trong toàn bộ vũ trụ công nghệ và có hàng thập kỷ tài liệu trực tuyến theo đúng nghĩa đen, phần lớn trong số đó đã không thay đổi nhiều trong suốt thời gian đó. Nếu bạn gặp vấn đề, nếu bạn gặp lỗi, nếu bạn đang cố gắng hoàn thành một nhiệm vụ và nó không thành công, bạn thường có thể tìm kiếm câu trả lời cho vấn đề của mình và có cơ hội rất cao để tìm thấy nó

Trong trường hợp bạn không thể tìm thấy câu trả lời dễ dàng, có rất nhiều cộng đồng tập trung vào Linux trên web. Có các diễn đàn hỗ trợ, có Reddit subs, có các chủ đề Twitter và hashtag mà bạn có thể hỏi, v.v. Theo thời gian, bạn học được hầu hết những gì bạn cần làm và bạn có đủ sự quen thuộc để bạn có thể hiểu được rất nhiều điều mà bạn không biết. Đối với mọi thứ khác, có cộng đồng

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Trên tất cả những điều trên, Linux thực sự rất mạnh. Với Windows, bạn có rất nhiều lớp bảo mật và che giấu giữa bạn và những gì bạn có thể muốn thực hiện. Linux trao cho bạn chìa khóa và đưa bạn vào buồng lái. Lúc đầu, điều đó thật khó khăn và có khả năng rất thực tế là làm hỏng mọi thứ, điều này giúp dạy bạn suy nghĩ thấu đáo về các hành động của mình trước khi thực hiện chúng, tìm hiểu những cạm bẫy và phát triển trách nhiệm

Mọi người đều phạm sai lầm của họ. Mọi người vô tình xóa tệp hoặc đẩy tệp bị hỏng thay vì tệp cố định vào một môi trường hoặc làm hỏng máy chủ có vòng lặp bị lỗi. Đó là một phần trong cách bạn học hỏi, trải nghiệm và phát triển với tư cách là một nhà phát triển

Một phần sức mạnh của Linux là nó đơn giản và theo mô-đun. Lõi của Linux không cần nhiều thứ để hoạt động và hầu như mọi thứ đều có thể được xây dựng từ lõi đó. Điều này làm cho nó rất ổn định và rất kiên cường với những sai lầm. Trên Windows, nếu bạn quên giới hạn một vòng lặp, bạn sẽ làm hỏng máy của mình. Nếu bạn xóa một tệp quan trọng, máy tính của bạn không khởi động được. Windows giống như một ngôi nhà phức tạp gồm các tấm thẻ được tạo ra để chứa ứng dụng của bạn; . Linux giống như một viên gạch;

Ngoài ra còn có những lợi ích khác cho Linux. Ví dụ: nó miễn phí và mã nguồn mở. Nếu bạn muốn tìm hiểu sâu về mô-đun cốt lõi của Linux và xem nó hoạt động như thế nào, hoàn toàn không có gì ngăn cản bạn. Nó hoàn toàn mở để khám phá tò mò

Linux cũng có nhiều bảo mật vốn có so với Windows và ngày nay, ngay cả môi trường Mac. Phần mềm độc hại khó lây nhiễm ngay từ đầu và khó sinh sôi nảy nở hơn nếu nó xâm nhập được. Nó cũng dễ dàng hơn để phục hồi từ

Và, tất nhiên, có những chi tiết nhỏ. Linux không cần khởi động lại thường xuyên như Windows. Linux có thể chạy trên bất kỳ máy nào, với cấu hình trình điều khiển phù hợp. Linux nhỏ và không yêu cầu nhiều về dung lượng ổ đĩa. Tất cả điều này có thể rất thuận tiện cho một nhà phát triển

Có những hạn chế đối với việc học Linux không?

Linux có rất nhiều lợi thế cho nhà phát triển, nhưng có bất kỳ nhược điểm nào khi học nó không?

Có lẽ nhược điểm lớn nhất là khả năng gây nhầm lẫn giữa Linux và Windows. Với Linux, bạn học được rất nhiều lệnh terminal, cách điều hướng thông qua dòng lệnh. Không phải tất cả những thứ này đều hoạt động theo cùng một cách hoặc hoàn toàn hoạt động trong môi trường Windows. Khi bạn chỉ nhìn vào các giao diện dòng lệnh, bạn có thể dễ dàng quên mất mình đang làm việc với giao diện nào trong giây lát và cuối cùng cảm thấy bối rối hoặc thất vọng khi một thứ gì đó đơn giản không hoạt động.

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Linux cũng dễ học, nhưng khó thực sự thành thạo. Nếu bạn đang muốn thăng tiến từ vai trò nhà phát triển lên vị trí quản trị, bạn có thể cần tìm hiểu nhiều về cách thức hoạt động của Linux ở cấp độ cơ bản nhất và điều đó có thể mất nhiều thời gian. Có tương đối ít bậc thầy về Linux hơn so với bậc thầy về Windows

Điều đó nói rằng, nếu bạn chỉ muốn sử dụng Linux làm môi trường phát triển, thì bạn không cần phải biết nhiều về nó. Bạn KHÔNG CẦN trở thành cao thủ. Bạn càng biết nhiều, bạn càng có thể trở nên tinh tế hơn trong môi trường, nhưng bạn không cần phải quá tinh tế để hoạt động

Linux sống trong thế giới mã nguồn mở, có cả mặt tốt và mặt xấu. Nó tốt ở chỗ nó mở ra môi trường cho bất kỳ ai muốn tạo dự án để thêm chức năng vào hệ thống của họ. Thật tệ khi thế giới tràn ngập các ứng dụng bị bỏ rơi hầu như không hoạt động và yêu cầu chỉnh sửa cũng như can thiệp thủ công để sử dụng. Phần cứng bí truyền hoặc kỳ lạ hơn có thể khó tìm trình điều khiển hơn, các công cụ cũ hơn có thể không hỗ trợ các tính năng hiện đại, v.v.

99% thời gian, mọi thứ bạn cần với tư cách là nhà phát triển ngăn xếp đầy đủ đều có sẵn dễ dàng và sẵn sàng để sử dụng trong Linux. Rốt cuộc, các nhà phát triển là phổ biến và điều đó có nghĩa là trừ khi bạn vượt ra ngoài giới hạn mà hầu hết mọi người coi là bình thường, bạn sẽ không gặp khó khăn gì. Sử dụng các môi trường tiêu chuẩn với cấu hình phần cứng và phần mềm và bạn sẽ ở trong một thế giới được ghi chép đầy đủ với nhiều hỗ trợ. Sử dụng các công cụ phổ biến, hiện đại cho sự phát triển của bạn và bạn sẽ thấy thật dễ dàng không chỉ để làm việc trong môi trường mà còn để cộng tác

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Rất có thể, bạn sẽ không cố gắng phát triển một chương trình mới cho phiên bản Linux của những năm 1990 và bạn sẽ không cần phần cứng kỳ lạ chưa được cập nhật từ năm 1986

Như đã nói, CÓ nhiều cơ hội cho những người thích lập trình kỳ lạ hơn. Ví dụ, các lĩnh vực sản xuất và chăm sóc sức khỏe có đầy những máy móc cũ, chuyên dụng mà các công ty ban đầu đã ngừng hoạt động và không được hỗ trợ từ lâu. Có thể phát triển các phiên bản phần mềm mới hơn, hiện đại hơn, an toàn hơn cho các máy chuyên dụng này có thể là một vị trí rất béo bở cho nhà phát triển

Bạn có thực sự cần học Linux không?

có và không. Nếu bạn đang phát triển riêng cho môi trường Windows, bạn không bao giờ cần động đến Linux. Nếu bạn muốn chuyên về Windows, hãy sử dụng ASP và làm việc với. NET mọi lúc, bạn hoàn toàn ổn, không bao giờ cần tìm hiểu gì về *nix cả. Giống như nếu bạn muốn tập trung vào các ứng dụng iOS, bạn không cần phải học lập trình Windows, vì chúng có môi trường riêng

Tuy nhiên, với tư cách là nhà phát triển, bạn càng học nhiều, bạn càng linh hoạt hơn. Nếu bạn đã quen thuộc với Linux và Windows, bạn sẽ được mong muốn hơn với tư cách là một người làm việc tự do, nhiều khả năng được thuê làm nhà phát triển trong môi trường kết hợp và bạn thường sẽ được trả nhiều tiền hơn cho các kỹ năng của mình

Học Linux cần có thời gian, giống như học bất kỳ kỹ năng, công cụ hay nền tảng nào khác. Vì vậy, điều bạn cần làm là tự hỏi điều gì là quý giá nhất đối với bạn lúc này?

Bạn có coi trọng việc học và chuyên môn hóa trong một môi trường nơi bạn có thể phát triển và mở rộng sau này khi rảnh rỗi không?

Bạn có coi trọng việc học một nền tảng kiến ​​thức chung rộng lớn, để sau này bạn có thể chọn một chuyên ngành không?

Các lập trình viên vẫn cần phải có kỹ năng Linux?
Các lập trình viên vẫn cần phải có kỹ năng Linux?

Cả hai đều là những cách hợp lệ để trở thành một nhà phát triển ngăn xếp đầy đủ. Có thể bạn rất quan tâm đến một môi trường và không quan tâm nhiều đến việc học một môi trường khác. Có thể bạn là một người tò mò và muốn tìm hiểu càng nhiều càng tốt về mọi thứ bạn có thể. Không phải là câu trả lời sai. Làm những gì bạn muốn làm, làm những gì bạn thấy thú vị nhất, học những gì bạn muốn học

Chúng tôi coi Linux là một kỹ năng quan trọng và chúng tôi đặc biệt khuyến khích bạn học nó để cải thiện triển vọng công việc và hiểu biết tổng thể của bạn về cách hoạt động của quá trình phát triển. Bạn có thể sẽ tự cản trở mình nếu không học ít nhất những điều cơ bản, nhưng bạn quyết định đào sâu vào chủ đề đến mức nào là tùy thuộc vào bạn.

Sớm muộn gì bạn cũng sẽ gặp Linux trong môi trường của mình. Điều bạn cần quyết định là bạn sẽ có thể xử lý như thế nào khi nó xảy ra

Bạn có kinh nghiệm nào với Linux không?

Bạn có cần Linux như một lập trình viên không?

Không phải bạn cần Linux để lập trình . Có những nhà phát triển thành công trên tất cả các loại nền tảng khác nhau. Tuy nhiên, Linux có nhiều thứ để cung cấp cho các nhà phát triển. Dưới đây là một vài điều tôi thấy hữu ích.

Tại sao lập trình viên cần học Linux?

Linux là một trong những kỹ năng phổ biến trong nhân viên CNTT. Đặc biệt là quản trị viên hệ thống, quản trị viên hệ thống, kỹ sư mạng học Linux và họ sử dụng kiến ​​thức này trong công việc của họ. Vì vậy, kỹ năng này rất quan trọng trong CNTT. Là một hệ điều hành máy chủ phổ biến, kiến ​​thức về Linux là kỹ năng quan trọng đối với nhân viên CNTT .