เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชœเซเชฏเชพเชฐเซ‡ เชจเชตเชพ เชตเชฐเซเชทเชจเซ€ เช“เชฒเชฟเชตเชฟเชฏเชฐ เชธเชฎเชพเชชเซเชค เชฅเชˆ เช—เชˆ, เชคเซเชฏเชพเชฐเซ‡ เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เชฐเชตเชพเชจเซเช‚ เช•เช‚เชˆ เชจเชนเซ‹เชคเซเช‚, เช…เชจเซ‡ เชฎเซ‡เช‚ เชฎเชพเชฐเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชชเชฐ เชนเซ‡เชฌเซเชฐเชพเชนเชพเชฌเซเชฐ (เช…เชจเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเซเชธ) เชจเชพ เชคเชฎเชพเชฎ เชฒเซ‡เช–เซ‹ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซ‡ เช…เชจเซเชตเซ‡เชทเชฃ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚.

เช˜เชฃเซ€ เชฐเชธเชชเซเชฐเชฆ เชตเชพเชฐเซเชคเชพเช“ เชนเชคเซ€. เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชฅเชฎ เชธเชพเช‡เชŸเชจเชพ เช…เชธเซเชคเชฟเชคเซเชตเชจเชพ 12 เชตเชฐเซเชทเซ‹เชฎเชพเช‚ เชฒเซ‡เช–เซ‹เชจเชพ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช…เชจเซ‡ เชตเชฟเชทเชฏเซ‹เชจเซ‹ เชตเชฟเช•เชพเชธ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‡เชŸเชฒเชพเช• เชตเชฟเชทเชฏเซ‹เชจเซ€ เช—เชคเชฟเชถเซ€เชฒเชคเชพ เชคเชฆเซเชฆเชจ เชธเซ‚เชšเช• เช›เซ‡. เชšเชพเชฒเซ - เช•เชŸ เชนเซ‡เช เชณ.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชชเชพเชฐเซเชธเชฟเช‚เช— เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ

เชนเชฌเชฐเชจเซ‹ เชตเชฟเช•เชพเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชฏเซ‹ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เชจเชพ เชคเชฎเชพเชฎ เชฒเซ‡เช–เซ‹เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชตเซเช‚ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชŸเชพ-เชฎเชพเชนเชฟเชคเซ€ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชพเชฐเซ€เช–เซ‹) เช•เชพเชขเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€. เชฌเชพเชฏเชชเชพเชธ เชธเชฐเชณ เชนเชคเซ‹, เช•เชพเชฐเชฃ เช•เซ‡ เชคเชฎเชพเชฎ เชฒเซ‡เช–เซ‹เชจเซ€ เชฒเชฟเช‚เช•เซเชธ "habrahabr.ru/post/337722/" เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชจเช‚เชฌเชฐเซ‹ เช•เชกเช• เช•เซเชฐเชฎเชฎเชพเช‚ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช›เซ‡เชฒเซเชฒเซ€ เชชเซ‹เชธเซเชŸเชฎเชพเช‚ 350 เชนเชœเชพเชฐ เช•เชฐเชคเชพ เชฅเซ‹เชกเซ‹ เช“เช›เซ‹ เชจเช‚เชฌเชฐ เช›เซ‡ เชคเซ‡ เชœเชพเชฃเซ€เชจเซ‡, เชฎเซ‡เช‚ เชฒเซ‚เชช (เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชก) เชฎเชพเช‚ เชคเชฎเชพเชฎ เชธเช‚เชญเชตเชฟเชค เชฆเชธเซเชคเชพเชตเซ‡เชœ เช†เชˆเชกเซ€เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชฏเชพ:

import numpy as np
from multiprocessing import Pool
with Pool(100) as p:
    docs = p.map(download_document, np.arange(350000))

เช•เชพเชฐเซเชฏ download_document เช…เชจเซเชฐเซ‚เชช id เชธเชพเชฅเซ‡ เชชเซƒเชทเซเช  เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ html เชฌเช‚เชงเชพเชฐเชฃเชฎเชพเช‚เชฅเซ€ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เชฎเชพเชนเชฟเชคเซ€ เช•เชพเชขเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡.

import requests
from bs4 import BeautifulSoup

