19 полезных сайтов для начинающих программистов
Íî ÷òî æå òàêîå òèïèçàöèÿ? Ñóäÿ ïî áóðíîìó îáñóæäåíèþ ïîä ïîñòîì, ìíîãèå ëþäè, íèêàê íå ñâÿçàííûå ñ ïðîãðàììèðîâàíèåì, çàèíòåðåñîâàëèñü ýòèì âîïðîñîì.
Òàì æå, â êîììåíòàðèÿõ áûëî äàíî ïîÿñíåíèå îò ïîëüçîâàòåëÿ @9poIIIa.
Âñêîðå ïîä ýòèì êîììåíòàðèåì ðàçâåðíóëîñü áóðíîå îáñóæäåíèå, â êîòîðîì ìíîãèå óòâåðæäàëè, ÷òî ýòîò ïîëüçîâàòåëü äîïóñòèë òó æå ñàìóþ îøèáêó, ÷òî è â ïîñòå: ñìåøàë ìåæäó ñîáîé ñîâåðøåííî íå ñâÿçàííûå äðóã ñ äðóãîì ïîíÿòèÿ: ñòàòè÷åñêóþäèíàìè÷åñêóþ òèïèçàöèþ è ñòðîãóþíå ñòðîãóþ (îíà æå ñèëüíàÿ è ñëàáàÿ òèïèçàöèè).
Ýòè ïîëüçîâàòåëè, â ñâîþ î÷åðåäü, ïûòàëèñü äàòü ñâîè îáúÿñíåíèÿ. Íî îíè áûëè ëèáî ñëèøêîì ñïåöèàëèçèðîâàííûìè (èõ íåâîçìîæíî ïîíÿòü áåç ïðåäâàðèòåëüíîé ïîäãîòîâêè), ëèáî èçëèøíå àáñòðàêòíûìè è óïðîùåííûìè, âðîäå «ÿ ñêëàäûâàþ êðîêîäèëà è âåëîñèïåä ýòî íå ñòðîãàÿ òèïèçàöèÿ».
ß ëè÷íî ïðèäåðæèâàþñü ìíåíèÿ, ÷òî èçëèøíåå óïðîùåíèå íè÷óòü íå ëó÷øå ïåðåóñëîæíåííîãî îáúÿñíåíèÿ. Ïîýòîìó õî÷ó ïðåäëîæèòü íà ñóä îáùåñòâåííîñòè ñâîå ïîÿñíåíèå ýòèõ ïîíÿòèé äëÿ íå ïðîãðàììèñòîâ è ðàçáîð òîãî, ÷òî ïðîèñõîäèò íà êàðòèíêå.
ÑÏÎÉËÅÐ äëÿ òåõ, êîìó ëåíü ÷èòàòü âåñü ïîñò:
 øóòî÷íîé êàðòèíêå, âåðîÿòíåå âñåãî, äîïóùåíà îøèáêà. Èìåëîñü ââèäó ëèáî «Äèíàìè÷åñêàÿ òèïèçàöèÿ ëó÷øå ñòàòè÷åñêîé», ëèáî æå «Íå ñòðîãàÿ òèïèçàöèÿ ëó÷øå ñòðîãîé».
À ïîëüçîâàòåëè, ïîñïîðèâøèå ñ @9poIIIa è óêàçàâøèå åìó íà íåòî÷íîñòü åãî îáúÿñíåíèÿ àáñîëþòíî ïðàâû.
Åñëè ãîâîðèòü î÷åíü ãðóáî, òî ñòàòè÷åñêàÿäèíàìè÷åñêàÿ òèïèçàöèÿ îïðåäåëÿåò òî, êàêèå äàííûå, â òåîðèè, ìîãóò õðàíèòü ïåðåìåííûå.
À ïîíÿòèå ñòðîãîéíå ñòðîãîé (ñèëüíîéñëàáîé) òèïèçàöèè îïðåäåëÿåò òî, êàê äâå ðàçëè÷íûå ïåðåìåííûå ìîãóò âçàèìîäåéñòâîâàòü äðóã ñ äðóãîì.
Ò.å. ýòî äâà ñîâåðøåííî ðàçíûõ ïîíÿòèÿ, êîòîðûå íåëüçÿ ñìåøèâàòü.
Òåïåðü, íåïîñðåäñòâåííî, ê îáúÿñíåíèþ:
Ïðåæäå ÷åì ïîíÿòü ðàçíèöó ìåæäó òèïèçàöèÿìè, íåîáõîäèìî ïîíÿòü ÷òî òàêîå «ïåðåìåííàÿ».
 áîëüøèíñòâå ÿçûêîâ ïðîãðàììèðîâàíèÿ, «ïåðåìåííàÿ» ýòî íåáîëüøàÿ ÿ÷åéêà ïàìÿòè, ïðåäíàçíà÷åííàÿ äëÿ õðàíåíèÿ â ñåáå êàêîé-ëèáî èíôîðìàöèè: ÷èñåë, ñèìâîëîâ, ëîãè÷åñêèõ çíà÷åíèé (èñòèíàëîæü) è ìíîãîãî äðóãîãî (ñîâðåìåííûå ÿçûêè ïðîãðàììèðîâàíèÿ äàæå ïîçâîëÿþò ñîçäàâàòü ñîáñòâåííûå òèïû äàííûõ).
Íàä ïåðåìåííûìè ìîæíî ñîâåðøàòü ðàçëè÷íûå äåéñòâèÿ: ñêëàäûâàòü èõ, âû÷èòàòü, äåëèòü äðóã íà äðóãà, óìíîæàòü.
Ðàçóìååòñÿ, êîëè÷åñòâî îïåðàöèé íàä ïåðåìåííûìè íå îãðàíè÷èâàåòñÿ ýòèìè ÷åòûðüìÿ è ìîæåò î÷åíü ñèëüíî âàðüèðîâàòüñÿ â çàâèñèìîñòè îò òîãî, êàêóþ èíôîðìàöèþ õðàíèò ïåðåìåííàÿ è íà êàêîì ÿçûêå ïðîãðàììèðîâàíèÿ ìû ïèøåì êîä, íî â êîíòåêñòå äàííîãî îáñóæäåíèÿ, ýòî íå èìååò îñîáîãî çíà÷åíèÿ. Äàâàéòå çàêðîåì ãëàçà è íà âðåìÿ ïðåäñòàâèì, ÷òî îïåðàöèé òîëüêî ÷åòûðå.
Îòëè÷íî. Ìû íà øàã ïðèáëèçèëèñü ê ïîíèìàíèþ ïîíÿòèÿ «òèïèçàöèÿ».
Äàâàéòå òåïåðü ðàçáåðåì, ÷òî òàêîå «òèï» â ÿçûêå ïðîãðàììèðîâàíèÿ:
â òèïèçèðîâàííûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ òèï ïåðåìåííîé îïðåäåëÿåò òî, êàêèå çíà÷åíèÿ ýòà ïåðåìåííàÿ ìîæåò â ñåáå õðàíèòü. Íàïðèìåð, â òàêîì ÿçûêå ïðîãðàììèðîâàíèÿ êàê c++ — öåëî÷èñëåííàÿ ïåðåìåííàÿ (int) ìîæåò õðàíèòü òîëüêî öåëûå ÷èñëà (-1, 0, 2, 3 è ò.ä.). À ïåðåìåííàÿ òèïà «ñèìâîë» (char) òîëüêî ñèìâîëû àíãëèéñêîãî àëôàâèòà (‘a’, ‘z’, è ò.ä.).
Äëÿ äàëüíåéøèõ îáúÿñíåíèé ÿ èñïîëüçóþ äâà ÿçûêà ïðîãðàììèðîâàíèÿ: c++ (ñòàòè÷åñêàÿ è íå ñòðîãàÿ òèïèçàöèÿ) è python (äèíàìè÷åñêàÿ è ñòðîãàÿ).
Ñòàòè÷åñêàÿÄèíàìè÷åñêàÿ òèïèçàöèÿ:
 ÿçûêàõ ñî ñòàòè÷åñêîé òèïèçàöèåé, ïðè ñîçäàíèè ïåðåìåííûõ ïðîãðàììèñò, çà÷àñòóþ, äîëæåí ÿâíî óêàçàòü, êàêîé òèï ïåðåìåííîé îí õî÷åò ñîçäàòü.
