Как полюбить программирование
6020
168
tDmn/// сказал(а):↑Ну, вроде разобрался уже с ними более-менее (со стримами и с лямбдами). Хотя
А насчет "пет-проекта" - ну, по сути, я сейчас этим и занимаюсь (судя по примерам из инета). Вот только когда выходят куски, которые, как ты написал, "пишешь код, а как работает не понимаешь", приходится бросать все и идти читать, читать, читать...и ощущение, что этому правда никогда конца-края не будет)
Ты сам, кстати, на чем пишешь?
Нажмите, чтобы раскрыть...На джаве, но как и ты - учусь.
AMDkrolyan сказал(а):↑Было бы вам интересно, услышать историю от ТСа как научиться прогать, а главное полюбить программирование ? Какие плюсы и минусы работы программистом и т.д. ?
Если да - то накидайте вопросов, которые вас интересуют, чтобы было понятно каким образом это преподнести.
ТС работал в компаниях grammarly, jetbrains (сроки и другие, деанонить не хочу). Так что немного в этом разбирается.
Нажмите, чтобы раскрыть...для себя уже давно понял, что прогать это лютая рутиная скукотища. пусть я и не конкретный прогер, а разработчик dwh (tsql,powershell,M)
tDmn/// сказал(а):↑А как понять то что все, братан, ты уже не дно и что-то умеешь? Что ты должен суметь написать, что бы доказать хотя бы себе, что твой уровень программирования не "-1"?
Нажмите, чтобы раскрыть...Это можно понять только в процессе командной работы, когда есть код ревью, и все члены команды обсуждают код. И в команде должны быть сильные эксперты, чтобы ты объективно смог оценить свой уровень на их фоне. Если в процессе проведения код ревью коллег ты делаешь существенные и стоящие замечания, значит ты уже не дно. Навскидку, если ты можешь ревьювить код и выдавать адекватные замечания по следующим темам, значит у тебя уже неплохой уровень и ты что-то да умеешь: KISS, DRY, SOLID, паттерны (не только GoF, но и многопоточные, энтерпрайзные, распределенные паттерны), проблемы с многопоточностью (нарушения атомарности, условия гонки, дедлоки, бутылочные горлышки), характеристики алгоритмов (О-большое, временная и пространственная сложность), правильное и неправильное использование транзакций, уровней изоляции, перформанс джава-кода, перформанс SQL, чистота кода по Фаулеру, Макконелу и Роберту Мартину, проблемы со связностью и зацеплением кода, претензии к английскому языку и вообще к именованию программных сущностей, проблемы с распределением по пакетам, проблемы с безопасностью кода, наличию уязвимостей, различные best practices, велосипеды вместо стандартных функций джавы или фреймворков типа спринга, различные архитектурные нарушения, а также умеешь выдавать замечания не только к джава-коду, но и к html, css, javascript (jquery, angular, react), python, linux bash, докер-образам и кубер-конфигам, xml-файлам, умеешь проверять что версии используемых библиотек не имеют уязвимостей... пожалуй для начала этого списка будет достаточно.
Если в твоей текущей команде такого нет, значит тебе тупо надо искать новое место работы, где практикуются код ревью и есть эксперты, готовые делиться подобным опытом.
tDmn/// сказал(а):↑Ну вот об этом я и писал - чем больше изучаешь, тем больше ты понимаешь, что нужно еще много и много изучать. Да и откуда командной работе взяться, если ты самостоятельно изучаешь ЯП дома?)
Нажмите, чтобы раскрыть...В таком случае читай книги и делай пулл реквесты в опенсорсные джава-проекты (желательно в те, которые исповедуют чистый код и правильные подходы), тогда твой код будут ревьювить другие джависты и ты сможешь участвовать в дискуссиях в рамках этих пулл реквестов, что позволит тебе быстро набраться опыта, достаточного и для прохождения собесов, и для работы как эксперт-ревьювер.
Насчет того, какие книги читать, тут все просто. В мире джава, особенно энтерпрайза, есть общепризнанные эксперты, которые написали книги, и собственно освещенные там подходы и используются при создании энтерпрайз-программ. Поэтому ничего своего придумывать не нужно, и к счастью, в отличие от того же фронта, тут подходов меньше, поэтому освить их все - это вопрос 3-4 лет усердного изучения этих книг. Хорошая новость в том, что в отличие от фронта, тут знания более фундаментальные и меняются не так часто, как во фронте, поэтому этих книг тебе хватит лет на 20-30 (если прям опасаешься что твои знания устареют, добавь ещё книги по квантовым вычислениям). Приведу список базовых книг по джава и энтерпрайзу, их понимание и умение применять на практике - этого достаточно для того чтобы иметь сеньорский уровень и лутать соотв.кол-во денег (300-500 тыс рублей на сегодня, хотя есть вакансии и выше, если работать на западные компании, в этом случае ещё нужно позаниматься пару лет с нэйтивом, например в онлайн-школах типа skyeng, чтобы получить навыки устного общения на английском языке по скайпу и пройти собес в западную компанию):
Роберт Лафоре Структуры данных и алгоритмы в Java 2-e издание
Бенжамин Эванс и др. Java Новое поколение разработки 2014
Герберт Шилдт Java Полное руководство 10е издание 2018
Джошуа Блох Java. Эффективное программирование, 3-е издание
Java Persistence API и Hibernate
Spring 5 Для профессионалов 2019
Докука О., Лозинский И. Практика реактивного программирования в Spring 5 2019
Энтони Гонзалвес. Изучаем JavaEE 7
Spring Microservices in Action
Java в облаке 2019
Java Concurrency на практике
Java Оптимизация программ 2019
Конкурентное программирование на Scala (главы по JVM)
Вернон В. DDD Реализация методов предметно-ориентированного проектирования 2016
Java-EE Паттерны проектирования для профессионалов
Гамма, Влиссидес. Паттерны. Приемы ООП (это GoF, Банда четырех)
Гранд. Шаблоны (паттерны) проектирования в Java 2004
Макконнелл С. Совершенный код (Code Complete)
Распределенные системы Паттерны проектирования (Docker, Kuber)
Роберт Мартин Чистый код создание, анализ и рефакторинг 2019 (Clean Code)
С.Стелтинг, О.Маассен Применение шаблонов Java
Фаулер М., Бек К., Брант Дж. Рефакторинг. Улучшение проекта существующего кода 2019
Шаблоны интеграции корпоративных приложений (на них основан фреймворк Camel)
Швец А. Погружение в паттерны проектирования 2018 (тут описаны GoF и SOLID)
И некоторые смежные темы, которые тоже нужно знать:
Внутреннее устройство Linux (линукс нужно знать т.к. все промышленные сервера крутятся на линуксе)
SQL PostgreSQL Базовый курс 2017
Эдриен Моуэт Использование Docker
Любая книга по HTML и CSS (для фуллстэка)
Фрисби М. Angular. Сборник рецептов 2018 (ангуляр нужно для фуллстэка)
Теоретический минимум по Big Data
Борис Бейзер Тестирование черного ящика (для умения писать юнит и интеграционные тесты)
Это 31 книга, это немало. Без осознанных усилий тут не обойтись. Но главное - иметь интерес к подобного рода программированию, иначе конечно ничего не освоишь. Тут важно определиться, если у тебя больше интереса не к энтерпрайзу (т.е. разработке программ для бизнеса или автоматизация деятельности компаний (не только и не сколько бухгалтерия (для этого есть 1С, и кого-то от неё даже прёт), а автоматизация любого бизнеса и любой деятельности, т.к. на джаве сейчас пишут всё)), а к низкоуровневому программированию или разработке игр, то тут конечно список будет другой, хотя некоторые темы остаются те же (например, паттерны GoF активно применяются и в гэймдеве).
Список я тебе дал, дальше сам решай))
ArtemX сказал(а):↑Нажмите, чтобы раскрыть...Воооу, вот эт спасибо)
Я прям по твоему списку, считай, и иду - 5 книг уже прочитано (изучено это слишком громко, конечно, сказано), и три на очереди)
Вот только большой у меня вопрос - Спринг 5 для профессионалов, или лучше пому**хаться со спрингом в действии, но на английском?
Я читал спринг в действии, но там третье издание и половина идет про xml разметку. Собственно, подумал, что английская версия будет не так страшна, после третьего издания.
Главное, я хотя бы понял, что в нужном направлении все-таки иду.
Кстати, что подразумевается под "низкоуровневым программированием" на java? С разработкой игр, я так понимаю, лучше на С++ переходить, но мне это и не настолько интересно (по крайней мере, пока).
tDmn/// сказал(а):↑Я прям по твоему списку, считай, и иду - 5 книг уже прочитано (изучено это слишком громко, конечно, сказано)
Нажмите, чтобы раскрыть...Насчет прочитано-изучено, одноразового прочтения конечно мало, эти книги должны стать твоим рабочим инструментом. Лично я скажем добавил эти книги (и многие другие) в папку, которая подключена к FARR (это такая программа для быстрого поиска, нажимаешь клавишу Break, выскакивает окно поиска, там пишешь часть имени файла и он открывается - таким образом у меня всегда эти книги не просто под рукой, а буквально в 3-4 нажатиях клавиш, поэтому я ими постоянно пользуюсь и таким образом прокачиваю все эти навыки, если у тебя нет быстрого доступа к книгам, то по моему опыту, ты их просто и не будешь больше открывать, т.к. обычно в запарке работы нет времени где-то искать книги по всяким папкам и подпапкам).
ArtemX сказал(а):↑Под низкоуровневым я имею ввиду возню с гарбадж коллектором (вплоть до написания своих вариаций), оптимизаторство кода и борьба за каждую миллисекунду, четкое понимание сетевых стеков и многопоточности на низком уровне. Эти навыки тоже ценятся, на highload-проектах, как игровых так и бизнесовых. Оплата за таких спецов выше, чем за обычных энтерпрайзщиков, но и специфика работы своя, т.к. главное не красивый и понятные код, а код быстрый и нетребовательный к памяти, пусть и ужасно выглядящий.
Насчет xml спринга, многие легаси проекты всё ещё сидят на xml, поэтому ничего плохого в этом не вижу, знать это тоже нужно ,т.к. сами принципы остаются те же. Хотя, если больше интересуют микросервисы, то xml можно не изучать, как и вообще спринг, а сконцентрироваться на spring boot (но тогда еще нужно и про распределенные паттерны, и докер, и кубер читать, т.к. это всё про микросервисы).
Нажмите, чтобы раскрыть...На самом деле, при таком раскладе мне интереснее низкоуровневое программирование. Когда то давно у меня вообще была мечта по изучению ассемблера) Но, в любом случае, программирование подобного рода - это "следующий уровень", имхо, сначала надо бы разобраться с энтерпрайзом.
tDmn/// сказал(а):↑Кстати, что подразумевается под "низкоуровневым программированием" на java? С разработкой игр, я так понимаю, лучше на С++ переходить, но мне это и не настолько интересно (по крайней мере, пока).
Нажмите, чтобы раскрыть...На джаве сейчас тоже игры делают, особенно MMO. И там кстати нужны навыки и энтерпрайза, чтобы писать бизнес-логику игры, и низкоуровневой джавы, чтобы оптимизировать узкие места по скорости и по памяти.
ArtemX сказал(а):↑На джаве сейчас тоже игры делают, особенно MMO. И там кстати нужны навыки и энтерпрайза, чтобы писать бизнес-логику игры, и низкоуровневой джавы, чтобы оптимизировать узкие места по скорости и по памяти.
Нажмите, чтобы раскрыть...Интересно, но, боюсь, это будет следующий уровень)
tDmn/// сказал(а):↑4) Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссиденс. Приемы объектно-ориентированного проектирования. Паттерны проектирования. (буду перечитывать - нихрена не помню)
Нажмите, чтобы раскрыть...GoF я бы посоветовал не перечитывать, а прочитать другие книги по паттернам из моего списка, т.к. GoF во многом устарел, а более современные книги описывают эти паттерны более современным языком и через призму энтерпрайза (т.е. примеры в GoF часто касаются GUI-шных программ, а в современных книгах - больше примеров с бизнес-логикой, что ближе к энтерпрайзу чем GUI).
И ещё некоторые из этих книг растолковывают понятия из GoF, т.к. в GoF многие вещи объяснены слишком витиеватым языком. В первую очередь рекомендую прочесть книгу А. Шаллоуэй. Шаблоны (паттерны) проектирования, т.к. она даёт инструмент "Матрица вариативности" для понимания применения полиморфизма и абстрактной фабрики, а также в этой книге как раз растолковывается, как начать думать в правильном паттерновом стиле, эта книга лично для меня дала толчок к кониманию паттернов GoF (потому что я тоже при первом прочтении GoF ничего из неё не понял и не имел представления как всё это добро применять на практике, а книга Шаллоуэя разрушила этот барьер непонимания, благо она не очень большая).
ArtemX сказал(а):↑рекомендую прочесть книгу А. Шаллоуэй. Шаблоны (паттерны) проектирования, т.к. она даёт инструмент "Матрица вариативности" для понимания применения полиморфизма и абстрактной фабрики, а также в этой книге как раз растолковывается, как начать думать в правильном паттерновом стиле, эта книга лично для меня дала толчок к кониманию паттернов GoF (потому что я тоже при первом прочтении GoF ничего из неё не понял и не имел представления как всё это добро применять на практике, а книга Шаллоуэя разрушила этот барьер непонимания, благо она не очень большая).
Нажмите, чтобы раскрыть...Хорошо, поставлю ее в очередь. На самом деле, именно понимание, когда что применять - реально сложнее, чем понимание принципов работы.
tDmn/// сказал(а):↑И как посоветуешь изучать спринг "в домашних условиях"?
Нажмите, чтобы раскрыть...Прочитать пару книг про него, сделать пару пет-проектов, а потом искать работу джуном в компании, где есть код ревью, чтобы набираться опыта от коллег в боевых условиях. В домашних условиях, без жестоких коллег-экспертов и жёстких сроков, это всё очень трудно освоить.
tDmn/// сказал(а):↑Хорошо, поставлю ее в очередь. На самом деле, именно понимание, когда что применять - реально сложнее, чем понимание принципов работы.
Нажмите, чтобы раскрыть...Тут только живая практика и код ревью, т.е. свои попытки делать код ревью коллег.
Проблема паттернов имеет 3 ипостаси:
1. Люди не применяют паттерны там где это нужно - тут ты будешь сам искать в коде такие ошибки и писать замечания по код ревью
2. Люди неправильно применяют паттеры - тут ты будешь сам искать в коде такие ошибки и писать замечания по код ревью
3. Люди правильно применяют паттерны - тут ты будешь учиться у коллег, кто правильно применяет паттерны
Jinol сказал(а):↑Обожаю программирование. После того как 4 года проработал инженером за 200 баксов, в Эпицентре за 250, на заводе и прочем говне, я наконец то нашел работу где работаю не за пивасик и у меня есть перспективы. ПС: я не прогер, а куа автомейшн, но еще учусь и надеюсь стать прогером.
Нажмите, чтобы раскрыть...так куа автомейшн часто больше прогеров поднимают, так что тут еще вопрос стоит ли менять профу. Я бы менял только если бы мне это сильно надоело. К тому же, если ты грамотный куа, то тебе будет намного проще стать тим лидом куашников чем тимлидом прогеров и мутить бабки имхо
вся инфа выше распространяется только на Украину, хз что сейчас актуально на рынке России
kosras сказал(а):↑так куа автомейшн часто больше прогеров поднимают, так что тут еще вопрос стоит ли менять профу. Я бы менял только если бы мне это сильно надоело. К тому же, если ты грамотный куа, то тебе будет намного проще стать тим лидом куашников чем тимлидом прогеров и мутить бабки имхо
вся инфа выше распространяется только на Украину, хз что сейчас актуально на рынке РоссииНажмите, чтобы раскрыть...я в Украине работаю, но не в украинском проекте. Спасибо за совет. Для меня важно просто развиваться. А прогерам вроде легче в этом плане. Ну и бесит мануальщина. Куа он в любом случае будет мануально работать тоже. Даже если ты автомейшн.
ArtemX сказал(а):↑Это можно понять только в процессе командной работы, когда есть код ревью, и все члены команды обсуждают код. И в команде должны быть сильные эксперты, чтобы ты объективно смог оценить свой уровень на их фоне. Если в процессе проведения код ревью коллег ты делаешь существенные и стоящие замечания, значит ты уже не дно. Навскидку, если ты можешь ревьювить код и выдавать адекватные замечания по следующим темам, значит у тебя уже неплохой уровень и ты что-то да умеешь: KISS, DRY, SOLID, паттерны (не только GoF, но и многопоточные, энтерпрайзные, распределенные паттерны), проблемы с многопоточностью (нарушения атомарности, условия гонки, дедлоки, бутылочные горлышки), характеристики алгоритмов (О-большое, временная и пространственная сложность), правильное и неправильное использование транзакций, уровней изоляции, перформанс джава-кода, перформанс SQL, чистота кода по Фаулеру, Макконелу и Роберту Мартину, проблемы со связностью и зацеплением кода, претензии к английскому языку и вообще к именованию программных сущностей, проблемы с распределением по пакетам, проблемы с безопасностью кода, наличию уязвимостей, различные best practices, велосипеды вместо стандартных функций джавы или фреймворков типа спринга, различные архитектурные нарушения, а также умеешь выдавать замечания не только к джава-коду, но и к html, css, javascript (jquery, angular, react), python, linux bash, докер-образам и кубер-конфигам, xml-файлам, умеешь проверять что версии используемых библиотек не имеют уязвимостей... пожалуй для начала этого списка будет достаточно.
Если в твоей текущей команде такого нет, значит тебе тупо надо искать новое место работы, где практикуются код ревью и есть эксперты, готовые делиться подобным опытом.
Нажмите, чтобы раскрыть...жесть чувак, а вообще жИвЕш, или вот только этим занимаешься ?
Podpivasik сказал(а):↑у меня резюме висит на хх и линке, каждый месяц зовут на собес, звонят. есть годные офферы, но я уже забил на фронт и ушел в мобайл.
Нажмите, чтобы раскрыть...а почему в мобаил?
Podpivasik сказал(а):↑ну хз я как то на мидла сразу попал, джуном никогда не работал.
Нажмите, чтобы раскрыть...сколько обучался по времени?
SlenderLion сказал(а):↑а почему в мобаил?
Нажмите, чтобы раскрыть...это интереснее чем веб. мне за 2 года надоел веб фронтенд. хочется расти, а не сидеть на месте и делать одно и то же.
SlenderLion сказал(а):↑сколько обучался по времени?
Нажмите, чтобы раскрыть...да хз сайты обычные и на вордпрессе я еще клепал учась в школе. у меня обучение берет истоки может лет с 13-14. 10 лет назад. ну это не то чтобы я прям целенаправленно учился этому, просто по фану иногда делал всякую фигню.
Miditi A.K. (A)OnimeBoy сказал(а):↑как этим заняться? На фрилансе миллион челов у которых рейтинг запредельный и покупатели обращаются только к ним, а не к тебе, грубо говоря там также неуважают новорегов как и здесь на д2ру и никто не пойдёт брать заказ у условного ноунейм чела с регой 01.02.2021 когда есть чел с огромным количеством лайков и старой регой
Нажмите, чтобы раскрыть...надо иметь какое-никакое портфолио, типа сделать "заказы" и поместить их в профиль, как примеры, по факту - просто делаешь их для себя, ну, то есть для самого портфолио
Миллион челов это да, но время у них не вечное, в этом и суть. Тот чел берет 2 заказа моментально и ему норм, и все, нужно искать новых исполниетелей. ТАк и двигаешься.
Попробуй меня убедить и заставить любить это.
То что я по образованию программист не помоглоТо что у меня двоюродный брат из глубинки сейчас живет и работает программистом в германии, в фирме которая создала эфириум, получая 9к евро тоже не убедилоМожет у тебя получится
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
мультифрукт 18 Jun 2024 в 22:48Сообщений: 5 18 Jun 2024 в 22:48
Сообщений:5
Просмотров:6
-
Взгляд_на2000ммр 18 Jun 2024 в 22:33Сообщений: 5 18 Jun 2024 в 22:33
Сообщений:5
Просмотров:4
-
Сообщений:12
Просмотров:13
-
Kizuna Kazeyama 18 Jun 2024 в 22:01Сообщений: 9 18 Jun 2024 в 22:01
Сообщений:9
Просмотров:11
-
Сообщений:14
Просмотров:16