def download_document(pid):
    """ Download and process a Habr document and its comments """
    # ะฒั‹ะณั€ัƒะทะบะฐ ะดะพะบัƒะผะตะฝั‚ะฐ
    r = requests.get('https://habrahabr.ru/post/' +str(pid) + '/')
    # ะฟะฐั€ัะธะฝะณ ะดะพะบัƒะผะตะฝั‚ะฐ
    soup = BeautifulSoup(r.text, 'html5lib') # instead of html.parser
    doc = {}
    doc['id'] = pid
    if not soup.find("span", {"class": "post__title-text"}):
        # ั‚ะฐะบะพะต ะฑั‹ะฒะฐะตั‚, ะตัะปะธ ัั‚ะฐั‚ัŒั ะฝะต ััƒั‰ะตัั‚ะฒะพะฒะฐะปะฐ ะธะปะธ ัƒะดะฐะปะตะฝะฐ
        doc['status'] = 'title_not_found'
    else:
        doc['status'] = 'ok'
        doc['title'] = soup.find("span", {"class": "post__title-text"}).text
        doc['text'] = soup.find("div", {"class": "post__text"}).text
        doc['time'] = soup.find("span", {"class": "post__time"}).text
        # create other fields: hubs, tags, views, comments, votes, etc.
        # ...
    # ัะพั…ั€ะฐะฝะตะฝะธะต ั€ะตะทัƒะปัŒั‚ะฐั‚ะฐ ะฒ ะพั‚ะดะตะปัŒะฝั‹ะน ั„ะฐะนะป
    fname = r'files/' + str(pid) + '.pkl'
    with open(fname, 'wb') as f:
        pickle.dump(doc, f)

เชชเชฆเชšเซเช›เซ‡เชฆเชจเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚, เชฎเชจเซ‡ เช˜เชฃเซ€ เชจเชตเซ€ เชตเชธเซเชคเซเช“ เชฎเชณเซ€.

เชชเซเชฐเชฅเชฎ, เชคเซ‡เช“ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชฎเชพเช‚ เช•เซ‹เชฐเซ‹ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฌเชจเชพเชตเชตเซ€ เชจเช•เชพเชฎเซเช‚ เช›เซ‡. เชชเชฐเช‚เชคเซ เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชธเช‚เชธเชพเชงเชจ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชจเซ‡เชŸเชตเชฐเซเช• เช›เซ‡, เช…เชจเซ‡ 100 เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ 4 เช…เชฅเชตเชพ, เช•เชนเซ‹, 20 เช•เชฐเชคเชพเช‚ เชตเชงเซ เชเชกเชชเชฅเซ€ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

เชฌเซ€เชœเซเช‚, เช•เซ‡เชŸเชฒเซ€เช• เชชเซ‹เชธเซเชŸเซเชธเชฎเชพเช‚ เชตเชฟเชถเชฟเชทเซเชŸ เช…เช•เซเชทเชฐเซ‹เชจเชพ เชธเช‚เชฏเซ‹เชœเชจเซ‹ เชนเชคเชพ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "%&#@" เชœเซ‡เชตเชพ เชธเซŒเชฎเซเชฏเซ‹เช•เซเชคเชฟ. เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ html.parser, เชœเซ‡เชจเซ‹ เชฎเซ‡เช‚ เชชเซเชฐเชฅเชฎ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹, เชคเซ‡ เชธเช‚เชฏเซ‹เชœเชจ เชชเชฐ เชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช†เชชเซ‡ เช›เซ‡ &# เชชเซ€เชกเชพเชฆเชพเชฏเช• เชฐเซ€เชคเซ‡, เชคเซ‡เชจเซ‡ html เชเชจเซเชŸเชฟเชŸเซ€เชจเซ€ เชถเชฐเซ‚เช†เชค เช—เชฃเซ€เชจเซ‡. เชนเซเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชพเชณเซ‹ เชœเชพเชฆเซ เช•เชฐเชตเชพ เชœเชˆ เชฐเชนเซเชฏเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เชซเซ‹เชฐเชฎเซ‡ เชธเซ‚เชšเชตเซเชฏเซเช‚ เช•เซ‡ เชคเชฎเซ‡ เชซเช•เซเชค เชชเชพเชฐเซเชธเชฐ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹.

เชคเซเชฐเซ€เชœเซ‡ เชธเซเชฅเชพเชจเซ‡, เชฎเซ‡เช‚ เชคเซเชฐเชฃ เชธเชฟเชตเชพเชฏเชจเชพ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชถเชจเซ‹เชจเซ‡ เช…เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซเชฏเซเช‚. 65927, 162075 เช…เชจเซ‡ 275987 เชจเช‚เชฌเชฐเชตเชพเชณเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชฎเชพเชฐเชพ เชเชจเซเชŸเชฟเชตเชพเชฏเชฐเชธ เชฆเซเชตเชพเชฐเชพ เชคเชฐเชค เชœ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เช† เช…เชจเซเช•เซเชฐเชฎเซ‡, เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเซ‡เชจ เชตเชฟเชถเซ‡เชจเชพ เชฒเซ‡เช–เซ‹ เช›เซ‡ เชœเซ‡ เชฆเซ‚เชทเชฟเชค เชชเซ€เชกเซ€เชเชซ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡ เช›เซ‡, เชฌเซเชฐเชพเช‰เชเชฐ เชชเซเชฒเช—เชฟเชจเซเชธเชจเชพ เชธเชฎเซ‚เชนเชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ SMS เชฐเซ‡เชจเซเชธเชฎเชตเซ‡เชฐ, เช…เชจเซ‡ CrashSafari.com เชธเชพเช‡เชŸ เช•เซ‡ เชœเซ‡ iPhonesเชจเซ‡ เชฐเซ€เชฌเซ‚เชŸเชฎเชพเช‚ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ เชธเซเช•เซ‡เชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชจเซเชŸเชฟเชตเชพเชฏเชฐเชธเชจเซ‡ เชชเชพเช›เชณเชฅเซ€ เชฌเซ€เชœเซ‹ เชฒเซ‡เช– เชฎเชณเซเชฏเซ‹: เชชเชพเชฒเชคเซ เชธเซเชŸเซ‹เชฐเชจเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เชธเซเช•เซเชฐเซ€เชชเซเชŸเซเชธ เชตเชฟเชถเซ‡ 338586 เชชเซ‹เชธเซเชŸ เช•เชฐเซ‹ เชœเซ‡ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช•เชฐเชจเซเชธเซ€เชจเซ‡ เชฎเชพเช‡เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€ เช†เชชเชฃเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆ เชถเช•เซ€เช เช•เซ‡ เชเชจเซเชŸเซ€เชตเชพเชฏเชฐเชธเชจเซเช‚ เช•เชพเชฐเซเชฏ เชคเชฆเซเชฆเชจ เชชเชฐเซเชฏเชพเชชเซเชค เช›เซ‡.

