DMdev talks
3.24K subscribers
156 photos
13 videos
89 links
Авторский канал Дениса Матвеенко, создателя DMdev - обучение Java программированию

То, что все ищут по Java:
https://taplink.cc/denis.dmdev

P.S. Когда не программирую - я бегаю:
https://t.iss.one/dmdev_pro_run
Download Telegram
#3 Мой путь

На своем стареньком компьютере я установил не менее старенькую среду разработки Visual Studio 2005 для того, чтобы писать свои программы на языке С уже там, а не на листке бумаги. Почему-то код не стал быть более понятным. Я уже мог отличать ключевые слова, такие как for, if, array[]. Я понимал, где ставить фигурные скобочки, что вот это циклы, это ветвления, а вот это массивы и функции, но не более. Я не мог осознать, как самому это написать и почему ключевое слово return еще и что-то куда-то возвращает.

В один прекрасный день я увидел, как мой одногруппник использует дивный функционал в той же самое среде разработки. Он как будто бы сам выполнял построчно код программы, а не компьютер. Ему отображались все значения переменных, индексы циклов, он даже мог переходить в функции и выходить их них - все! Тот первый переломный момент в моем становлении программистом был уже в конце декабря перед началом сессии - я узнал про отладку программ (Debug).

Я понял как работает процессор, как он выполняет мои инструкции в коде, я дебажил строчка за строчкой. Я стал запоем читать свою первую электронную книгу по С, что попалась под руку. Cделал все лабораторные работы за неделю и сдал перед самым началом экзамена, получив к нему доступ. Сам экзамен я тоже сдал на максимальный балл. Моей радости не было предела. Почти 4 месяца у меня ушло перед тем, как я осознанно стал писать строчки кода в своих программах.

Второй семестр первого курса прошел еще быстрее. Лабораторные работы представляли из себя математические задачи: метод Гаусса, аппроксимации различных функций и все в этом духе. Но меня волновала не математическая сложность, а то, что лично я могу написать код, который будет решать такие непростые задачи за доли секунды, в то время как человеку могло понадобится минуты и даже часы. Осознание этого мотивировало еще больше изучать программирование!

#my_little_story
👍56🔥281🤔1
Какой же жизненный мем 😅
😁486👍1
Индекс DMdev: update

Количество видео DMdev уже давно перевалило за 500!

Хоть информация и подается в структурированном виде, но все равно порой необходимо возвращаться и искать какую-то конкретную тему, которую когда-то смотрел, но хочется освежить в памяти - что-то вроде конспекта.

Именно для таких целей и был создан индекс по курсам DMdev.
В обновленной версии присутствуют описания, таймкоды и даже ссылки на конкретное место в видео по следующим курсам: Java Core, SQL, JDBC, HTTP. Servlets, Maven, Junit5, Groovy, Gradle, Hibernate и Spring.

P.S. Сейчас идет работа по добавлению курса Bash и ссылок на GetCourse
👍44🔥26👏2
#4 Мой путь

На втором курсе меня подселили в общежитии к ребятам постарше. В университете начались занятия уже по новому для меня языку программирования С++, который я осваивал благодаря книжке размером ~1500 страниц от автора Х. Дейтел. Саму книжку, кстати, я нашел и попросил у своего соседа по комнате. Так начался новый дивный мир в объектно ориентированное программирование (ООП). Только тогда я понял, сколько всего я еще не знаю и что я был всего лишь в самом начале очень длинного пути.

Изучение твоего второго языка программирования обычно запоминается, особенно если он сильно отличается от первого. Но в моем случае синтаксис показался довольно простым после С, лишь сама концепция ООП полностью меняла мой шаблон восприятия кода программ, сложившийся за предыдущий курс университета, и естественно их написание. Тем не менее, эта парадигма открыла мне глаза на то, какие действительно огромные программы можно создавать!

Но могу сказать с уверенностью, что именно второй семестр второго курса был следующим переломным моментом…

Во-первых, у меня появился третий язык программирования - Assembler, изучение которого длилось целых 3 семестра ввиду специфики моей специальности. Он помог мне в мельчайших подробностях разобраться в том, как все устроено на машинном уровне, как работают регистры, аккумуляторы, какие бывают команды процессора, как в принципе устроена память компьютеров. Мне почему-то очень нравился этот минимализм. Например, как приходилось выкручиваться в коде с помощью меток, когда у тебя даже не было циклических конструкций на вооружении.

