Всем привет! Мы продолжаем публиковать лекции легендарного Гарвардского курса CS50, которые мы переводим и озвучиваем специально для JavaRush.
Рады вам представить 11-ю серию, это первая лекция пятой недели, до этого мы публиковали 0-ю, 1-ю, 2-ю, 3-ю, 4-ю недели. Всего в курсе 24 лекции, постепенно мы переведем все.
Если вы — новичок, пройдите CS50. Если кто-то из ваших знакомых приглядывается к ИТ и программированию, советуйте CS50 не глядя. Я серьезно.
CS50 подойдет любому человеку, кто решил стать «айтишником». Пожалуй, его можно рекомендовать и способным 12-летним, и умудренным опытом «перебежчикам» из других профессий. Идеально — старшеклассникам и студентам.
Курс очень прогрессивный и обновляется из года в год. При этом в отличие от большинства подобных университетских обучающих программ (например, MIT 6.00X) от слушателя не требуются знания университетской математики, достаточно школьного уровня.
Что изучают на CS50
— Основы компьютерных наук и программирования. Системы счисления, работа с командной строкой в Linux, циклы, условные переходы и прочие радости.
— Концепции алгоритмов и алгоритмичности мышления. Вы узнаете о том, какие задачи можно решать с помощью программирования и каким образом. О бинарном поиске, простом по сути, но очень эффективном и требующем тщательности в реализации, Дэвид Малан расскажет сходу, прямо на нулевой лекции. И попробуйте потом забыть сцену с разрывом телефонного справочника, а вместе с ней — и полученные знания! Вообще, курс охватывает все основные алгоритмы, которые нужно знать и понимать «айтишникам».
— Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка.
— Основы языка программирования C и визуального языка Scratch. Собственно, все основные примеры и задания студенты делают на языке C.
— Основы баз данных и SQL.
— Веб-разработка: основы CSS, HTML, JavaScript и PHP. Естественно, только самые азы.
— Основы подготовки презентации проектов по программированию.
Поддержите нас плюсом и подписывайтесь на нас и сообщество «Наука».
Решил снять небольшой цикл видео уроков по Processing - открытому языку программирования, основанном на Java. Processing появился в 2001 году как бесплатная и очень простая среда разработки программ для "не программистов": инженеров, школьников, художников и домохозяек. Просто открываешь окно, пишешь код и нажимаешь кнопку запустить - ничего лишнего.
В базовые возможности языка входит математика, графика (2D и 3D), работа с текстовыми файлами, изображениями и видео, и самое главное - это всё прекрасно задокументировано, с примерами, картинками и анимашками. Существует также большое количество библиотек, которые можно установить из встроенного менеджера библиотек для расширения возможностей языка. Processing отлично подходит для тестирования различных алгоритмов, математических симуляций, создания анимаций и прочей работы с графикой.
Зачем нужен Processing, когда есть Python и на дворе 2021 год? Честно говоря - не знаю. Возможно Processing уже является мёртвой платформой и не стоит вообще обращать на него внимания, но лично я им активно пользуюсь для визуализации различных интересных алгоритмов и просто быстрого теста кода, который потом можно практически без изменений перенести на микроконтроллер, т.к. синтаксис тут 99% как у Си.
Если базовый Processing возможно уже моветон - то есть ещё Processing JS, позволяющий писать на том же простом языке всякие штуки для запуска в браузере (анимации, игры, итд), а также Processing Android, который как по мне является самым простым способом написать что-то под Андроид, не зная и не изучая вообще ничего, связанного с особенностями кодинга под Андроид.
Ну и повторюсь - это инструмент не для специалистов и разработчиков, это песочница, в которой может с кайфом поиграть "не программист" и не сломать себе голову.
Разрабатываю потихоньку плеер. В предыдущих постал было много вопросов касательно конструктива и работы девайса. Рассказываю.
1/2
Прямо сейчас выглядит так.
Это опытный образец, так что не стоит ругать за перемычки из мгтф и грязь на плате, плата уже переразведена, аппаратные недоработки исправлены. Будет выглядеть так:
1/2
Платы заказывал в Электроконнекте (Новосибирск), цена сильно ниже, чем в Резоните и Электроприборе. Плата четырехслойная.
ПО написано на си с использованием spl (hal крайне медлительна и уродлива), для работы с файловыми системами используется знаменитая библиотека fatfs, mp3 и ogg на библиотеках helix, flac писал сам на основе исходников от rockbox, wav писал сам, ну там всё просто.
Контроллер stm32f427, ЦАП AD1853, подключен по i2s, управление им по spi, дисплей на основе ili9341. Громкость регулируется самой ad1853, у неё есть такая функция, работает через уменьшение тока модуляторов, что сильно лучше, чем переменник, или, тем более, аудиопроцессоры и электронные потенциометры. Ушной усилитель по схеме ОУ + параллельный каскад на рассыпухе.
По питанию в качестве повышающих преобразователей lm27313, линейные стабилизаторы adp7142 и rt9167 (либо mic5205)
Как-то так...
Надеюсь, на большинство вопросов ответил.
P. S. Качество звука просто шикарное, на голову выше 95% плееров и большинства стационарных ЦАПов.
Поскольку первый сообществу пришелся по вкусу, то следует наверно продолжить. Порывшись в архиве форума, нашел еще несколько интересных постов от стартаперов.
> Создание нового продукта, не имеющего аналогов
> У меня есть свой проект. Он представляет собой некую автоматизацию процессов бизнеса, который очень в этом нуждается, но никто еще этого не сделал и некий социальный ресурс с микроблогосферой, где пользователи смогут обмениваться сообщениями. Я ищу опытного в программировании человека, который сможет кроме того, что сделать все так, как я говорю, но еще показать и в некоторых моментах рассказать, что, где и почему.
Т.е. человеку нужна не только бесплатная рабочая сила, но еще и бесплатный учитель программирования. Но как оказалось самое интересное дальше.
> Требование к программисту:
> Главное требование - это любовь к программированию и постоянное обучение новым навыкам.
Начало вроде неплохое, смотрим дальше.
> По возрасту ограничений нет, но предпочтение будет отдаваться более молодым кандидатурам, студентам и тем, кто младше меня. Это связано со спецификой моего бизнеса.
Становится интереснее. Какая интересно специфика бизнеса требует участия в ней несовершеннолетних программистов?
> В общем, мне нужен молодой, перспективный программист, который будет рад поработать за идею и на перспективу, доверившись абсолютно незнакомому человеку, который ничего не обещает и ничего не гарантирует.
Вот вам крест (+), ни единого слова в этом предложении я не изменил.
> Конечно звучит грустно и малообещающе, но что-то же я конечно вам гарантирую, а именно:
> Искренность и честность - я обещаю не пудрить голову и говорить все, как есть.
> Посильную взаимовыручку и помощь - по мере выполнения мелких задач, я буду выдавать денежные поощрения.
> И ряд других бонусов, о которых вы узнаете в процессе работы.
Гарантии и обещания просто поражают воображение. Как нетрудно догадаться это было первое и последнее сообщение данного юзера на форуме. Его никто не банил, в теме даже особого срача не началось.
> В поисках команды разработчиков, Интернет проект "Заработок в сети"
Данный человек видимо готовился довольно долго поскольку его пост больше походил на литературное произведение. Там даже предыстория есть.
> Все началось еще в далеком 2002 году, я заканчивал школу, тогда в нашем маленьком селе появились компы и интернет..
Ну прям: "Давным-давно, в далекой-далекой ...".
> С недавних пор я начал осознавать, что же все таки я (и остальные люди в целом) ищем в сети (и не только в сети). Мы ищем быстрый и легкий заработок, пускай в меньших случаях без вложений, но все же заработок так таковой. Без обмана, без пирамид, без заоблачных вознаграждений и большого риска (а то и вовсе без него).
Вот, наконец-то нашелся человек, который похоже понимает, что программисты тоже ищут заработок в сети без риска.
> Я несколько лет искал идею, которая как потом оказалась лежит в основе всего что мы уже имеем, за исключением того, что такие проекты рассчитаны только на то, что бы заработать хозяевам, а участники превращались в дойных коров. И вы не поверите, идея нашлась.
Вот это да! Идея нашлась, вот теперь мы заживем!! Пришел человек с идеей и наверно хочет заказать ее реализацию.
> Собрав всю имеющуюся информацию накопившеюся за эти годы, я пришел к выводу, а почему бы самому не создать такой проект?
Ну точно хочет заказать. Сейчас, вот сейчас он напишет о бюджете проекта и требованиях к разработчикам, а может и ТЗ выложит.
> Она мучает меня уже на протяжении 4 месяцев, я не просто придумал и сижу довольный самим собой, я детально начал ее прорабатывать. Сначала взялся за факты, перелистал множество документаций об официальных возможностях моего проекта. Разговаривал с юристами и людьми которые уже создавали проекты с монетизацией (игры, интернет-магазины). Проводил опрос среди друзей, коллег, родственников, знакомых на вопрос "попробуют ли они" (опрошенные в большинстве своем ни разу не участвовали в данных проектах). После чего принялся за написание сценария, продумал детальные моменты экономики проекта, о безопасности этой экономики, о безопасности в целом и еще много чего.
Так, что-то не то. Когда же пойдет нужная инфа?
> Что уже имею:
> Проработанную структуру всего проекта (возможны корректировки по ходу реализации).
> Начальный капитал (пока лежит в резерве на раскрутку проекта в сети + создание видео, баннеров и т.п.).
> Есть инвестор, но об этом чуть позже.
Ну вот, уже стало грустно.
> Почему не сам?
> Самостоятельно я могу написать этот проект ибо знаний вполне достаточно (php, mysql, js(ajax, jquery), html, css, xml), создать дизайн (хорошо владею PhotoShop,Corel) и сверстать это все (в любимом Notepad++).
Стоп, выше же писалось, что сам не можешь.а тут выходит что можешь?
> По моим расчетам уйдет около 2-3 месяцев (с учетом настоящей работы). Казалось бы сиди и пиши потихоньку, а нет!
Не так уж и много времени. Почему же нет? Сиди да пиши потихоньку.
> Так думают лишь те, кто просто надеется и верит что проект пойдет, но не думает о том, что будет дальше. Как я и говорил выше опыт имеется, по этому заглянув вперед я понимаю что один не справлюсь даже с объемом посетителей в 100 человек.
Ааа, ну понятно. Не каждый может сегодня в завтрашний день ...
> Тех.поддержка проекта нужна? С деньгами работать нужно? С базой и нагрузками работать нужно? С ошибками и багами, недоработками тоже нужно? А как насчет развития проекта, пожеланий пользователей?
Ну в принципе логично. Вопрос только в том, чем же из перечисленного собирается заниматься сам ТС?
> Я же буду выступать в роли: организатор, координатор, сценарист (структура, дизайн и т.п. на мне), программист (буду делать сборку всех модулей, корректировать недочеты или наоборот. Верстка тоже может быть на мне. Хотя очень рассчитываю на то что у каждого будет своя задача. Это как договоримся. Доступ к БД и к финансовой части естественно на мне.
Вот оказывается что ТС собирается делать. Забрал себе все самое сложное. Даже программировать будет. ну ка программировать, говорить программистам, что ему не нравится и что надо переделать. Ну и доступ к финансам конечно на нем, ну а на ком же еще?
> "У меня нет целей запустить петарду, которая взлетит, выстрелит и все. У меня есть цель запустить шатл, который дойдет до космоса и будет развиватся там дальше и приносить пользу всем." - цитата моего мозга.
Немного пафоса никогда не помешает.
> Мне нужна команда! Не найду здесь пойду на другой форум, пойду и найду. Дело в том что этот форум 100500 раз выручал меня (т.е. его обитатели) в сложных задачах и поиске ответов на вопросы. Я доверяю людям сидящим здесь и по этому решил начать с вас мои уважаемые. Я конечно мог бы обратиться сначала "корпорацию добра", но потом решил поддержать отечественного производителя и организовать данный проект у нас в России.
Вот вам второй крест (+) ни слова не выкину и не изменил. Тут даже комментировать ничего не надо, все само за себя говорит. Уточню разве что один момент, данный топик это всего лишь второе сообщение человека на форуме и о каких 100500 случаях помощи он говорит мне непонятно.
> Самый важны вопрос:
> Возможно огорчу кого нибудь, сказав что денег платить не буду, а буду предлагать процент с прибыли.
Ну вооооот :'(
> Да не просто процент, а равную долю в зависимости от действий в проекте.
Мне одному кажется или в данном предложении использованы два взаимоисключающих обещания? Как доля может быть равной, если она зависит от действий в проекте?
> Но есть и другая новость, инвертор, но он просит большой процент, больше половины, дает 1,5 миллиона рупий.
1,5 миллиона рупий это 15к долларов США по текущему курсу. Вроде как на разработку достаточно, но не все так просто.
> Это мой хороший знакомый, но пока я не хочу даже думать о дележке долей. Поскольку мы делаем проект, а он будет снимать сливки. Это я не приветствую.
Вот наглость то! Сливки ведь хочет снимать ТС.
> То что можно сделать простыми руками и без вложений, можно сделать 2-3 человечками, сложность в том что эти люди должны поверить в идею так же как и я. В других случаях только ЗП (этот вариант я оставлю на потом ибо верю что найду сподвижников).
No comments
> Реализация:
> Как же я усложнял все это, делал на Flash-е, потом на чистом PHP, потом взялся за JS, потом опять вернулся к флэшу... спустя определенное время я понял на сколько все просто до безумия, главное безопасность, не нужно усложнять, не нужно мудрить. Я отказался от знакомых мне CMS-ок, фрэмворков и т.п. и начал писать с нуля. Отказался и от супер-пупер дизайна, ибо не в дизайне дело. Итог: все простое просто!
Короче говоря: "я пытался, ничего у меня не вышло, теперь ищу бесплатных борцов за идею".
> Это еще не все!
Кто бы сомневался.
> Я же говорю что думал очень много над всем этим smile.gif Так вот, к сожалению для меня недоступны знания мобильных приложений, а вот на них я буду рассчитывать чуть ли не большую часть своего бюджета после запуска (кто со мной - тот герой, т.е. может тоже вложить свою часть и открыть данный проект уже на appstore или googleplay). Зачем? Думаю если вы задались этим вопросом, то тогда вы очень мало знаете о всем том о чем я говорю.
Выходит, что программисты под Android и iOS чем-то сильно отличаются от PHP программистов, если их работу изначально предполагается оплачивать.
> Да, тотальный захват рынка "заработать в интернете". Везде и по всех фронтам.
Ja Ja майн женераль.
> Куда вы лезете?
> Однажды мне задавали такой вопрос, когда я занялся разработкой Торговой площадки ГОС.закупок...
> Я знаю куда я лезу и чего хочу! Я не лезу в криминал и остальных не тяну туда. Только официальные разрешенные способы.
Так и хочется добавить: "Только официальные разрешенные способы на...и".
Приветствую, прошлый пост сохранили более 70 раз, это очень круто.
Также, спасибо, подписчикам, вас почти 10, цифра весьма скромная, но две недели назад я вообще не думал, что на меня кто то будет подписан, мотивирует.
Еще я завел канал в телеге - https://t.me/tobeprog , там будет о самих методах обучения и обзоры на материалы. Здесь же, будет еженедельный дайджест.
Я сомневался, делать ли этот выпуск дайджеста, он что ли немного "банален". Несколько довольно известных материалов, к тому же, о большинстве я уже писал. Но, это отличные материалы, которые полезны новичкам, поэтому, я посчитал, что будет полезно их сгруппировать, добавив небольшие пояснения.
В посте, будет распределение материалов по уровню сложности, но это не учебный план. Почему так, и вообще касательно планов, методов изучения, выбора языка для старта и прочего, я уже делал два больших поста. Возможно, они будут полезны и ответят на какие то вопросы:
1. Самые основы: Автоматизация рутинных задач с помощью Python, Свейгарт + миллион туториалов
Идеальный вариант для начала. Книга сосредоточена на практике, решении всякой мелкой рутины. Эти маленькие решения хорошо компонуются в уже основательные программы, которые вполне себе закрывают проблемы, как говорит книга - рутинные задачи. При таком подходе нет нехватки проектов, постоянная практика и понимание, что язык это просто инструмент.
Сама книга породила огромную волну материалов по "автоматизации" на python. Если вбить на ютубе "python automation", то темы роликов будут от работы в Excel до знакомств в Tinder.
Это может показаться смешным, но когда код сам играет в динозаврика в Google Chrome(это одно из популярных видео), новичок ощущает какую то "крутость" возможных программ. Этот, чисто психологический момент на ранних этапах весьма мотивирует.
По идее, должны быть еще какие то курсы/книги с которых стоит начать. Я посмотрел несколько популярных, и особых преимуществ перед книгой Свейгарта не увидел. Те же темы, те же основы, но нет такого упора на практику. Хорошо иметь несколько источников, но посоветовать что то конкретное не могу, тут наверно стоит смотреть на саму подачу автора/лектора и выбирать что ближе.
2. После основ:
https://stepik.org/course/512 - очень хороший курс по питону, для тех кто прошел основы. Стоит посмотреть хотя бы начало - там небольшой ввод в само устройство языка, стек вызовов, пространство имен, области видимости и прочее.
https://stepik.org/course/4519 курс в котором учат гуглить, искать на StackOverflow, читать документацию и юзать библиотеки. Это тот самый подход, о котором не особо пишут в книжках, однако, это именно про такую - трушную практику.
На этом же этапе, стоит начать почитывать разные материалы о том, как писать "хороший" код. Особенно хорошо, если на изучаемых реализациях начнут явно прослеживаться недавно вычитанные принципы.
После него, уже можно топать на собеседование(на самом деле, далеко не каждый джун сможет пройти этот курс), потому что более глубокого курса, по крайней мере в ру сегменте, я не видел.
Хотя это про язык с самых его основ, он не для новичков, а для уже программистов, к примеру, решивших выучить новый язык или углубить понимание питона. Он сложный, даже очень сложный, но при этом абсолютно потрясающий, разобрано вообще все. Его стоит посмотреть каждому, кто решил связаться с питоном.
Есть более новая запись курса, но эта - 2015 года, мне нравится больше.