"เชฒเชพเช‡เชต" เชฒเซ‡เช–เซ‹ เชธเช‚เชญเชตเชฟเชค เชฎเชนเชคเซเชคเชฎ - 166307 เชŸเซเช•เชกเชพเช“เชฎเชพเช‚เชฅเซ€ เชฎเชพเชคเซเชฐ เช…เชกเชงเชพ เชœ เชจเซ€เช•เชณเซเชฏเชพ. เชฌเชพเช•เซ€เชจเชพ เชตเชฟเชถเซ‡, Habr เชตเชฟเช•เชฒเซเชชเซ‹ เช†เชชเซ‡ เช›เซ‡ "เชชเซƒเชทเซเช  เชœเซ‚เชจเซเช‚ เช›เซ‡, เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช…เชฅเชตเชพ เชฌเชฟเชฒเช•เซเชฒ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจเชฅเซ€." เชธเชพเชฐเซเช‚, เช•เช‚เชˆเชชเชฃ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เชฒเซ‡เช–เซ‹ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซเช‚ เชคเช•เชจเซ€เช•เซ€ เช•เชพเชฐเซเชฏ เชฆเซเชตเชพเชฐเชพ เช…เชจเซเชธเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚: เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซเชฐเช•เชพเชถเชจ เชคเชพเชฐเซ€เช–เซ‹เชจเซ‡ "'21 เชกเชฟเชธเซ‡เชฎเซเชฌเชฐ 2006 เชธเชตเชพเชฐเซ‡ 10:47 เชตเชพเช—เซเชฏเซ‡" เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚เชฅเซ€ เชงเซ‹เชฐเชฃเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชนเชคเซ€ datetime, เช…เชจเซ‡ "12,8k" เชฆเซƒเชถเซเชฏเซ‹ - 12800 เชฎเชพเช‚. เช† เชคเชฌเช•เซเช•เซ‡, เชฅเซ‹เชกเซ€ เชตเชงเซ เช˜เชŸเชจเชพเช“ เชฌเชนเชพเชฐ เช†เชตเซ€. เชธเซŒเชฅเซ€ เชฎเชจเซ‹เชฐเช‚เชœเช• เชฎเชค เช—เชฃเชคเชฐเซ€เช“ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชง เชงเชฐเชพเชตเซ‡ เช›เซ‡: เช•เซ‡เชŸเชฒเซ€เช• เชœเซ‚เชจเซ€ เชชเซ‹เชธเซเชŸเซเชธ เชชเซ‚เชฐเซเชฃ เช“เชตเชฐเชซเซเชฒเซ‹ เชนเชคเซ€ เช…เชจเซ‡ เชฆเชฐเซ‡เช•เชจเซ‡ 65535 เชฎเชค เชฎเชณเซเชฏเชพ เชนเชคเชพ.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชฒเซ‡เช–เซ‹เชจเชพ เชชเชพเช เซ‹ (เชšเชฟเชคเซเชฐเซ‹ เชตเชฟเชจเชพ) เชฎเชจเซ‡ 1.5 เช—เซ€เช—เชพเชฌเชพเช‡เชŸเซเชธ, เชฎเซ‡เชŸเชพ-เชฎเชพเชนเชฟเชคเซ€ เชธเชพเชฅเซ‡เชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“ - เช…เชจเซเชฏ 3, เช…เชจเซ‡ เชฒเช—เชญเช— เชธเซ‹ เชฎเซ‡เช—เชพเชฌเชพเช‡เชŸเซเชธ - เชฒเซ‡เช–เซ‹ เชตเชฟเชถเซ‡เชจเซ€ เชฎเซ‡เชŸเชพ-เชฎเชพเชนเชฟเชคเซ€. เช†เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฐเซ‡เชฎเชฎเชพเช‚ เชฐเชพเช–เซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเซเช–เชฆ เช†เชถเซเชšเชฐเซเชฏ เชนเชคเซเช‚.