Во-вторых, это было то самое время, когда я услышал впервые слово Java. Именно услышал, потому что самого языка программирования мы не изучали на моей специальности. Это был Игорь, мой сосед по комнате в общежитии, который показал, как можно круто и легко писать на Java. Я сначала не очень заинтересовался: мне показалось, что язык как-то слишком уж прост. Нет этих крутых ссылок, указателей, указателей на указатели, деструкторов - все казалось каким-то действительно простым. Особенно если учитывать, что все происходило в то время, когда я программировал на Assembler.

#my_little_story
👍55🔥12🌚4
#5 Мой путь

Вот и начался третий курс. В университете все было довольно скудно по части программирования. Я все-таки решился попробовать пописать на Java чисто ради интереса. Тем более учитывая еще и то, что прошли очередные летние каникулы без строчки написанного кода. А точнее, они прошли в моем родном городе на стройке, на которой я еще раз убедился, что заниматься умственным трудом гораздо приятнее.

На просторах интернета я нашел электронный вариант первого и второго тома К. Хорстманна, которые в последующем захватили меня на весь семестр. Причем на столько, что я окончательно и бесповоротно влюбился в этот язык программирования. Я даже не могу передать словами, какое эстетическое удовольствие я испытывал, просто писав программы на Java. Я каждый день с нетерпением ждал окончания лекций и лабораторных работ, чтобы побыстрее вернуться к своему компьютеру и вновь погрузиться в изучение.

Одним прекрасным декабрьским днем 2011 года я увидел объявление на стенах университета о том, что компания EPAM Systems проводит конкурсный набор на свои курсы по Java. К слову, в то время в БГУИР были лаборатории от трех компаний (IBA, EPAM, Itransition), которые довольно часто делали подобные объявления по курсам. Я решил, что пора проверить свои знания и записался на свое первое собеседование.

К сожалению для меня, первый этап был совсем не о программировании: нужно было продемонстрировать владение иностранным языком.

Я учил английский все 11 классов в школе и первые три семестра в университете, но так и не мог связать нескольких слов. Не могу сказать, что я расстроился. Наоборот, я ожидал подобного и начал опрашивать своих знакомых в общежитии, знакомых моих знакомых, кто уже проходил подобные собеседования и мог рассказать, что проверяют на первом этапе. Как итог: я купил небольшую книжку “Английский для изучающих информационные технологии” и стал просто каждый день читать и переводить ее до тех пор, пока все слова не стали мне знакомыми.

Следующее, что я начал подготавливать - это несколько текстов на английском, которые представляли из себя ответы на потенциально возможные вопросы для проверки речи. Я просто выучил их наизусть.

К счастью для меня, аудирование не проверяли, потому что этот аспект я бы точно никак не подготовил за такой маленький срок...

#my_little_story
🔥42👍167
Подражание

Люди по своей природе склонны машинально повторять любые действия, которые мы наблюдаем. В подтверждении этого был проведен интересный опыт на обезьянах.

Когда одна обезьяна брала что-нибудь пальцами руки (например, карандаш), в части мозга, отвечающей за управление движениями, активизировались нейроны.

Но что более удивительно, когда та же обезьяна просто смотрела на то, как кто-то другой брал карандаш - активизировались те же самые нейроны в мозге.

Если пойти еще дальше, то эти же нейроны активизировались и даже тогда, когда обезьяна намеревалась взять карандаш или просто представляла это действие у себя в голове.

Отсюда:
1️⃣ Не стоит удивляться, что у программистов такая тяга к тому, чтобы копипастить код и подражать в написании/переиспользовании различных подходов других программистов 😅

2️⃣ И да, даже просто обдумывая у себя в голове перед сном, как завтра будем решать проблемную задачу на работе - мы тоже обучаемся!

PS. Это я вычитал из книги “Мозг и душа. Как нервная деятельность формирует наш внутренний мир”.
Там еще невероятно много познавательных фактов о мозге и о том, как мы воспринимает мир с помощью него

#dmdev_top_books
👍35🔥6🤔4
#6 Мой путь

Месяц пролетел незаметно, учитывая сдачу курсовых, лабораторных работ и зачетов. Затем сессия и долгожданный день моего первого собеседования. Это был конец января 2012 года.

Первый этап проходил примерно так, как и предполагалось. Нас ждало в коридоре трое парней, включая меня самого. Вскоре пришла девушка и мы прошли с ней в аудиторию. Сначала нам предоставили текст на английском языке и дали 5 минут на подготовку. Затем каждый по очереди читал вслух и переводил. С этим шагом проблем особых у меня не возникло.