C++:
int a = 2;
«int» ýòî îáîçíà÷åíèå òèïà ïåðåìåííîé.  äàííîì ñëó÷àå òèï «öåëîå ÷èñëî».
«a» èìÿ ñîçäàííîé ïåðåìåííîé (ìîæåò áûòü ëþáûì). Åñëè ìû çàõîòèì, â äàëüíåéøåì â êîäå ïîëó÷èòü ñîäåðæèìîå ýòîé ïåðåìåííîé, ìû ñìîæåì îáðàòèòüñÿ ê íåé ïî ýòîìó èìåíè.
Çíàê «=» ãîâîðèò íàì î òîì, ÷òî ïåðåìåííàÿ «a» ïîñëå ñâîåãî ñîçäíàèÿ ïðèìåò çíà÷åíèå, ñòîÿùåå ñïðàâà îò ýòîãî çíàêà â äàííîì ñëó÷àå ýòî «2».
Êàê ìû âèäèì, íàì ïðèøëîñü ÿâíûì îáðàçîì óêàçàòü, ÷òî ïåðåìåííàÿ «a» ìîæåò õðàíèòü â ñåáå òîëüêî öåëûå ÷èñëà.  òàêîé ïåðåìåííîé ìû íå ñìîæåì õðàíèòü ñèìâîëû èëè æå äðîáíûå ÷èñëà.
int a = 2.3; // Òàêîé êîä âûäàñò îøèáêó
Ýòî ÿçûê ñî Ñòàòè÷åñêîé òïèçàöèåé.
Python:
a = 2
À âîò òàê ýòîò æå êîä áóäåò âûãëÿäåòü íà Python. Çäåñü íàì íå ïðèøëîñü óêàçûâàòü òèï ïåðåìåííîé «a». Ýòîò ÿçûê ïðîãðàììèðîâàíèÿ ñàìîñòîÿòåëüíî îïðåäåëèë, áåç ïîìîùè ïðîãðàììèñòà, ÷òî «a» áóäåò èìåòü öåëî÷èñëåííûé òèï. Ïîñêîëüêó ïðè ñîçäàíèè ýòîé ïåðåìåííîé, â íåå áûëî çàïèñàíî çíà÷åíèå ñîîòâåòñòâóþùåãî òèïà.
Ê òîìó æå, åñëè âäðóã ó íàñ âîçíèêíåò íåîáõîäèìîñòü ñîõðàíèòü â ýòîé ïåðåìåííîé ÷òî-òî ïîìèìî öåëûõ ÷èñåë ìû ñìîæåì ëåãêî ïåðåçàïèñàòü äàííûå â ýòîé íåé.
a = 2.3 # Åñëè íàïèñàòü ýòîò êîä ïîñëå «a = 2», îí ñðàáîòàåò. Çíà÷åíèå a èçìåíèòñÿ, à Python ñàìîñòîÿòåëüíî îïðåäåëèò íîâûé òèï ïåðåìåííîé «a».
Ýòî ÿçûê ñ Äèíàìè÷åñêîé òèïèçàöèåé.
ÑòðîãàÿÍå ñòðîãàÿ òèïèçàöèÿ
Îïðåäåëÿåò òî, ìîæåò ëè ÿçûê íåÿâíî ïðåîáðàçîâàòü äàííûå ðàçëè÷íûõ òèïîâ.
Ñ++:
int a = 2;
char b = ‘L’;
int c = a + b;
Äà, äà, âàì íå ïîêàçàëîñü. Ìû ñëîæèëè ÷èñëî è ñèìâîë (!) è ïîëó÷èëè íîâîå ÷èñëî.
Êàê ýòî ðàáîòàåò? C++ íåÿâíî ïðåîáðàçîâàë ñèìâîë ‘L’ â ÷èñëî à èìåííî â íîìåð, êîòîðûé ñîîòâåòñòâóåò ýòîìó ñèìâîëó â òàáëèöå êîäèðîâîê ASCII. Íîìåð, ñîîòâåòñòâóþùèé ñèìâîëó ‘L’ â ýòîé òàáëèöå 76. Òàêèì îáðàçîì, â «c» ó íàñ îêàæåòñÿ çíà÷åíèå 2+76=78
Ñ++ — ýòî ÿçûê ñ Íå ñòðîãîé òèïèçàöèåé.
Python:
a = 2
b = ‘L’
c = a + b # Çäåñü áóäåò îøèáêà
Python íå ïîçâîëÿåò íàì ñêëàäûâàòü òàêèå äâå ðàçíûå ñóùíîñòè êàê «öåëîå ÷èñëî» è «ñèìâîë».
Python — ÿçûê ñî ñòðîãîé òèïèçàöèåé.
Òàêèì îáðàçîì, ÿçûêè ñî ñòðîãîé òèïèçàöèåé íå ïîçâîëÿþò ñìåøèâàòü ñóùíîñòè ðàçíûõ òèïîâ â âûðàæåíèÿõ è íå âûïîëíÿþò íèêàêèõ àâòîìàòè÷åñêèõ ïðåîáðàçîâàíèé, à ÿçûêè íå ñòðîãîé òèïèçàöèåé, íàîáîðîò âñÿ÷åñêè ñïîñîáñòâóþò, ÷òîáû ïðîãðàììèñò ñìåøèâàë ðàçíûå òèïû â îäíîì âûðàæåíèè.
Èòîã:
Òî, êàêàÿ â ÿçûêå òèïèçàöèÿ — âî ìíîãîì îïðåäåëÿåò êàê áóäåò ïèñàòüñÿ êîä íà ýòîì ÿçûêå ïðîãðàììèðîâàíèÿ.
È â èçíà÷àëüíîé êàðòèíêå, êàê ÿ ïîäîçðåâàþ, ïîïûòàëèñü îòîáðàçèòü äàâíèé ñïîð ìåæó ïðåäñòàâèòåëÿìè ðàçëè÷íûõ «ëàãåðåé» ïðîãðàììèñòîâ. ×àñòü ñïåöèàëèñòîâ âûñòóïàåò çà äèíàìè÷åñêóþ òèïèçàöèþ â ÿçûêàõ ïðîãðàììèðîâàíèÿ, ÷àñòü çà ñòàòè÷åñêóþ. Àíàëîãè÷íî ñî ñòðîãîé è íå ñòðîãîé òèïèçàöèåé. Ïðàâäà æå, êàê èçâåñòíî, ãäå-òî ïîñåðåäèíå.
Íî øóòêà íå óäàëàñü èç-çà äîïóùåííîé íåòî÷íîñòè.
Áîíóñ îò ìåíÿ ëè÷íî:
P.S. íåñìîòðÿ íà ìîå çàÿâëåíèå â ñàìîì íà÷àëå ïîñòà, ÿ âñå-æå èñïîëüçîâàë ðÿä íåáîëüøèõ óïðîùåíèé ïðè îáúÿñíåíèè ðàçëè÷íûõ ïîíÿòèé â ïðîãðàììèðîâàíèè (ïðîñòî, ÷òîáû íå ïåðåãðóæàòü ÷èòàòåëåé íåíóæíîé èíôîðìàöèåé). Íàäåþñü, ñîîáùåñòâî ïðîãðàììèñòîâ ïðîñòèò ìíå íåòî÷íîñòè.
Èñòî÷íèêè:
Ñòàòè÷åñêàÿ è äèíàìè÷åñêàÿ òèïèçàöèÿ
Ëèêáåç ïî òèïèçàöèè â ÿçûêàõ ïðîãðàììèðîâàíèÿ
Источник
Сегодня каждый может начать изучать программирование онлайн. Как говорится, было бы желание и время. Любую информацию и готовые инструкции с примерами кода можно найти абсолютно бесплатно.
Есть масса сайтов, которые помогают изучать программирование, читать полезные статьи, набираться опыта и обмениваться идеями как начинающим программистам, так и опытным.
Даже если вы не собираетесь изучать программирование, но просто хотите быть в курсе событий происходящих в IT сфере, то следующий список сайтов может быть очень полезным.
Популярный сайт в формате коллективного блога с элементами новостного сайта. Используется для публикации статей и новостей связанных с информационными технологиями и бизнесом в интернете. Ресурс включает в себя отдельные проекты: Geektimes, Тостер, Мой круг, Фрилансим.
Плюсы
- Публикации от крупнейших международных IT компаний: Microsoft, Google, Яндекс, Mail.ru и т.д.
- Много полезной информации, инструкций и советов о программировании.
- Удобные фильтры позволяют настроить отображение статей только из интересующих категорий.
- Есть англоязычная версия сайта.
Минусы
- Большие ограничения на аккаунты пользователей.
- Новые пользователи могут добавлять статьи только в раздел «Песочница», где статья будет долго висеть до момента одобрения модератором или опытными пользователями.
- Свои блоги могут вести только компании на платной основе.
- Много новостного мусора и холиварного срача, вплоть до политики в IT.
- Непродуманный механизм кармы и рейтинга.
- Упоминание аналогов Хабра встречает негативную реакцию. Считают, что аналогов Хабра нет.
- Не трезвость аудитории сайта. За не понравившуюся статью или отличающееся от других мнение, могут наложить отрицательную карму, что накладывает серьезные ограничения на аккаунт.
Портал для развития сотрудничества между компаниями и IT-специалистами. На сайте начинающие и профессиональные программисты могут набираться знаний и рассказывать о своем опыте.
Плюсы
- Добавлять статьи без ограничений могут как обычные пользователи, так и IT компании.
- На сайте есть полезные туториалы и инструкции по программированию.
- Для пользовательских аккаунтов нет никаких ограничений.
- В правилах прописан запрет на публикации с обсуждением политики.
Минусы
- Небольшое количество публикаций. Статьи пишут несколько авторов.
- Многие разделы сырые и не доработанные.
- Нельзя отфильтровать интересующие статьи по категориям.
Украинское сообщество программистов с элементами коллективного блога, созданный для распространения новостей, аналитических статей и свежей информации связанной с IT. На сайте размещаются различные исследования зарплат работников, а также рейтинг компаний.
Плюсы
- Масса полезных статей и интервью на русском и украинском языках.
- Исследования зарплат по разным языкам программирования и профессиям.
- Проводят опросы среди пользователей, на основе которых ведут статистику и рейтинги об IT-компаниях.
- Календарь событий и мероприятий.
- Каталог вакансий.
- Удобная система комментирования.
Минусы
Интернет-издание о компьютерной технике, информационных технологиях и программных продуктах. На сайте публикуются новости IT, статьи с обзорами и тестами компьютерных комплектующих и программного обеспечения.
Плюсы
- Качественные обзоры об аппаратном обеспечении компьютеров.
- Корпоративные блоги компаний.
- Множество проектов компьютерной тематики.
- Простая система комментирования.
- Есть англоязычная версия сайта.
Минусы
- Не современный дизайн.
- Страницы сайта перегружены ненужной информацией.
- Англоязычная версия не обновляется с 2013 года.
Белорусское сообщество программистов представляющее коллективные блоги с публикациями об IT-индустрии в Беларуси и мире. На сайте размещаются новости, интервью, репортажи, аналитика.
Плюсы
- Каталог белорусских IT-компаний и отзывы.
- Календарь IT-событий и статистика зарплат.
- Список вакансий компаний.
Минусы
- Для регистрации необходим номер телефона.
Интернет издание о разработке, публикуют актуальные новости, авторские статьи и переводы.
Плюсы
- Много полезных статей по программированию.
- Размещают анонсы конференций и других событий.
- Эксперты компаний отвечают на популярные вопросы читателей.
- Каталог с вакансиями от компаний.
Минусы
- Обычные пользователи не могут бесплатно публиковать статьи.
- Нет регистрации через email (только соцсети).
- Комментирование статей только через ВКонтакте.
{
«author_name»: «Роман»,
«author_type»: «self»,
«tags»: [],
«comments»: 15,
«likes»: 1,
«favorites»: 55,
«is_advertisement»: false,
«subsite_label»: «dev»,
«id»: 85205,
«is_wide»: true,
«is_ugc»: true,
«date»: «Sat, 28 Sep 2019 14:44:23 +0300»,
«is_special»: false }
Источник
1) Общие ресурсы независимо от языка программирования:
https://github.com — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. На сайте представлен свободный исходный код, с которым вы можете ознакомиться.
https://ru.pdfdrive.com — Ресурс поиска файлов pdf (Электронных книг).
https://proklondike.net/ — Электронные книги по программированию.
https://www.cyberforum.ru — Форум программистов и сисадминов “Киберфорум”.
https://habr.com/ru/ — сайт в формате системы тематических коллективных блогов (именуемых хабами) с элементами новостного сайта, созданный для публикации новостей, аналитических статей, мыслей, связанных с информационными технологиями и интернетом.
https://www.geeksforgeeks.org/ — Различные математические алгоритмы (Представлены обычно несколькими языками программирования (C++, Java, Pytchon, C#, PHP)). Сайт на английском языке.
https://proglib.io – Библиотека программиста (материалы, которые научат и помогут программировать. Книги и лекции, видеоуроки и советы, тесты знаний и обсуждение горячих тем).
https://www.gamedev.ru/code/forum — Разработка игр (форум)
https://gamedev.stackexchange.com/questions — Разработка игр (Вопросы -ответы (в основном на английском))
https://otvet.mail.ru – Ответы на вопросы по разным тематикам.
https://ru.stackoverflow.com/ — система вопросов и ответов о программировании.
https://stackoverflow.com/questions — система вопросов и ответов о программировании (на английском).
https://fooobar.com/questions — Сервис вопросов и ответов о программировании.
https://4pda.ru/forum — Форум (разработки под мобильные устройства).
https://blog.csdn.net — Китайская Сеть Разработчиков Chinese Software Developer Network, China Software Developer Network, CSDN) , одна из крупнейших сетей для программистов в Китае. CSDN представляет собой форумы, блоги, новости ИТ и другие сервисы. На данный момент в CSDN насчитывается около 10 миллионов зарегистрированных пользователей. (там все на китайском и английском).
https://www.euclideanspace.com/maths/geometry/rotations/index.htm — Математические алгоритмы (код обычно представлен на Java).
2) Для Java и Android разработчиков:
https://developer.android.com/guide/ — документация для разработчиков под Android
https://developer.alexanderklimov.ru/android — Сайт Александра Климова(Уроки и статьи по программированию под Android).
https://www.javatips.net – JavaTips.net предоставляет статьи о Java и смежных технологиях (на английском).
https://javatalks.ru –Форум Java программистов. Обсуждение вопросов программирования на языке Java. Примеры и советы экспертов. Вакансии для java-программистов.
https://metanit.com/java/android — Сайт о программировании. (раздел “Программирование под ОС Андроид”).
https://startandroid.ru — Start Android — учебник по Android для начинающих и продвинутых.
https://www.java2s.com/example/java — Java свободный код (на английском).
https://www.libgdx.com/ — libgdx (https://github.com/libgdx/libgdx) Кроссплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL.
https://docs.oracle.com/javase/tutorial — Учебные руководства по Java представляют собой практические руководства для программистов, которые хотят использовать язык программирования Java для создания приложений. Они включают в себя сотни полных рабочих примеров и десятки уроков. (на английском).
https://www.java.com/ — официальный сайт.
https://docs.oracle.com/javase/ — официальная документация по Java (на английском).
https://www.javable.com/club/members/register.jsp — русский Перевод Java Tutorial.
https://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html — соглашения по оформлению кода Java (на английском).
3) Обычные поисковые системы
https://yandex.ru
https://www.google.ru
https://www.bing.com
https://go.mail.ru
Подписывайтесь на канал, не пропустите новые публикации. Ставьте палец вверх. 🙂
Источник
Ïîõîæèå ïîñòû
Ìåòîä óòåíêà
Ìåòîä óò¸íêà ïñèõîëîãè÷åñêèé ìåòîä ðåøåíèÿ çàäà÷è, äåëåãèðóþùèé å¸ ìûñëåííîìó ïîìîùíèêó. Ìåòîä îïèñàí â êíèãå «Ïðîãðàììèñò-ïðàãìàòèê».
Òåñòèðóåìûé ñòàâèò íà ðàáî÷åì ñòîëå èãðóøå÷íîãî óò¸íêà (èëè ïðåäñòàâëÿåò åãî ìûñëåííî; íà ñàìîì äåëå óòî÷êà — ýòî óñëîâíî, ïðåäìåò ìîæåò áûòü ëþáûì), è êîãäà ó íåãî âîçíèêàåò âîïðîñ, íà êîòîðûé òðóäíî îòâåòèòü, òî îí çàäà¸ò åãî èãðóøêå, êàê æèâîìó ÷åëîâåêó, ñëîâíî îíà äåéñòâèòåëüíî ìîæåò îòâåòèòü. Ñ÷èòàåòñÿ, ÷òî ïðàâèëüíàÿ ôîðìóëèðîâêà âîïðîñà ñîäåðæèò êàê ìèíèìóì ïîëîâèíó îòâåòà, à òàêæå ýòî äàåò òîë÷îê ìûñëÿì, íàïðàâëÿÿ èõ â íóæíîå ðóñëî.
Ìåòîä òàêæå èñïîëüçóåòñÿ ïðè îòëàäêå. Åñëè îïðåäåë¸ííàÿ ÷àñòü ïðîãðàììû íå ðàáîòàåò, ïðîãðàììèñò ïûòàåòñÿ îáúÿñíèòü óò¸íêó, ÷òî äåëàåò êàæäàÿ ñòðîêà ïðîãðàììû, è â ïðîöåññå ýòîãî ñàì íàõîäèò îøèáêó.
Àíàëîãè÷íûé ïðèåì èñïîëüçîâàë Øåðëîê Õîëìñ. Äî ïîÿâëåíèÿ äîêòîðà Âàòñîíà âìåñòî óòåíêà ó íåãî äðóãîì áûë ÷åðåï. Ìíîãèå íàâåðíîå Øåðëîêà ïîñ÷èòàëè ñòðàííûì, ìèíèìóì íå ïîíÿëè î ÷åì îí ãîâîðèò.
Ñêèäûâàþ èíòåðåñíóþ ññûëêó íà âèäåî ïðî Øåðëîêà ñ ÷åðåïîì è åãî ìåòîäàõ ïî ñêîëüêó íå ìîãó ñðàçó òóò äîáàâëÿòü âèäåî.
Âñåì ïðèâåò! Ìåíÿ äîâîëüíî ÷àñòî ñïðàøèâàëè â êîììåíòàðèÿõ ê íàó÷íûì ïîñòàì, îòêóäà ëó÷øå ñòàðòîâàòü â ìàøèííîì îáó÷åíèè è àíàëèçå äàííûõ. Íó ÷òî æå. Ïîïðîáóåì ñîáðàòü âîåäèíî ìîé îïûò è ïîñâÿòèòü ïîñò òåõíè÷åñêèì âîïðîñàì.
Îãëàâëåíèå:
0. Êàê âîîáùå èçó÷àòü
1. Òåìàòè÷åñêèå ðåñóðñû.
2. Òåõíè÷åñêàÿ ÷àñòü.
3. Ïëîùàäêè
Êàê âîîáùå èçó÷àòü ýòî äåëî?
Ëþáàÿ íàóêà äâèãàåòñÿ ëþäüìè. Êàæäûé ó÷¸íûé èìååò ñâîþ îáëàñòü èíòåðåñîâ, ïîýòîìó íàäî â ïåðâóþ î÷åðåäü îïðåäåëèòüñÿ, ÷òî òåáå èíòåðåñíî. Âîîáùå, â Ðîññèè ñàìûé-ñàìûé ãëàâíûé ïî ìàøèííîìó îáó÷åíèþ — ýòî Âîðîíöîâ Êîíñòàíòèí Âÿ÷åñëàâîâè÷. Îí íàïèñàë ðÿä ëåêöèé, êàæäàÿ èç êîòîðûõ îò «À» äî «ß» âñ¸ îáúÿñíÿåò.
Ëó÷øå âñåãî íà÷àòü ñ ýòèõ ëåêöèé. Çäåñü çàòðàãèâàþòñÿ îñíîâû îñíîâ, ëèíåéíûå ìåòîäû êëàññèôèêàöèè, íåìíîãî ïðî íåéðîííûå ñåòè, êëàñòåðèçàöèÿ è ðåãðåññèÿ. Âîîáùå, ó íåãî åñòü îáùèå ëåêöèè, íà ìàíåð òåõ, ÷òî ÿ ïðèâ¸ë â ïðèìåð, à åñòü ëåêöèè, ñïåöèàëüíî ïîñâÿù¸ííûå êàêîìó-òî ëèáî ðàçäåëó. Íàïðèìåð, òåìàòè÷åñêîå ìîäåëèðîâàíèå (âîïðîñû ìîäåëèðîâàíèÿ òåêñòîâ), àíñàìáëè àëãîðèòìîâ (ïîìîãàåò ïîíÿòü, ÷òî òàêîå ñëó÷àéíûé ëåñ èëè ãðàäèåíòûé áóñòèíã). Ýòè çíàíèÿ ïîìîãóò âàì ïîíÿòü, ÷òî ñêðûâàåòñÿ ïîä êîïîòîì ó âàøèõ àëãîðèòìîâ. Íî åñòü è ÷èñòî íàó÷íûå âîïðîñû, êîòîðûå áåç… îïðåäåë¸ííîé äîëè óñèä÷èâîñòè è çíàíèé íå ïîíÿòü.
Âîðîíöîâ â ñâîåé äèññåðòàöèè çàòðàãèâàåò âîïðîñû ïåðåîáó÷åíèÿ. Åñëè âêðàòöå, òî îí îïèñûâàåò ìåòîäû, ïî êîòîðûì ìîæíî ïîíÿòü, à õîðîø ëè âàø àëãîðèòì? Íå ïåðåîáó÷èëñÿ ëè? Çíàíèÿ òóò… î÷åíü è î÷åíü íåòðèâèàëüíûå.  êà÷åñòâå áîíóñà, ðåêîìåíäóþ ïðî÷èòàòü åãî ïðèëîæåíèå. Òàì îí îïèñûâàåò êàê èññëåäîâàíèå äëèííîþ â 10 ëåò ìîæíî áûëî… ïðîâåñòè çà îäèí ÷àñ, åñëè ñäåëàòü ïðàâèëüíûé ýêñïåðèìåíò.  îáùåì, ðåêîìåíäóþ.
À ìîæåò âû õîòèòå âîîáùå óçíàòü îòêóäà ýòî äåëî ïîøëî? Èëè ïîëó÷èòü ïàðó óìíûõ ïðàêòè÷åñêèõ ñîâåòîâ? Íó, òîãäà âû îáÿçàíû ïðî÷èòàòü ýòó êëàññè÷åñêóþ ñòàòåéêó îò ó÷èòåëÿ Âîðîíöîâà.
ß ïîõîäó ñâîåé äåÿòåëüíîñòè çàíèìàëñÿ êîìïüþòåðíîé ëèíãâèñòèêîé.  êîìïüþòåðíîé ëèíãâèñòèêå ïðàâèò áàë ñåé÷àñ ìîäåëü word2vec. Ïîýòîìó, áåð¸ì ðàáîòû Tomasa Mikolova è ãóãëèì åãî òðóäû. Ýòî äàñò âàì íåîáõîäèìûé ìèíèìóì.
Òåìàòè÷åñêèå ðåñóðñû.
Âîîáùå, ëèòåðàòóðû ïî ýòîìó äåëó â èíòåðíåòå ìàññà. Îäíàêî,÷òî ðåäêîñòü, â ðóññêîÿçû÷íîì ñåãìåíòå åñòü âåñüìà äîñòîéíûé ñàéò. Òàì ìîæíî íàéòè ïî÷òè âñ¸! Âîîáùå, òàêèå ñàéòû áîëüøàÿ ðåäêîñòü. Äóìàþ, ÷òî ìíîãèå âñïîìíÿò õàáð… Íó òàì… Òàì áîëüøå òåõíè÷åñêèå ìîìåíòû îïèñûâàþòñÿ. Ñ òî÷êè çðåíèÿ ïðîãðàììèñòà, õàáð âåùü íåçàìåíèìàÿ, íî ñ íàó÷íîé… Ìíå ïîïàäàëèñü òàì äåéñòâèòåëüíî óäà÷íûå öèêëû íàó÷ïîïà ïðî òåìàòè÷åñêîå ìîäåëèðîâàíèå. Åñëè âàì íàäî ïîñòàðàòüñÿ ñìîäåëèðîâàòü ïîâåäåíèå ïîëüçîâàòåëÿ, îïèðàÿñü íà òåìàòèêè, òî ðåêîìåíäóþ èõ áëîã. Íà ïàëüöàõ îáúÿñíÿþò êàê ýòî ñäåëàòü è ïî÷åìó ýòî áóäåò ðàáîòàòü. Ðåçóëüòàòû ýêñïåðèìåíòîâ ïðèëàãàþòñÿ.
 ïîñëåäíåå âðåìÿ, äåòèùå Ãðåôà ñòàëî ïðîÿâëÿòü èíòåðåñ ê ìàøèííîìó îáó÷åíèþ. Âòîðîé ãîä ïîäðÿä ïðîâîäÿò êîíêóðñû ñ î÷åíü íåïëîõèìè ïðèçîâûìè, à ðåçóëüòàòû ïóáëèêóþò çäåñü. Òàêæå ìîãó ïîðåêîìåíäîâàòü íåïëîõóþ êîíôó «ÀÈÑÒ». ÂÍÈÌÀÍÈÅ, å¸ ðåçóëüòàòû èäóò â Scopus!!! Òî åñòü — íåïëîõàÿ âîçìîæíîñòü ïîëó÷èòü ïóáëèêàöèþ â çàðóáåæíîì æóðíàëå. Ïðèìèòå ê ñâåäåíèþ. Ïîìèìî ÷èñòî ïðàêòè÷åñêèõ èíòåðåñîâ (ïóáëèêàöèÿ) òàì ïðîñêàêèâàþò âåñüìà è âåñüìà èíòåðåñíûå ðàáîòû.
 ïîñëåäíåå âðåìÿ ðàçâèëñÿ îãðîìíûé èíòåðåñ ê ñâ¸ðòî÷íûì íåéðîñåòÿì. Õîäèò óñòîé÷èâîå ìíåíèå, ÷òî ýòî ïàíàöåÿ äëÿ ñîçäàíèÿ ñèëüíîãî èñêóññòâåííîãî èíòåëëåêòà. Âûãëÿäèò ìíîãîîáåùàþùå, íî… ÿ ñ ýòèì íå ðàáîòàë è ìîãó ñêàçàòü, ÷òî òàì äà êàê. Ïî èäåå, â ýòîé îáëàñòè êàæäûé äåíü âûõîäÿò ñòàòüè è âûáðàòü ñòîÿùåå… äîâîëüíî òðóäíî.