เชฎเซ‡เช‚ เชฒเซ‡เช–เซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฒเช–เชพเชฃเซ‹เชฎเชพเช‚เชฅเซ€ เชจเชนเซ€เช‚, เชชเชฃ เชฎเซ‡เชŸเชพ-เชฎเชพเชนเชฟเชคเซ€เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚: เชคเชพเชฐเซ€เช–เซ‹, เชŸเซ…เช—เซเชธ, เชนเชฌ, เชฆเซƒเชถเซเชฏเซ‹ เช…เชจเซ‡ เชชเชธเช‚เชฆ. เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชคเซ‡เชฃเซ€ เช˜เชฃเซเช‚ เช•เชนเซ€ เชถเช•เซ‡ เช›เซ‡.

Habrahabr เชตเชฟเช•เชพเชธ เชชเซเชฐเชตเชพเชนเซ‹

เชธเชพเช‡เชŸ เชชเชฐเชจเชพ เชฒเซ‡เช–เซ‹ 2006 เชฅเซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡; เชธเซŒเชฅเซ€ เชตเชงเซ เชธเช˜เชจ - 2008-2016 เชฎเชพเช‚.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชœเซเชฆเชพ เชœเซเชฆเชพ เชธเชฎเชฏเซ‡ เช† เชฒเซ‡เช–เซ‹ เช•เซ‡เชŸเชฒเซ€ เชธเช•เซเชฐเชฟเชฏ เชฐเซ€เชคเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ เชคเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเซเช‚ เชเชŸเชฒเซเช‚ เชธเชฐเชณ เชจเชฅเซ€. 2012 เช…เชจเซ‡ เชคเซ‡เชจเชพเชฅเซ€ เชจเชพเชจเซ€ เช‰เช‚เชฎเชฐเชจเชพ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ‡ เชตเชงเซ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เช…เชจเซ‡ เชฐเซ‡เชŸเชฟเช‚เช—เซเชธ เชฎเชณเซเชฏเชพ เช›เซ‡, เชชเชฐเช‚เชคเซ เชจเชตเชพ เชŸเซ‡เช•เซเชธเซเชŸเซเชธเชฎเชพเช‚ เชตเชงเซ เชœเซ‹เชตเชพเชฏเชพ เช…เชจเซ‡ เชฌเซเช•เชฎเชพเชฐเซเช•เซเชธ เช›เซ‡. เช† เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ 2015 เชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชเช• เชœ เชตเชพเชฐ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เชตเชฐเซเชคเซเชฏเชพ (เช…เชกเชงเชพ เชฅเชˆ เช—เชฏเชพ). เช•เชฆเชพเชš, เช†เชฐเซเชฅเชฟเช• เช…เชจเซ‡ เชฐเชพเชœเช•เซ€เชฏ เช•เชŸเซ‹เช•เชŸเซ€เชจเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚, เชตเชพเชšเช•เซ‹เชจเซเช‚ เชงเซเชฏเชพเชจ IT เชฌเซเชฒเซ‹เช—เซเชธเชฅเซ€ เชตเชงเซ เชชเซ€เชกเชพเชฆเชพเชฏเช• เชฎเซเชฆเซเชฆเชพเช“ เชคเชฐเชซ เช—เชฏเซเช‚ เช›เซ‡.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชฒเซ‡เช–เซ‹ เช‰เชชเชฐเชพเช‚เชค, เชฎเซ‡เช‚ เชคเซ‡เชฎเชจเซ‡ เชตเชงเซ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€. เชคเซเชฏเชพเช‚ 6 เชฎเชฟเชฒเชฟเชฏเชจ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชนเชคเซ€, เชœเซ‹ เช•เซ‡, เชคเซ‡เชฎเชพเช‚เชฅเซ€ 240 เชนเชœเชพเชฐ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ ("เชเช• เชฏเซเชเชซเช“เช เช‰เชกเชพเชจ เชญเชฐเซ€ เช…เชจเซ‡ เช† เชถเชฟเชฒเชพเชฒเซ‡เช– เช…เชนเซ€เช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซเชฏเซ‹"). เชŸเชฟเชชเซเชชเชฃเซ€เช“เชจเซ€ เช‰เชชเชฏเซ‹เช—เซ€ เชฎเชฟเชฒเช•เชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชŸเชพเช‡เชฎ เชธเซเชŸเซ‡เชฎเซเชช เช›เซ‡. เชŸเชฟเชชเซเชชเชฃเซ€เช“เชจเชพ เชธเชฎเชฏเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเซ€เชจเซ‡, เชคเชฎเซ‡ เชฒเช—เชญเช— เชธเชฎเชœเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชฒเซ‡เช–เซ‹ เช•เซเชฏเชพเชฐเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชฒเซ‡เช–เซ‹ เชธเชตเชพเชฐเชจเชพ 10 เชฅเซ€ เชฐเชพเชคเซเชฐเซ‡ 20 เชตเชพเช—เซเชฏเชพ เชธเซเชงเซ€ เชฒเช–เซ‡เชฒเชพ เช…เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชฎเซ‹เชธเซเช•เซ‹เชจเชพ เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชฆเชฟเชตเชธเซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เชเชตเซ‹ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ Habr เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเช• เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช•เชพเชฎ เชชเชฐ เชตเชฟเชฒเช‚เชฌ เช•เชฐเชตเชพเชจเซ€ เช† เชเช• เชธเชพเชฐเซ€ เชฐเซ€เชค เช›เซ‡. เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชฆเชฟเชตเชธเชจเชพ เชธเชฎเชฏเชจเซเช‚ เช† เชตเชฟเชคเชฐเชฃ เชนเชฌเชฐเชจเชพ เชชเชพเชฏเชพเชฅเซ€ เช†เชœเชจเชพ เชฆเชฟเชตเชธ เชธเซเชงเซ€ เชธเซเชฅเชฟเชฐ เช›เซ‡.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชœเซ‹ เช•เซ‡, เชŸเชฟเชชเซเชชเชฃเซ€ เชŸเชพเช‡เชฎเชธเซเชŸเซ‡เชฎเซเชชเชจเซ‹ เชฎเซเช–เซเชฏ เชซเชพเชฏเชฆเซ‹ เช เชฆเชฟเชตเชธเชจเซ‹ เชธเชฎเชฏ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฒเซ‡เช–เชจเชพ "เชธเช•เซเชฐเชฟเชฏ เชœเซ€เชตเชจ" เชจเซ‹ เชธเชฎเชฏเช—เชพเชณเซ‹ เช›เซ‡. เชฒเซ‡เช–เชจเชพ เชชเซเชฐเช•เชพเชถเชจเชฅเซ€ เชฒเชˆเชจเซ‡ เชคเซ‡เชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€ เชธเซเชงเซ€เชจเซ‹ เชธเชฎเชฏ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชนเซ‡เช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เชฎเซ‡เช‚ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€. เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชนเชตเซ‡ เชฎเชงเซเชฏ เชŸเชฟเชชเซเชชเชฃเซ€ (เชฒเซ€เชฒเซ€ เชฐเซ‡เช–เชพ) เชฒเช—เชญเช— 20 เช•เชฒเชพเช•เชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชชเซเชฐเช•เชพเชถเชจ เชชเช›เซ€เชจเชพ เชชเซเชฐเชฅเชฎ เชฆเชฟเชตเชธเซ‡, เชธเชฐเซ‡เชฐเชพเชถ, เชฒเซ‡เช– เชชเชฐเชจเซ€ เชฌเชงเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚เชฅเซ€ เช…เชกเชงเชพ เช•เชฐเชคเชพเช‚ เชฅเซ‹เชกเซ€ เชตเชงเซ เชฌเชพเช•เซ€ เช›เซ‡. เช…เชจเซ‡ เชฌเซ‡ เชฆเชฟเชตเชธเชฎเชพเช‚ เชคเซ‡เช“ เชคเชฎเชพเชฎ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚เชฅเซ€ 75% เช›เซ‹เชกเซ€ เชฆเซ‡ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เซ‹ เชตเชงเซ เชเชกเชชเชฅเซ€ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, 2010 เชฎเชพเช‚, เช…เชกเชงเชพ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชชเซเชฐเชฅเชฎ 6 เช•เชฒเชพเช•เชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชคเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชนเชคเซเช‚ เช•เซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชฒเชพเช‚เชฌเซ€ เชฅเชˆ เช›เซ‡: เชนเซ‡เชฌเชฐเชจเชพ เชœเซ€เชตเชจเช•เชพเชณ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชŸเชฟเชชเซเชชเชฃเซ€เชฎเชพเช‚ เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชธเชฐเซ‡เชฐเชพเชถ เชธเช‚เช–เซเชฏเชพ เชฒเช—เชญเช— เชฌเชฎเชฃเซ€ เชฅเชˆ เช—เชˆ เช›เซ‡!

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชŸเชฟเชชเซเชชเชฃเซ€เช“ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชฐเชณ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเชค เช›เซ‡. เช…เชจเซเชฏ เช˜เชฃเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, เชนเซ‡เชฌเซเชฐเซ‡ เชชเชฐ เชคเชฎเซ‡ เชฎเชพเชคเซเชฐ เชชเซเชฒเซ€เชธเชธ เชœ เชจเชนเซ€เช‚, เชชเชฃ เช“เช›เชพ เชชเชฃ เชฎเซ‚เช•เซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‹ เช•เซ‡, เชตเชพเชšเช•เซ‹ เช†เชŸเชฒเซ€ เชตเชพเชฐ เช›เซ‡เชฒเซเชฒเซ€ เชคเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชจเชฅเซ€: เชจเชพเชชเชธเช‚เชฆเชจเซ‹ เชตเชฐเซเชคเชฎเชพเชจ เชนเชฟเชธเซเชธเซ‹ เชคเชฎเชพเชฎ เชชเชกเซ‡เชฒเชพ เชฎเชคเซ‹เชจเชพ เชฒเช—เชญเช— 15% เช›เซ‡. เชชเชนเซ‡เชฒเชพ เชตเชงเซ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เชธเชฎเชฏ เชœเชคเชพเช‚, เชตเชพเชšเช•เซ‹ เชฆเชฏเชพเชณเซ เชฌเชจเซเชฏเชพ เช›เซ‡.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เช—เซเชฐเช‚เชฅเซ‹ เชชเซ‹เชคเซ‡ เชธเชฎเชฏ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชพเชฏเชพ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชŸเซ‹เช•เชŸเซ€ เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เชธเชพเช‡เชŸเชจเซ€ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชœ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ€ เชฒเชพเช•เซเชทเชฃเชฟเช• เชฒเช‚เชฌเชพเชˆ เชธเชคเชค เชตเชงเชคเซ€ เช…เชŸเช•เชคเซ€ เชจเชฅเซ€. เชเช• เชฆเชพเชฏเช•เชพเชฎเชพเช‚, เช—เซเชฐเช‚เชฅเซ‹ เชฒเช—เชญเช— เชฆเชธ เช—เชฃเชพ เชฒเชพเช‚เชฌเชพ เชฅเชˆ เช—เชฏเชพ เช›เซ‡!

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เช—เซเชฐเช‚เชฅเซ‹เชจเซ€ เชถเซˆเชฒเซ€ (เชชเซเชฐเชฅเชฎ เช…เช‚เชฆเชพเชœเชฎเชพเช‚) เชชเชฃ เชฌเชฆเชฒเชพเชˆ เช—เชˆ. เชนเชฌเชฐเชจเชพ เช…เชธเซเชคเชฟเชคเซเชตเชจเชพ เชชเซเชฐเชฅเชฎ เชตเชฐเซเชทเซ‹ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชพเช เซ‹เชฎเชพเช‚ เช•เซ‹เชก เช…เชจเซ‡ เชธเช‚เช–เซเชฏเชพเช“เชจเซ‹ เชนเชฟเชธเซเชธเซ‹ เชตเชงเซเชฏเซ‹:

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เชธเชพเช‡เชŸเชจเซ€ เชเช•เช‚เชฆเชฐ เช—เชคเชฟเชถเซ€เชฒเชคเชพเชจเซ‡ เชธเชฎเชœเซเชฏเชพ เชชเช›เซ€, เชฎเซ‡เช‚ เชตเชฟเชตเชฟเชง เชตเชฟเชทเชฏเซ‹เชจเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชฆเชฒเชพเชˆ เชคเซ‡ เชฎเชพเชชเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชชเชพเช เซ‹เชฎเชพเช‚เชฅเซ€ เชตเชฟเชทเชฏเซ‹ เช†เชชเชฎเซ‡เชณเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชถเชฐเซ‚เช†เชค เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชตเซเชนเซ€เชฒเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเซ‹เชงเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฆเชฐเซ‡เช• เชฒเซ‡เช–เชจเชพ เชฒเซ‡เช–เช•เซ‹ เชฆเซเชตเชพเชฐเชพ เชฒเช—เชพเชตเซ‡เชฒเชพ เชคเซˆเชฏเชพเชฐ เชŸเซ…เช—เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เชฎเซ‡เช‚ เชšเชพเชฐเซเชŸ เชชเชฐ เชšเชพเชฐ เชฒเชพเช•เซเชทเชฃเชฟเช• เชตเชฒเชฃเซ‹ เชฆเซ‹เชฐเซเชฏเชพ เช›เซ‡. "Google" เชฅเซ€เชฎ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชชเซเชฐเชญเซเชคเซเชต เชงเชฐเชพเชตเชคเซ€ เชนเชคเซ€ (เช•เชฆเชพเชš เชฎเซเช–เซเชฏเชคเซเชตเซ‡ SEOเชจเซ‡ เช•เชพเชฐเชฃเซ‡), เชชเชฐเช‚เชคเซ เชตเชฐเซเชทเซ‹เชฅเซ€ เชคเซ‡เชจเซเช‚ เชตเชœเชจ เช˜เชŸเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸ เชเช• เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชตเชฟเชทเชฏ เช›เซ‡ เช…เชจเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชตเชฟเช•เชพเชธ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชพเชœเซ‡เชคเชฐเชจเชพ เชตเชฐเซเชทเซ‹เชฎเชพเช‚ เชœ เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เชเชกเชชเชฅเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏเชคเชพ เชฎเซ‡เชณเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚ เช›เซ‡. เชฌเซ€เชœเซ€ เชคเชฐเชซ, Linux เชธเชฎเช—เซเชฐ เชฆเชพเชฏเช•เชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เชธเซเชธเช‚เช—เชค เชฐเชนเซเชฏเซเช‚ เช›เซ‡.

