Что такое java: объясняем для новичков

Как и зачем становиться java-разработчиком в 2022 году

Особенности Java

Объектно-ориентированность

Java основан на концепции объектов, что делает его более структурированным и модульным. Вы можете создавать классы и объекты, которые взаимодействуют друг с другом, чтобы решать задачи разработки.

Безопасность

Ее достигают благодаря особой системе верификации кода, которую встроили в Java-машину. А наличие автоматического управления памятью исключает проблемы безопасности, вызванные «человеческим фактором».

Компилируемость

Код на Java переводят сначала в байт-код, который потом выполняется виртуальной машиной Java. Такая компиляция позволяет ему работать на скорости, аналогичной скорости языков С и С++.

Независимость от платформы

Основная фишка Java — из-за перевода программы в байт-код его можно запустить на любом устройстве. Сам байт-код не зависит от операционной системы и оборудования и может выполняться на любом устройстве, для которого существует виртуальная машина.

Платформа — среда, в которой работает наше приложение. Например, ею может быть операционная система Windows на вашем рабочем компьютере или Linux — на сервере.

Отказоустойчивость

У Java есть механизм исключений — такой механизм работает и во время исполнения программы, и в процессе компиляции, что снижает количество ошибок. Если в коде ошибка, виртуальная машина приостанавливает его исполнение, что позволяет избежать ущерба.

Бесплатные курсы, уроки и самоучители

Подборка сайтов с книгами, статьями, видеоуроками и другими полезными материалами, которые помогут научиться Java программированию с нуля.

  • Уроки в Клубе фрилансеров – здесь собрано почти 100 бесплатных курсов для разработчиков. Рекомендуем подписаться на группу, т.к. в ней регулярно размещаются видео с уроками и вакансии для новичков.
  • Metanit.com/java/tutorial/ – бесплатное руководство по Ява из 12 глав.
  • Proglib.io – библиотека программиста: полезные статьи и тесты.
  • Vk.com/programl – группа ВКонтакте с видеоуроками по программированию, роликами и вебинарами.
  • @BookJava – полезный Телеграм-канал для тех, кто хочет научиться программировать на Java с нуля. Здесь собраны статьи, туториалы, подборки интересных каналов, вакансии.
  • @javaproglib – канал Библиотека Джависта: книги, тесты и реальные кейсы для прохождения собеседования в IT-компании.
  • Javaspecialists.eu – сайт на английском языке. Здесь интересны статьи cпециалистов. Их можно переводить при помощи Google Translate.
  • Tproger.ru – подборка бесплатных книг для начинающих программистов, которые помогут выучить язык программирования Java.
  • Ru.hexlet.io – бесплатный курс по многопоточности. 11 уроков в формате видео или текста.

С чего начать изучение Java

Вы уже знаете, зачем нужна Java, какие возможности, плюсы и перспективы есть у этого языка. Если хотите изучить инструмент в качестве первого или очередного ЯП, и не потратить при этом время зря, нужно ответственно подойти к организации учебного процесса. Его можно представить так:

  1. Установка среды программирования Java на компьютер.
  2. Инсталляция инструментов для разработки программ.
  3. Изучение синтаксиса и особенностей языка.
  4. Освоение Java Core – стандартной версии технологии.
  5. Изучение фреймворков и библиотек под конкретные задачи.

В обязательном порядке нужно изучить следующие базовые конструкции языка. К ним относятся массивы, константы, переменные и типы, логические и арифметические выражения с операциями, работа со строками, операторы continue и break, а также оператор ветвления if-else и цикл for.

Изучение ЯП – долгий и последовательный процесс

Что касается вопроса о том, где программировать на Java, для начала вам нужно установить на компьютер JDK – Java Development Kit. Сделать это можно на официальном сайте Oracle. Далее надо инсталлировать IDE – среду разработки, в которой вы будете писать непосредственно код ваших программ. К числу популярных IDE для программирования на Java относятся Eclipse, IntelliJ IDEA, а также самая функциональная и быстрая среда разработки JCreator, разработанная на языке C++.

В зависимости от интенсивности обучения, на изучение синтаксиса и базовых моментов Java уходит в среднем от 6 до 12 месяцев. Многое зависит от того, насколько ответственно вы подходите к процессу обучения, есть ли опыт разработки в прошлом, и от многих других факторов.