ØÀÄ/êóðñû
ØÀÄ — ýòî áðåíä. ß íå çíàþ, ÷òî òàì ïðîõîäÿò òî÷íî, íî ÿ óâåðåí, ÷òî òàì êðóòî. Î÷åíü êðóòî. Ïîñòóïëåíèå áåñïëàòíîå, íî î÷åíü òðóäíîå. Ïîäðîáíåå ñ çàäà÷àìè ìîæíî îçíàêîìèòüñÿ çäåñü. Èç îíëàéí êóðñîâ ÿ áû ïîðåêîìåíäîâàë ìîíèòîðèòü stepic. Òàì ìîæíî âûöåïèòü âåñüìà ëþáîïûòíûå êóðñû. Ìåæäó ïðî÷èì, ñ ñåðòèôèêàòàìè, ÷òî âåñüìà ïðèÿòíî. È áåñïëàòíî.
Òåõíè÷åñêàÿ ÷àñòü
Íó, òóò âñ¸ ïðîñòî. Èä¸ì è ñìîòðèì íà hh/linkedin/stackoverflow ÷òî èíòåðåñóåò ïîòåíöèàëüíîãî ðàáîòîäàòåëÿ.
1. SQL/NoSQL
2. Ñòýê: Big Data: Hadoop, Hive, Spark (äëÿ èíæåíåðîâ)
3. Python — ïðîñòî ìàñò õýâ. Îñîáåííî åãî áèáëèîòåêè äëÿ ìàøèííîãî îáó÷åíèÿ.
4. Æåëàòåëüíî java
5. R, mathlab
Åñëè èíòåðåñíî äëÿ ñåáÿ, òî:
1. h20. Èíòóèòèâíî ïðîñòî è ïîíÿòíî. ß âñåãäà èñïîëüçóþ äëÿ ðàçíûõ êîíêóðñîâ 🙂
2. MS Azure. Äåòèùå ìàéêðîñîôòà. Èíòåðôåéñîì íàïîìèíàåò RapidMiner, ðàíüøå áûëà ïëàòíîé, êàê ñåé÷àñ — õç. Åñòü âñ¸.  ñåòè äîâîëüíî ìíîãî óðîêîâ, êîòîðûå ðàññêàçûâàþò, êàê ýòèì ïîëüçîâàòüñÿ.
3. RapidMIner. Øòóêà ïðèêîëüíàÿ. Èíòåðôåéñ äîâîëüíî ïðîñòîé è äðóæåëþáíûé. Èç ìèíóñîâ: â áåñïëàòíîé âåðñèè âñåãî 1 ãèã îïåðàòèâêè ìîæíî èñïîëüçîâàòü, ÷òî äîâîëüíî ïå÷àëüíî.
Ïëîùàäêè
Íó âîò âû íàòðåíèðîâàëèñü, âûó÷èëè âñ¸, ÷òî ìîæíî è âàì íå òåðïèòñÿ ïîïðîáîâàòü ñâîè ñèëû? Íó òîãäà âàì
1. Kaggle. Ñàìàÿ-ñàìàÿ ïëàòôîðìà äëÿ êîíêóðñîâ ïî ìàøèííîìó îáó÷åíèþ. Äëÿ ñèëüíûõ äóõîì. Âîîáùå, ïîìèìî êîíêóðñîâ, ìîæíî ïî÷èòàòü ôîðóìû, ïîñìîòðåòü òåñòîâûå ïðîåêòû è ïîèñêàòü ðàáîòó.
2. Ãóãë íàø äðóã. Âáèâàåì machine learning contest è ñìîòðèì, ÷òî åñòü.
Ïîêàçàòü ïîëíîñòüþ
Âñåì ïðèâåò! Ìû ïðîäîëæàåì ïóáëèêîâàòü ëåêöèè ëåãåíäàðíîãî Ãàðâàðäñêîãî êóðñà CS50, êîòîðûå ìû ïåðåâîäèì è îçâó÷èâàåì ñïåöèàëüíî äëÿ JavaRush.
Ñåãîäíÿ ìû âûïóñòèëè 5-þ ëåêöèþ, ýòî ïåðâàÿ ëåêöèÿ 2-îé íåäåëè, äî ýòîãî ìû ïóáëèêîâàëè 0-þ è 1-þ íåäåëè. Âñåãî â êóðñå 24 ëåêöèè, ïîñòåïåííî ìû ïåðåâåäåì âñå.
1-ÿ ëåêöèÿ: https://pikabu.ru/story/osnovyi_programmirovaniya_lektsiya_0_…
2-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_vtor…
3-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_tret…
4-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_chet…
À òåïåðü ïîäðîáíåå î CS50
Íà êîãî ðàññ÷èòàí
Åñëè âû íîâè÷îê, ïðîéäèòå CS50. Åñëè êòî-òî èç âàøèõ çíàêîìûõ ïðèãëÿäûâàåòñÿ ê ÈÒ è ïðîãðàììèðîâàíèþ, ñîâåòóéòå CS50 íå ãëÿäÿ. ß ñåðüåçíî.
CS50 ïîäîéäåò ëþáîìó ÷åëîâåêó, êòî ðåøèë ñòàòü «àéòèøíèêîì». Ïîæàëóé, åãî ìîæíî ðåêîìåíäîâàòü è ñïîñîáíûì 12-ëåòíèì, è óìóäðåííûì îïûòîì «ïåðåáåæ÷èêàì» èç äðóãèõ ïðîôåññèé. Èäåàëüíî ñòàðøåêëàññíèêàì è ñòóäåíòàì.
Êóðñ î÷åíü ïðîãðåññèâíûé è îáíîâëÿåòñÿ èç ãîäà â ãîä. Ïðè ýòîì â îòëè÷èå îò áîëüøèíñòâà ïîäîáíûõ óíèâåðñèòåòñêèõ îáó÷àþùèõ ïðîãðàìì (íàïðèìåð, MIT 6.00X) îò ñëóøàòåëÿ íå òðåáóþòñÿ çíàíèÿ óíèâåðñèòåòñêîé ìàòåìàòèêè, äîñòàòî÷íî øêîëüíîãî óðîâíÿ.
×òî èçó÷àþò íà CS50
— Îñíîâû êîìïüþòåðíûõ íàóê è ïðîãðàììèðîâàíèÿ. Ñèñòåìû ñ÷èñëåíèÿ, ðàáîòà ñ êîìàíäíîé ñòðîêîé â Linux, öèêëû, óñëîâíûå ïåðåõîäû è ïðî÷èå ðàäîñòè.
— Êîíöåïöèè àëãîðèòìîâ è àëãîðèòìè÷íîñòè ìûøëåíèÿ. Âû óçíàåòå î òîì, êàêèå çàäà÷è ìîæíî ðåøàòü ñ ïîìîùüþ ïðîãðàììèðîâàíèÿ è êàêèì îáðàçîì. Î áèíàðíîì ïîèñêå, ïðîñòîì ïî ñóòè, íî î÷åíü ýôôåêòèâíîì è òðåáóþùåì òùàòåëüíîñòè â ðåàëèçàöèè, Äýâèä Ìàëàí ðàññêàæåò ñõîäó, ïðÿìî íà íóëåâîé ëåêöèè. È ïîïðîáóéòå ïîòîì çàáûòü ñöåíó ñ ðàçðûâîì òåëåôîííîãî ñïðàâî÷íèêà, à âìåñòå ñ íåé è ïîëó÷åííûå çíàíèÿ! Âîîáùå, êóðñ îõâàòûâàåò âñå îñíîâíûå àëãîðèòìû, êîòîðûå íóæíî çíàòü è ïîíèìàòü «àéòèøíèêàì».
— Êîíöåïöèè àáñòðàêöèè, ñòðóêòóðû äàííûõ, èíêàïñóëÿöèè, óïðàâëåíèÿ ïàìÿòüþ. Îñíîâû êîìïüþòåðíîé áåçîïàñíîñòè. Ïðîöåññ ðàçðàáîòêè ÏÎ è âåá-ðàçðàáîòêà.
— Îñíîâû ÿçûêà ïðîãðàììèðîâàíèÿ C è âèçóàëüíîãî ÿçûêà Scratch. Ñîáñòâåííî, âñå îñíîâíûå ïðèìåðû è çàäàíèÿ ñòóäåíòû äåëàþò íà ÿçûêå C.
— Îñíîâû áàç äàííûõ è SQL.
— Âåá-ðàçðàáîòêà: îñíîâû CSS, HTML, JavaScript è PHP. Åñòåñòâåííî, òîëüêî ñàìûå àçû.
— Îñíîâû ïîäãîòîâêè ïðåçåíòàöèè ïðîåêòîâ ïî ïðîãðàììèðîâàíèþ.
Ïîääåðæèòå íàñ ïëþñîì è ïîäïèñûâàéòåñü íà íàñ è ñîîáùåñòâî «Íàóêà».
Ïîêàçàòü ïîëíîñòüþ
Âñåì ïðèâåò! Ìû ïðîäîëæàåì ïóáëèêîâàòü ëåêöèè ëåãåíäàðíîãî Ãàðâàðäñêîãî êóðñà CS50.
Ñåãîäíÿ ìû âûïóñòèëè 4-þ ëåêöèþ, ýòî âòîðàÿ ëåêöèÿ 1-îé íåäåëè, äî ýòîãî ìû ïóáëèêîâàëè 0-þ íåäåëþ, òî åñòü ââåäåíèå. Âñåãî â êóðñå 24 ëåêöèè, ïîñòåïåííî ìû ïåðåâåäåì âñå.
1-ÿ ëåêöèÿ: https://pikabu.ru/story/osnovyi_programmirovaniya_lektsiya_0_…
2-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_vtor…
3-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_tret…
À òåïåðü ïîäðîáíåå î CS50
Íà êîãî ðàññ÷èòàí
Åñëè âû íîâè÷îê, ïðîéäèòå CS50. Åñëè êòî-òî èç âàøèõ çíàêîìûõ ïðèãëÿäûâàåòñÿ ê ÈÒ è ïðîãðàììèðîâàíèþ, ñîâåòóéòå CS50 íå ãëÿäÿ. ß ñåðüåçíî.
CS50 ïîäîéäåò ëþáîìó ÷åëîâåêó, êòî ðåøèë ñòàòü «àéòèøíèêîì». Ïîæàëóé, åãî ìîæíî ðåêîìåíäîâàòü è ñïîñîáíûì 12-ëåòíèì, è óìóäðåííûì îïûòîì «ïåðåáåæ÷èêàì» èç äðóãèõ ïðîôåññèé. Èäåàëüíî ñòàðøåêëàññíèêàì è ñòóäåíòàì.
Êóðñ î÷åíü ïðîãðåññèâíûé è îáíîâëÿåòñÿ èç ãîäà â ãîä. Ïðè ýòîì â îòëè÷èå îò áîëüøèíñòâà ïîäîáíûõ óíèâåðñèòåòñêèõ îáó÷àþùèõ ïðîãðàìì (íàïðèìåð, MIT 6.00X) îò ñëóøàòåëÿ íå òðåáóþòñÿ çíàíèÿ óíèâåðñèòåòñêîé ìàòåìàòèêè, äîñòàòî÷íî øêîëüíîãî óðîâíÿ.
×òî èçó÷àþò íà CS50
— Îñíîâû êîìïüþòåðíûõ íàóê è ïðîãðàììèðîâàíèÿ. Ñèñòåìû ñ÷èñëåíèÿ, ðàáîòà ñ êîìàíäíîé ñòðîêîé â Linux, öèêëû, óñëîâíûå ïåðåõîäû è ïðî÷èå ðàäîñòè.
— Êîíöåïöèè àëãîðèòìîâ è àëãîðèòìè÷íîñòè ìûøëåíèÿ. Âû óçíàåòå î òîì, êàêèå çàäà÷è ìîæíî ðåøàòü ñ ïîìîùüþ ïðîãðàììèðîâàíèÿ è êàêèì îáðàçîì. Î áèíàðíîì ïîèñêå, ïðîñòîì ïî ñóòè, íî î÷åíü ýôôåêòèâíîì è òðåáóþùåì òùàòåëüíîñòè â ðåàëèçàöèè, Äýâèä Ìàëàí ðàññêàæåò ñõîäó, ïðÿìî íà íóëåâîé ëåêöèè. È ïîïðîáóéòå ïîòîì çàáûòü ñöåíó ñ ðàçðûâîì òåëåôîííîãî ñïðàâî÷íèêà, à âìåñòå ñ íåé è ïîëó÷åííûå çíàíèÿ! Âîîáùå, êóðñ îõâàòûâàåò âñå îñíîâíûå àëãîðèòìû, êîòîðûå íóæíî çíàòü è ïîíèìàòü «àéòèøíèêàì».
— Êîíöåïöèè àáñòðàêöèè, ñòðóêòóðû äàííûõ, èíêàïñóëÿöèè, óïðàâëåíèÿ ïàìÿòüþ. Îñíîâû êîìïüþòåðíîé áåçîïàñíîñòè. Ïðîöåññ ðàçðàáîòêè ÏÎ è âåá-ðàçðàáîòêà.
— Îñíîâû ÿçûêà ïðîãðàììèðîâàíèÿ C è âèçóàëüíîãî ÿçûêà Scratch. Ñîáñòâåííî, âñå îñíîâíûå ïðèìåðû è çàäàíèÿ ñòóäåíòû äåëàþò íà ÿçûêå C.
— Îñíîâû áàç äàííûõ è SQL.
— Âåá-ðàçðàáîòêà: îñíîâû CSS, HTML, JavaScript è PHP. Åñòåñòâåííî, òîëüêî ñàìûå àçû.
— Îñíîâû ïîäãîòîâêè ïðåçåíòàöèè ïðîåêòîâ ïî ïðîãðàììèðîâàíèþ.
Ïîääåðæèòå íàñ ïëþñîì è ïîäïèñûâàéòåñü íà íàñ è ñîîáùåñòâî «Íàóêà».
Ïîêàçàòü ïîëíîñòüþ
Âñåì ïðèâåò! Ïðîøëûé ïîñò íàáðàë áîëåå 3000 ïëþñîâ, ïîýòîìó ìû ïðîäîëæàåì ïóáëèêîâàòü ëåêöèè ëåãåíäàðíîãî Ãàðâàðäñêîãî êóðñà CS50.
Ñåãîäíÿ ìû âûïóñòèëè 3-þ ëåêöèþ, ýòî ïåðâàÿ ëåêöèÿ 1-îé íåäåëè, äî ýòîãî ìû ïóáëèêîâàëè 0-þ íåäåëþ, òî åñòü ââåäåíèå. Âñåãî â êóðñå 24 ëåêöèè, ïîñòåïåííî ìû ïåðåâåäåì âñå.
1-ÿ ëåêöèÿ: https://pikabu.ru/story/osnovyi_programmirovaniya_lektsiya_0_…
2-ÿ ëåêöèÿ: https://pikabu.ru/story/garvardskiy_kurs_cs50_na_russkom_vtor…
À òåïåðü ïîäðîáíåå î CS50
Íà êîãî ðàññ÷èòàí
Åñëè âû íîâè÷îê, ïðîéäèòå CS50. Åñëè êòî-òî èç âàøèõ çíàêîìûõ ïðèãëÿäûâàåòñÿ ê ÈÒ è ïðîãðàììèðîâàíèþ, ñîâåòóéòå CS50 íå ãëÿäÿ. ß ñåðüåçíî.
CS50 ïîäîéäåò ëþáîìó ÷åëîâåêó, êòî ðåøèë ñòàòü «àéòèøíèêîì». Ïîæàëóé, åãî ìîæíî ðåêîìåíäîâàòü è ñïîñîáíûì 12-ëåòíèì, è óìóäðåííûì îïûòîì «ïåðåáåæ÷èêàì» èç äðóãèõ ïðîôåññèé. Èäåàëüíî ñòàðøåêëàññíèêàì è ñòóäåíòàì.
Êóðñ î÷åíü ïðîãðåññèâíûé è îáíîâëÿåòñÿ èç ãîäà â ãîä. Ïðè ýòîì â îòëè÷èå îò áîëüøèíñòâà ïîäîáíûõ óíèâåðñèòåòñêèõ îáó÷àþùèõ ïðîãðàìì (íàïðèìåð, MIT 6.00X) îò ñëóøàòåëÿ íå òðåáóþòñÿ çíàíèÿ óíèâåðñèòåòñêîé ìàòåìàòèêè, äîñòàòî÷íî øêîëüíîãî óðîâíÿ.
×òî èçó÷àþò íà CS50
— Îñíîâû êîìïüþòåðíûõ íàóê è ïðîãðàììèðîâàíèÿ. Ñèñòåìû ñ÷èñëåíèÿ, ðàáîòà ñ êîìàíäíîé ñòðîêîé â Linux, öèêëû, óñëîâíûå ïåðåõîäû è ïðî÷èå ðàäîñòè.
— Êîíöåïöèè àëãîðèòìîâ è àëãîðèòìè÷íîñòè ìûøëåíèÿ. Âû óçíàåòå î òîì, êàêèå çàäà÷è ìîæíî ðåøàòü ñ ïîìîùüþ ïðîãðàììèðîâàíèÿ è êàêèì îáðàçîì. Î áèíàðíîì ïîèñêå, ïðîñòîì ïî ñóòè, íî î÷åíü ýôôåêòèâíîì è òðåáóþùåì òùàòåëüíîñòè â ðåàëèçàöèè, Äýâèä Ìàëàí ðàññêàæåò ñõîäó, ïðÿìî íà íóëåâîé ëåêöèè. È ïîïðîáóéòå ïîòîì çàáûòü ñöåíó ñ ðàçðûâîì òåëåôîííîãî ñïðàâî÷íèêà, à âìåñòå ñ íåé è ïîëó÷åííûå çíàíèÿ! Âîîáùå, êóðñ îõâàòûâàåò âñå îñíîâíûå àëãîðèòìû, êîòîðûå íóæíî çíàòü è ïîíèìàòü «àéòèøíèêàì».
— Êîíöåïöèè àáñòðàêöèè, ñòðóêòóðû äàííûõ, èíêàïñóëÿöèè, óïðàâëåíèÿ ïàìÿòüþ. Îñíîâû êîìïüþòåðíîé áåçîïàñíîñòè. Ïðîöåññ ðàçðàáîòêè ÏÎ è âåá-ðàçðàáîòêà.
— Îñíîâû ÿçûêà ïðîãðàììèðîâàíèÿ C è âèçóàëüíîãî ÿçûêà Scratch. Ñîáñòâåííî, âñå îñíîâíûå ïðèìåðû è çàäàíèÿ ñòóäåíòû äåëàþò íà ÿçûêå C.
— Îñíîâû áàç äàííûõ è SQL.
— Âåá-ðàçðàáîòêà: îñíîâû CSS, HTML, JavaScript è PHP. Åñòåñòâåííî, òîëüêî ñàìûå àçû.
— Îñíîâû ïîäãîòîâêè ïðåçåíòàöèè ïðîåêòîâ ïî ïðîãðàììèðîâàíèþ.
Ïîääåðæèòå íàñ ïëþñîì è ïîäïèñûâàéòåñü íà íàñ è ñîîáùåñòâî «Íàóêà».
Ïîêàçàòü ïîëíîñòüþ
Âñåì ïðèâåò! Ìû íàêîíåö-òî îáçàâåëèñü ñîáñòâåííûì àêêàóíòîì íà Ïèêàáó êîòîðûé ìîæåò ïóáëèêîâàòü âèäåî. Ïðåäñòàâëÿåì âàøåìó âíèìàíèþ âòîðóþ ëåêöèþ ëåãåíäàðíîãî Ãàðâàðäñêîãî êóðñà CS50.
Ðàíåå ìû ïóáëèêîâàëè ââîäíóþ ëåêöèþ: https://pikabu.ru/story/osnovyi_programmirovaniya_lektsiya_0_…
Âñåãî â êóðñå 24 ëåêöèè, ïîñòåïåííî ìû ïåðåâåäåì âñå.
À òåïåðü ïîäðîáíåå î CS50
Íà êîãî ðàññ÷èòàí
Åñëè âû íîâè÷îê, ïðîéäèòå CS50. Åñëè êòî-òî èç âàøèõ çíàêîìûõ ïðèãëÿäûâàåòñÿ ê ÈÒ è ïðîãðàììèðîâàíèþ, ñîâåòóéòå CS50 íå ãëÿäÿ. ß ñåðüåçíî.
CS50 ïîäîéäåò ëþáîìó ÷åëîâåêó, êòî ðåøèë ñòàòü «àéòèøíèêîì». Ïîæàëóé, åãî ìîæíî ðåêîìåíäîâàòü è ñïîñîáíûì 12-ëåòíèì, è óìóäðåííûì îïûòîì «ïåðåáåæ÷èêàì» èç äðóãèõ ïðîôåññèé. Èäåàëüíî ñòàðøåêëàññíèêàì è ñòóäåíòàì.
Êóðñ î÷åíü ïðîãðåññèâíûé è îáíîâëÿåòñÿ èç ãîäà â ãîä. Ïðè ýòîì â îòëè÷èå îò áîëüøèíñòâà ïîäîáíûõ óíèâåðñèòåòñêèõ îáó÷àþùèõ ïðîãðàìì (íàïðèìåð, MIT 6.00X) îò ñëóøàòåëÿ íå òðåáóþòñÿ çíàíèÿ óíèâåðñèòåòñêîé ìàòåìàòèêè, äîñòàòî÷íî øêîëüíîãî óðîâíÿ.
×òî èçó÷àþò íà CS50
— Îñíîâû êîìïüþòåðíûõ íàóê è ïðîãðàììèðîâàíèÿ. Ñèñòåìû ñ÷èñëåíèÿ, ðàáîòà ñ êîìàíäíîé ñòðîêîé â Linux, öèêëû, óñëîâíûå ïåðåõîäû è ïðî÷èå ðàäîñòè.
— Êîíöåïöèè àëãîðèòìîâ è àëãîðèòìè÷íîñòè ìûøëåíèÿ. Âû óçíàåòå î òîì, êàêèå çàäà÷è ìîæíî ðåøàòü ñ ïîìîùüþ ïðîãðàììèðîâàíèÿ è êàêèì îáðàçîì. Î áèíàðíîì ïîèñêå, ïðîñòîì ïî ñóòè, íî î÷åíü ýôôåêòèâíîì è òðåáóþùåì òùàòåëüíîñòè â ðåàëèçàöèè, Äýâèä Ìàëàí ðàññêàæåò ñõîäó, ïðÿìî íà íóëåâîé ëåêöèè. È ïîïðîáóéòå ïîòîì çàáûòü ñöåíó ñ ðàçðûâîì òåëåôîííîãî ñïðàâî÷íèêà, à âìåñòå ñ íåé è ïîëó÷åííûå çíàíèÿ! Âîîáùå, êóðñ îõâàòûâàåò âñå îñíîâíûå àëãîðèòìû, êîòîðûå íóæíî çíàòü è ïîíèìàòü «àéòèøíèêàì».
— Êîíöåïöèè àáñòðàêöèè, ñòðóêòóðû äàííûõ, èíêàïñóëÿöèè, óïðàâë?