เชฎเซ‡เช‚ Habr เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซเชฏเซเช‚, เชญเชพเช— 1: เชตเชฒเชฃเซ‹

เช…เชฒเชฌเชคเซเชค, เช•เชฏเชพ เชตเชฟเชทเชฏเซ‹ เชตเชงเซ เชตเชพเชšเช• เชชเซเชฐเชตเซƒเชคเซเชคเชฟเชจเซ‡ เช†เช•เชฐเซเชทเซ‡ เช›เซ‡ เชคเซ‡เชฎเชพเช‚ เชฎเชจเซ‡ เชฐเชธ เชชเชกเซเชฏเซ‹. เชฎเซ‡เช‚ เชฆเชฐเซ‡เช• เชตเชฟเชทเชฏเชฎเชพเช‚ เชœเซ‹เชตเชพเชฏเชพ, เชฎเชคเซ‹ เช…เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชจเซ€ เชธเชฐเซ‡เชฐเชพเชถ เชธเช‚เช–เซเชฏเชพเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€. เชถเซเช‚ เชฅเชฏเซเช‚ เชคเซ‡ เช…เชนเซ€เช‚ เช›เซ‡:

  • เชธเซŒเชฅเซ€ เชตเชงเซ เชœเซ‹เชตเชพเชฏเซ‡เชฒเชพ เชตเชฟเชทเชฏเซ‹: arduino, เชตเซ‡เชฌ เชกเชฟเชเชพเช‡เชจ, เชตเซ‡เชฌ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ, เชกเชพเชฏเชœเซ‡เชธเซเชŸ, เชฒเชฟเช‚เช•เซเชธ, css, html, html5, nginx, เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ.
  • เชธเซŒเชฅเซ€ เชตเชงเซ "เช—เชฎเชคเชพ" เชตเชฟเชทเชฏเซ‹: vkontakte, humor, jquery, opera, c, html, เชตเซ‡เชฌ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ, html5, css, เชตเซ‡เชฌ เชกเชฟเชเชพเช‡เชจ.
  • เชธเซŒเชฅเซ€ เชตเชงเซ เชšเชฐเซเชšเชฟเชค เชตเชฟเชทเชฏเซ‹: opera, skype, freelance, vkontakte, ubuntu, work, nokia, nginx, arduino, firefox.

