Ликбез для it рекрутеров


# 01 Основы

Не убивайте котиков!

Процессор

Системный блок

Интернет

Браузеры

Компьютерщики

В реальности

В фильмах

РАЗНЫЕ ВЕЩИ

Java

JavaScript

Разработка в IT сфере

Hardware

Software

function run (callBack) {
  var self = this;
  this.load(function (errors) {
    self.prepareAllTables();
    self.mergeAll();
    callBack(
      errors,
      self.template(
        self.configuration
      )
    );
  });
}

Базовые понятия

Печатная плата

Сами по себе бесполезны

Ребенок


Драйвер

Средсво связи


Язык


Операционная система

Среда существования


Общество


Прикладная программа

Конкретные услуги


Парикмахерская

Типы прикладных программ

Desktop

Работает только там, где запущен

Парикмахерская

Клиент-серверные

Состоит из 2+ программ

Доставка пиццы

Типы языков программирования

Компилируемые: С, С++, Golang, Rust, Delphi,...

#include <stdio.h>
main()
{
    printf("hello, world\n");
}

+ Производительность

7f 45 4c 46 02 01 01 00
00 00 00 00 00 00 00 00
02 00 3e 00 01 00 00 00
40 04 40 00 00 00 00 00
...

- Обязательная сборка

Интерпретируемые: PHP, JavaScript, Ruby, Python,...

x = 1
x = x + 5
x = x * 2
print x

+ Гибкость

+ Кроссплатформенность

x = 1
x = 6
x = 12
12

- Производительность

- Требует интерпретатор

Смешанные: Java, C#,...

+ Гибкость

+ Производительность

- Требует виртуальную машину

DRY (Не повторяйся)

Функции

function pow3(x) {
    return x * x * x;
}
pow3(2);  // 8
pow3(5);  // 125
pow3(-3); // -27

ООП

class CocktailB52 {
    public $coffeeLiqueur = 20;
    public $creamLiqueur  = 20;
    public $orangeLiqueur = 20;

    public function drink() {
        echo "Let's Drink!!!";
    }

    public function setFire() {
        echo "Flaming B52";
    }
}

Библиотеки

Предоставляют конкретный функционал

Фреймворки

Реализуют скелет приложения
Легко расширяются

CMS

Готовый сайт и конструктор к нему

Сервис-ориентированные системы

Каждая часть системы функционирует отдельно

Про программистов


Опыт

Junior

Нужно обучать

Middle

Решает типовые задачи

Senior

Задачи проектирования

Team Lead

Как Senior, но круче + менеджер


Предпочтения

Исполнитель

Гик

Головолом

Это все круто, на что обращать внимание?

#1 Уровень кандидата

#2 Используемые языки

#3 Используемые фреймворки

#4 Что конкретно будет делать программист