Это копия, сохраненная 23 сентября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
Хм, действительно. Но мне кажется всем похуй.
что, прям всю джаву собрался учить?
На этом говне каждый второй сейчас кодит
Нахуй тебе мухосрань. Сразу учи react и redux три месяца и будешь на апворке удаленно за доллары работать и быть королем мухосрани.
Как же у вас все просто.
На пыхе сейчас джуном можно устроиться за хуй с солью, а 1С это вообще лютая дичь.
Ведь компилятор должен попытаться преобразовать \\ujava ?
А что жс? Кому нынче нужен жс?
for (int index = start; index <= finish; start++) {
if (index / 2 == 0) {
result = result + start;
}
}
return result;
}
Блядь надо найти сумму четных чисел от 1 до 10, что не тАК?!?!?!?!?!?
Во втором ты экранируешь "\" и для компилятора больше нет \u, есть "\" и "u" как отдельные символы
Я сегодня добрый. Не благодари
int sum = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.filter(x -> x % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
System.out.println(sum);
>Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
IntStream.range(1,10).filter(x -> x % 2 == 0).sum();
слабак
моё увожение
вроде вполне удобно. Главное не пытаться заменять этим sql
Массив взял и скопировал значение v в свой первый элемент, вот он и поменялся, а v никто не менял. Какие ссылки на примитивы ебобо?
как же хочется Valhallу, что бы у жатник бомбануло и индусы еще больше путались в трех соснах
Я в джаве не ебу ни капли,но в с++ она и не должна изменить саму переменную. Она изменит элемент массива,да. Хз,что ты ожидал,но когда int arr[] = {var} у тебя значение var копируется в ячейку памяти,которая соответствует arr[0]. Мб и в джаве вашей так же
Ну вот с объектом так и будет (скопируется ссылка на объект). А дальше если он мутабельный, то изменения будут везде.
Какие подводные?
inb4 теоретик хуев
>Там даже нет половины того, что мне нужно чтобы написать нормальный ввод с клавиатуры
Ищешь в гугле: "get input from keyboard java"
>Где брать нормальную литературу для начинающих?
В шапке написано. Head First Java, например.
Если что-то хочешь узнать, в первую очередь гугли, а потом уже смотри в книгах
Ну а какая книга тебе нужна? Про что ты хотел в ней узнать?
Может быть тебе нужны best practicies или cookbook?
Мне нужно чтобы ответы на вопросы "как сделать хуйнянейм" были не атомизированы, а подавались вместе с общим контекстом программы. А то так можно надергать со стаковерфлоу куски кода, а вместе-то их не сошьешь, потому что в душе не ебёшь как оно должно вместе работать.
А, тебе просто нужно начать решать какие-нибудь задачи на codewars/hackerrank, параллельно делая какие-нибудь простенькие проекты, вроде парсеров и брутфорсов.
У хорстманна об этом чуть не в введении. Вкатывайся в бигтейсти с беконом, у тебя большой потенциал, базарю.
Заводи баг на жире
как можно на джаве спарсить полностью (см выпадающие менюшки) данные сайта greyhoundsform.betfair. com/racingform
Возьми питон, не мучай жопу.
уже лучше, спасибо, попробую погуглить.
Почему у джавы такой колхозный офф сайт и дока? Вырвиглазно и отстало, как будто начало нулевых.
Ну и логотип, конечно, такое себе.
>На крестах около 10 лет нонстоп
А сейчас тебе 17 лет. Угадал? Хуйню спрашиваешь потому что. Какая разница сколько? 21 день, полгода, год. Вот увидел бы ты эти ответы, что изменилось бы? Берешь и вкатываешься или идешь нахуй.
Будет ли считаться хорошим тоном использование byte вместо int?
>Будет ли считаться хорошим тоном использование byte вместо int?
Кроме памяти нихуя не сэкономишь, алу в процессорах один хер считает любые числа в максимальной разрядности с откидыванием бит.
> алу в процессорах один хер считает любые числа в максимальной разрядности с откидыванием бит
Разве в x86 нет инструкций для считывания октета с произвольного участка памяти?
Экономия на спичках. Разница если и будет, то настолько несущественная, что её можно принять за погрешность.
Быстродействия это не придаст, разве что память будет более экономно расходоваться. Но главное не обсраться, а то вдруг ты захочешь два возраста сложить, а результат в byte не поместится.
Лучше использовать int и не ебать себе мозг, еблю с байтами и типами данных оставь байтоебам, им это нужнее.
> быстродействие
Используй везде инты. Байты ещё можно использовать в языках уровня C++ где ты можешь знать каким образом они будут представлены в памяти. В Java всё зависит от VM. Может VM будет выравнивать все переменные по 4 байта, тогда единственной разницей между байтом и интом будет то, что в инте ты сможешь использовать оставшиеся три байта, а в случае байта они просто будут мусором в памяти.
> for (int index = start; index <= finish; start++)
index++, а не start
> if (index / 2 == 0)
index ÷ 2
> result = result + start;
result += index
Ну так-то похоже, что 4 месяца за глаза хватит.
Кстати, среди кофеёбов где больше всего неадкватов собирается (у нас это в основном работы для красноглазиков)?
Мальчик, читай лучше литературу на лето.
Ты чо, мразь? Тебе въебать, сука?!
>>30318
Интересная лекция, спасибо.
Даже томкет или джетти столько вполне тянет - возьми спринг бут и натрави Яндекс танк, гатлинг или любую утилиту для нагрузки и проверь сам.
Если же хуйнешь на нетти и с нонблокингом то как нехуй нахуй.
На хуйлоадкапе джава с нетти третье место заняла.
https://highloadcup.ru/rating/
>с крестов на жабу
Лол.
Например, если на крестах ты писал под МК, а на жабе хочешь писать энтерпрайз, то может потребоваться неопределённое количество времени.
Сам по себе язык - в 100500 раз проще крестов, конечно.
Это да. Внутри самих крестов тоже бывают долгие и мучительные перекаты.
Где можно почитать о сервлетах? Желательно по-быстрому и на практике, нужно вебаппку на Tomcat поднять, которая через mybatis будет данные между бд и аппкой кидать.
С джавой почти не работал, в основном С++ & Qt юзал, в веб могу только на базовом уровне (PHP более-менее знаю), нужно как можно быстрее вкурить в джаву.
смотря насколько тяжелые запросы и как долго они выполняются
> пик
Это джава апплет или что? Или программирование на джаве в html? Так кто-нибудь еще делает?
JSP
Это называется JSP.
> Так кто-нибудь еще делает?
Померло лет пять назад в общем распространении. Статика и сервер сайд рендеринг сейчас никому не нужны.
> PHP померло, например?
Ты охуеешь, но начинает подванивать. Серверсайд рендеринг на php например уже почти умер. А за рестами кому что удобно и кто что знает.
> Вот и JSP никуда не делось, и JSF и т.п.
Чивобилять, что ты несешь, убогий? Назови сходу какой-нибудь новый проект, использующий JSP или JSF, а я тебя обоссу.
> Откуда вы лезете, лол.
Из реального мира. А ты либо заперся в дегенеративном мирке где еще о седьмой джаве и не слышали, либо вообще не знаешь ничего и вещаешь с дивана.
Какой тебе информации, в самом-то деле?
В гугле забанили тебя?
Инфы хоть жопой ешь.
Это очень простая технология.
(Если мы именно о сервлетах/jsp говорим.)
>нужно вебаппку на Tomcat поднять, которая через mybatis будет данные между бд и аппкой кидать.
Алсо, вот так вот непринуждённо и на расслабоне описывая проблему, результат ты получишь соответствующий.
Мнение школьников-сосачеров имеет огромную ценность, обязательно напиши ещё что-нибудь.
Хах, только начался аргументированный разговор ты сразу слился.
> либо вообще не знаешь ничего и вещаешь с дивана
Так и думал. Слив засчитан, войтивайти.
>Инфы хоть жопой ешь.
>нужно как можно быстрее вкурить
Её еще и найти нужно правильно, а я в принципе не особо понимаю, для каких задач эта технология применяется и как её применять.
>проблему
>С джавой почти не работал, в основном С++ & Qt юзал, в веб могу только на базовом уровне (PHP более-менее знаю)
Вот проблема, и мне нужно инфы в виде "Как использовать джаву на бекенде?". Ммаксимально конкретный запрос?
Ладно, я понял, что при моих запросах тут не помогут. Пойду сам гуглить, мб что-то и найду.
Мамку ебал.
Использовать не int для целых - это bad practice
>mybatis
>tomcat
>Как использовать джаву на бекенде?
Ну что за детский сад.
Вот, 3 секунды в гугле:
http://www.mybatis.org/spring/sample.html
https://github.com/mybatis/jpetstore-6
>я в принципе не особо понимаю, для каких задач эта технология применяется и как её применять.
У меня сложилось впечатление, что от веб-технологий и прочих подобных вещей ты максимально далёк, и проблема именно в этом.
Потому, что разница между java сервлетами и jsp, php и cgi на perl - не принципиальна, на самом деле.
Спасибо за ссыль.
И таки да, в веб не лез от слова совсем, максимум визитку на php делал, от сего и такое непонимание.
@jvmchat
Нет
>Если везде грамотно использовать тип переменной, а не везде хуярить int, то это повлияет?
Повлияет, только вот везде хуярить инт - это и есть грамотно использовать. Процессор пишет твое говно в регистры словами (WORD), если твое говно не влазит в слово или меньше слова - происходит переупаковка/паддинг, т.е. ДОП РАБОТА. Итого ты, в попытках быть хиповым байтоебом, стреляешь себе в ногу.
Это может иметь вес на каком-нибудь интервью, которые практически все ебанутые, но в производстве такой хуйнёй лучше не заниматься.
> Процессор пишет твое говно в регистры словами (WORD)
У x86 есть инструкции для работы с октетами. Вопрос в том, использует ли их JVM.
> регистры словами (WORD)
И, кстати, ты наверное имел в виду DWORD, потому что WORD - это 16-битное число.
Да многие. Есть куча регистров с байтовыми кусками (например регистр eax имеет al и ah объёмом один байт) и возможность побайтовой работы с памятью. Например увеличение байта памяти на 1 по адресу eax: ADD BYTE PTR [EAX], 1
За шмот?
>Например увеличение байта памяти на 1 по адресу eax: ADD BYTE PTR [EAX], 1
Ну так в основной памяти адрес-то указывает все равно на блок в 32 бита, так что скорее всего это просто шорткат для "загрузить из адреса в 32-битный регистр -> из него загрузить нужный участок в 8 битный регистр -> изменить -> все в обратном порядке".
Нет. Ты не забывай, что это инструкция ещё со времён царя гороха, когда о 32-битах даже не думали. Хотя может внутри современных процессоров оно так и происходит, хуй его знает.
Мне кажется это просто для обратной совместимости, ведь читаешь-то ты все равно весь блок, все 32 бита, соответственно его нужно где-то хранить временно, не в 8 битном регистре же.
Сомневаюсь, что интел стал бы занижать производительность побайтовых операций. Учитывая, что эту фичу (т.е. возможность побайтового обращения к памяти) активно используют. Вот для ARM это критично, да. У них даже инструкций нету. Можно работать только с DWORD'ами и QWORD'ами.
Как оно там в наше время читает - знает лишь мудрец мохнатый.
Фон-Неймановских компьютеров давно уже нет.
Многоуровневое кэширование и прочее.
Ты понимаешь насколько должно быть не лень для таких вещей на анонимном форуме отвечая анонимному пидорасу?
почему?
>Сомневаюсь, что интел стал бы занижать производительность побайтовых операций.
Ебать дебил, про выравнивание и не слышал.
>эту фичу (т.е. возможность побайтового обращения к памяти)
Разве что говнокодеры вроде тебя.
Лучше пиши на джьяве.
>>31353
>Как оно там в наше время читает - знает лишь мудрец мохнатый.
Да, я небрит - как что-то плохое.
не совсем паттерны, а больше сборники советов олдфагов какие реализации стоит применять при каких у лоаичх и почему
Например если json хранить в glob oracle sql, читать его через sql запрос, переливать в string и потом уже отправлять в objectmapper, то приложение уже начинает писоть-какоть от просадки на этапе считывание глоба, есть ли какие-то иные альтернативы брать json из бд?
> Ебать дебил, про выравнивание и не слышал.
Это ты не слышал. С++ имеет особые правила выравнивания. например в коде
struct A {
uint8_t a;
uint8_t b;
}
выравнивание идёт по одному байту. И самое частое использование байта - это булевые переменные.
> Разве что говнокодеры вроде тебя.
Да-да, от умника не знакомого с правилами выранивания слышу.
>С++ имеет особые правила выравнивания
А интел на эти правила клал всю шину и сверху срал кешем.
А потом они удивляются что их говнокод тормозит.
Впрочем, что с дебилов взять.
Я понял. Тебе лишь бы что-то "умное" спиздануть. Можешь проследовать нахуй.
> шину и сверху срал кешем
Для этого есть абсолютно другой класс оптимизаций к выравниванию никакого отношения не имеющий (если не считать перемещение переменных в классе и переделывание части в битовые поля, чтобы уменьшить его размер, но это надо быть дебилом, чтобы сразу не располагать переменные начиная с большего размера и заканчивая меньшим). Но ты же тут самый умный, так?
У LINQ есть одна неприятная особенность. Там микрософт выдумал свои собственные имена для функций из-за чего периодически приходится искать в интернете как называется функция которая делает то что тебе нужно.
Ну я уже наизусть выучил их, а так если не помнишь то за минуту находишь на MSDN.
Эх...помнится я хотел вкатиться в эту вашу Java пару лет назад, рад что не сделал этого. Все выглядит ну максимально ущербно.
Что, если не ответишь на каждый пост, то мамка не похвалит? Ну ладно. Можешь ответить на этот (не забудь сказать что я слился, так все крутые тралли делают) и беги ей хвастаться. Я больше тебе отвечать не буду. Покажи ей как ты круто тут всех траллишь.
> есть ли какие-то иные альтернативы брать json из бд
Если у тебя джейсоны сотни мегабайт, то юзаешь монгу, юзаешь реактивный клиент и срешь из монги вонюче (только без десериализации - чисто стринга) в темп через нио. Из темпа высираешь реактивщину наружу. В результате нигде при отдаче джейсона в хип весь весь джейсон не попадет.
В остальных случаях юзаешь json уровня b.
Устарела.
Неудобна по сравнению с более продвинутыми языками, много boilerplate кода. С точки зрения программиста хуйня.
А так с точки зрения работы она не умрет. В ынтерпрайзе жаба живее живых.
Умирает, ага. Только вот по вакансиям является лидером, странно.
Напомни, пожалуйста, который год её уже хоронят?
А причём тут жава? Это почти везде так надо ставить. По умолчанию ведь идёт int или double.
где везде? Если я объявил переменную как float, зачем мне дополнительно указывать что я провожу операции с float?
float k=0.1;
k=k+0.25f;
нахуя буква f у 0.25? Неужели компилятор не может провести операцию сложения без буквы f?
Оно и видно, инвалид - мимо постов промахиваешься.
В рот ебал эту джаву. Дохуя сил потратить ради чего?
>Оттуда в ИИ и даты
А зачем в жс для этого? Тем более там математика на первом месте, питон лишь инструмент. помимо питона очень часто кресты нужны например в computer vision, на заводах разных, в беспилотниках
В js хочу, чтобы найти работу было проще (кормить семью, блджад). Мне кажется на джаве это посложнее. ИМХО.
Матан - не проблема, все таки не с юридического пришел сюда.
>Матан - не проблема
Так вкатывайся сразу в питон и дата саенс, зачем тебе тратить время на веб? Твой опыт на жс все равно никем не будет учитываться, все равно джуном пойдешь в дату
Толи на Хабре, толи на их злоебучем Тостере видел мнение, мол в дату вот так с нуля хуй вкатишься - нужен большой опыт программирования.
Также, я на самом деле просто мечусь между ЯПами, так как остро стоит вопрос в том, чтобы быстро вкатиться и начать зарабатывать ₽ для семьи, так сказать.
Мне похрен какой язык взять первым - главное область работы не геймдев и не фронтэнд. Просто чтобы за полгода я смог прокачаться до Джуна и попал на работу.
Вот начал с Java, но понял, что хуй овладеешь ею за теже полгода. А дальше куда с этими знаниями?
>Просто чтобы за полгода я смог прокачаться до Джуна и попал на работу.
Ну я за 5 месяцев устроился на работу. Только по андройду.
>Вот начал с Java, но понял, что хуй овладеешь ею за теже полгода.
На счет интерпрайза не скажу, но в андройде вполне себе можно.
> А дальше куда с этими знаниями?
В андройд. Прогаешь на нем, покупаешь мак - и прогаешь для блядей с толстыми кошельками. Изи.
>Толи на Хабре, толи на их злоебучем Тостере видел мнение, мол в дату вот так с нуля хуй вкатишься - нужен большой опыт программирования.
Я тебе и прямо сейчас скажу, что действительно нужен опыт и неплохие знания для вкатывания.
Но напиздеть и получать этот опыт джуном - никто не запрещает.
>Знание чего требовалось
Знания андройда сдк. Джава - это всего лишь 10%
>Давно ли это было?
Работал с февраля по апрель. Сейчас месяц уже в другой компании работаю.
>Ты по андроиду решил пойти?
Я изначально по нему шел, не представляя вообще ничего по программированию. Изучал джаву даже не зная, что в ЕЕ сокеты хуекеты БД и прочая хуета.
Просто была цель и я сидел дрочил ее.
С недавнего времени подбираю рандомных челиков с двача, тип альтруизм. Только один изъявил желание ебашить как я, а 5 слились.
>В чем суть подбирания челиков?
Хз, вроде как мне вначале было очень трудно изучать, учитывая что я вкатывался вообще с нуля. Я даже не понимал как работают методы или, например, что вообще такое void. Поэтому я иногда захожу на двач и иногда отписываюсь, мол кто хочет ебашить андройд 24 на 7 как я, милости прошу, могу отвечать на тупые вопросы.
>Ищешь своего уровня или таких нубасов как я?
Мой уровень - это джун с большими натяжками.
>Как-то хуёво ты её изучал.
Мне достаточно было СЕ и все. Мне в душе не ебет как там у вас все устроено. Бек все равно собираюсь писать на руби потом.
Понял, я думал нубасов набираешь, лол.
Кстати, а как изучал? По каким материалам? Как у тебя с инглишем?
>Понял, я думал нубасов набираешь, лол.
Если есть желание ебашить 24 на 7 то кидай телегу и все.
>Кстати, а как изучал?
Курсы - самопроизвольное тыкание - перерыл хуеву тучу репозиториев с примерами - перешел на доки.
Надо было сразу на доки переходить.
> 24 на 7
Понимаю, что это грубо, но столько времени нет. Через неделю ещё на работу съебую.
>доки
Что за доки?
>Что за доки?
документация. Но это то еще говно от гугла. Некоторые моменты узнаются только из каких-то рандомных лекций\митапов.
Да, это минус. Ну как хочешь. Шапка андройда достаточно наполнена для того, чтобы говнокодить через 2-3 месяца.
>Заебись, ещё и английский учить плюсом к джаве.
Мне кажется, когда у тебя уже есть личинки и никчемная работа - то что-то в жизни пошло не так.
Я бы на твоем месте бросил все. Это очень опрометчиво, когда такое происходит.
Я не имею в виду любовь и все прочее, но с этим действительно очень сложно что-то сделать, тем более для вкатывания.
У тебя семья, твоя цель - БАЛЬШИЕ ДЕНЬГИ ВАЙТИ, ты хочешь вкатится за полгода и получать 300кк/нс, ты не знаешь ангельский и вроде как вообще не смыслишь в погромировании. Тебе 40 лет?
Ну так выучи в чем проблема? Для начала можешь походить к обычному репетитору, потом ищи носителя языка и занимайся с ним по скайпу
Так вот теперь как раз и ищу материалы на эту тему. Думаю начну с английского за 16 часов, базу подтяну и дальше по факту из соответствующего треба на дваче.
Жена есть, но детей ещё нет. К их появлению как раз хотелось бы хотябы перспективами обрасти.
Так сколько тебе лет вообще? Если 20, то хватит полгода позадротить по книгам и офф. докам любой яп и устроится на интершип месяц или два и вуоля, ты джун 100к в месяц. А вот если тебе 30, то тут всё немного не так
Пасаны, расскажите куда двигаться начинающему джавщику? Джавакор изучил, колекшнс и канкаренси с большего. Куда теперь? Ну понятно, что БД, мавен. Ну а в целом?
В треде проскочило про андроид. Стоит ли? В моем устьпиздюнске как раз есть вакансии мобайл джуниор девелопер.
Да, стоит. Будет нормальный фриланс только в путь - не обязательно придется работать только на дядю.
Ну давай, кидай телегу, посмотрим из чего ты сделан.
>А вот если тебе 30, то тут всё немного не так
Если тебе самому 20, то откуда тебе знать, как оно в 30?
А если тебе 30, и у тебя всё "не так", то, возможно, это просто твои личные проблемы, и не стоит их обобщать?
DI тут вообще побоку.
http://www.baeldung.com/spring-reactor
Но, если ты сам реализуешь сам что-то типа event bus хуже тебе не станет.
И да, SomethingService - это как-то не по-русски.
SomeService, тогда уже.
В спринге есть ApplicationEventPublisher (вроде так называется) и аннотация EventListener. Типичная реализация Observer/Pub-Sub. Вешаешь аннотацию на метод, который принимает объект некоторого класса, а через ApplicationEventPublisher паблишишь сообщение в евент бас. На старте приложения Spring через BeanPostProcessor проанализирует всех подписчиков на сообщения и можно будет их "звать" публикую сообщения. Тем самым ты не будешь завязываться на конкретный тип сервиса, который тебе нужно было бы заинжектить в место вызова, а просто паблишишь сообщение и все ок.
Таким образом можно разбить твое приложение на модули, которые будут связаны только типами сообщений, которые ты будешь кидать. Отличная вещь, рекомендую!
Java - отличные библиотеки ! нормально выглядит в отличие от JavaScript. но сборщик мусора - омерзительный . сборщик тот же инструмент . если он приятен , можно писать всякую чушь - пример : Питон. .
удачи обеим
казуля?
Аноний, ты как раз на счет андроида и джавы, я сейчас на распутье или в сомнених - хуй знает. Короче нужен совет, пинок, etс.
На сколько я понимаю, субьективно, джаву СЕ знаю, самое слабое место многопоточность: знаю\понимаю монитор, волатайл переменные, конкаренси коллекци, интерапшен и знаю наличие атомиков, вот на них вся моя многопоточность и кончается. + к слабым местам отнесу структуры данных, именно то что общее для CS впринципе (c collection api все намного лучше) это сейчас и подтягиваю. Так же по иннерции залез (одним глазом да, шоколадным) в джаву ЕЕ, но только через лекции головача. И я вот не знаю, что сейчас делать пулей ломиться в андроид сдк или нормально уже добить всю хуйню из интерпрайза.
Проблема в том, что я боюсь что от собеседований на тырпрайз джуна будут ожидать чуда, тогда как на андроид будут ожидания меньше. Плюс еще пару мелких факторов, которые лежат на плечах и жалят в жопу, так что нужно расписывать детальнее, вот телега: walkthroughtheworld. Буду премного благодарен, если ответишь на пару вопросов.
Да сходи на пару собеседований и посмотри, что хотят, а то только и делаете, что хуйню какую-то читаете и ноете как вам страшно
Да с этим есть проблема, везде кошмарят. Я уже давно, хотел сходить, хотя бы на одно. Но тут как бы проблема сразу возникала, а как вообще попасть на собеседование. Я же правильно понимаю, что на отправленные резюме джуна ВООБЩЕ без опыта работы, большой % что положат болт? Щито делать, как напиздеть чтобы хотя бы попасть туда сука, хотя есть вакансии, под которые по всему подхожу, кроме ебучей строки "Требуемый опыт работы: 1–3 года".
Диванный теоретик, не отправивший ни одного резюме и даже не создавший еще акк на HH
>Я же правильно понимаю, что на отправленные резюме джуна ВООБЩЕ без опыта работы, большой % что положат болт
Да. Но если ты их вообще не будешь отправлять, лучше ничего не станет :^)
Если у тебя есть код, который ты можешь показать, и знания в голове, куда-нибудь рано или поздно возьмут. Есть места, готовые взять и обучить не очень опытного человека, даже если они активно таких не ищут.
Задание: подаётся число value и bitIndex( самый младший разряд имеет индекс 1). Функция должна заменить указанный бит на противоположный и вернуть новое число
Проваливаются на тесте
https://ideone.com/8tdpM3
Скажите, пожалуйста, что я не так делаю то или киньте свое решение
>что я не так делаю
Делаешь это на джаве.
Вроде это норм, просто ксорим с нужной маской.
static int flipBit(int value, int bitIndex) {
return value ^ (1 << (bitIndex - 1));
}
На тырпрайз джуна нужно иметь фишечки вроде знания SQL, javascript, css/html. Учится просто, привлекательности добавляет значительно.
такой-то фуллстак!
Да ничего там не "объединяется".
Ты просто каждый раз генеришь сетку с нужными параметрами, в зависимости от текущего зума, и всё. Что тут читать?
А на чём ты это делаешь?
Если на свинге, то есть классная книжка Filthy Rich Clients - там много про то, как сделать на свинге красиво.
На javafx пытаюсь сделать 2д представление звездной системы. Зумом приближать к некому объекту и всегда видеть сетку, где нибудь сбоку на экране будет пояснение, чему равняется шаг сетки.
Я прост вообще мало знаком с графикой, и если бы найти какие статьи или книги с решением схожих задач, то тогда было бы неплохим бустом.
http://www.allitebooks.com/python-graphics/
http://www.allitebooks.com/build-your-own-2d-game-engine-and-create-great-web-games/
http://www.allitebooks.com/2d-graphics-programming-for-games/
http://www.allitebooks.com/java-game-development-with-libgdx-2nd-edition/
Первые три книжки - не на джаве, зато про графику, четвёртая - именно про игры и на джаве.
Есть такая штука как vlcj. Вроде как через нее можно проиграть вебм, но как? Информации вообще не нашёл. Объясните, как заставить ее работать.
Есть такая херня
@FXML
private MediaView video;
Как через vlcj запустить видео в MediaView?
Ну не совсем, если хорошо получиться выложу на двачах
по задумке удобная херня
но сука тут блтяь ебаные вебм которые не поддерживаються
уже 3 день ебусь, заставить работать никак
уже подумывал чтоб на лету конвертировать в мп4, но это пиздец, шаг отчаяния
Используя средства javafx скорее всего никак. Скорее всего можно на лету перекодировать во что-нибудь что поддерживается, ну или писать рендер своими ручками. Хотя сомневаюсь, что в fx есть что-нибудь низкоуровневое и пирформансное для подобных вещей.
А скорость перекодирования?
Это будет долго? хуево будет если надо ждать по 1-10 мин до запуска видоса
Если javafx поддерживает стримы видео, то перекодировать можно на лету. Т.е. твой код просто будет через jni вызывать ffmpeg, забирать у него по кусками байты и отдавать их javafx.
Сохраню, если ничего не найду - буду так мутить
Успехов.
Советую обратить особое внимание на первую книжку. Там именно о том, как всё это вообще рисуется, с формулами и т.д. Включая твою сетку - в первой главе.
Знания питона там нужны абсолютно минимальные, примеры можно делать вообще без проблем.
Спасибо, мудрый
Спасибо еще раз.
net
Прошёл пару уровней на Джавараш, но нет ощущения, что это полезно.
Книга Core Java.
Из джавы выходят только вперед ногами
Алсо, 33 лвл на джавараш. Это ад и израиль. Я не спорю, много полезного, практики, навык нарабатывается просто пиздец. Но валидатор и теория - просто пизда. Единственный вариант - решать то, что решается и идти вперед пока хватает материи, а потом возвращаться.
Ты же не будешь отрицать, что с возрастом процесс обучения меняется? Тот анон не сказал что всё, пиздец-пиздец, мозги кирпичом в 30, иди дворником работай.
Он сказал, что обучение в 30 отличается от обучения в 20.
мимо_обучающийся_в_27
Пока был на джавараш практика там была уровня /b Это просто пиздец. Там, конечно, научат писать хеллоуин ворлды, но программистом не сделают
Я сейчас там же. Решил идти в сторону тырпрайза. Порядок такой
Sql/jdbc
Servlet
Hibernate
Spring
Попутно изучаю паттерны/и всякие сопутствующие скилы, типа чистого кода
Тоже обучающийся в 27. Согласен, что немного отличается. Просто к этому времени скорее всего мозг в принципе отвык учиться. С другой стороны появляется больше усидчивости и упорства.
А вообще диалектический принцип перехода количества в качество работает одинаково в любом возрасте.
Тебя никто программистом не сделает. Ты сделаешься им сам со временем написания различных хелоуворлдов.
А ещё можешь сделаться гоанокодером
>>34606
>мозг в принципе отвык учиться
Это (с натяжкой) можно отнести только к изучению иностранных языков.
Или к спорту.
Т.е. к тем вещам, которым человек учится бессознательно.
На самом же деле, к этому времени мозг только-только сформировался, и то не у всех.
Человек только начал понимать, что то, что ему говорят другие - это не просто какой-то фоновый шум, но, иногда, и дельные вещи.
Так что не ебите себе мозги, дети, а учитесь спокойно.
цель: знать в общих чертах java.
время: час вечером
инб4: читай шапку
>время: час
Можешь начинать с чего угодно, пока доберешься до уровня джуниора - на пенсию выйдешь и забудешь, что там было в первых разделах.
если ты не дохуя гений, то постарайся выделить часа три как минимум.
А ты думал, что, может, программирование просто не твое?
Мне, например, 30 и есть хорошая не IT работа. Но вкатываться на трейни вообще не комильфо. Поэтому сейчас точу скил, чтобы со способностями мидла, пойти на джунана мидла сразу не возьмут. Про это и писали аноны. Образовательные способности, как ни странно, никуда не ушли со времен универа.
Я правильно понимаю, что данные хранятся в слое БД, а передаются между инстансами приложения в формате JSON?
Получается, на входе модуля календаря все данные в атомарном виде (или в виде ключ+атрибуты)?
Я привык на учебе к монолитной архитектуре, когда ты передаешь внутри приложения примитивы или ссылки на объекты; переход к распределенной архитектуре, как видите, вызывает сомнения.
Благодарю за внимание.
эти новомодные микросервисы - одна сплошная боль и почти ни одного плюса. Писал на хабре, так меня заминусили.
Хайп дороже логики
как можешь так и передавай. Жавовская сериализация и всякие rmi позволяют передавать любые объекты
Работаю джава-макакой, делая работу на работе. Боюсь, что если меня уволят или проект провалится, следующую работу буду искать долго. В каком направлении развиваться, чтобы было легко устроиться джава-разработчиком? Андроид?
Ну, ясный хуй, энтерпрайз и банкинг на джаве можно, а борду - ни в коем случае.
Борда - это же такие охуительные технологии, что для этого нужны специальные языки и специальные программисты - с макбуками и на гироскутерах, и чтобы у каждого по бокалу смузи в каждой руке.
Иначе - вместо борды интернет-банк получится.
ну сделай на spring + thymeleaf, если религия не позволяет использовать некоторые технологии
ну можно внеочередную
По сути можно было бы писать на крестах расте и не переплачивать?
Потомучто бизнес. Крестовику платить надо больше, сложно найти и больше мозгоебли с ними.
Ну тот же гугл убьёт за лишнюю секунду перфоманца, а денег хоть революции спонсируй
Да они запизделись уже просто. Все просто - зачастую либо инфраструктура вся на джаве, либо либо уже есть готовое решение на джаве и так далее.
Писать на крестах в 2к18 что-то кроме ембеда и гейдева - это изврат похлеще копрофилии.
Я пишу на C++ в 2к18
Правда мы пишем софтварь по работе с ip камерами. Там нужна производительность очень(больше камер на меньшем железе).
Но embedded там нет, у камер веб интерфейс. Шлёшь им гет запросы и всё шикоз
Во первых статическая типизация - ты же уже не скриптики на коленке пишешь.
Во-вторых хорошая производительность, и при этом хорошая портабельность (а не как с С - нужно постоянно перекомпилировать).
В-третьих - это развитая технология, с огромным количеством инструментария и разработчиков, с целым ворохом технологий для быстрого построения бэкэнд приложений и тому подобного - тот же Спринг.
В-четвертых джава в первую очередь популярна в бэкэнде, а ты перечислил фронтэндовские языки. Фронтэнд - это хуйня на палочке, просто верхушка айсберга.
В-пятых это конечно легаси и все что с ним связано.
прост это все равно что использовать гладильную доску вместо стола
за каждой технологией и ЯП существует определенная ниша, которой стоит придерживаться, для того что бы не сеять хаос и содомию
>Во первых статическая типизация - ты же уже не скриптики на коленке пишешь.
Я не спрашиваю Why java over python, я спрашиваю why java over rust/crystal/C++/ect
>Во-вторых хорошая производительность
Телл ми абаут ит
>хорошая портабельность
Для мобилок это хорошо, для веба бесполезно.
> а ты перечислил фронтэндовские языки
php и ruby не фронтендовые языки
>Легаси
Походу это реальная причина
Ну да, блять, тебя забыли спросить для чего яву использовать. Еще блять и спринг мвц целый накатали мимо нишы-то, вот идиоты!
> rust
Слишком молод. Нормальных либ/фреймворков нету.
> C++
Тогда придётся выделить как минимум пару человек, которые будут заниматься пердолингом билд-скриптов и обновлением компонентов (что в жаве делает специальная программа), поскольку порой эта задача на C++ сложней чем непосредственно написание кода. Ну и писать код на C++ сложнее, поскольку кроме того чтобы думать "а что он должен делать", нужно ещё думать "а как бы тут не впасть в UB".
>Я не спрашиваю Why java over python, я спрашиваю why java over rust/crystal/C++/ect
Когда рефлексию нормальную подвезут, тогда и приходи. Пол спринга на рефлексии построено.
>Телл ми абаут ит
Ай м теллинг ю
Может ты застрял в 90х, но в современности JIT и оптимизации ява машины творят чудеса.
>Для мобилок это хорошо, для веба бесполезно.
Сразу видно ыксперта
>php и ruby не фронтендовые языки
как PHP расшифровывается не напомнишь?
>Походу это реальная причина
Вобщем-то у всех крупных языков так, ява даже не самый канон - самый канон - это кресты, для которых из-за легаси приходится знать 20 разношерстных стандартов, и знать всех их грабли и багифичи, которые далеко не очевидны. Вместо того, чтобы просто взять и писать на D как человек.
Да и собственно даже они от этого уходят - гейдев оперирует либо блюпринтами для даунов, либо сиобразными скриптоязыками, а критические компоненты пишутся кучкой профессионалов.
А для ембеда С лучше крестов - компилятор доступен для большего количества экзотических платформ, меньше футпринт да и производительность без тех же виртуальных таблиц возрастает.
Насчет стриминг платформ - еще может быть -> >>37322
отвечу словами классика
1
Высшее образование в IT своими руками:
Введение: Мотивация, базовые навыки для дальнейшего изучения.
Книги: «А я был в компьютерном городе», рандомный советский школьный учебник по информатике, SICP, конкретная математика.
Усердно изучаешь английский. Читать лучше на английском. Сложно только первую книгу.
Как только разберёшься (вместе с английским это была самая сложная часть курса), тебе понадобится какой-нибудь язык программирования.
Ещё не для того, чтобы программировать, а для того, чтобы писать учебные примеры (на схеме это делать достаточно муторно).
Чтобы меня не сочли троллем в первом абзаце пасты предлагаю
1) C (Учебник Дейтелов, кресты (c++) долго не используй, зашкваришься)
2) Java («Философия» Эккеля) или
Python (DIVE INTO PYTHON из той самой пасты) на выбор. Можно оба.
Всё достаточно лёгкое (C в меньшей степени), всё считается местными говном (C в меньшей степени). После SICPа идти будет очень легко, си тебе сам по себе не понадобится, но скиллы писания на нём пригодятся ещё много раз.
Пишешь на выбранном языке 10 простых программ (решение уравнений, перемножение матриц, игры а-ля 90-е, ИИ для какой-нибудь из игр, просто что-нибудь прикольное, что в голову придёт). Вооружившись этой хуйнёй переходишь к изучению матчасти.
Матчасть: Твоя задача на данном этапе — получение фундаментальных представлений по CS.
Книжки будут вдвое толще, чем на предыдущем этапе, понимать сразу всё не будешь, но перечитывай мере необходимости.
а) Дискретка. НЕ ОТЛЫНИВАТЬ. Читай любой учебник.
Понимать (отчётливо): множества, алгебры, отображения, логику, графы.
Реши простейшие задачи, докажи несложные теоремы. Остальное можешь отложить.
б) Базы данных — нужно разобраться с БД, обычно этот шаг пропускают и начинаются серьёзные проблемы и откровенно кривые архитектуры.
Учебники: Си Джей Дейт, введение в системы баз данных.
Весь можешь не читать, прочитай 2/3, чтобы понимал про транзакции, нормальные формы (хоть первые 4 штуки), ER-модель, реляционное счисление, отображение из ER-модели в реляционное счисление.
Потом берёшь любой учебник по SQL (Моисеенко какой-нибудь сканает).
Базы данных в заданиях ты должен проектировать в уме, сразу в 3NF и быстро. Учишь SQL.
Пишешь какое-нибудь приложение на своём языке, которое использует БД (гостевуху с примитивным интерфейсом можешь сваять, поймёшь, что веб — говно и бросишь эту парашу на этом этапе).
Решаешь задачки у Моисеенко.
в) Архитектура ЭВМ. Читаешь Таненбаума. Знать: что такое вентиль, что из них составляют: там очень подробно описано по разделам.
Спроектировать простейший «железный» компьютер из блоков. Знать про адресацию памяти, прерывания.
Спроектировать всякой хуйни в эмуляторе схем. Лёгкая интересная часть.
г) Алгоритмы. Понимать: как работает процессор, как оценивается скорость алгоритма, почему существует много алгоритмов, как выбрать нужный.
Знать базовые алгоритмы сортировки, поиск можешь пока не трогать. Знать структуры данных и связанные с ними алгоритмы.
Знать (в общих чертах, не трать на это много времени), что из себя представляет ассемблер.
Всякие связанные списки из массивов ты должен уметь реализовывать стоя у доски с маркером.
Книги: Вирт, Ахо по алгоритмам и структурам данных. Начни читать Кнута, по крайней мере разберись с его компьютерами и напиши для них несколько программ на бумажке.
Сделай свой виртуальный компьютер, но не такой старый и сложный, как у Кнута. Сделай для него ассемблер и напиши пару простых программ.
д) Операционные системы. Знать алгоритмы для многозадачности, потоки, процессы, нити. Обедающие философы.
Знать про планирование ресурсов. Знать про файловые системы. Про микроядра всякие почитай. Хорошо разберись в параллельном программировании.
Помнишь толстенный учебник Дейтелов по си? Ну вот, у них и про ОС есть, почитай. И у Таненбаума тоже не только архитектура.
Пишешь сложную многопоточную программу, чтобы были синхронизации, пайпы, семафоры и всё такое.
Тут жава лучше пистона, тебе будут советовать кресты и QT, но… Можно и так, в общем.
е) Формальные языки и теория трансляции — нужно научиться обрабатывать текст и глубоко понять, как работают компиляторы.
Книги: читаешь главу своего учебника по дискретке (помнишь, ты её бросил?) про формальные языки. В центре внимания Ахо, Книга Дракона.
Понимать: грамматики, языки, регулярные выражения, текстовые анализаторы — компиляторы, трансляторы, интерпретаторы, стадии компиляции,
линковка, оптимизации. Ахо ты целиком всё равно не осилишь, но постарайся понять как можно больше.
Пишешь интерпретатор простого языка программирования (можешь взять любой говноакадемический язычишко).
Потом пишешь для него компилятор для своей виртуальной машины из пункта г.
Читаешь книгу издательства О'Рейли по регуляркам. Удобная штука. Открываешь для себя вёрстку: LaTeX, html, css, xml.
Особенно последний Глянь быстренько XPath.
ж) Парадигмы программирования. Заходишь сюда, создаёшь тред [ООП-парадигма|функциональщина|няшная сишечка] соснула.
Записывашь баззворды, гуглишь, участвуешь в срачах.
У тебя уже есть опыт писанины и на императивщине, и на ООП, и схему ты тоже неплохо знаешь: скобками голыми тебя не запугаешь.
Можешь подучить простой хаскелл и понтоваться плохими программами перед местными школьниками.
Свободное плаванье: К этому времени пора бы определяться с работой.
а) Хотя веб-петухи встают, когда ты входишь в комнату, можешь податься в очень продвинутый веб (если ты с него не очень сильно блевал).
Гугловское/амазоновское облако, корпоративные проекты на жабе и дотнете, хуйлоад. Глянь в сторону банков, у них есть достаточно системы.
Есть целые конторы, которые автоматизируют это барахло. Очень пригодятся БД, параллельное программирование и.т.д. Языки: пистон, жава ЕЕ.
Придётся изучать глубже, но у тебя уже хорошая база по этим языкам.
б) Базы данных. Зачитывался Дейтом? В конце концов добро пожаловать в мир высокой надёжности, параллелизма и прочей ерунды.
Тебя ждут оракловые базы данных, PL/SQL. Очень необычно и интересно, большие зарплаты, веб-петухи стонут.
в) Гейдев. Добиваешь математическую базу в области линала и идёшь в гей-дев.
Нужны будут кое-какие дополнительные алгоритмы по компьютерной графике, которую я не стал заносить в матчасть.
Потребуется учить кресты и местные приблуды. Если ты действительно осилил список сверху, то тебе там ещё и отсосут.
Да, оп, игры для мобильников — это не гей-дев, не трать на это своё время.
д, е, ж, з и.т.д.) Не верю, что к этому моменту ты сам не будешь знать, что тебе делать.
отвечу словами классика
1
Высшее образование в IT своими руками:
Введение: Мотивация, базовые навыки для дальнейшего изучения.
Книги: «А я был в компьютерном городе», рандомный советский школьный учебник по информатике, SICP, конкретная математика.
Усердно изучаешь английский. Читать лучше на английском. Сложно только первую книгу.
Как только разберёшься (вместе с английским это была самая сложная часть курса), тебе понадобится какой-нибудь язык программирования.
Ещё не для того, чтобы программировать, а для того, чтобы писать учебные примеры (на схеме это делать достаточно муторно).
Чтобы меня не сочли троллем в первом абзаце пасты предлагаю
1) C (Учебник Дейтелов, кресты (c++) долго не используй, зашкваришься)
2) Java («Философия» Эккеля) или
Python (DIVE INTO PYTHON из той самой пасты) на выбор. Можно оба.
Всё достаточно лёгкое (C в меньшей степени), всё считается местными говном (C в меньшей степени). После SICPа идти будет очень легко, си тебе сам по себе не понадобится, но скиллы писания на нём пригодятся ещё много раз.
Пишешь на выбранном языке 10 простых программ (решение уравнений, перемножение матриц, игры а-ля 90-е, ИИ для какой-нибудь из игр, просто что-нибудь прикольное, что в голову придёт). Вооружившись этой хуйнёй переходишь к изучению матчасти.
Матчасть: Твоя задача на данном этапе — получение фундаментальных представлений по CS.
Книжки будут вдвое толще, чем на предыдущем этапе, понимать сразу всё не будешь, но перечитывай мере необходимости.
а) Дискретка. НЕ ОТЛЫНИВАТЬ. Читай любой учебник.
Понимать (отчётливо): множества, алгебры, отображения, логику, графы.
Реши простейшие задачи, докажи несложные теоремы. Остальное можешь отложить.
б) Базы данных — нужно разобраться с БД, обычно этот шаг пропускают и начинаются серьёзные проблемы и откровенно кривые архитектуры.
Учебники: Си Джей Дейт, введение в системы баз данных.
Весь можешь не читать, прочитай 2/3, чтобы понимал про транзакции, нормальные формы (хоть первые 4 штуки), ER-модель, реляционное счисление, отображение из ER-модели в реляционное счисление.
Потом берёшь любой учебник по SQL (Моисеенко какой-нибудь сканает).
Базы данных в заданиях ты должен проектировать в уме, сразу в 3NF и быстро. Учишь SQL.
Пишешь какое-нибудь приложение на своём языке, которое использует БД (гостевуху с примитивным интерфейсом можешь сваять, поймёшь, что веб — говно и бросишь эту парашу на этом этапе).
Решаешь задачки у Моисеенко.
в) Архитектура ЭВМ. Читаешь Таненбаума. Знать: что такое вентиль, что из них составляют: там очень подробно описано по разделам.
Спроектировать простейший «железный» компьютер из блоков. Знать про адресацию памяти, прерывания.
Спроектировать всякой хуйни в эмуляторе схем. Лёгкая интересная часть.
г) Алгоритмы. Понимать: как работает процессор, как оценивается скорость алгоритма, почему существует много алгоритмов, как выбрать нужный.
Знать базовые алгоритмы сортировки, поиск можешь пока не трогать. Знать структуры данных и связанные с ними алгоритмы.
Знать (в общих чертах, не трать на это много времени), что из себя представляет ассемблер.
Всякие связанные списки из массивов ты должен уметь реализовывать стоя у доски с маркером.
Книги: Вирт, Ахо по алгоритмам и структурам данных. Начни читать Кнута, по крайней мере разберись с его компьютерами и напиши для них несколько программ на бумажке.
Сделай свой виртуальный компьютер, но не такой старый и сложный, как у Кнута. Сделай для него ассемблер и напиши пару простых программ.
д) Операционные системы. Знать алгоритмы для многозадачности, потоки, процессы, нити. Обедающие философы.
Знать про планирование ресурсов. Знать про файловые системы. Про микроядра всякие почитай. Хорошо разберись в параллельном программировании.
Помнишь толстенный учебник Дейтелов по си? Ну вот, у них и про ОС есть, почитай. И у Таненбаума тоже не только архитектура.
Пишешь сложную многопоточную программу, чтобы были синхронизации, пайпы, семафоры и всё такое.
Тут жава лучше пистона, тебе будут советовать кресты и QT, но… Можно и так, в общем.
е) Формальные языки и теория трансляции — нужно научиться обрабатывать текст и глубоко понять, как работают компиляторы.
Книги: читаешь главу своего учебника по дискретке (помнишь, ты её бросил?) про формальные языки. В центре внимания Ахо, Книга Дракона.
Понимать: грамматики, языки, регулярные выражения, текстовые анализаторы — компиляторы, трансляторы, интерпретаторы, стадии компиляции,
линковка, оптимизации. Ахо ты целиком всё равно не осилишь, но постарайся понять как можно больше.
Пишешь интерпретатор простого языка программирования (можешь взять любой говноакадемический язычишко).
Потом пишешь для него компилятор для своей виртуальной машины из пункта г.
Читаешь книгу издательства О'Рейли по регуляркам. Удобная штука. Открываешь для себя вёрстку: LaTeX, html, css, xml.
Особенно последний Глянь быстренько XPath.
ж) Парадигмы программирования. Заходишь сюда, создаёшь тред [ООП-парадигма|функциональщина|няшная сишечка] соснула.
Записывашь баззворды, гуглишь, участвуешь в срачах.
У тебя уже есть опыт писанины и на императивщине, и на ООП, и схему ты тоже неплохо знаешь: скобками голыми тебя не запугаешь.
Можешь подучить простой хаскелл и понтоваться плохими программами перед местными школьниками.
Свободное плаванье: К этому времени пора бы определяться с работой.
а) Хотя веб-петухи встают, когда ты входишь в комнату, можешь податься в очень продвинутый веб (если ты с него не очень сильно блевал).
Гугловское/амазоновское облако, корпоративные проекты на жабе и дотнете, хуйлоад. Глянь в сторону банков, у них есть достаточно системы.
Есть целые конторы, которые автоматизируют это барахло. Очень пригодятся БД, параллельное программирование и.т.д. Языки: пистон, жава ЕЕ.
Придётся изучать глубже, но у тебя уже хорошая база по этим языкам.
б) Базы данных. Зачитывался Дейтом? В конце концов добро пожаловать в мир высокой надёжности, параллелизма и прочей ерунды.
Тебя ждут оракловые базы данных, PL/SQL. Очень необычно и интересно, большие зарплаты, веб-петухи стонут.
в) Гейдев. Добиваешь математическую базу в области линала и идёшь в гей-дев.
Нужны будут кое-какие дополнительные алгоритмы по компьютерной графике, которую я не стал заносить в матчасть.
Потребуется учить кресты и местные приблуды. Если ты действительно осилил список сверху, то тебе там ещё и отсосут.
Да, оп, игры для мобильников — это не гей-дев, не трать на это своё время.
д, е, ж, з и.т.д.) Не верю, что к этому моменту ты сам не будешь знать, что тебе делать.
Я вкатывался со скриптов для армы. Потом пытался вкатиться в кресты, а позвали в джаву - ну там примерно один хуй.
Можешь посмотреть Scratch, как начинающий
https://scratch.mit.edu/
Еще вот списочек других игр
https://medium.mybridge.co/12-free-resources-learn-to-code-while-playing-games-f7333043de11
Еще в
2
Итак, салаги, вы пришли к старым морским волкам в /pr/ и хотите стать программистами. Надеюсь, вы знаете, что хотите, так как это нелёгкий путь. Позвольте разъяснить вам несколько моментов: а) Большинство людей, которые делают сайты – не программисты. Если вы хотите делать сайты, но не хотите быть программистом – берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху. Вопросы решайте в гугле, /s/ и форумах. Здесь другая тематика. Эту пасту дальше читать не надо, мы будем долго разговаривать, а вам нельзя терять время. б) За 21 день освоить программирование не получится. Никак. Совсем. Если срочно нужны деньги, то присоединяйся к товарищам, которые встали и ушли после пункта а. Нормальный объём академических часов в высшем образовании – 8000 штук. Это три года хорошей учёбы. Для того чтобы освоить материал хорошо надо ещё больше. Если параллельно бухать в общаге, то можно и в пять лет не уложиться. в) Я не Попов, магических способов изучения программирования за два DVD-диска не знаю, и учить им не буду. Я худший наставник, чем Кормен или Ахо, и буду только указывать вам направления деятельности. Готовься искать информацию сами. В каждой книге читайте, по крайней мере, оглавление. Задавайте вопросы. г) Программирование не есть изучение языков программирования. Хотя мы начнём его изучение с нескольких языков, они не являются самоцелью курса. д) Если вам не нравится паста – пишите конструктивную критику и предлагайте лучшие решения. От попёрдывания в лужу паста лучше стать не сможет.
И так, надеюсь тут остались только те, кто хотят учиться. Если вам надо учиться, но вы не хотите, значит надо не вам. Наслаждайтесь. Вы станете настоящими программистами. Я надеюсь, что вы знаете математику и информатику на уровне 9 класса. Если не знаете, то перечитайте учебники. Курс от /pr/ состоит из модулей, каждый модуль состоит из двух частей: а) Матчасть. В матчасти перечислены моменты, которые надо изучить и книги, которые надо читать при изучении модуля. Все книги есть в Интернете. Если позволяют деньги, можно заказывать печатные варианты. Лучше читать на английском, но если не получается – используйте хороший русский перевод. Читайте так, как вам нравится. Если ничего не понимаете – читайте вперёд и перечитывайте после. Можно начать другой модуль. Можно заняться практикой. Можно почитать другую книгу похожей тематики. б) Практика. На практике надо писать программы. Ну, или, по крайней мере, составлять алгоритмы. Я буду предлагать небольшие проекты, которые охватывают материал из модуля. Но писать надо то, что нравится.
Модуль первый, введение. Задача: получить мотивацию и базовые знания, которые потребуются для освоения дальнейшего материала. Матчасть: информатика, программирование на языках высокого уровня, базовые понятия программирования: итерации, рекурсия, процедуры, функции, абстракции, классы, объекты, методы, переменные, присваивание, замещение, цикл, ветвление. Вначале советую читать SICP. Не весь. Вычисления на регистровых машинах можно отложить на потом. Нужно понять и прочувствовать принципы работы схемы (язык программирования, который используется в этой книге): это простой и одновременно мощный язык. Поначалу будет сложно, так как схема не похожа на бейсик, паскаль или что вы там изучали в школе. Но если вам удастся ухватиться по крайней мере за половину того, что написано в SICPе дальше будет легко и приятно. Писать на схеме сложные приложения невозможно. Это чисто учебный язык и вы никогда не будете его использовать на практике. Поэтому далее надо выучить кое-что посерьёзнее. Обычно первокурсники в России изучают язык си. Это не очень плохая идея в той части, что большинство языков имеют си-подобный синтаксис. В части байтоебли и плохого ООП на крестах (так я буду называть язык C++) это плохая идея. Поэтому откройте толстенный учебник Дейтелов и хорошенько изучите его ровно до конца шестой главы. Это где-то 1/3 часть учебника. Дальше можете не читать, так как рискуете навсегда испортить себе вкус. Но можете и прочитать. На си можно писать сложные программы, но так тоже никто не делает. Поэтому большинство программ из курса я рекомендую писать на Java и Python.
Отвечаю на недовольный гул в аудитории: Java потому, что java легче. Изучая что-то другое на этом этапе, вы просто запутаетесь в особенностях языка. Особенно это касается шарпа (хотя на нём можно писать, как на джаве, только вот ведь не захочется), крестов (там сложно не запутаться) и хачкеля. Python потому, что некоторые задачи легче решать на скриптовом языке. Кроме того, в питоне есть некое подобие функциональщины, и если рано припечёт, то можно будет посмотреть и её. Хорошо ориентируясь в этих языках (на это не нужно слишком много времени – это не кресты, которые нужно учить годами) можно потом достаточно быстро изучить другие языки. А можно и не изучать, так как оба этих языка (в сущности, плохих) широко применяются до сих пор. Не заворачивайтесь на IDE, компиляторах и прочем инструментарии: вы всё равно перепробуете все доступные. Не дожидайтесь, пока вас заебёт первая рекомендованная среда, а сразу поставьте все распространённые и выберите понравившуюся.
...
2
Итак, салаги, вы пришли к старым морским волкам в /pr/ и хотите стать программистами. Надеюсь, вы знаете, что хотите, так как это нелёгкий путь. Позвольте разъяснить вам несколько моментов: а) Большинство людей, которые делают сайты – не программисты. Если вы хотите делать сайты, но не хотите быть программистом – берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху. Вопросы решайте в гугле, /s/ и форумах. Здесь другая тематика. Эту пасту дальше читать не надо, мы будем долго разговаривать, а вам нельзя терять время. б) За 21 день освоить программирование не получится. Никак. Совсем. Если срочно нужны деньги, то присоединяйся к товарищам, которые встали и ушли после пункта а. Нормальный объём академических часов в высшем образовании – 8000 штук. Это три года хорошей учёбы. Для того чтобы освоить материал хорошо надо ещё больше. Если параллельно бухать в общаге, то можно и в пять лет не уложиться. в) Я не Попов, магических способов изучения программирования за два DVD-диска не знаю, и учить им не буду. Я худший наставник, чем Кормен или Ахо, и буду только указывать вам направления деятельности. Готовься искать информацию сами. В каждой книге читайте, по крайней мере, оглавление. Задавайте вопросы. г) Программирование не есть изучение языков программирования. Хотя мы начнём его изучение с нескольких языков, они не являются самоцелью курса. д) Если вам не нравится паста – пишите конструктивную критику и предлагайте лучшие решения. От попёрдывания в лужу паста лучше стать не сможет.
И так, надеюсь тут остались только те, кто хотят учиться. Если вам надо учиться, но вы не хотите, значит надо не вам. Наслаждайтесь. Вы станете настоящими программистами. Я надеюсь, что вы знаете математику и информатику на уровне 9 класса. Если не знаете, то перечитайте учебники. Курс от /pr/ состоит из модулей, каждый модуль состоит из двух частей: а) Матчасть. В матчасти перечислены моменты, которые надо изучить и книги, которые надо читать при изучении модуля. Все книги есть в Интернете. Если позволяют деньги, можно заказывать печатные варианты. Лучше читать на английском, но если не получается – используйте хороший русский перевод. Читайте так, как вам нравится. Если ничего не понимаете – читайте вперёд и перечитывайте после. Можно начать другой модуль. Можно заняться практикой. Можно почитать другую книгу похожей тематики. б) Практика. На практике надо писать программы. Ну, или, по крайней мере, составлять алгоритмы. Я буду предлагать небольшие проекты, которые охватывают материал из модуля. Но писать надо то, что нравится.
Модуль первый, введение. Задача: получить мотивацию и базовые знания, которые потребуются для освоения дальнейшего материала. Матчасть: информатика, программирование на языках высокого уровня, базовые понятия программирования: итерации, рекурсия, процедуры, функции, абстракции, классы, объекты, методы, переменные, присваивание, замещение, цикл, ветвление. Вначале советую читать SICP. Не весь. Вычисления на регистровых машинах можно отложить на потом. Нужно понять и прочувствовать принципы работы схемы (язык программирования, который используется в этой книге): это простой и одновременно мощный язык. Поначалу будет сложно, так как схема не похожа на бейсик, паскаль или что вы там изучали в школе. Но если вам удастся ухватиться по крайней мере за половину того, что написано в SICPе дальше будет легко и приятно. Писать на схеме сложные приложения невозможно. Это чисто учебный язык и вы никогда не будете его использовать на практике. Поэтому далее надо выучить кое-что посерьёзнее. Обычно первокурсники в России изучают язык си. Это не очень плохая идея в той части, что большинство языков имеют си-подобный синтаксис. В части байтоебли и плохого ООП на крестах (так я буду называть язык C++) это плохая идея. Поэтому откройте толстенный учебник Дейтелов и хорошенько изучите его ровно до конца шестой главы. Это где-то 1/3 часть учебника. Дальше можете не читать, так как рискуете навсегда испортить себе вкус. Но можете и прочитать. На си можно писать сложные программы, но так тоже никто не делает. Поэтому большинство программ из курса я рекомендую писать на Java и Python.
Отвечаю на недовольный гул в аудитории: Java потому, что java легче. Изучая что-то другое на этом этапе, вы просто запутаетесь в особенностях языка. Особенно это касается шарпа (хотя на нём можно писать, как на джаве, только вот ведь не захочется), крестов (там сложно не запутаться) и хачкеля. Python потому, что некоторые задачи легче решать на скриптовом языке. Кроме того, в питоне есть некое подобие функциональщины, и если рано припечёт, то можно будет посмотреть и её. Хорошо ориентируясь в этих языках (на это не нужно слишком много времени – это не кресты, которые нужно учить годами) можно потом достаточно быстро изучить другие языки. А можно и не изучать, так как оба этих языка (в сущности, плохих) широко применяются до сих пор. Не заворачивайтесь на IDE, компиляторах и прочем инструментарии: вы всё равно перепробуете все доступные. Не дожидайтесь, пока вас заебёт первая рекомендованная среда, а сразу поставьте все распространённые и выберите понравившуюся.
...
Книги: Философия Java Эккеля, читать по мере необходимости. Не занимайтесь особым оверинжинирингом. По крайней мере многопоточность следует отложить до лучших времён. Не забивайте себе голову паттернами. Книга номер два - в глубь языка Python. Кстати, я знаю, как пишется «вглубь», просто использую русский перевод с официального сайта. Опять же – изучайте разделы по мере необходимости. Сомневаюсь, что тёлки будут течь при одном упоминании каких-то ваших характеристик, но изучить основы этого языка можно очень быстро. Кроме того, попробуйте почитать «Конкретную математику». Пока не станет скучно. Я рассчитываю, что скучно станет весьма быстро, хотя книга (как и TACP Кнута) написана с характерным юморком. Асимптотику лучше отложить до алгоритмов. Если чувствуете, что идёт совсем плохо (не Кнут с Паташником, а вообще), то читайте школьные учебники. Лучше старые, советские. Можно почитать книги для совсем маленьких детей «А я был в компьютерном городе», «Занимательная информатика» и.т.п. – это просто весело. Вам должно быть интересно читать. Если на этом этапе вам скучно, то дальше будет вообще кромешный непролазный пиздец. Ещё не поздно пойти писать гостевуху. Да, это была самая сложная часть. Если вынести из неё ещё и знание английского, то всё остальное покажется лёгкой прогулкой.
Практика: из всех учебников, которые я перечислил, задачи есть только в SICP'е и Дейтелах (ну и в конкретной математике, конечно). Их нужно решать. Освойте все простые конструкции, напишите несколько несложных игр, для одной из них напишите ИИ. Порешайте задачи для школьников, которые просят сделать за них лабу в /pr/ - но обязательно пишите на другом языке.
Теперь можно перейти к дискретной математике. Задача: понимать язык, на котором написаны остальные книги. Нет, это не самый занудный раздел. Теория трансляции будет зануднее. Матчасть: Открываете любой учебник, в котором есть: множества, алгебры, отображения, графы. Хорошо подойдут университетские методички. Можете видеокурсы с интуита посмотреть. Учишь. Плюс нужна элементарная матлогика – кванторы, законы де Моргана, таблицы истинности. Семиотику пока трогать не надо. Практика: Выполняете задания. Доказываете теоремы.
Традиционно далее изучаются базы данных. Базы данных есть в любом мало-мальски сложном приложении. Даже в компьютерных играх есть. Даже в ссаных гостевухах, которые сейчас пишут оставившие нас несколько абзацев назад «коллеги». Поэтому базы данных надо знать. Сейчас используются исключительно реляционные базы данных. Некоторые люди поговаривают про key-value хранилища (непременно асинхронные и сверхбыстрые), ну так вот, они концептуально тоже реляционные. Но вы с ними обязательно разберитесь отдельно. Матчасть: идёте по учебнику Кристофера Дейта и изучаете темы. Идти до конца не надо: читайте выборочно и смело бросайте около 17 главы. Изучить надо реляционное исчисление, ER-модель, транзакции, SQL. SQL лучше изучать не по Дейту, а по какому-нибудь практическому учебнику – обратите внимание на книжку Моисеева и его сайт с задачами. Практика: проектировать базы данных. Быстро. В уме. Таблицы должны интуитивно получаться сразу в 3NF. Пишите запросы на сайте у Моисеенко. Напишите приложение, которое активно использует базу данных – многим студентам такое барахло нужно на курсачи и дипломы, можно даже найти заказчика за деньги. Посмотрите на ORM (SQLAlchemy, Hibernate и.т.п.), почитайте статейки. Узнайте, какие сейчас используются базы данных, и обязательно прикрути парочку к своим приложениям.
Архитектура ЭВМ. Задача: знать, как работает компьютер. Дабы не делать ляпов. По крайней мере, глупых ляпов. Матчасть: Читаете Таненбаума, про архитектуру ЭВМ. Лёгкое и интересное чтиво. Знать: что такое вентиль, что из них составляют: там очень подробно описано по разделам. Не путаться в шинах. Знать про адресацию памяти, прерывания. Практика: Спроектировать простейший "железный" компьютер из блоков. На бумажке. Чтобы выполнял программу, записанную в память. Спроектировать всякой хуйни в эмуляторе схем. Дешифратор для семисегментного индикатора, например. Ассемблер лучше особо не трогайте, познакомишься с ним для интересу у Кнута, а писать на нём вам всё равно не придётся. Во всяком случае, я до сих пор я пытался оградить вас от низкоуровневого программирования. Знаний там очень много, но они все совсем не фундаментальные и изучать их надо под конкретную должность. Начните читать Кнута, по крайней мере, разберитесь с его компьютерами (MIX и MMIX) и напишите для них несколько программ на бумажке. Сделайте свой виртуальный компьютер, но не такой старый и сложный, как у Кнута. Сделайте для него ассемблер и напишите пару простых программ.
Наконец переходим к алгоритмам. Задача: понимать, как оценивается скорость алгоритма, почему существует много алгоритмов, как выбрать нужный. Знать базовые алгоритмы. Знать структуры данных и связанные с ними алгоритмы. Хорошо знать! Их много самых разных. Всякие связные списки из массивов вы должны уметь реализовывать стоя у доски с маркером. Книги: Вирт, Ахо по алгоритмам и структурам данных. Тут вот читать надо всё, очень пригодится дискретка. Опять же, Кормен. Там очень много материала, разбирайтесь в нём постепенно. Можно вернуться к конкретной математике, раз уж вы её бросили. Практика: реализуйте алгоритмы, про которые читаете. Вряд ли в реальном мире вы будете использовать их в чистом виде, однако вы должны знать хорошие решения. Да, эта бодяга надолго. Изучайте параллельно что-нибудь ещё, следующие разделы лёгкие и богатые на практику.
Сети. Задача – научиться писать сетевые приложения. Матчасть: Таненабум наш друг и товарищ на все времена. Осиливайте модель OSI, читайте спецификации нескольких сетевых протоколов. Например, http и smpt. Особенно http – разберись с хедерами, сжатием и.т.п. Долго и хорошо почитайте в Википедии про современные системы свзяи. Посмотрите алгоритмы, которые используются в маршрутизации, разберись, чем пакет отличается от кадра. Практика: делаем сокет-сервер, например, для чата. Разберитесь с XML, HTML, JSON. XML особенно. Освойте XPath.
Операционные системы. Задача состоит не столько в изучении операционных систем, сколько в изучении принципов распределения ресурсов компьютера. Тут же надо разобраться с многозадачностью, которую я вам как-то отсоветовал изучать сразу. Матчасть: опять же Таненбаум. Разберитесь с алгоритмами для планирования процессов, организацией памяти, файловыми системами, ядрами. Есть толстенный учебник Дейтелов. Помните, вы по ним си изучали? Так вот, ещё есть и по ОС учебник. Отдельно изучаете многозадачность: синхронизацию, пайпы, семафоры, мониторы. В жабе всё это дело есть из коробки и писать программы, которые реализуют такую функциональность будет просто и приятно. Если вы бросили Эккеля на этом месте – самое время начать читать опять. Одного Эккеля мало, используйте гугл. Хотя, наверное, к этому времени вы уже сменили язык. Практика: многопоточные приложения. Сделайте свой компьютер многопоточным. Это весьма занимательно.
Формальные языки и методы трансляции. Да, вот она вершина, с которой видно весь остальной курс. Если вы досюда добрались, то у вас железные яйца. Жму руку. Хотя и написано, что теория трансляции, надо обратить внимание на синтаксически управляемую обработку данных вообще. Матчасть: начинаем разогрев с главы учебника по дискретке про семиотику. Продолжаем Ахо и Сети, Книгой Дракона. Введение по дискретке там есть, но бедное. Нужно осилить грамматики, языки, иерархию Хомского и соответствующие автоматы. Кстати, автоматы в конце SICPа есть. Изучаем работу компиляторов и интерпретаторов. Изучаем оптимизации. Отдельно про регулярные выражения. Что такое регулярное выражения вы поймёте при изучении иерархии Хомского. Но регулярные выражения – это уже прикладная область, и чтобы их составлять нужно быть знакомым с синтаксисом, обозначениями и.т.п. – учебник по дискретной математике вам этого не даст. Прочитайте книгу О'Рейли про регулярки. С совами на обложке. Практика: написать несколько сложных регулярок, компилятор, интерпретатор. Да, чёрт подери, настоящий оптимизирующий компилятор простого языка.
Книги: Философия Java Эккеля, читать по мере необходимости. Не занимайтесь особым оверинжинирингом. По крайней мере многопоточность следует отложить до лучших времён. Не забивайте себе голову паттернами. Книга номер два - в глубь языка Python. Кстати, я знаю, как пишется «вглубь», просто использую русский перевод с официального сайта. Опять же – изучайте разделы по мере необходимости. Сомневаюсь, что тёлки будут течь при одном упоминании каких-то ваших характеристик, но изучить основы этого языка можно очень быстро. Кроме того, попробуйте почитать «Конкретную математику». Пока не станет скучно. Я рассчитываю, что скучно станет весьма быстро, хотя книга (как и TACP Кнута) написана с характерным юморком. Асимптотику лучше отложить до алгоритмов. Если чувствуете, что идёт совсем плохо (не Кнут с Паташником, а вообще), то читайте школьные учебники. Лучше старые, советские. Можно почитать книги для совсем маленьких детей «А я был в компьютерном городе», «Занимательная информатика» и.т.п. – это просто весело. Вам должно быть интересно читать. Если на этом этапе вам скучно, то дальше будет вообще кромешный непролазный пиздец. Ещё не поздно пойти писать гостевуху. Да, это была самая сложная часть. Если вынести из неё ещё и знание английского, то всё остальное покажется лёгкой прогулкой.
Практика: из всех учебников, которые я перечислил, задачи есть только в SICP'е и Дейтелах (ну и в конкретной математике, конечно). Их нужно решать. Освойте все простые конструкции, напишите несколько несложных игр, для одной из них напишите ИИ. Порешайте задачи для школьников, которые просят сделать за них лабу в /pr/ - но обязательно пишите на другом языке.
Теперь можно перейти к дискретной математике. Задача: понимать язык, на котором написаны остальные книги. Нет, это не самый занудный раздел. Теория трансляции будет зануднее. Матчасть: Открываете любой учебник, в котором есть: множества, алгебры, отображения, графы. Хорошо подойдут университетские методички. Можете видеокурсы с интуита посмотреть. Учишь. Плюс нужна элементарная матлогика – кванторы, законы де Моргана, таблицы истинности. Семиотику пока трогать не надо. Практика: Выполняете задания. Доказываете теоремы.
Традиционно далее изучаются базы данных. Базы данных есть в любом мало-мальски сложном приложении. Даже в компьютерных играх есть. Даже в ссаных гостевухах, которые сейчас пишут оставившие нас несколько абзацев назад «коллеги». Поэтому базы данных надо знать. Сейчас используются исключительно реляционные базы данных. Некоторые люди поговаривают про key-value хранилища (непременно асинхронные и сверхбыстрые), ну так вот, они концептуально тоже реляционные. Но вы с ними обязательно разберитесь отдельно. Матчасть: идёте по учебнику Кристофера Дейта и изучаете темы. Идти до конца не надо: читайте выборочно и смело бросайте около 17 главы. Изучить надо реляционное исчисление, ER-модель, транзакции, SQL. SQL лучше изучать не по Дейту, а по какому-нибудь практическому учебнику – обратите внимание на книжку Моисеева и его сайт с задачами. Практика: проектировать базы данных. Быстро. В уме. Таблицы должны интуитивно получаться сразу в 3NF. Пишите запросы на сайте у Моисеенко. Напишите приложение, которое активно использует базу данных – многим студентам такое барахло нужно на курсачи и дипломы, можно даже найти заказчика за деньги. Посмотрите на ORM (SQLAlchemy, Hibernate и.т.п.), почитайте статейки. Узнайте, какие сейчас используются базы данных, и обязательно прикрути парочку к своим приложениям.
Архитектура ЭВМ. Задача: знать, как работает компьютер. Дабы не делать ляпов. По крайней мере, глупых ляпов. Матчасть: Читаете Таненбаума, про архитектуру ЭВМ. Лёгкое и интересное чтиво. Знать: что такое вентиль, что из них составляют: там очень подробно описано по разделам. Не путаться в шинах. Знать про адресацию памяти, прерывания. Практика: Спроектировать простейший "железный" компьютер из блоков. На бумажке. Чтобы выполнял программу, записанную в память. Спроектировать всякой хуйни в эмуляторе схем. Дешифратор для семисегментного индикатора, например. Ассемблер лучше особо не трогайте, познакомишься с ним для интересу у Кнута, а писать на нём вам всё равно не придётся. Во всяком случае, я до сих пор я пытался оградить вас от низкоуровневого программирования. Знаний там очень много, но они все совсем не фундаментальные и изучать их надо под конкретную должность. Начните читать Кнута, по крайней мере, разберитесь с его компьютерами (MIX и MMIX) и напишите для них несколько программ на бумажке. Сделайте свой виртуальный компьютер, но не такой старый и сложный, как у Кнута. Сделайте для него ассемблер и напишите пару простых программ.
Наконец переходим к алгоритмам. Задача: понимать, как оценивается скорость алгоритма, почему существует много алгоритмов, как выбрать нужный. Знать базовые алгоритмы. Знать структуры данных и связанные с ними алгоритмы. Хорошо знать! Их много самых разных. Всякие связные списки из массивов вы должны уметь реализовывать стоя у доски с маркером. Книги: Вирт, Ахо по алгоритмам и структурам данных. Тут вот читать надо всё, очень пригодится дискретка. Опять же, Кормен. Там очень много материала, разбирайтесь в нём постепенно. Можно вернуться к конкретной математике, раз уж вы её бросили. Практика: реализуйте алгоритмы, про которые читаете. Вряд ли в реальном мире вы будете использовать их в чистом виде, однако вы должны знать хорошие решения. Да, эта бодяга надолго. Изучайте параллельно что-нибудь ещё, следующие разделы лёгкие и богатые на практику.
Сети. Задача – научиться писать сетевые приложения. Матчасть: Таненабум наш друг и товарищ на все времена. Осиливайте модель OSI, читайте спецификации нескольких сетевых протоколов. Например, http и smpt. Особенно http – разберись с хедерами, сжатием и.т.п. Долго и хорошо почитайте в Википедии про современные системы свзяи. Посмотрите алгоритмы, которые используются в маршрутизации, разберись, чем пакет отличается от кадра. Практика: делаем сокет-сервер, например, для чата. Разберитесь с XML, HTML, JSON. XML особенно. Освойте XPath.
Операционные системы. Задача состоит не столько в изучении операционных систем, сколько в изучении принципов распределения ресурсов компьютера. Тут же надо разобраться с многозадачностью, которую я вам как-то отсоветовал изучать сразу. Матчасть: опять же Таненбаум. Разберитесь с алгоритмами для планирования процессов, организацией памяти, файловыми системами, ядрами. Есть толстенный учебник Дейтелов. Помните, вы по ним си изучали? Так вот, ещё есть и по ОС учебник. Отдельно изучаете многозадачность: синхронизацию, пайпы, семафоры, мониторы. В жабе всё это дело есть из коробки и писать программы, которые реализуют такую функциональность будет просто и приятно. Если вы бросили Эккеля на этом месте – самое время начать читать опять. Одного Эккеля мало, используйте гугл. Хотя, наверное, к этому времени вы уже сменили язык. Практика: многопоточные приложения. Сделайте свой компьютер многопоточным. Это весьма занимательно.
Формальные языки и методы трансляции. Да, вот она вершина, с которой видно весь остальной курс. Если вы досюда добрались, то у вас железные яйца. Жму руку. Хотя и написано, что теория трансляции, надо обратить внимание на синтаксически управляемую обработку данных вообще. Матчасть: начинаем разогрев с главы учебника по дискретке про семиотику. Продолжаем Ахо и Сети, Книгой Дракона. Введение по дискретке там есть, но бедное. Нужно осилить грамматики, языки, иерархию Хомского и соответствующие автоматы. Кстати, автоматы в конце SICPа есть. Изучаем работу компиляторов и интерпретаторов. Изучаем оптимизации. Отдельно про регулярные выражения. Что такое регулярное выражения вы поймёте при изучении иерархии Хомского. Но регулярные выражения – это уже прикладная область, и чтобы их составлять нужно быть знакомым с синтаксисом, обозначениями и.т.п. – учебник по дискретной математике вам этого не даст. Прочитайте книгу О'Рейли про регулярки. С совами на обложке. Практика: написать несколько сложных регулярок, компилятор, интерпретатор. Да, чёрт подери, настоящий оптимизирующий компилятор простого языка.
Стандарты в программировании: всё самое сложное вы уже осилили, осталась сущая малость. Во-первых, стили разработки. Юнит-тесты, UML, рефакторинг, всякие совершенные коды. Уже пора изучать язык, на котором будете работать, и изучать классические труды о его устройстве, стандартных библиотеках и методах. Для прихода к просветлению можно таки выучить модный хачкель. В книжках, которые я рекомендовал есть моря ссылок на другие труды. У вас уже должен быть большой кругозор. Думаю, к этому времени вы уже знаете, что делать.
>Большинство людей, которые делают сайты – не программисты.
Лол, блять, иногда не понимаю, откуда в прогерах столько элитизма - вроде неглупые люди.
Рефлексия даже звучит по-быдлячему. Прям представляю такого джависта сидящего со стаканом абсента и рефлексирующего на жизнь
> Рефлексия даже звучит по-быдлячему.
Ебать ты там долбоеб.
Ты даже не скалог никакой. Ты не нюхавший реального кода петушонок, написавший на скале синглтон и охуевающий сам себя.
Да да, уровень твоей экспертизы уже давно понятен, уймись
Действительно, вот именно такого уровня тупости там обычно и стоит ожидать
Если скалоблядок в качестве аргументации за скалу начинает хулить джаву, то это тупой, негодный скалоблядок.
Скорее всего - бывший рубист или ещё какой смузихлёб.
Программировать такое существо обычно не умеет совершенно.
>Я не спрашиваю Why java over python, я спрашиваю why java over rust/crystal/C++/ect
1. Легаси тут вообще ни при чём.
Алсо, дохера легаси кода в веб бекэнде написано как раз на крестах.
2. Прежде чем спрашивать такие вещи, стоило бы понять, что такое джава, и как оно там вообще всё работает. В комплексе, а не только язык, столь нелюбимый хипстерами. В процессе все вопросы отпали бы сами собой. Если есть хоть немного мозгов, конечно.
Ржавые кресты вместо джавы, ну надо же, лол.
пыха - однозначно, для этого и создавался
руби - тоже эту нишу занимает
питон - скрипты на коленке, в принципе не особо меняет суть
То есть ты чтобы стать кодером даже не кодил нихуя, а просто годами читал тонны какой-то мутной теории!?
И вообще, как по-хорошему запилить банальную страницу регистрации на спринге? Есть контроллер на спринг и как на него посылать запросы с фронтенда, с JS или напрямую html? Как сейчас делается по-хорошему?
>Есть контроллер на спринг и как на него посылать запросы с фронтенда, с JS или напрямую html? Как сейчас делается по-хорошему?
По-хорошему тебя всё это ебать не должно, ты пишешь REST-API, а где-то там фронтенд-девелопер колхозит к нему форонтэнд на одном из популярных javascript-фреймворков. Если это у тебя свербит - то бегом учить жабоскрипт, тамошние фреймворки (Angular вполне тебе подойдет с твоим жабоподходом, сейчас более модный React, но он не всё-в-одном)
Если ты про сам процесс колхозинга интересуешься, то тут все просто - берется спецификация твоего rest-api и хуярится фронтенд на жабоскрипте. На выходе - статический index.html, в который включен bundle.js (это склеенные в один файл и опционально сжатые и обфусцированные джаваскрипт-исходы фронтенда).
Нет ты
Есть пакет с сущностями, в одной из которых я использую @PreRemove аннотацию для связи @OneToMany, что бы проставить null значения в foreign keys зависимых сущностей перед тем, как будет удалена родительская ( в которой @PreRemove и объявлена)
Когда приложение деплоится в томкат, все заебись, и @PreRemove отрабатывает. Но когда блять запускаешь тест дао, которая работает с этой сущностью (из Maven) и удаляешь сущность в тестах, то её @PreRemove аннотация не работает. Как же меня это заебало, кто-нибудь сталкивался с таким говном?
Да, используется.
И в спринге тоже.
Смотри доки/книжки по Spring MVC.
Делать это на джаваскрипте, как тебе советуют выше, не всегда оправдано.
Т.к. вместо простенькой jsp странички с формой надо затевать целую эпопею, с огромной кучей дополнительной хуеты - ноды-хуёды, бабели-хуябели, вебпаки-хуяки, реакты-хуякты, редаксы-хуяксы и прочее.
Так что, если ты нуб, или если у тебя мало свободного времени, то JSP - отличный вариант.
Что ты хочешь сделать в итоге?
Зачем на готовом http сервере использовать вручную низкоуровневые сокеты, и с какой стороны будет сервлет?
Сервлеты 3.2 могут работать асинхронно, если нужно. Спринг так и делает.
А Netty немножко для другого, слишком низкоуровневый.
Алсо, где именно тебе не хватило быстродействия сервлетов? Юзать Resin вместо Tomcat не пробовал?
Сервлет на сервере.
Хочу, чтобы запрос приходил на сервлет и рассылал в клиенты авторизованных пользователей оповещения.
Т.е. поддерживать постоянные соединения с клиентами?
Это лучше делать через веб-сокеты, я думаю.
Гугли websocket, web push.
Да.
Я, может, что-то неправильно понял, но я не нашёл, как реализовать использование веб-сокетов (если ты про api javax.websocket) через отправку запросов на сервлет.
Бля забыл что в яве 0 это не фолс, сука. Ну суть понятна хехмда
Или мне в таком случае не нужно постоянное соединение, достаточно get раз в 5-10 секунд?
>>38086
Клиенты у тебя какие?
Веб?
Что на сервере? Я бы посоветовал Spring.
Сервлет и веб-сокеты - это разные части приложения.
Сервлет принял запрос, дальше - вызвал какой-то метод какого-то сервиса (или спринг бина) и затем уже этот сервис через веб сокеты послал что-то клиентам. Т.е. тут много всего, это не один сервлет.
Если хочешь попроще - надо делать не push а pull.
Т.е. раз в 10-15 секунд дёргать сервер и получать от него что там накопилось или ничего.
На самом деле, я считаю, что pull лучше, т.к. нет постоянного соединения. Но, для игр или чата это не подходит.
Ну у меня ни игра, ни чат, к счастью. Решение с гетом каждые 2 секунды сработало как надо.
Я правильно понимаю, что контейнер сервлетов находится "за" сервером, а не является его оболочкой, и тогда сокет должен управляться самим сервером, а не сервлетом, то есть тогда уж было бы правильно наоборот, приходящие в сокет сообщения обрабатывать в сервлете и потом уже рассылать?
Сервлет - это программа (java класс), которая вызывается Java EE сервером при обращении клиента к некоторому URL (как правило - http), который задаётся в настройках (может быть маска и т.п.). И потом эта программа либо отправляет клиенту ответ (html, json, бинарник, ...), либо редиректит на другой URL. Есть ещё фильтры, это как сервлеты, но вызываемые друг за другом, цепочкой, перед сервлетом или jsp, и трасформирующие ответ или перенаправляющие и т.п.
Почитай любой материал по Java EE.
Если кототко, сервлет - это как php скрипт, но без встроенного html.
С html-шаблоном - это уже будет JSP (это тоже разновидность сервлета).
Контейнер сервлетов и http сервер - это, как правило, одно и тоже.
Т.е. одно без другого не бывает (в Java EE).
Иногда ставят перед ним какой-нибудь Ngnix, чтобы он выдавал статические файлы, но это для высоконагруженных сайтов.
google: spring 5 example
>бины в xml уже не задают
Уже много лет, лол.
Рекомендую начать с сайта спринга.
Там есть туториалы (помимо просто документации).
Книжки:
http://www.allitebooks.com/spring-in-action-4th-edition/
Это не новая книжка, но, рекомендую начать с неё.
Есть 5-е издание (она ещё не вышла, MEAP), но, там меньше инфы по классическому спрингу, и о том, что это вообще такое, и как оно работает, там сразу SpringBoot.
Они, кстати, при покупке 5-го дают 4-е бесплатно (ebook). Так что, 4-е издание - самое то, для первого знакомства.
Есть русский перевод 3-го издания (там Spring 3), но, это только если совсем не умеешь в английский, т.к. устарело.
http://www.allitebooks.com/spring-boot-in-action/
(того же автора)
http://www.allitebooks.com/pro-spring-5-5th-edition/
http://www.allitebooks.com/spring-5-recipes-4th-edition/
http://www.allitebooks.com/?s=spring+boot
http://www.allitebooks.com/spring-microservices-in-action/
http://www.allitebooks.com/?s=spring
>бины в xml уже не задают
Уже много лет, лол.
Рекомендую начать с сайта спринга.
Там есть туториалы (помимо просто документации).
Книжки:
http://www.allitebooks.com/spring-in-action-4th-edition/
Это не новая книжка, но, рекомендую начать с неё.
Есть 5-е издание (она ещё не вышла, MEAP), но, там меньше инфы по классическому спрингу, и о том, что это вообще такое, и как оно работает, там сразу SpringBoot.
Они, кстати, при покупке 5-го дают 4-е бесплатно (ebook). Так что, 4-е издание - самое то, для первого знакомства.
Есть русский перевод 3-го издания (там Spring 3), но, это только если совсем не умеешь в английский, т.к. устарело.
http://www.allitebooks.com/spring-boot-in-action/
(того же автора)
http://www.allitebooks.com/pro-spring-5-5th-edition/
http://www.allitebooks.com/spring-5-recipes-4th-edition/
http://www.allitebooks.com/?s=spring+boot
http://www.allitebooks.com/spring-microservices-in-action/
http://www.allitebooks.com/?s=spring
Да я месяца три назад решил для профилактики сходить на собес, так я там жиденько обосрался. Если мне 80-100 будут платить сначала, я буду даже рад.
Бамп.
Посоны, в моем мухосранске весит вакансия на стажера:
Знание OOП;
Опыт в одном из объектно-ориентированных языках (C#, Java etc.);
Знания Multithreading, Databases, Client-Server architecture;
ООП хуй с ним, расскажу, полиморфизм, инкапсуляция, наследование, упомяну про абстракцию.
Опыт в ооп языке. Что это? Джавакор? Сделать реверс строки? Допустим. Хотя сортировку пузырьком вот так сходу не напишу. Аррэйс.сорт упомяну.
Последнее меня пугает пизда. Мультитрединг бог с ним, чет вырожу. Базы данных и клиент-серверную архитектуру вообще не слышал.
Как мне за неделю восполнить недостающие знания?
Тест давали, с вопросами по джаве, с изьебами, по SQL, по спрингу. Обосрался в задаче со статической переменной. Типо объявили класс с двумя переменными, дважды эти переменные меняли в объектах вроде, в итоге при вызове переменной из второго объекта статическая должна была дважды инкриментироваться, а обычная один раз. Я даже внимания не обратил, что переменная статическая. Потом в двух задачах нужно было вставить джойн по определенному условию, я перепутал. Ну и по спрингу я нихуя не знал, так как прогал на чистой джаве, о чем предупреждал и в переписке, и в резюме. В итоге, я даже был рад, что не прошёл, ибо там я встретил кореша, который сказал, что им хуй платят нормальные зарплаты. Но я это и сам понял, у меня была 45кмухосрань 400к, меня менеджер спрашивала на какую я рассчитываю, сказал, что не меньше 45. Она такая: ну т.е 30-40 вас устроило бы?
Объяснил, наверное хуево. Соль в том, что два объекта, в каждом из которых метод инкрементировал переменные эти. Но, так как вторая статическая, она же меняется в permgen, а не на уровне объекта, поэтому при вызове из второго объекта, после вызова метода в первом и втором объекте, она как бы дважды поменяется, а обычная переменная создастся во втором объекте и увеличиться в своем объекте, не влияя на другой.опять хуйня с объяснением,но да похуй
>ну т.е 30-40 вас устроило бы?
В мухосрансках жавистам никто больше и не платит. Если конечно не идешь на тимлида. Но обычно тимлид в ДС, а в мухосранске филиал с рабами-доширачниками.
>Ну и по спрингу я нихуя не знал, так как прогал на чистой джаве
Таких ныне вообще не берут даже в джуны.
Ебаный язык, ебаная область с ебаными нищими зарплатами. А когда-то этот энтерпрайз считался элитным. Прав был ганс_спб, очень прав!
Лучше на апворке фрилансить говносайты на PHP или JS для американцев, хоть жить будешь как белый человек, а не бомж. Пока еще есть такая возможность и не ввели Чебурнет. Я вот те же 40к на Ангуляре без проблем имею и не работаю 8 часов в день.
Говно сбертех с 6 и 7 джавой.
На стэкоаерфлоу увидел объявление, отправил резюме.
Не помню уже чего там спрашивали (было месяц назад почти) но когда спросили про javafx, то честно сказал что не умею, но готов учиться.
Умею мало довольно и знаю тоже мало
Да всё понятно, хули тут понимать.
Доступ к любым статическим переменным через экземпляр объекта (не через класс) - это пиздец антипаттерн.
В нормальном коде такого быть не должно.
В следующий раз можешь это сказать.
Также со мной работал. На новый проект.
>Система онлайн банкинга это морда для 3 mysql таблиц?
Почти , только вместо mysql - db2 на System/Z+Symmetrix, а морда написана с использованием всех возможных J2EE интырпрайз-паттернов и крутится на websphere c обязательным применением всего купленного с попилами IBM-стека.
И всё это адово тормозит.
Для банков победнее System/Z+db2 в стеке меняется на постгрес+какой-нибудь ебанутый брендовый штеуд вроде циски ецс и СХД попроще симметрикса, а стек межделмаша меняется на стек красношляпы (жидбос и вотэто всё).
И всё это по прежнему тормозит.
Чем тебя файл properties не устраивает?
Он именно для этого и придуман.
Почитай в гугле.
JSON какой-то, библиотеку тащить, лол.
Карго-культ во всей красе.
Алсо, что за "бекэнд приложение"?
Почему оно не на Spring (Boot)?
Ты там веб сервис и клиента сам колхозишь? Зачем?
>Почему оно не на Spring (Boot)?
По-прежнему слишком хипстерно для интырпрайза. Не является жирным аликешон сервером от именитого интырпрайз-бренда с лицензией за доллары и попилы, не сжирает всю оперативу всего кластера на топовых зионах/терабайт оперативы на блейд вместо со всем брендовым интырпрайзным стеком.
1. Стоит ли учить свинг, джавуЭФИКС и апплеты? Вроде бы это умирающие технологии, тупиковая ветвь развития, и перспективно только то, что связано с вебом. Поэтому можно освоить js фреймворки, html, css и делать простенькие вебморды.
2. Как перейти от выполнения примеров и задач из книжек/мануалов к написанию программ самостоятельно? Я просто обсираюсь в штаны, когда пытаюсь что-то написать сам. И скатываюсь в слепое копирование чужого кода, потому что нихуя не понятно.
3. Дальше план действий такой - 1)доучивать джавакор (задрочить дженерики, коллекции, многопоточность); 2)учить sql (а именно postgresql) с jdbc и hibernate; 3)spring (тут же maven и tomcat); 4)html, css и js (angular или react). Делать свой проект типа инет-магазина/crm-системы/erp-системы или еще какой-нибудь хуйни с применением всего изученного и прикручиванием каких-нибудь модулей, разработанных не мной (я так свой еба-диплом делал). И затем пиздовать по собеседованиям.
Что еще можно выучить/сделать, чтобы повысить свои шансы на трудоустройство?
И насколько этот план реально выполнить? Потому что тут в любом месте можно увязнуть просто пиздец как надолго (так и будет).
4. с какого момента можно начать ходить на собеседования?
Просто я не вижу смысла ходить по собеседованиям, авось куда возьмут с зп 40к и перспективой увеличения до 80к, когда на текущей работе у меня 70к+ выходит, и я получается сменю шило на хуевое мыло.
Живу в ДС.
>1. Стоит ли учить свинг, джавуЭФИКС и апплеты? Вроде бы это умирающие технологии, тупиковая ветвь развития, и перспективно только то, что связано с вебом. Поэтому можно освоить js фреймворки, html, css и делать простенькие вебморды.
Нет, не стоит. Технологие эти умирают (апплеты мертвы). Концентируй свое внимание на серверной разработке. Это будет Spring, Netty, Какой-нибудь IDG - Hazelcast/Apache Ignite/Infinispan, всякие распределенные вычисления Akka и т.д.
Луше сфокусироваться на серверсайде. Ты конечно можешь подучить js/html/css и назвать себя фулстаком разработчиком, но это такое. Обычно такие ребята знают много технологий по верхам, но плавают в деталях. В нормальных командах бекенд и фронтенд пишут разные команды.
>2. Как перейти от выполнения примеров и задач из книжек/мануалов к написанию программ самостоятельно? Я просто обсираюсь в штаны, когда пытаюсь что-то написать сам. И скатываюсь в слепое копирование чужого кода, потому что нихуя не понятно.
Читаешь книжку, разбираешь примеры, затем придумываешь себе задачу (типо petshop) и пытаешься реализовать. Попутно читаешь stackoverflow, документацию и заглядываешь в книгу.
>4. с какого момента можно начать ходить на собеседования?
Ну набросай какой-нибудь petshop на спринге хибернейте и какой-нибудь базе (postgresql, например) и можно попробовать на джуна пойти.
>3 года работаю инженером на ебаном заводе
Попробуй найди на заводе реальную проблему, которую ты мог бы решить (теоретически). В смысле - написать программу. Серверную или десктопную. Попробуй это сделать. Можно для себя, никому не показывая.
Лучше, если для начала это будет совсем маленькая проблема и маленькая программа.
Например, создание таблицы Excel для тёти маши с помощью Apache POI.
Алсо, ты перечислил, похоже, все баззворды, и фреймворки, которые встречал в интернете, кроме блокчейна и нейронных сетей, лол.
Учись программировать - java core, ООП, алгоритмы, основы ФП.
И Spring.
Остальное приложится.
И "менять шило на мыло" - значит менять долгосрочную перспективу (шило - ценный инструмент, служит десятилениями) на сиюминутную выгоду (мыло смылится, и всё).
бля, эти каргогультисты вместо sql внедряют nosql, а задачи то никуда не девались, по-прежнему нужны запросы, джойны, группировки и аггрегация
Если ты юзаешь идею - это глупый вопрос, если нет - тогда с тобой даже разговаривать брезгливо.
А ты кто? Мокша, эрзя, татарва?
я про линтеры, которые на билде анализируют код по установленным в конфиге правилам. типа jslint и тд
>IntelliJ IDEA features robust, fast, and flexible static code analysis. It detects the language and runtime errors, suggests corrections and improvements before you even compile.
Ньюфагушка, иди под струю, мойся
а вот и хелоуворлд пацаны подъехали. даже объяснять тебе не хочу ничего, иди дальше верстай шаблоны на вордпрессе и закупай цветы классухе на первое сентября
>даже объяснять тебе не хочу ничего
да тут и объяснять нечего, ты сложнее калькулятора ничего не писал
если ты не совсем тупой (в чем сильно сомневаюсь), то сам сходишь в гугл, почитаешь инфы по сабжу и осознаешь свою глупость. но лучше просто продолжай спамить шаблонную хуйню ахзахзаа мамка затралел маня ссу лицо ПОРВАЛСЯ и оставайся долбоебом. эйчарам меньше работы будет, сразу нахуй пойдешь еще до интервью
а, ты сейчас будешь жопой вилять что статический анализатор - это не статический анализатор, так?
ничем не буду вилять. загугли lint4j, findbugs и тд. узнаешь какие проблемы решают, какие цели преследуют, завалишь ебало и съебешь с двачей
да, встроенный статический анализатор в идею преследует те же цели и решает те же проблемы
только жопу зашей перед тем как возвращаться в тред, хорошо?
я так счастлив, что есть такие люди как ты. для которых git это три непонятных буквы в паблике погромистов, для которых CI/CD это уже целых четыре непонятных буквы, которые не слышали про командную разработку, про соглашения по кодстайлу, про тестирование кода.
ты споришь о том, в чем абсолютно не смыслишь, хотя достаточно просто открыть первую ссылку в гугле и прочитать.
твой опыт энтерпрайз разработки либо нулевой, либо 2 недели в относительно хуевенькой IT компании. благодаря таким как ты айти пузырь никогда не лопнет, потому что на одного нормального кандидата приходится по 100 вот таких конченных. и эйчары отрывают даже средненьких специалистов с руками
а теперь по сабжу - та хуйня в идее со статическим анализом на уровне "осторожно, тут может быть npe" - полная хуйня. я тебе даже слова написал какие гуглить, но ты и с этим не справился. достаточно было прочитать всего один абзац - про кодстайл, о выявлении анализатором проблем в безопасности приложения, об анализе байткода. добавим сюда еще интеграцию с CI (да, представляешь, на проектах много разработчиков пушат код, и подобные процессы автоматизированы для выявления возможных проблем на ранней стадии). еще раз - спасибо, что ты есть. благодаря таким как ты у меня всегда будет работа. спасибо
>про кодстайл
так и знал что этот овощ проверку стиля кода под статический анализатор подведет, лол
ну да ладно, как только жопой не повертишь чтобы оправдаться
>добавим сюда еще интеграцию с CI
Чтобы оправдаться ты можешь надобавлять все что хочешь, это конечно ну будет уже чисто статическим анализатором, но за умного ты сойдешь, нормально
А меж тем, пока ты пытаешься сохранить лицо обосравшись, поведую тебе что ни один из этих признаков не является признаком статического анализатора, признак по сути один - анализ времени компиляции
>благодаря таким как ты у меня всегда будет работа. спасибо
кстати, чисто интересно, а сколько тебе платят за эти "знания"?
в любом случае, за время разговора, помимо высеров и оскорблений, ты не привел ни одного аргумента в свою пользу(или хотя бы в пользу того что я спросил хуйню и все норм пацаны обходятся хайлайтингом в идеечке). сейчас ты либо слишком толстишь, либо еще глупее, чем мне изначально казалось. уже давно понятно, что в рамках моего вопроса твои знания на нулевом уровне, поэтому не вижу смысла продолжать обсуждение, итак затянулось
300к/наносек, как и всем в этом треде, очевидно же
Ну в JavaFX дело. Берешь скачиваешь, берешь сохраняешь.
Скачиваешь через небо/аллаха/голый urlconnection
Или у тебя проблема с тем что бы узнать папку приложения?
тебе остаток надо брать if (index % 2 == 0)
Джаву
Посмотри коменты про этот сайт в тредике. Охуевшие долбоебы со смехуечками и хелоуворлдами. Не, может там и есть в конце что-то серьезное, но как-то сомневаюсь.
Ну там адекватные книги вполне. Я к сожалению ни одну так и не прочитал до конца, только вот полгода назад Effective Java прочитал, и уже не нашел там для себя ничего нового. Но я по ведроиду специализируюсь.
Используй обертки и не выебывайся.
Попробуй вариант, который делали на английском.
Хотя, как по мне, так книга "Java для чайников" и то полезнее.
смотрите:
1. package
2. import
3. public class
4. void main
5. переменные
..( что может находиться тут? )
n1. расчет
n2. вывод на экран (результат)
____
Что ты понимаешь под структурой программы? Тут ты написал структуру исходного файла .java, содержащего класс, содержащий метод main, который по умолчанию является входной точкой программы.
Сонар
забей, просто мне больше практиковаться нужно.
Иногда подумываю поучить джаву, но всего очень страшно, потому что туева хуча лет должна была породить туеву хучу инструментов, стандартов и подходов - огромный пласт знаний, который нужно обработать, чтобы писать грамотно.
Есть какие-то success story или ещё что-то, что позволило бы мне быстро вкатиться в тему?
Ты бы еще в кобол вкатился.
Учитывая, что ты этого не знал - значит что ты не помидор, а максимум говно из-под говнии 6 лет просидевшее в говне.
банки и энтерпрайз - там нормализация, стандартизация и всё такое. wsdl, очереди сообщений, шины сообщений и прочее говно.
Модные молодежные стартапы - там спринг бут и голый рест с джоном
Ты вообще посты читаешь, прежде чем говном кидаться?
Что именно я должен был узнать, не изучая джаву и не работая с ней? Конфигурирование jvm, может быть? Или JSR'ы? Или, может, как spring готовить?
Полюбому ты считаешь себя самым умным, а всех, кто не знает всё, что знаешь великий ты - быдлокодерами и кодомакаками. Только вот при необходимости я тебе поясню за любую БД, паттерн или технологию, да так, что ты на коленях пойдёшь на джуна ко мне устраиваться.
Серьёзно, программирование это не твоё. Я бы тебя даже стажёром не взял, питушок.
Поясни за различие аффинити-функций в кассандре и игнайте и механизмы противодействия сплитбрейну в них, чепушонок.
В Netty есть поддержка твоего вебсокета.
Пружина паутина поток.
хз, я использовал эту штуку, внутрь не заглядывал.
https://github.com/TooTallNate/Java-WebSocket
https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/java/org/java_websocket/server/WebSocketServer.java
вот тут главный цикл, оцени -- достаточно легковесно для тебя?
В OkHttp нормальные вебсокеты.
В spring-webflux норм
Пилю борду на Java, полёт нормальный. Правда на Java только back-end. Фронт скорее всего на React+Bootstrap будет.
В чем проблема - в ряде объектов есть вложенные списки, следовательно когда я создаю в мейне к примеру 5 таких стрингов, мне нужно создать аж 5 уникальных листов и каждый передать в создание 5 таких же уникальных объектов, которые затем пихаются в итоговый массив объектов\строк.
В результате я имею нечитаемое полотно текста + говнокод.
Я понимаю, что могу выкинуть тестовые данные в отдельный отформатированный под json файлик оттуда считывать, отдавать в единственный объект json'a, его стрингифицировать и пихать в итоговый массив. Но я наверняка перемудрил с первоначальным решением.
Ах, да, ещё момент. Описание отдельного класса с полями я не выкину, потому что с ним потом будет сравниваться возвращаемый ответ на валидность модели.
Я ничего не понял. Что тебе нужно получить в итоге?
ВНИМАНИЕ ВСЕМ! ОЧЕНЬ СЕРЬЕЗНЫЙ ВОПРОС!
Пасаны, а вам вообще нравится программирование как профессия? Вы получаете от этого удовольствие? С энтузиазмом идете на работу или из под палки, сидя на зарплатной игле? По сравнению с другими вашими профессиями (если они были), программирование интереснее?
Раньше вставляло, сейчас заебался, надо отдохуть. А так когда делаю-ковыряю что-то для себя до сих пор вставляет.
Больше никем не работал, есть кнечно профессии круче/достойней, но хули уж тут, не в нищей же дыре перебирать.
22 года, уже 4-й год работаю.
Нашел, спасибо
Нет, Core Java лучше, пропусти в ней то, что тебе неважно, хотя в первом томе такое вряд ли найдется.
Братишки, нужно больше инфы!
Действительно ли гикбрейнс так плох?
А по сути?
Работать не нравится. Но говорю чисто для себя, так как работать на любой работе на дядю меня не вставляет и считаю это рабством и чем-то унизительным. Но какой-то бизнес тоже не собираюсь открывать - не моё. Сейчас терплю, Работаю над созданием приемлимого пассивного дохода - потом просто перестану работать.
Самому что-то изучать, ковырять - очень-очень нравится, прямо кайф, но от работы (от любой на кого-то) тошнит.
Но на самом деле я не жалуюсь, достаточно посмотреть на зарплаты остальных людей, чтобы не раскисать.
23 лвл
Расскажи про трекинг:
- как оконечные устройства копят и отправляют данные
- интерсно бы узнать про стек бэкэнда: куда приходят данные, куда складываете и чем принимаете (нетти-хуетти?)
- на чем фронт для отображения данных?
>- как оконечные устройства копят и отправляют данные
Если железяки - то большинство копит данные за некий период, потом поднимает tcp соединение с сервером и отправляем скопом. Всякие алерты идут без очереди.
>куда приходят данные
Ну я делал через прямые записи в базу данных. Чем быстрее и меньше задержек - тем лучше. Запросы потом строятся асинхронно уже по записанным данным.
В другой компании с другим продуктом идут всякие преобразования и монги хуёнги, что мне не нравится и приносит кучу проблем.
>и чем принимаете (нетти-хуетти?)
железные трекеры умеют только в tcp, так что небольшой самописный сервер.
>- на чем фронт для отображения данных?
В первый раз я делал на gwt. Потом js и openstreetmap и leaflet
Спасибо. А чисто гипотетически есть такая наемная работа, которая могла бы тебе понравится вне разреза денег?
Подскажите начинающему нубу, как можно реализовать очередь событий, с блекджеком и подписчиками без сторонних библиотек? Есть где-нибудь инфа, как это делается?
Все гайды, которые я нашёл по этой теме, начинаются с "Ну кароч бирём и ставим %lib_name%))0", а далее используется уже готовая реализация.
Если вопрос тупой - прошу меня извинить, я начал в java только пару недель назад
спс, тем и занят :3
вероятно, джаван, ты как и я только начал свой путь.
помогите советом
написал класс-ридер файлов пропертей. Ну как написал, позаимствовал у этого товарища: https://www.mkyong.com/java/java-properties-file-examples/
проверял два описанных варианта, это "Load a properties file" и "Load a properties file from classpath". Файл пропертей находится по адресу "<MyProject>\src\test\config.properties"
Я уже что только не делал, и прописывал абсолютный путь, и другие полезные советы использовал с StackOverflow - ничего не помогает, валится эксепшн FileNotFound что логично, мы ведь обрабатываем исключение в классе.
в блок catch добавил даже такой вывод абсолютного пути: System.out.println(new File(".").getAbsoluteFile());
он стабильно показывает мне путь D:\IDEA\PRJs\ <MyProject>\
понимаю, что что-то тут не так с classpath. Есть ли возможность завести этот класс без добавления переменной окружения classpath?
это я неверно здесь прописал, в идее я вот такой путь указывал: "<MyProject>/src/test/config.properties"
и пробовал такой: "D:\\IDEA\\PRJs\\<MyProject>\\src\\test\\config.properties"
все равно не робит
я преследую следующую цель - чтобы класс мог найти проперти внутри проекта, без указания абсолютных путей вида D:\\IDEA\\PRJs\\<MyProject>\\etc... Чтобы любой желающий кто выгрузит себе проект не мучался с ошибками и у него все работало бы из коробки без предварительно настроенного classpath
Посмотри как выглядит твой проект после компиляции и где у тебя лежат проперти.
Вот допустим, презентер запросил у модели подгрузку какого-нибудь JSON-а, модель его загрузила, отправила сообщение об окончании загрузки, и тут появляется несколько вопросов:
1. Где хранить результат? В нашем случае это JSON, используется он, скажем, единоразово только презентером. Вот несколько моих мыслей на этот счёт, подскажите, как на ваш профессиональный взгляд лучше и адекватнее:
а. Передать его внутри сообщения, уподобив сообщения event-объектам. Однако так как класс сообщения у меня один, для дополнительной инфы в сообщениях придётся использовать какой-нибудь хэшмап <String, Object>, так как результатом может быть не только JSON.
b. Хранить его в модели и ждать, пока его заберёт презентер. В таком случае появляется другая проблема - презентер может запросить загрузку нескольких ресурсов, а загрузка каждого из них может закончиться в любой момент, в итоге презентер запросив результат может получить не то, что ему нужно. Это можно решить, добавив для каждого ресурса своё поле в модель, но если в приложении используется много разного вида запросов, это как-то так себе. На мой взгляд в этом случае придётся присваивать каждому запросу какой-нибудь id и на основе этого id предпринимать нужное действие в презентере. Но как-то пиздец громоздко и велосипедно.
2. Допустим, у меня есть абстрактный fooModel класс модели с методом отправки GET-запроса и получения ресурса, любого, как JSON так и какой-нибудь картинки. Есть модель, которую я хочу унаследовать от этого класса, вдобавок к этому реализовав интерфейс для другой модели (для простоты назовём его barModel). При этом ссылка на модель в презентере должна иметь тип barModel, и также мне нужен доступ к методам fooModel. Как мне сделать так, чтобы связать интерфейс barModel с абстрактным классом fooModel? Кошерно ли каждый раз кастовать barModel в fooModel в презентере для вызова нужных методов?
несколько запутанно, если что объясню.
Грубо говоря, мне нужно знать, что если класс имеет тип barModel, то у нас есть доступ к методам fooModel в ней.
Вот допустим, презентер запросил у модели подгрузку какого-нибудь JSON-а, модель его загрузила, отправила сообщение об окончании загрузки, и тут появляется несколько вопросов:
1. Где хранить результат? В нашем случае это JSON, используется он, скажем, единоразово только презентером. Вот несколько моих мыслей на этот счёт, подскажите, как на ваш профессиональный взгляд лучше и адекватнее:
а. Передать его внутри сообщения, уподобив сообщения event-объектам. Однако так как класс сообщения у меня один, для дополнительной инфы в сообщениях придётся использовать какой-нибудь хэшмап <String, Object>, так как результатом может быть не только JSON.
b. Хранить его в модели и ждать, пока его заберёт презентер. В таком случае появляется другая проблема - презентер может запросить загрузку нескольких ресурсов, а загрузка каждого из них может закончиться в любой момент, в итоге презентер запросив результат может получить не то, что ему нужно. Это можно решить, добавив для каждого ресурса своё поле в модель, но если в приложении используется много разного вида запросов, это как-то так себе. На мой взгляд в этом случае придётся присваивать каждому запросу какой-нибудь id и на основе этого id предпринимать нужное действие в презентере. Но как-то пиздец громоздко и велосипедно.
2. Допустим, у меня есть абстрактный fooModel класс модели с методом отправки GET-запроса и получения ресурса, любого, как JSON так и какой-нибудь картинки. Есть модель, которую я хочу унаследовать от этого класса, вдобавок к этому реализовав интерфейс для другой модели (для простоты назовём его barModel). При этом ссылка на модель в презентере должна иметь тип barModel, и также мне нужен доступ к методам fooModel. Как мне сделать так, чтобы связать интерфейс barModel с абстрактным классом fooModel? Кошерно ли каждый раз кастовать barModel в fooModel в презентере для вызова нужных методов?
несколько запутанно, если что объясню.
Грубо говоря, мне нужно знать, что если класс имеет тип barModel, то у нас есть доступ к методам fooModel в ней.
А что ещё может быть актуально на жабе? Фронт через жсп? Системное программирование в скотских фантазиях? Дата сайенс в еще более скотских?
Тогда такой вопрос. Чем java лучше той же пыхи в плане бэка? Вот конкретно.
>Тогда такой вопрос. Чем java лучше той же пыхи в плане бэка? Вот конкретно.
Конкретно зрелыми интырпрайзными приблудами - шины-хуины, бигдата-хуята. Если ты не хочешь ходить в пиджаке и удавки, тратя полжизни на макакинг и вторую половину - на внутриофисную грызню и сплетни ради делёжки очередного отката - то ничем.
Меня попросили поправить хуйню на yii2 и я честно говоря проблевался с этого поделия, а больше всего кумарит отсутствие вменяемого дебаггера. 2 дня пытался прикрутить XDebager и нихуя, дебажу вардампами. Так что ну его впизду ваш пхп.
мимо джавамидол
>Чем java лучше той же пыхи в плане бэка?
Чем роллс-ройс лучше лады приоры в плане езды?
Ничем, практически. Те же четыре колеса.
Да и денег у тебя на него нету.
Так что - продолжай писать на пыхе.
>Чем роллс-ройс
Только тут скорее не роллс-ройс, а бмв/мерседес, которые раyьше были солидным бизнес-классом с моторами-милионниками, и за бандитами 90х эти машины не одно поколение донашивало.
А сейчас же такое же ломучее одноразовое говно, что и лада приора, только задораха ну и выглядит и ездит по-новью не так зашкварно.
Ты какую-то хуйню написал.
Джава - это статическая типизация, скорость, масштабируемость, миллион библиотек, куча самых разнообразных технологий на одной платформе.
И охуеннейшая инструментальная поддержка.
А пыха - это пыха.
>>43498
Джава настолько лучше пыхи, что на ней даже написали пыху.
Чтобы пыха быстрее работала и могла масштабироваться - кластеры-хуястеры, и чтобы стали доступны все джава библиотеки.
Я имею в виду Caucho Quercus.
Расскажи немного о работе. Что используешь в основном?
лол, драйвер. ты ж не идешь писать на каком нибудь рубине и не ищешь драйвер.... либа есть норм для жавы. я о другом спрашиваю.
блядь если ты тупой и не можешь ответить по делу, то лучше просто молчать.. зачем ты позоришься, дебил?
но я помочь тебе хочу...правда научить тебя взаимодействию джавы и эс.ку.эль лайта я не смогу...есть только пример как работать с джавой и айч.эскьюэль.диби...подойдет?
Кесарю - кесарево.
В джаве есть JDBC.
Это единообразный способ работы с любыми БД.
Как тебе уже сказали - подключаешь нужный драйвер и работаешь.
Гуглить:
java jdbc tutorial
java jdbc sqlite driver
java jdbc sqlite example
Те же. Вообще работать не хочу. И в бизнесе себя не вижу.
Уволился с должности наемного директора сто, попробую себя в компьютероковырянии.
драйвер находится в библиотеке, блеан. не путай людей.
я бы посоветовал чужой код смотреть и свое пробовать.
Записался на курс многие скажут что я мудак и не стоило этого делать, в чем я теперь частично согласен и заткнулся буквально в самом начале.
Есть задача, на сравнение возрастов.
Написать приложение, которое будет на выходе давать результат, кто самый старший, младший и между ними.
Задача должна быть решена через сравнения переменных, способом if else.
После нескольких безуспешых попыток так же было дано "решение" этой задачи:
A16 : У нас возможны варианты
A, B, C
B, A, C
B, C, A
A, C, B
C, A, B
C, B, A
Но если мы знаем, что A > B, то остаются только варианты
B, A, C
B, C, A
C, B, A
Теперь в каждом случае можно еще что-то предположить. Например, С > B,
тогда остаются
B, A, C
B, C, A
И вот остается третье решающее сравнение .
Если же изначально A > B было неверно, то остались варианты
A, B, C
A, C, B
C, A, B
и снова можно делать еще сравнения.
Если грамотно использовать хитрость, то задачу можно еще немного упростить."
Здесь уже ответ написан.
Но наверное я совсем глупый и все равно не могу понять логику этого решения.
Возможно есть иной способ решения ? Я уверен что он должен быть, тот через который с меня спрашивают для меня не понятен.
Что-то краем уха слышал о массивах, может быть можно использовать их ?
Записался на курс многие скажут что я мудак и не стоило этого делать, в чем я теперь частично согласен и заткнулся буквально в самом начале.
Есть задача, на сравнение возрастов.
Написать приложение, которое будет на выходе давать результат, кто самый старший, младший и между ними.
Задача должна быть решена через сравнения переменных, способом if else.
После нескольких безуспешых попыток так же было дано "решение" этой задачи:
A16 : У нас возможны варианты
A, B, C
B, A, C
B, C, A
A, C, B
C, A, B
C, B, A
Но если мы знаем, что A > B, то остаются только варианты
B, A, C
B, C, A
C, B, A
Теперь в каждом случае можно еще что-то предположить. Например, С > B,
тогда остаются
B, A, C
B, C, A
И вот остается третье решающее сравнение .
Если же изначально A > B было неверно, то остались варианты
A, B, C
A, C, B
C, A, B
и снова можно делать еще сравнения.
Если грамотно использовать хитрость, то задачу можно еще немного упростить."
Здесь уже ответ написан.
Но наверное я совсем глупый и все равно не могу понять логику этого решения.
Возможно есть иной способ решения ? Я уверен что он должен быть, тот через который с меня спрашивают для меня не понятен.
Что-то краем уха слышал о массивах, может быть можно использовать их ?
бамп что ли
ну сделай сравнение, в чем проблема?
если a равное N, b равное N, c равное N, a > b тогда
сообщение "a больше b"
и т.д.
Нет, просто возможно кто-то из вас изожит это в более перевариваемом для меня виде, чем это представлено в этих самых курсах.
Уверен у каждого бывало такое, что одногруппник поясняет тему на более доступном языке и примерах, чем учитель
Открыл для себя stackoverflow и задал вопрос еще и там, получил ответ сразу в нескольких вариантах.
Так же сделал вывод, что это чуть ли не библия для начинающего вроде меня.
Благодарю за внимание
поднять сервер с бд, с несколькими таблицами, в которые юзеры будут заносить значения. В дальнейшем эти значения нужно будет запрашивать.
Сервер я поставил. Осталось наговнячить простую программу, но в программирование не особо могу знаю только что такое ооп и как оно работает, поэтому буду обучаться на ходу.
Суть в том, что приложуха нужна только для внутреннего использования в компании, и желательно чтобы она была и на десктоп и на ведройд.
Жава подходит для этого? И насколько сложно это будет реализовать?
вот и здорово
1280x720, 0:08
300000 $/сек, не знаю
Что используешь в работе? Спринг же вроде охуенен для веба.
Мне тоже очень быстро ответили и решили проблему. Отличный ресурс.
Простое CRUD на java. Можно на JDBC написать
Это копия, сохраненная 23 сентября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.