เชœเซ‹ เช•เซ‡, เชนเซเช‚ เชตเชฟเชทเชฏเซ‹เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚, เชคเซ‡เชฅเซ€ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช†เชตเชฐเซเชคเชจ เชฆเซเชตเชพเชฐเชพ เชฐเซ‡เชจเซเช• เช†เชชเซ€ เชถเช•เซ‹ เช›เซ‹ (เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ 2013 เชจเชพ เชธเชฎเชพเชจ เชฒเซ‡เช–).

  • เชนเซ‡เชฌเซเชฐเชจเชพ เช…เชธเซเชคเชฟเชคเซเชตเชจเชพ เชคเชฎเชพเชฎ เชตเชฐเซเชทเซ‹ เชฎเชพเชŸเซ‡, เชธเซŒเชฅเซ€ เชตเชงเซ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชŸเซ…เช—เซเชธ (เช‰เชคเชฐเชคเชพ เช•เซเชฐเชฎเชฎเชพเช‚) เช—เซ‚เช—เชฒ, เชเชจเซเชกเซเชฐเซ‹เช‡เชก, เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸ, เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸ, เชฒเชฟเชจเช•เซเชธ, php, เชเชชเชฒ, เชœเชพเชตเชพ, เชชเชพเชฏเชฅเซ‹เชจ, เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—, เชธเซเชŸเชพเชฐเซเชŸเช…เชชเซเชธ, เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ, เช†เช‡เช“เชเชธ, เชธเซเชŸเชพเชฐเซเชŸเช…เชช, เชธเซ‹เชถเชฟเชฏเชฒ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เช›เซ‡.
  • 2017 เชฎเชพเช‚, เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸ, เชชเชพเชฏเชฅเซ‹เชจ, เชœเชพเชตเชพ, เชเชจเซเชกเซเชฐเซ‹เช‡เชก, เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ, เชฒเชฟเชจเช•เซเชธ, เชธเซ€++, เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—, php, c#, ios, เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—, เชฎเชพเชนเชฟเชคเซ€ เชธเซเชฐเช•เซเชทเชพ, เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸ, เชฐเชฟเชเช•เซเชŸ เชธเซŒเชฅเซ€ เชตเชงเซ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชนเชคเชพ.