Очень важно обучаться систематически и по возможности ежедневно. Для этого составьте план обучения, соберите как можно больше источников информации и выделяйте каждый день как минимум по 2-3 часа на последовательное обучение

Старайтесь не просто копировать уроки, а разрабатывать свои проекты, опираясь на полученные во время занятий знания – это более эффективный подход

Для этого составьте план обучения, соберите как можно больше источников информации и выделяйте каждый день как минимум по 2-3 часа на последовательное обучение. Старайтесь не просто копировать уроки, а разрабатывать свои проекты, опираясь на полученные во время занятий знания – это более эффективный подход.

Обучаться можно как самостоятельно по видео и книгам, так и купить курсы, например в GeekBarains.


Системный подход – ключ к успешному изучению Java

Многообразие разработки

Сегодня в области разработки программного обеспечения существует много видов профессий:

  • разработчики (backend, frontend, fullstack);
  • тимлиды — руководители команд;
  • специалисты по тестированию (QA, QC);
  • инженеры непрерывного развертывания и интеграции (DevOps);
  • администраторы баз данных и серверов (DBA).

Backend-разработка — это отдельный вид искусства. Сложный, порой непонятный, однако интересный и перспективный.

Решили окунуться в это с головой? Тогда предложу небольшую дорожную карту, которая поможет сориентироваться по профессии, подскажет полезные скиллы и, возможно, замотивирует.

Основные причины изучения Java в 2023

Широкая сфера применения: Java используется во множестве областей, таких как разработка мобильных приложений, веб-приложений, больших корпоративных систем, игр и многое другое. Знание Java открывает огромное количество возможностей для карьерного роста и работы над различными проектами.

Обширная сообщество разработчиков: За годы существования Java создалось огромное и активное сообщество разработчиков, готовых помочь и поделиться опытом. Онлайн-форумы, блоги, сайты и социальные сети наполнены полезной информацией и обсуждениями, что делает изучение Java более интересным и полезным.

Java также обладает мощной и стабильной платформой: виртуальная машина Java (JVM) обеспечивает высокую производительность, безопасность и переносимость программного обеспечения. Благодаря JVM, Java-приложения могут работать на разных операционных системах без изменений кода, что облегчает поддержку и развертывание программ.

Первоначально разработанный для работы в распределенных средах, Java стал одним из основных языков программирования для создания приложений для интернета вещей (IoT). Рост IoT предоставляет множество возможностей для разработчиков Java: от умных домов и гаджетов до индустриальных систем и умных городов. Изучение Java позволяет принять участие в увлекательных проектах с использованием новейших технологий.

Наличие множества готовых библиотек и фреймворков: Java разрабатывается уже более 25 лет, и за это время были созданы множество готовых библиотек и фреймворков, которые значительно упрощают разработку. Благодаря этому, программисты могут сосредоточиться на решении конкретных задач без необходимости писать все с нуля. Это позволяет разработчикам значительно повысить свою эффективность и сократить время разработки.

В завершение, Java — это язык программирования, который сочетает в себе практичность, надежность и гибкость. Зная Java, вы открываете себе множество карьерных возможностей в современном мире информационных технологий. Выбор изучать Java в 2023 году остается актуальным и обоснованным.

Should You Choose Java for Your Next Project?

Choosing a programming language for the project is quite a complicated task. To understand if Java is a proper fit as a programming language for a new application, we should answer a few questions which will help to make a decision:

  1. What is the environment for the project (web, mobile, etc)?

Java is a good fit for WEB and mobile applications so we can use it in both cases.

  1. Do we need to consider some infrastructure, such as new hardware? What kind of deployment is required?

AWS, Google, and Oracle are the leading service providers for deployment, and all of them are all consistent with Java.

  1. Are there any particular requirements for libraries, features, and tools?

There are a lot of libraries and SDKs for Java enabling many features in your project, like Google Maps, Stripe(payment service), AWS S3(file storage), and so on.

  1. Is the developer available to code in this language, or do we need to search for new developers? Are they experienced in working with this language, or do they need to learn it quickly?

Java is a popular computer language, and it is a huge chance that at least one developer from your company knows this language.

