Что учить молодому джависту?

Раздел форума: 

Аватар пользователя antonkw

Собственно, вопрос в заголовке.

Буду благодарен, если кто-нибудь подскажет что-то полезное.

Устал тратить время в никуда.

На данный момент ощутимую пользу принесли книги "Совершенный код" Макконела и "Эффективное программирование" Блоха. В остальном получается, что то, чем я не пользуюсь, очень быстро забывается. По SQL, например, пару фундаментальных учебников усваивал. Через год-два без практического применения уже ничего из памяти выудить не получается.

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

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

 

Страницы

Аватар пользователя Al

Ответ в вопросе - без практики забывается за месяц. Будут конкретные задачи - покатит и освоение.

Аватар пользователя mike

Без практики забывается...

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

:) Я думаю, с чего простенького, вроде Юникса.

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

Аватар пользователя mike

...Можно самому пойти вести курсы - у меня так знакомый очень быстро и качественно выучил JS.

Не верю. Хотя... Скорее всего, это был уже подготовленный чел -- знал другие языки.

Ну само собой - и с PHP работал, и с C++ (на студенческой скамье, правда).

antonkw > Что учить молодому джависту?

А цель какая? Найти работу?

Тогда, учишь Java (Spring, Mysql) - хостишься на любом сервере где есть поддержка Java - создаёшь проект, за пару лет его можно и нарастить неплохо (тесты даже написать, да и Фронт-Энд освоить - в виде SPA (то есть и JS освоить заодно) - и всё!

Линк на СВОЙ проект кидаешь в резюме. - Кому надо и код твой посмотрят и оценят.

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

Имхо, конечно, имхо.

Аватар пользователя antonkw

Извиняюсь. Не уточнил. Уже скоро год опыта будет. Так что суть вопроса была не в том как начать, а как продолжить развитие. Проект интересный, код-ревью присутствует. Я не хочу упираться в сугубо практический опыт. Грубо говоря, на месте не сидится. Но из-за учебы тупо еще одну работу или opensource тянуть возможности нету. Поэтому просто хочется тратить время на что-то именно теоретическое (и что можно применить практике, конечно).

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

>Ответ в вопросе - без практики забывается за месяц. Будут конкретные задачи - покатит и освоение.

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

Пример 1. Год назад завалил собеседование, где очень стрессово прессовали меня на тему алгоритмов. Самооценка упала. Потом уже по нахождению работы прошел курс по алгоритмам на курсере. Что-то получилось реализовать, на многое забил. Да и то, что реализовал, уже не вспомню. Зато появилось интуитивное понятие сложности. Хорошо закрепилось правило "даже если считаешь алгоритм хорошим, остановись и подумай, может можно сделать по-другому и лучше". На практике это здорово помогает улучшить код даже при несложных манипуляциях с данными.

Пример 2. Очень много загонялся на тему красоты/правильности кода. По прочтению пары книжек и применения всевозможных практик словил себя на том, что дальше эту на моем уровне изучать некуда. Читаю след.книгу - там описывается то, что я и так применяю.

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

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

>Ничего не нужно пытаться заучивать. 

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

>:) Я думаю, с чего простенького, вроде Юникса.

Тоже ведь забудется :) Да и зачем, не знаю. Для учебы - в виртуалке убунту крутится. По работе - только на сервера по ssh захожу. Нужно что-то сделать - загуглил и сделал.

>Если есть возможность, можно самому пойти вести курсы - у меня так знакомый очень быстро и качественно выучил JS.

С дневной учебой и работой что-то планировать проблематично. Да и не совсем понимаю, куда можно пойти. Смысл-то в том, чтобы изучить самому что-то новое. А устраиваться преподом по теме, которую сам не знаешь - это обман. Хорошо объяснить что-то у меня получается, что я не только понимаю КАК, но и ЗАЧЕМ.

Сейчас заинтересовался темой сертификации (Oracle, mongo). Еще цель - почитать что-то по user expierence и вообще пройтись по всему циклу разработки, начиная с выработки требований.

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

Сумбурно все, извиняюсь, если что-то не совсем четко пояснил.

Аватар пользователя mike

[На собеседовании] очень стрессово прессовали...

Это нормально. Собеседующий всегда почему-то садист.

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

Это нормально. Чужой код всегда читается куда более слабо, чем свой. :)

[В книгах] описывается то, что я и так применяю.

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

Цель ... пройтись по всему циклу разработки...

И это нормально. Каждый девелопер хочет разработать нечто, чего ещё никто до него не создал, и  чтобы это оказалось офигительно востребованным,  применяя технологию, которая бы приводила в восторг.

Короче, у тебя синдром начала пути. Поди неженат ещё, семью кормить не надо, да и болячки пока не одолевают. Завидую.

Единственное, что посоветую, -- береги девушку, возможно, судьба.

antonkw >Пример 2. Очень много загонялся на тему красоты/правильности кода.... И я не согласен, что все приходит с практикой. Уже много раз видел код, который был написан вроде бы куда более опытными товарищами, но который очень слабо читается.

Тут не с практикой, а с трендами. Когда-то изгоняли JS код из html, потом в html влез с ногами Angular - фактически заново его (НТML) создав, потом Reacts утащил весь HTML код в JS код - что вообще пару лет назад было "против правил".


antonkw  > Ума не приложу, что вообще происходит на курсах, куда идут вообще неподготовленные люди. Вспоминаю, как сам это осваивал - да никак. Преподы не объясняли, в программе не предусмотрено, в книгах только описания принципов функционирования.

"А так везде есть и всегда так было!" (С)

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

>Чужой код всегда читается куда более слабо, чем свой.