เช† เชฐเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช•เซ‹เชˆ เชงเซเชฏเชพเชจ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชพเชฏเชฅเซ‹เชจเชจเซ€ เชตเชฟเชœเชฏเซ€ เช•เซ‚เชš เช…เชจเซ‡ php เชจเชพ เชฒเซเชชเซเชค เชฅเชตเชพ เชชเชฐ เช…เชฅเชตเชพ เชธเซเชŸเชพเชฐเซเชŸเช…เชช เชตเชฟเชทเชฏเซ‹เชจเชพ "เชธเซ‚เชฐเซเชฏเชพเชธเซเชค" เช…เชจเซ‡ เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—เชจเชพ เช‰เชฆเชฏ เชคเชฐเชซ.

Habrรฉ เชชเชฐเชจเชพ เชคเชฎเชพเชฎ เชŸเซ…เช—เซเชธเชฎเชพเช‚ เช†เชตเชพ เชธเซเชชเชทเซเชŸ เชตเชฟเชทเชฏเซ‹เชจเซเช‚ เชฐเช‚เช— เชจเชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชนเซ€เช‚ เชเช• เชกเชเชจ เชŸเซ…เช—เซเชธ เช›เซ‡ เชœเซ‡ เชซเช•เซเชค เชเช• เชœ เชตเชพเชฐ เชฎเชณเซเชฏเชพ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเชจเซ‡ เชฐเชฎเซเชœเซ€ เชฒเชพเช—เซเชฏเซเช‚. เชคเซ‡เชฅเซ€: "เชตเชฟเชšเชพเชฐ เช เชชเซเชฐเช—เชคเชฟเชจเซเช‚ เชšเชพเชฒเช• เชฌเชณ เช›เซ‡", "เชซเซเชฒเซ‹เชชเซ€ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœเชฎเชพเช‚เชฅเซ€ เชฌเซเชŸ", "เช†เชฏเซ‹เชตเชพ เชธเซเชŸเซ‡เชŸ", "เชกเซเชฐเชพเชฎเชพ", "เชธเซเชชเชฐเชฒเซ‡เชถ", "เชธเซเชŸเซ€เชฎ เชเชจเซเชœเชฟเชจ", "เชถเชจเชฟเชตเชพเชฐเซ‡ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชตเชธเซเชคเซเช“", "เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช›เซ‡. เชฎเชพเช‚เชธ เช—เซเชฐเชพเช‡เชจเซเชกเชฐเชฎเชพเช‚ เชถเชฟเชฏเชพเชณ", "เช เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚", "เช…เชฎเซ‡ เชฐเชฎเซเชœเซ€ เชŸเซ…เช—เซเชธ เชธเชพเชฅเซ‡ เช†เชตเซ€ เชถเช•เซเชฏเชพ เชจเชนเซ€เช‚". เช†เชตเชพ เชฒเซ‡เช–เซ‹เชจเซ‹ เชตเชฟเชทเชฏ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชŸเซ…เช—เซเชธ เชชเซ‚เชฐเชคเชพ เชจเชฅเซ€ - เชคเชฎเชพเชฐเซ‡ เชฒเซ‡เช–เซ‹เชจเชพ เชชเชพเช เซ‹ เชชเชฐ เชตเชฟเชทเชฏเซ‹เชจเซเช‚ เชฎเซ‹เชกเซ‡เชฒเชฟเช‚เช— เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡.