Another benefit of using this language over younger ones is the global community and its phenomenal support. Community members constantly share their challenges when working with the language and their solutions so that you can always find some relevant tips for the issues that may arise. You can find a quick fix and adapt it to your project.

Востребованность и зарплата

Разработчики, владеющие Java, востребованы уже сейчас. Специалистов, пишущих на этом языке код, не хватает, из-за чего работодатели готовы предложить им большую зарплату и лучшие условия. Число запросов, связанных с Java, в Яндексе колеблется в районе одного миллиона в месяц. Вот еще несколько фактов, которые показывают востребованность профессии:

  • Медианная зарплата  — 140 тыс. рублей («Хабр Карьера»).
  • Java-разработчики входят в топ самых востребованных IT-профессий на удаленке (CNews).
  • Работодатели в Москве готовы предложить программисту со знанием Java до 350 тыс. рублей в месяц (Superjob).
  • Работодатели в России ищут свыше 10 тысяч программистов с разным уровнем владения Java (hh.ru).
  • 59% опрошенных HR-менеджеров сталкиваются с нехваткой специалистов на Java (CodingGame:).

Сравнение Java с другими языками

Мы проведем краткий обзор  самых популярных языков программирования: JavaScript, Python, Java, C#. На основе этих языков были созданы одни из самых популярных приложений в мире.

Java и Python

Одна из самых распространенных областей применения Python – data science. В Python есть множество библиотек для анализа данных и машинного обучения, таких как numpy, pandas, scikit-learn, tensorflow и PyTorch, что делает его популярным выбором для работы с данными и построения прогнозных моделей. Библиотеки и фреймворки Python, такие как Matplotlib и Seaborn, позволяют легко визуализировать данные, что помогает специалистам по анализу данных понимать и анализировать их более эффективно.

Python также широко используется в веб-разработке благодаря таким фреймворкам, как Django, Flask и Pyramid. Эти фреймворки позволяют разработчикам быстро создавать надежные веб-приложения и API.

Python также популярен для научных вычислений благодаря таким библиотекам, как NumPy и SciPy, которые обеспечивают эффективную реализацию математических и научных алгоритмов.

Простота Python, удобство чтения и огромное количество библиотек делают его популярным выбором среди разработчиков и ученых. 

Рис. 4. Сравнение кода Java и Python

Java и C#

C# (произносится как C-sharp) — это язык программирования, разработанный компанией Microsoft в рамках инициативы .NET. Впервые он был выпущен в 2000 году и с тех пор стал одним из самых популярных языков программирования для разработки настольных приложений для Windows и создания игр.

C# – объектно-ориентированный язык программирования, он основан на концепции «объектов», которые имеют свойства и методы. Он также поддерживает другие современные концепции программирования, такие как сборка мусора, дженерики и делегаты. Язык был разработан с акцентом на производительность разработчиков и удобство сопровождения кода.

Синтаксис C# похож на синтаксис других популярных языков, таких как Java и C++, и разработан так, чтобы его было легко изучать и понимать. C# позволяет разработчику создавать собственные классы, методы и переменные, а также использовать существующие классы, входящие в состав фреймворка .NET, который предлагает широкий набор инструментов и библиотек для решения общих задач программирования.

C# в основном используется для разработки настольных приложений для Windows и игр. Он также популярен при разработке игр, как для ПК, так и для мобильных устройств. Игровой движок Unity используется для разработки игр, поддерживает скриптинг на C#. Кроме того, C# можно использовать для разработки серверных приложений, таких как веб-сервисы, облачные приложения и многое другое.

Java и JavaScript

Синтаксис JavaScript похож на синтаксис других популярных языков программирования, таких как C и Java, и поддерживает многие из тех же понятий, таких как переменные, функции и управляющие структуры. JavaScript является объектно-ориентированным языком программирования, что позволяет разработчикам организовывать свой код в виде многократно используемых объектов.

Одна из ключевых особенностей JavaScript заключается в том, что он может выполняться непосредственно в веб-браузерах, а это значит, что разработчики могут создавать интерактивные веб-страницы, не опираясь на код на стороне сервера. Это позволяет создавать динамические пользовательские интерфейсы, которые могут обновляться в режиме реального времени, не требуя обновления страницы.

Помимо FrontEnd разработки, JavaScript также используется для разработки на стороне сервера благодаря таким фреймворкам, как Node.js. Это позволяет разработчикам использовать один и тот же язык как для фронтенда, так и для бэкенда веб-приложений. 