Второй же шаг, как и ожидалось, представлял из себя диалог, где тебя что-то спрашивали и ты устно отвечал. Учитывая хороший процент попадания в вопросы, которые я подготовил наизусть, кое-как мне удалось выкрутиться. Правда, девушка сделала замечание, что если я хочу стать хорошим специалистом в IT, то стоит как следует подтянуть уровень английского языка.

После окончания этого этапа нам разъяснили о дальнейшем ходе действий, что с каждым лично свяжутся по телефону в течение недели и уведомят о результате. Пожелали удачи и посоветовали, на этот раз уже всем, улучшать навыки владения английским языком (наверное, девушка очень его любила). Мы вышли из аудитории, и я немного грустный побрел назад в общежитие, надеясь на лучшее.

В то же самое время, осознавая свои небольшие шансы на положительный результат, начал созревать запасной план...

#my_little_story
👍40🔥12🤔3
Нейронные сети

Вдохновившись прочтением книги о работе мозга, мне почему-то очень захотелось написать нейронную сеть или даже создать целый курс с теорией и практикой (как обычно в общем) для демонстрации того, как компьютер может воспринимать визуальную информацию хоть немного похожим или приближенным образом, как это делает человек.

💡Интересный факт
Изначально предполагалось, что создать вычислительную машину, решающую сложные алгоритмические задачи или побеждающую в интеллектуальные игры вроде шахмат и го - гораздо сложнее, чем воспринимать предметы из окружающего мира.

Потому что практически каждый человек с малого возраста легко отделит спелое яблоко на раскачивающемся на ветру дереве от стоящего забора перед ним, нежели будет играть на хорошем уровне в шахматы.

Но на практике все оказалось совсем наоборот. Ибо современные компьютеры давно обыграли лучших шахматистов, а вот воспринимать визуальную информацию все еще является невероятно сложным и неоднозначным процессом.
👍17🔥84
Хотел бы пройти курс для начинающих, чтобы разобраться в основах работы нейронных сетей, как они устроены, и написать свою собственную на Java, чтобы закрепить на практике на своем любимом языке программирования?
Anonymous Poll
58%
Да, давно хотел разобраться с нейронками!
6%
Нет, нейронки пишут только на Python!
6%
Не, спасибо, тут и без того много информации
30%
Давай лучше следующий курс согласно roadmap :)
🔥8👍4🤔41
#7 Мой путь

Запасной план заключался в параллельном прохождении собеседования еще в одну компанию - Itransition. Там также в это время проводился набор на конкурсной основе на курс по Java с последующим трудоустройством. Т.е. в отличие от EPAM Systems не нужно было после курса идти в лабораторию и продолжать обучение там. В Itransition сразу попадаешь на проект, в чем я видел некоторое очевидное преимущество.

Я позвонил им, мне сказали заполнить и выслать анкету, после чего определились с днем проведения собеседования. Этот случай мне напоминал поступление в университет, когда я также разрабатывал запасной вариант с военным факультетом в БГУИР.

Но неожиданно мне позвонили из EPAM Systems, чтобы поздравить с успешным прохождением первого этапа. Выслали на почту задание для следующего уже технического этапа, согласовали дату и дали около недели на его выполнение.

Я конечно же был невероятно рад звонку, но отменять собеседование в Itransition не стал, потому что неизвестно, как пройдет второй этап.

А задание его было не очень сложным, и мне не составило большого труда его выполнить. Я скорее переживал из-за оформления, форматирования кода и других эстетических аспектов, т.к. брал всю информацию об этом только лишь из старых электронных книг К. Хорстманна.

И вот я стою опять в коридоре офиса EPAM Systems, но уже один в этот раз. Вскоре подходит уже другая девушка Ольга (до сих пор помню, как ее звали) и приглашает пройти к ней в кабинет на собеседование. На удивление оно оказалось довольно-таки простым. Если не вдаваться в подробности, то спрашивали какие-то базовые вещи, понятия, определения, почему ты здесь реализовал так, а вот здесь так. И зачем ты используешь итератор для прохождения по коллекциям, если есть цикл foreach? (Откуда я мог о таком знать, учась по старым книгам!).

Весь этап занял около 30 минут, после чего меня также проинструктировали о том, чтобы я ждал звонка об окончательном результате поступления на курс. В этот раз у меня уже было гораздо больше уверенности в поступлении, нежели после этапа с английским языком.

#my_little_story
👍4211🔥10