Вывод: "Свой код становится чужим через пол-года после написания." (С)

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

Неверно. " Все книги есть симулякры." (С)

Симукляр из птичьего помета бумагу погнал...

Аватар пользователя savely

Погнал... Понимаешь, ведь "некий адекват", временами у него таки  есть, но 10% максимум.

Т.е. на минимальном уровне держится. Был бы совсем невменяемым - не читали/не замечали бы рано или поздно.

Так ведь нет. Ежики плачут, но жрут кактус. Талант, мля. 

Аватар пользователя savely

Да, по теме-то - учить Pure С. Ну, и C++. И потом код примеров в виде ASM анализировать в IDA. ;)

И зачем это? Почитайте лучше книги по БА и ПМ, поизучайте глубже предметную область вашего основного рабочего проекта - разработчик с "некодерским" бэкграундом бесценен в конкретных нишах.

vadim-stankevich > разработчик с "некодерским" бэкграундом бесценен в конкретных нишах.

Вот именно в "нишах"!

Но когда проекты меняются каждые три месяца - то эти "ниши" превращаются в бесконечные "туннели"!

Image result for туннель

Ну почему. Компании всегда на чем-то специализируются. Кто-то банкам пишет софт, кто-то - казино, кто-то SAP внедряет в торговлю... Нужно немного "рубить фишку" в предметном поле клиента.

vadim-stankevich > Компании всегда на чем-то специализируются. Кто-то банкам пишет софт, кто-то - казино, кто-то SAP внедряет в торговлю...

Это только "продуктовая компания". А полно компаний который непрерывно разрабатывают разные проекты.

Аватар пользователя antonkw

Спасибо всем за участие.

Сегодня сдал Java SE Programmer I. Накануне эмоций было много. Ни перед одним экзаменом в универе так не волновался. С 3-х ночи лежал и крутил мысли в голове на тему "вот дурак, сам заплатил за собственное унижение". Большинство вопросов гораздо проще, чем предполагал. А некоторые поставили в тупик: итого всего 82%, хотя экз. считается entire-level. Суммарно подготовка очень понравилась. Буду готовится к следующему уровню. Вадим, если посчитаете, что обзорный пост уместен - могу написать заметку.

>Это нормально. Собеседующий всегда почему-то садист.

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

>Это нормально. Чужой код всегда читается куда более слабо, чем свой. :)

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

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

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

аждый девелопер хочет разработать нечто, чего ещё никто до него не создал

Вы меня не поняли. "пройтись по циклу разработки" - имел ввиду почитать литературу про разные этапы. Начиная от выработки требований и заканчивая user expierence. Вадим как раз про это говорил. Но это не приоритетно прямо сейчас.

>Поди неженат ещё, семью кормить не надо, да и болячки пока не одолевают.

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

>Единственное, что посоветую, -- береги девушку, возможно, судьба.

Спасибо на добром слове.

>Да, по теме-то - учить Pure С. Ну, и C++. И потом код примеров в виде ASM анализировать в IDA. ;)

Внезапно. Изучать классику информатики - да, пусть и местами неприменимо, но полезно для общего развития. А вот зачем лезть в низкоуровневое программирование, ума не приложу, если это не шутка, конечно.

>Почитайте лучше книги по БА и ПМ, поизучайте глубже предметную область вашего основного рабочего проекта - разработчик с "некодерским" бэкграундом бесценен в конкретных нишах.

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

>с "некодерским" бэкграундом 

Еще вопрос не по теме. Через год выпускаюсь. Может кто конструктивно что-то посоветует. Родная кафедра (да и любая другая айтишная, наверное) надоела. Имеет ли смысл идти на тот же менеджмент в магистратуру с точки зрения приобретения конкретных и применимых знаний или как обычно, книги/гугл в руки - и вперед?

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

Думаю, это будет полезно для всех.

Сегодня сдал Java SE Programmer I.

Мои поздравления!

Еще вопрос не по теме. Через год выпускаюсь. Может кто конструктивно что-то посоветует. Родная кафедра (да и любая другая айтишная, наверное) надоела. Имеет ли смысл идти на тот же менеджмент в магистратуру с точки зрения приобретения конкретных и применимых знаний или как обычно, книги/гугл в руки - и вперед?

Попробуйте поучиться где-нибудь за пределами Синеокой, лучше западнее Гродно.

vadim-stankevich > Попробуйте поучиться где-нибудь за пределами Синеокой, лучше западнее Гродно.

А патриотизм? Smile

antonkw > Имеет ли смысл идти на тот же менеджмент в магистратуру с точки зрения приобретения конкретных и применимых знаний или как обычно, книги/гугл в руки - и вперед?

А куда вперёд то? - Идите в менеджмент в магистратуру - вы не кодер по психотипу.

Имхо, конечно, имхо.

Аватар пользователя Petro46

Спасибо всем за участие.

Ещё бы... Здесь так интересно рассказывали про nested inner anonymous classes - закачаешься! А вот это: "вы не кодер по психотипу" - вообще, вдохновляет...

>А вот это: "вы не кодер по психотипу" - вообще, вдохновляет...

Почему нет? - Станет менеджером или архитектором-алгоритмистом - зачем ему писать то код?

Логик, опишите, плиииз, психотип кодера.

eduard > Логик, опишите, плиииз, психотип кодера.

Из присутствующих на данном форуме, его ни у кого нет (кроме piton).

Имхо.

P.S. petro46 - алгоритмист - ему на язык кодирования наплевать вообще то!

Аватар пользователя mike

Парень спросил: что учить? Итог: пришёл Логик и навесил ярлык. :))

Етить, как же программы рисовал? И ведь работают...

Страницы