JavaScript также широко используется при создании браузерных игр, интерактивных пользовательских интерфейсов, а также одностраничных приложений (SPA) и прогрессивных веб-приложений (PWA).

Понимание сильных и слабых сторон данных популярных языков программирования, а также их общих сценариев использования поможет вам принять более взвешенное решение при выборе языка для изучения.

Рис. 5. Структура спроса по опыту работы в IT сфере 

Что такое Java?

Java – это язык программирования общего назначения. То есть язык, который применяется в разработке различных программных продуктов, без четкой специализации в конкретной сфере. Он во многом похож на Python, JavaScript и другие языки того же уровня, что и Java. Кроме того, Java заимствует массу синтаксических конструкций из C и C++. 

Это объектно-ориентированный язык. Вся структура строится вокруг объектов, классов, инстансов и прочих формальных сущностей, принятых в сообществе программистов за стандарт разработки ООП. Это как проектирование домов с использованием отдельных строительных блоков, которые потом можно задействовать при постройке различных типов зданий. Программы, написанные на Java, состоят из подобных «блоков», что сокращает время разработки, а также делает код более читаемым и удобным для модификации. 

А еще Java выступает в роли платформы. Код, написанный на этом языке, запускается в виртуальной машине JVM и без проблем инициализируются в любой системе, где поддерживается соответствующая виртуальная машина. 

История появления Java

Язык Java был разработан командой инженеров Sun Microsystems в 1995 году. Позднее компания вместе с Java была поглощена корпорацией Oracle. 

Ключевой задачей при разработке Java было создать язык программирования, который мог бы запускаться не только на компьютерах. То есть был достаточно универсальным, чтобы работать даже на операционной системе холодильника. На момент разработки такое решение казалось чересчур дальновидным, но оно привнесло вместе с собой несколько важных архитектурных изменений, ставших критически важными для Java и сделавших этот язык популярным. 

Например, язык позволял написать код единожды и без изменений скомпилировать его под любое стороннее ПО. Это сильно упрощало разработку и, что важнее, сокращало количество человеко-часов, требуемых для написания кода. 

Правда, популярность Java принесла не эта особенность, а возможность создавать мини-приложения для веб-страниц. Раньше без Java многие сайты или их функции оставались недоступными, и девелоперам приходилось скачивать утилиту JRE, чтобы все работало, как и задумывалось. 

Java и JavaScript 

У начинающих разработчиков и обывателей иногда складывается мнение, что эти языки связаны, но это не так. Из общего у них 4 буквы в названии и синтаксис на базе C.

JavaScript был разработан компанией Netscape в середине 90-х годов и изначально назывался LiveScript

Язык не сыскал популярности, потому что все внимание на тот момент уделялось бурно растущему Java. Поэтому Netscape решили сделать ребрендинг, чтобы хоть кто-то заинтересовался их детищем

И, как ни странно, это сработало. 

Сейчас это один из краеугольных камней веба с десятками мощных фреймворков. Кстати, схожесть в синтаксисе дает разработчикам возможность быстрее перейти с одного языка на другой. Если знаете Java, то быстрее освоите JavaScript и наоборот. 

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Java: что за зверь?

Java — мультифункциональный объектно-ориентированный язык со строгой типизацией.

Что это значит?

С мультифункциональностью всё достаточно просто: Java действительно почти «волшебная таблетка» — на ней можно разрабатывать десктопные приложения, приложения под Android, заниматься веб-разработкой… Подробнее об этом ниже.

Строгая (сильная) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования. Это добавляет мороки: какие-то части приходится прописывать самому, а свободы у вас меньше, — зато в обмен на это вы получаете надёжность.

Объектно-ориентированный язык — это язык, созданный по модели объектно-ориентированного программирования. В ней существуют классы и объекты. Классы — это типы данных, а объекты — представители классов. Вы создаёте их сами, даёте названия и присваиваете им свойства и операции, которые с ними можно выполнять. Это как конструктор, который позволяет построить то, что вы хотите. Именно с помощью этой системы объектов в основном программируют на Java.

Задачи и инструменты Java-разработчика

