Size: a a a

2017 November 03
IT recruiting
Всех с наступающими праздниками, на следующей неделе нас ждёт много интересного, хороших выходных.
источник
2017 November 07
IT recruiting
Сегодня поговорим о типах языков программирования
Я придерживаюсь деления языков программирования на низкий, средний и высокий уровень, но такая классификация, конечно, не единственная. Зачем вообще нужны языки программирования?
На самом деле все просто, чтобы компьютер выполнял решение какой-либо задачи, ему необходимо получить от человека инструкции, как решить эти самые задачи, как например если вы хотите делегировать уборку кому-то, то вам нужно составить полное описание, что сделать и как решить ту или иную ситуацию в доме. Набор таких инструкций называется компьютерной программой. Современные компьютеры не настолько совершенны, чтобы понимать программы, записанные на русском, английском и других языках, поэтому все команды, предназначенные для ЭВМ необходимо записывать на понятном для него языке, то есть на языке программирования. Языки программирования – это искусственные языки, некий словарный запас, который не только удобен для человека, но и понятен компьютеру.
На свете очень много различных языков программирования, но многие из них не известны или не получили широкое распространение, разделить языки можно на низкий, средний и высокий уровень.
Языки низкого уровня – это средство записи инструкций компьютеру простыми командами на аппаратном уровне. Такой язык отражает структуру данного класса ЭВМ и поэтому называется машинно-ориентированным языком. Пользуясь системой команд, понятной компьютеру, можно описать алгоритм любой сложности. Запись программы на этом языке представляет собой последовательность нулей и единиц.
Пример: Assembler, C, C++
Языки среднего уровня переводят машинный код в бай код. Сам байт-код также является промежуточным представлением программы.
Пример: Java, C#
Языки высокого уровня. Программы на языках высокого уровня записываются системой обозначений, близкой человеку (например, фиксированным набором символов английского языка, имеющих строго определенное назначение) программу на языке высокого уровня проще понять и значительно легче отладить.
Пример: PHP, Perl, Python, Ruby и тд
Выбор языка, на котором написана та или иная программа, во многом зависит от области ее применения. Так, например, для работы с самим "железом" компьютера (написания драйверов и поддерживающих программ) лучшим вариантом станет C или С++, а для разработки мобильных приложений, в том числе игр, следует выбрать Java или С#.
#itrercruiter #языкипрограммирования
источник
IT recruiting
источник
IT recruiting
#itrecruiter
источник
2017 November 08
IT recruiting
А мы продолжаем говорить о языках программирования, сегодня разделим языки на компилируемые, интерпретируемые.
Для того, чтобы написать программу не всегда достаточно только одного языка, например, для перевода кода с языка высокого уровня на машинный язык требуется специальная программа — транслятор. Механизм этого перевода не так прост, и тут можно выделить два способа так называемого перевода:
1.  компиляция программы
2.  интерпретация программы
Эти два подхода отличаются:
При компиляции весь исходный программный код сразу переводится в машинный.
А вот при интерпретации перевод кода происходит последовательно (можно сказать, строка за строкой). Представьте конференции со спикерами, говорящими на разных языках, где для того чтобы мы моги понимать друг друга требуется специальный переводчик, так и тут операционная система взаимодействует с интерпретатором, а не исходным кодом.
Разница же в этих подходах к переводу в следующем:
1.  Компилируемый язык программирования – это язык программирования, где исходный код преобразуется компилятором в машинный код.
Преимущества и недостатки:
<+> Высокая производительность!
<->Требуется пересборка программы, когда она изменяемся
Пример из жизни: Компилируемые языки — это готовая еда. Хорошо иметь ее под рукой, но она быстро портится.
Программы, написанные на компилируемых языках, зависят от ОС и от аппаратного оборудования.
Языки, которые относятся к компилируемым: C, C++, Golang, Rust, Delphi
2.  Интерпретируемый  язык программирования – это язык программирования, в котором исходный код программы не преобразовывается в машинный код для непосредственного выполнения центральным процессором (как в компилируемых языках), а исполняется с помощью специальной программы-интерпретатора.
Преимущества и недостатки:
<+>Гибкость. Кросплатформенность
<->Производительность. Требуется интерпретатор.
Пример из жизни: Интерпретируемые языки — это замороженные продукты. Они хорошо хранятся, но их долго готовить. Программы, написанные для интерпретируемых языках очень мобильны, работают везде, где есть интерпретатор, но процесс преобразования занимает время, что сказывается на производительности.
Языки, которые относятся к интерпретируемым: PHP, JavaScript, Python
#языкипрограммирования #Itrecruiter
источник
IT recruiting
источник
2017 November 09
IT recruiting
А мы сегодня продолжаем тему языков программирования, вчера мы говорили про интерпретируемые и компилируемые языки, но конечно, как и во всем есть некоторые исключения из правил, которые в нашем случае называется языки смешанного типа. Языки смешанного типа – это компилируемо-интерпретируемые языки, например, Java относится именно к компилируемо-интерпретируемым языкам программирования. Интерпретатор в Java называется "виртуальная машина".
Пример из жизни: Смешанные языки можно сравнить с полуфабрикатом. Его быстро готовить, он долго хранится. Но как вы понимаете, вкус будет хуже, чем у свежеприготовленной пищи.
Программы написанные на смешанных языках программирования, ограничены функциональностью своего интерпретатора. То есть возможностей, которые может использовать такая программа всегда будет меньше чем возможностей, которые может использовать программа, написанная на компилируемом языке.
Примеры таких языков: Java, C#
#itrecruiter
источник
IT recruiting
источник
IT recruiting
#itrecruiter
источник
2017 November 10
IT recruiting
Что такое система контроля версий?
Ну прежде всего - это система, которая регистрирует все изменения в файлах, а в дальнейшем позволяет вернуться к их более ранним версиям и определить, кем и когда были сделаны конкретные изменения.  Наверное часто любой рекрутер слышал от тим-лида команды, у нас все в гите, так вот Git среди систем контроля версий самая популярная система. Ее действительно использует практически каждый проект, чья деятельность так или иначе связана с ИТ.
Не удивительно, ведь при помощи Git разработчики могут отслеживать изменения в исходном коде своих проектов, возвращать предыдущие версии в случае критических ошибок, а также делиться своим кодом со всеми желающими и принимать от них исправления.
Системы контроля версий позволяют оптимизировать работу над проектами. Здесь нет каких-либо требований к языку или структуре файлов, поэтому у разработчиков полная свобода действий, а любой человек из команды может посмотреть историю изменений.
Кроме Git есть еще популярные системы контроля версий: SVN, CVS, Mercurial и тд
#git #itrecruiter
источник
IT recruiting
источник
2017 November 13
IT recruiting
Мы уже частично говорили об ООП объектно-ориентированном программировании, сегодня постараемся разобрать тему более подробно, ведь в большей половине вакансий, разработчику требуется знание и понимание ООП. Да, эта методология, однозначно, покорила многих программистов, а прежде всего способом организации кода программы. Ведь основными строительными блоками будущей программы, при использовании ООП являются взаимодействие объектов и классов. А вот три магических слова, которые являются парадигмами ООП - это наследование, инкапсуляция и полиморфизм.
1.  Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе.
Если язык поддерживает инкапсуляцию, то это означает, что он предоставляет какой-либо механизм объединения данных и кода обработки этих данных (функций, методов и т.п.) в объект. Это объединение аналогично тому как завод или фабрика объединяет под своей крышей расходные материалы, а также станки и оборудования для переработки этого сырья в готовый продукт.  Рис 1.
источник
IT recruiting
источник
IT recruiting
2.  Наследование - это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью, это позволяет ускорить процесс разработки за счет использования уже проверенного, готового кода. Если переносить аналогию на автозавод, то можно проиллюстрировать наследование следующим образом: у корпорации базовая схема завода, производящего автомобили, но в зависимости от конкретной местности, в которой по этому чертежу собираются строить фабрики, в структуру завода могут добавить пару складских помещений и конвейер для дополнительного производства, к примеру, автоприцепов.
Рис. 2.
источник
IT recruiting
источник
IT recruiting
3.  Полиморфизм - это свойство системы, позволяющее использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Рис. 3.
источник
IT recruiting
источник
IT recruiting
Языки ООП: C#, C++ , Delphi, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Scala, Swift и тд
#ооп #itrercuiter
источник
2017 November 14
IT recruiting
Сегодня поговорим о паттернах (шаблонах) ООП
Для того чтобы не изобретать велосипед ООП содержит шаблоны проектирования или по-другому паттерн. Суть шаблона практически полностью описывается его названием. В ОПП много разных шаблонов, которые называются «фабрика», «Одиночка», «Декоратор» и тд..  
Итак, как же работают паттерны. Давайте представим ситуацию с использованием паттерна «фабрика», разработчику нужно создать какие-либо объекты, например, печенье, ему совершенно не нужно знать, как их делают на фабрике. Он просто задает «бисквитное печенье», а «Фабрика» выдает ему требуемую пачку. Как это происходит?
Все дело в том, паттерн «фабрика», копирует уже существующий эталон и преобразовывает его в необходимый. Основное предназначение «фабрики» в том, чтобы можно было при необходимости изменять процесс «появления» печенья, как и в жизни одна «фабрика» занимается «производством» только одного рода «продуктов». Не рекомендуется «фабрику с печеньями» создавать с учетом производства ножей для мясорубки.
Основные паттерны в ООП: 1. Порождающие Abstract Factory (Абстрактная фабрика).  Factory Method (Фабричный метод). Singleton (Одиночка). Prototype (Прототип). Prototype Builder (Строитель). 2. Структурные Adapter (Адаптер). Bridge (Мост). Composite (Компоновщик).  Decorator (Декоратор). Facade (Фасад).  Flyweight (Приспособленец) Proxy (Прокси).
3.Паттерны поведения Chain of Responsibility (Цепочка обязанностей). Command (Команда).
Interpreter (Интерпретатор).  Iterator (Итератор). Mediator (Посредник). Memento (Хранитель).
Observer (Наблюдатель).  State (Состояние). Strategy (Стратегия). Шаблон Strategy Template Method (Шаблонный метод).  Visitor (Посетитель).
#паттерны #ОПП #itrecruiter
источник
IT recruiting
источник