Сетевой программист
Компетенции
Профессиональный навык
Программирование сокетов и клиент-серверное программирование, которое включает в себя написание компьютерных программ, взаимодействующих с другими программами посредством компьютерной сети.
Сокет англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.
Интерфейс сокетов впервые появился в BSD Unix. Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами.
Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с конечными аппаратами телефонной сети, а серверные — с коммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты
«Клиент — сервер» (англ. client–server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер — это программное обеспечение.
Надпрофессиональные навыки
По сравнению с профессиональные навыками, надпрофессиональных навыков нужно каждому специалисту несколько, а лучше много.
-
Тайм-менеджмент. Тайм-менеджмент для программиста — это логичное распределение времени на кодинг, чтение статей, самообразование и митинги.
-
Умение работать в команде. Проекты в одиночку почти никто не делает. Умение работать в команде абсолютно незаменимый навык.
-
Умение обучать. А если быть точным, умение вводить в контекст, навык, сравнимый с умением обучать. Задача человека, который обучает — это по сути введение в контекст. Только набор знаний более обширный. Программисты очень часто меняют контексты из-за смены проектов и команд. И умение ввести в контекст коллегу, указав на самые важные и опустив ненужные детали, — это очень важный навык, учитывая, насколько операция ввода в контекст сегодня дорогая.
-
Деловой этикет. Начиная от соблюдения правил русского языка и заканчивая элементарными правилами общения с заказчиками. В некоторых компаниях деловой этикет важен в переписках по почте внутри компании.
-
Целеполагание. Двух видов. Личное и проектное. Целеполагание в проекте тоже важный момент.
-
Коммуникабельность. Речь об умении общаться с коллегами из других профессий. Быть отзывчивым, помогать коллегам разбираться в своих вопросах, которые связаны с нашими профессиональными навыками. Коммуникабельность так же помогает налаживать контакт с заказчиком, а это всегда полезно для любого проекта.
Личные качества программиста:
-
логическое мышление
-
математические способности
-
усидчивость
Отладка – это удаление из программного кода различных багов. Значит, программирование – это создание и добавление этих самых багов в код?
Юмор программиста