Направлений в Java-разработке — вагон и маленькая тележка. На «Жабе» пишут банковский софт (платежные терминалы), десктопные программы (Lamoda), промышленные программы (например, для станков ЧПУ), приложения для Android (Twitter, Facebook), веб-приложения (Amazon, PayPal) и пр. Соответственно, Java-разработчикам приходится выбирать специализацию, ведь абсолютно все возможности языка неподвластны даже его создателю —  Джеймсу Гослингу.

Если полистать списки вакансий, получится составить реалистичную картину того, что чаще всего требуют работодатели от Java-программистов:

  1. Алгоритмы. Java, как и любой старый язык, отличается требовательностью к фундаментальным знаниям. Инженер обязан понимать, как нужно составлять последовательные инструкции для решения проблем и достижения задач.
  2. Синтаксис языка. Если алгоритмы можно сравнить с правилами, по которым происходит решение задачи, то синтаксис — это слова, позволяющие разговаривать на языке Java. 
  3. Базы данных. Информация о программах хранится в базах данных, представляющих собой огромные таблицы. Взаимодействовать с ними нужно с помощью отдельного языка, вроде SQL. 
  4. Фреймворки. Своеобразные каркасы для строительства приложений, состоящие из готовой крыши, стен и фундамента, внутри которых можно создать что-то свое. В случае с Java лучшими фреймворками считаются Spring и Hibernate. 
  5. Git. Приложения пишутся большими командами, и у каждого блока кода есть своя версия. Чтобы в них не запутаться и организовать нормальную совместную работу, программисты применяют репозитории Git. 

Преимущества и недостатки языка для новичков

Плюсы

  • Большое глобальное комьюнити. По сведениям Oracle (нынешний владелец «Жабы»), на Java пишут 12 млн разработчиков и 5 млн студентов. Большая часть экспертов не прочь делиться знаниями на форумах. 
  • Востребованность. Спрос на Java-разработчиков заметен, в основном, в enterprise-сегменте, а это только крупные клиенты с самыми вкусными ценниками. 

  • Множество фреймворков и библиотек — готовых решений и инструментов, пользоваться которыми могут все. 

  • Удобная интегрированная среда разработки — IntelliJ IDEA, способная самостоятельно дописывать код и генерировать большую часть сложных конструкций. Кстати, она тоже написана на Java. 