เชฒเซ‡เช–เซ‹เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซเช‚ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช†เช—เชพเชฎเซ€ เชชเซ‹เชธเซเชŸเชฎเชพเช‚ เชนเชถเซ‡. เชชเซเชฐเชฅเชฎ, เชนเซเช‚ เชเช• เชฎเซ‹เชกเซ‡เชฒ เชฌเชจเชพเชตเชตเชพ เชœเชˆ เชฐเชนเซเชฏเซ‹ เช›เซเช‚ เชœเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเชพ เช†เชงเชพเชฐเซ‡ เชฒเซ‡เช– เชฎเชพเชŸเซ‡ เชชเซƒเชทเซเช  เชœเซ‹เชตเชพเชฏเชพเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ€ เช†เช—เชพเชนเซ€ เช•เชฐเซ‡ เช›เซ‡. เชฌเซ€เชœเซเช‚, เชนเซเช‚ เชจเซเชฏเซเชฐเชฒ เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‡ เชนเซ‡เชฌเซเชฐเชจเชพ เชฒเซ‡เช–เช•เซ‹ เชœเซ‡เชตเซ€ เชœ เชถเซˆเชฒเซ€เชฎเชพเช‚ เชŸเซ‡เช•เซเชธเซเชŸ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชถเซ€เช–เชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เชคเซ‹ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ ๐Ÿ™‚

PS เช…เชจเซ‡ เช…เชนเซ€เช‚ เชฌเซ€เชช เช›เซ‡ เชกเซ‡เชŸเชพเชธเซ‡เชŸ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