Oleh kebanyakan pemrogram, pemrograman aplikasi terdistribusi dianggap sebagai hal yang sangat sulit dipelajari dan memerlukan pengetahuan mendalam mengenai teknologi komputer dan komunikasi. Langkah ini bersifat opsional, namun akan berguna dalam memahami topologi jaringan.  Anda harus memahami lebih dalam mengenai model Open Systems Interconnection (OSI), Ethernet, IP, TCP, UDP dan HTTP sebelum  memulai memprogram aplikasi terdistribusi.  Untuk pemrograman berbasis Windows, ini adalah skrip apa saja yang dapat bekerja dengan Windows Scripting Host. Untuk pemrograman berbasis Linux, skrip Bash dan Pearl sudah cukup. Javascript sangat dianjurkan untuk dipelajari bagi kedua platform ini, karena:   Didukung oleh hampir seluruh host scripting pada kedua SO (Windows Scripting Host otomatis mendukung JavaScript, dan sebagian besar distribusi Linux memiliki package untuk mendukung konsol skrip Javascript). Dianggap lebih mudah oleh kebanyakan pengembang aplikasi. Mendukung sintaks turunan ALGOL yang akan memudahkan Anda saat akan menggunakan bahasa pemrograman kedua (C, C++, C#, Java dan J# dan semua yang memiliki sintaks turunan ALGOL). Dengan mempelajari JavaScript, Anda lebih memahami skrip berbasis klien pada sebuah halaman situs web. Nantinya Anda bisa menggunakan teknik dan paradigma bahasa lain pada bahasa skrip Anda dan apa pun yang didukungnya. Semua bahasa skrip memiliki aspek pemrograman prosedural yang harus dipahami. Pelajari apa yang diperlukan untuk hal ini. Komunikasi biasa saja sudah cukup. Sebaiknya gunakan bahasa pemrograman multiparadigma seperti Phyton. Pelajari bahasa kedua ini. Kebanyakan pemrogram menggunakan Java sebagai bahasa kedua karena beberapa alasan. Namun C# lebih tepat digunakan untuk ini. Berikut ini alasan mengapa Java dan C# lebih disukai:  Keduanya merupakan bahasa pemrograman berorientasi objek yang melindungi para pemrogram di dalam sebuah tim besar dari detail implementasi, karena keduanya merupakan komponen pendukung (unit kode, prakompilasi yang melaksanakan tugas tertentu...

===
Write a summary of the previous text in Vietnamese:
Tìm hiểu về lập trình ứng dụng phân tán. Tìm hiểu cấp tốc về các hệ thống thoại và phần cứng của chúng. Tự làm quen với kiến trúc phần cứng và các thiết bị làm việc mạng như các bộ tập trung trung tâm (hub), thiết bị chuyển mạch (switch) và định tuyến (router). Học một khóa học về các giao thức và những thứ cơ bản liên quan. Học ngôn ngữ XML và tự làm quen với nó. Bắt đầu bằng việc học một ngôn ngữ lập trình kịch bản cho chương trình thông dịch lệnh. Đầu tiên, chỉ áp dụng lập trình thủ tục bằng ngôn ngữ kịch bản mà bạn chọn. Sử dụng ngôn ngữ lập trình kịch bản bạn đã học để viết các kịch bản thực hiện việc thông tin giữa các máy. Chuyển đổi sang một ngôn ngữ lập trình/kịch bản máy bàn. Tập trung hơn vào các tính năng cốt lõi của ngôn ngữ, đặc biệt là những tính năng hỗ trợ kết nối mạng. Tham gia một khóa đào tạo về thiết kế và kiến trúc ứng dụng phân tán. Học cách xây dựng các thành phần dịch vụ cũng như sử dụng ngôn ngữ lập trình bạn chọn. Học một hoặc nhiều hơn các công nghệ sau.