Минусы

  • Широкое распространение старых версий. Java — язык, популярный в enterprise-сегменте (когда компании работают только с очень крупными клиентами. Большие корпорации редко меняют фундаментальные айти-решения, и поэтому программистам приходится писать код, например, на Java 5 или Java 6. За счастье эксперты воспринимают работу на стабильной и сносной Java 8, хотя на рынке уже появилась Java 20.
  • Высокий уровень входа. Java не ведет новичка за руку, как это делает Python или C#. Здесь джуны сразу знакомятся со сложными понятиями вроде объектно-ориентированного программирования. 

  • Многословный и трудно воспринимаемый код. Java — золотая середина между «плюсами», где все действия нужно описывать словами на английском и лаконичными языками программирования а-ля Python. 

Плюсов у Java явно больше, чем минусов. В копилку преимуществ языка можно записать, например, то, что он считается основным инструментом автоматизации в тестировании. «Жаба» позволяет работать с облачными данными и запускать приложения через Amazon. Она же используется для создания iOT-платформ (систем взаимосвязанных компьютеров, способных собирать и передавать данные по беспроводной сети без участия человека).

Еще одно преимущество «Жабы», на которое часто обращают внимание новички в поиске быстрой мотивации — это уровень зарплат. По данным Хабр Карьеры за 2022 год, медианная заработная плата Java-джуна, составляет 79 000 рублей

Мидл может рассчитывать на ₽168 тыс., а сеньор — на ₽250 тыс.

Для чего создали Java

Объектно-ориентированный язык программирования Java первоначально разработал Джеймс Гослинг в компании Sun Microsystems в 1995 году. Он был создан как платформонезависимый. Это значит, что программы, написанные на Java, могут работать на любой операционной системе, их не надо перекомпилировать для разных систем. С годами Java получила широкое распространение во многих отраслях, включая разработку программного обеспечения, веб-разработку и разработку мобильных приложений, благодаря своей универсальности и масштабируемости.

Популярные примеры использования за эти годы:

создание настольных приложений с помощью библиотек Swing и AWT;

разработка приложений корпоративного уровня с помощью J2EE;

разработка приложений для Android с помощью Android SDK;

создание приложений на стороне сервера с помощью Servlets и JSPs;

создание веб-сервисов с помощью SOAP, REST APIs и т. д.

Читай советы по карьере и новости об образовании в нашей группе «ВКонтакте»

Подписаться

C/C++

Уровень: средний и продвинутый.Необходимые навыки: комплексный подход к решению, базовые знания ПК. Поскольку C и C++ ориентированы на низкоуровневое управление компьютерными ресурсами, полезно знать такие функции компьютера, как управление памятью.Области применения: настольные приложения и ПО, мобильные приложения, игровые движки и игры, VR, робототехника, cloud computing, веб-приложения.

Плюсы:

  • Более быстрое выполнение программ, чем в большинстве других языков программирования [C/C++].
  • Формирует основу для понимания более сложных языков программирования [C/C++].
  • Предпочтительный язык для разработки приложений для нескольких устройств и платформ .
  • Широкий спектр областей применения, таких как игры, приложения с графическим интерфейсом и математическое моделирование в реальном времени .
  • Облегчает доступ к заблокированным или скрытым объектам с помощью других языков программирования .
  • Высокая степень портативности .
  • Процедурно-ориентированный язык с группой функциональных модулей и блоков. Это упрощает отладку, тестирование и обслуживание программ .
  • Богатая библиотека функций .
  • Работает близко к системному оборудованию и предлагает низкий уровень абстракции [C/C++].
  • Поддержка обработки исключений и перегрузки функций .
  • Поставляется со стандартной библиотекой шаблонов (STL) — пулом готовых библиотек для различных структур данных, арифметических операций и алгоритмов .

Минусы:

  • Не подходит для новичков в программировании [C/C++].
  • Сложный синтаксис [C/C++].
  • Не поддерживает пространство имен программ .
  • Менее эффективная объектно-ориентированная система по сравнению с другими языками программирования на основе ООП .
  • Необходимо вручную создавать высокоуровневые конструкции .
  • Нет сборки мусора или динамического выделения памяти [C/C++].
  • Нет проверки во время выполнения [C/C++].
  • Нет строгой проверки типов .
  • Проблемы с переполнением буфера и повреждением памяти [C/C++].
  • Меньшая стандартная библиотека .

Пример синтаксиса (C++):

#include <iostream>




int main()

{

std::cout << "Hello World!" << std::endl;

}

Почему стоит изучать C++

Ни одно настоящее сравнение языков программирования не может обойтись без этой пары. C++ — прямой потомок языка C, который считается настоящим «динозавром» среди языков программирования. C был выпущен аж в 1997 году и продолжает активно использоваться и сегодня. Почти все низкоуровневые системы, такие как ОС и файловые системы, написаны на C/C++.

C++ — мощный, высокопроизводительный язык, хотя и низкоуровневый, так как использует низкую степень абстракции. А это означает, что код на нем труднее «читать». Изучение низкоуровневого языка требует больше времени на понимание того, как работает сам язык. Поэтому у новичка, осваивающего C++, будет меньше времени для изучения основ компьютерного программирования в целом. Кроме того, при написании приложение на C++ с нуля, разработчику потребуется написать много кода.

С другой стороны, этот язык чрезвычайно быстр, стабилен, масштабируем и эффективен. Именно поэтому C++ используют многие ресурсоемкие программы. Например, некоторые из самых красивых и популярных 3D-игр: Metro 2033, The Elder Scrolls V: Skyrim, Fallout 4, серии Assassin’s Creed, Battlefield/Battlefront, Medal of Honor, Need For Speed. Изучение C++ будет хорошим выбором для тех разработчиков, кто уже знаком с C и хочет работать над крупными проектами и иметь большой контроль над выполнением программ.

Где изучать

  • Официальная «Документация по языку C++» от Microsoft.
  • Курсы по специализации «Coding for Everyone: C and C++» от Coursera.
  • Курсы «C++ For C Programmers» от Coursera.
  • Курсы «C Programming For Beginners the C Language» от Udemy.
  • Видеокурсы «Основы C++. Программирование для начинающих» от SimpleCode.
Понравилась статья? Поделиться с друзьями:
Бизнес-Триатлон
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: