AAREXER_BLOG Telegram 544
Продолжаем вашу(мою) любимую рубрику Ответ на вопрос
И телезрители играют против знатоков, вопрос из зала задает @Vlod_R

Вопрос:
Как у тебя происходило изучение других ЯПов/стеков? Когда уже был опыт в каком-то
Что бы посоветовал при перекате с ноды/ТС на JVM? Может уже работал с такими людьми и замечал общие ошибки?

Ответ:
Скажу честно, что такие перекаты от санитаров в изучении других ЯП у меня не то чтобы популярная история. В целом совет тут можно дать самый базовый: у любого ЯП есть его стержень (у некоторых ЯП типа как Scala их может быть несколько), так вот понять надо именно стержень этот. Например, в Java - это ООП (ОПГ) и разделение логики на всякие сервисы, контроллеры (Spring головного мозга) - поняв эти две вещи вы точно сможете на работе говорить на одном языке. Здесь важно не уходить в детали и всякие там типы данных - ну есть они и есть, вы их потом поймете. По сути этот стержень - это и есть философия языка, его главная парадигма.

У Python эта философия (как по мне) в нескольких вещах:
Это его гибкость через эти все словари у каждого объекта - что вы там в словаре объекта найдете все его возможности по сути.
Это его ООП (именно свой взгляд, не как у Java) и стиль написания (все эти генераторы).

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

Не советую еще читать Шилдта (это как справочник имхо он не нужен сейчас) и Блоха тебе пока не надо читать первое время, на мой взгляд это может отпугнуть

Основные ошибки же у всех одни - надо перестать писать «как вы писали» (забудьте чему вас учили в школе!), например, кто приходит с Си (студенты) - они начинают экономить сразу же байтики повсюду, это не нужно. Вторая популярная ошибка (кмк) - это уход в детали сразу, погружение слишком глубокое туда, куда еще рано. Часто бывает такое, что человек там начинает про какие-то Integer Pool-ы читать, а это ну точно не то, что ему надо сейчас. Третья ошибка - уход в теорию и мало практики (я на нее сам регулярно попадаю).

Очень важно сразу понять нейминг - по сути грамматика для ЯП, в Java принято размашисто писать, в Go нет - вот уже и первые ошибки будут, если ты начнешь как-то называть переменные или классы/методы коротко с кучей сокращений

Еще Java очень строгий и закрытый язык, в отличи от того же JS.
Это выражается и в структуре кодовой базы:

├── controller
├── service
├── repository
├── model
├── config

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

Еще отличие, которое замечал, что то, что смотришь на конференциях на том же Python - это все уже было в Симпсонах Java (не так давно смотрел вот про DI доклады там)

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

На правах рекламы еще посоветую JBook но я сам туда пишу и совет из разряда пользуйтесь - это круто, ведь это я делаю!
Но мне кажется там норм некоторые вещи (не все) описаны и полезны.

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



tgoop.com/aarexer_blog/544
Create:
Last Update:

Продолжаем вашу(мою) любимую рубрику Ответ на вопрос
И телезрители играют против знатоков, вопрос из зала задает @Vlod_R

Вопрос:
Как у тебя происходило изучение других ЯПов/стеков? Когда уже был опыт в каком-то
Что бы посоветовал при перекате с ноды/ТС на JVM? Может уже работал с такими людьми и замечал общие ошибки?

Ответ:
Скажу честно, что такие перекаты от санитаров в изучении других ЯП у меня не то чтобы популярная история. В целом совет тут можно дать самый базовый: у любого ЯП есть его стержень (у некоторых ЯП типа как Scala их может быть несколько), так вот понять надо именно стержень этот. Например, в Java - это ООП (ОПГ) и разделение логики на всякие сервисы, контроллеры (Spring головного мозга) - поняв эти две вещи вы точно сможете на работе говорить на одном языке. Здесь важно не уходить в детали и всякие там типы данных - ну есть они и есть, вы их потом поймете. По сути этот стержень - это и есть философия языка, его главная парадигма.

У Python эта философия (как по мне) в нескольких вещах:
Это его гибкость через эти все словари у каждого объекта - что вы там в словаре объекта найдете все его возможности по сути.
Это его ООП (именно свой взгляд, не как у Java) и стиль написания (все эти генераторы).

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

Не советую еще читать Шилдта (это как справочник имхо он не нужен сейчас) и Блоха тебе пока не надо читать первое время, на мой взгляд это может отпугнуть

Основные ошибки же у всех одни - надо перестать писать «как вы писали» (забудьте чему вас учили в школе!), например, кто приходит с Си (студенты) - они начинают экономить сразу же байтики повсюду, это не нужно. Вторая популярная ошибка (кмк) - это уход в детали сразу, погружение слишком глубокое туда, куда еще рано. Часто бывает такое, что человек там начинает про какие-то Integer Pool-ы читать, а это ну точно не то, что ему надо сейчас. Третья ошибка - уход в теорию и мало практики (я на нее сам регулярно попадаю).

Очень важно сразу понять нейминг - по сути грамматика для ЯП, в Java принято размашисто писать, в Go нет - вот уже и первые ошибки будут, если ты начнешь как-то называть переменные или классы/методы коротко с кучей сокращений

Еще Java очень строгий и закрытый язык, в отличи от того же JS.
Это выражается и в структуре кодовой базы:

├── controller
├── service
├── repository
├── model
├── config

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

Еще отличие, которое замечал, что то, что смотришь на конференциях на том же Python - это все уже было в Симпсонах Java (не так давно смотрел вот про DI доклады там)

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

На правах рекламы еще посоветую JBook но я сам туда пишу и совет из разряда пользуйтесь - это круто, ведь это я делаю!
Но мне кажется там норм некоторые вещи (не все) описаны и полезны.

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

BY Блог Кучука




Share with your friend now:
tgoop.com/aarexer_blog/544

View MORE
Open in Telegram


Telegram News

Date: |

SUCK Channel Telegram Just at this time, Bitcoin and the broader crypto market have dropped to new 2022 lows. The Bitcoin price has tanked 10 percent dropping to $20,000. On the other hand, the altcoin space is witnessing even more brutal correction. Bitcoin has dropped nearly 60 percent year-to-date and more than 70 percent since its all-time high in November 2021. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. Hashtags While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc.
from us


Telegram Блог Кучука
FROM American