Muchos consideran la programación de aplicaciones distribuidas como una de las más difíciles de aprender y requiere de conocimiento en varias tecnologías de computación y comunicación. Este paso es opcional. Sin embargo, es muy útil para comprender la topología de redes.  Es necesario tener una buena comprensión del modelo OSI (interconexión de sistemas abiertos), Ethernet, IP, TCP, UDP y HTTP antes de comenzar a programar aplicaciones distribuidas.  Para la programación basada en Windows, puedes aprender cualquier script que funcione con Windows Scripting Host. Para la programación basada en Linux, es suficiente con aprender scripts de Bash y Perl. Se recomienda ampliamente JavaScript para ambas plataformas por los siguientes motivos:   Es compatible con casi cualquier host de scripts de cualquier sistema operativo (Windows Scripting Host soporta JavaScript en forma predeterminada y la mayoría de las distribuciones de Linux tiene un paquete con soporte de consolas de scripts de JavaScript). La mayoría de los desarrolladores lo considera fácil de aprender. Tiene una sintaxis derivada de ALGOL, lo que te permitirá familiarizarte mucho más con otros lenguajes de programación cuando debas elegir un segundo  lenguaje de programación (C, C++, C#, Java y J# tienen una sintaxis derivada de ALGOL). Aprendiendo JavaScript, puedes familiarizarte con los scripts del lado del cliente en páginas web, ¡lo cual es un beneficio extra! Después, puedes usar técnicas de programación avanzada y paradigmas apropiados para tu lenguaje de scripts y funciones compatibles con él. Todos los lenguajes de scripts tienen en cierto punto aspectos de programación procedimental. Aprende lo necesario para hacerlo. Con aprender comunicaciones simples ya es suficiente. Preferiblemente, un lenguaje que sea multiparadigma como Python. Introdúcete en ese segundo lenguaje. La mayoría de los programadores elige a Java como el lenguaje de preferencia por muchas razones. Sin embargo, C# está ganando territorio rápidamente en este campo. Estas son las...

TL;DR 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.