Тест на готовность к программированию
Я бы не заморачивался с «тестами на готовность» вместо нормальной базы — сначала компьютерная грамотность, сеть, файлы. Но если вы уже здесь, давайте честно проверим, тянет ли вас к коду.
Ниже — интерактивный опрос: 15 вопросов в пяти блоках, мгновенная обратная связь и итог с рекомендациями по разделам энциклопедии.
Play ITЗагрузка интерактивного демо…
Проверка «на глаз»: больно ли читать код?
Перед опросом — необязательное, но показательное упражнение. Больно ли вам читать такой фрагмент?
const createProcessor = (config = { timeout: 1000, retries: 3 }) => {
const cache = new WeakMap();
const pending = new Map();
return (endpoint) => async (...args) => {
const { threshold = 0.5, transform = (v) => v } = args[0] || {};
const key = JSON.stringify({ endpoint, args: [...args] });
if (pending.has(key)) {
return pending.get(key);
}
const executor = async (attempt = 1) => {
try {
const result = await new Promise((res, rej) => {
const timer = setTimeout(() => rej(new Error('Timeout')), config.timeout);
fetch(endpoint, { method: 'POST', body: JSON.stringify(args) })
.then(r => r.json())
.then(data => {
clearTimeout(timer);
if (data.confidence < threshold) {
rej(new Error(`Low confidence: ${data.confidence}`));
} else {
res(transform(data.payload));
}
})
.catch(rej);
});
cache.set({ endpoint, args }, result);
return result;
} catch (err) {
if (attempt < config.retries) {
const delay = 2 ** attempt * 100;
await new Promise(r => setTimeout(r, delay));
return executor(attempt + 1);
}
throw err;
} finally {
pending.delete(key);
}
};
const promise = executor();
pending.set(key, promise);
return promise;
};
};
На курсах для новичков чаще пишут так:
let test = "Привет"
let word = "Мир"
console.log(test+word)
Если сложный пример интереснее, а не пугает — это хороший знак. Если тяжело — сначала тест на компьютерную грамотность и раздел Основы компьютерной грамотности.
В блоках 2–4 важнее логика и умение объяснить шаги, чем заучивание синтаксиса. Блок 1 проверяет, что вы не боитесь терминала. После каждого ответа — разбор; в конце — результат по блокам и ссылки на главы.
Зафиксируйте интерес к темам в Навигаторе новичка и профилей — это поможет понять, идти ли дальше в языки, аналитику, безопасность или инфраструктуру.
| Блок | Смысл | Вопросов в опросе |
|---|---|---|
| 1 | Терминал, файлы, «как живёт процесс» | 3 |
| 2 | Переменные, ветвления, циклы, функции | 3 |
| 3 | Git, IDE, отладка | 3 |
| 4 | Структуры данных и OOP — обзор | 3 |
| 5 | Языки — куда копать дальше | 3 |
Ориентир: 65%+ и уверенные блоки 2–4 — можно идти в Код и разработка. Слабый блок 1 — сначала Терминал.
Практика руками (по желанию)
Опрос проверяет понимание. Дополнительно можно выполнить на своём ПК:
Терминал. Создайте hello.txt с текстом Hello, world! через терминал и проверьте содержимое (cat / type).
Git. git init → файл readme.md с # Старт → git add → git commit -m "Старт". Разбор — лабораторная шпаргалка Git.
Код. Функция greet(name) → Привет, {name}!; цикл 1..10; if age >= 18 для порога голосования.
Подробные эталоны — в обратной связи опроса и в главах по Git и основам кода.