LINUX.ORG.RU
ФорумTalks

Java как первый язык программирования


0

2

Знакомый хочет научиться кодить на Java. Опыта программирования не имеет, ни одного языка/парадигмы не знает. То есть помимо введения в собственно java и ооп, требуется введение в программирование как таковое. Видимо, нужны серии учебных задач, позволяющие поэтапно разобраться с переменными, функциями, и тд. Посоветуйте подходящих учебников, желательно на русском и не очень нудных.

★★★★★

Ответ на: комментарий от madcore

25-30$ за час. Без напрягов работается 20 часов в неделю.

Подводные камни?

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

С выводом денег проблем нет, манибукерс и виза-классик.

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

baverman ★★★
()
Ответ на: комментарий от baverman

>Устал как собака.

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

madcore ★★★★★
()
Ответ на: комментарий от baverman

В остальном - да, 85% задач простые.

Deleted
()

Нужна книжка по жаве для новичка.

Когда сможет писать хоть что-то - разберется со всем остальным тоже.

Емнип, хорошая книжка была: Кей С. Хорстманн, Гари Корнелл, в нескольких томах.

По-русски: емнип просто «Java2», так и называется.

По-английски:
Core Java(TM), Volume I--Fundamentals (8th Edition), 9780132354769 (0132354764), Prentice Hall, 2007

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


Я по ней не учился, а юзал книжку: Ноутон, Шилдт, «Java 2: полное руководство». Но там тупо ман, поэтому нужна какая-то база (у меня она была в виде Delphi 4-8 и Си).

stevejobs ★★★★☆
()
Ответ на: комментарий от Manhunt

вынужден работать на дому, и хочет научиться зарабатывать фрилансом.

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

на фриланс.ру любят короткие заказы часа на 2, про «нарисуй иконку», «сверстай закругленные уголки» и «настрой джумлу на виндовс сервер р2»

stevejobs ★★★★☆
()

Твой знакомый - мазохист?

DNA_Seq ★★☆☆☆
()

Блин, начинать нужно с С. Чтоб у человека было хоть какое-то представление о выделении памяти, указателях и прочем прочем... Короче пусть начнет с чего-нить более низкоуровневого, а потом уже Java.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

А если это ненужно, то можно начать с питона, например :-)

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

> Чтоб у человека было хоть какое-то представление о выделении памяти, указателях и... а потом уже Java.

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

valich ★★★
()
Ответ на: комментарий от Deleted

Как-то так:

def solve_lamps(n, inversions):
    count = 0
    for i in xrange(1, n+1):
        result = 0
        for p in inversions:
            if not i % p:
                result = 1 - result

        count += result

    return count

print solve_lamps(20, (2, 3, 8))
print solve_lamps(172, (19, 2, 7, 13, 40, 23, 16, 1, 45, 9))
baverman ★★★
()
Ответ на: комментарий от baverman

def solve_lamps(n, inversions): count = 0 for i in xrange(1, n+1):

Ты издеваешся? За сколько продашь 200ГГц процессор? :)

PS. На ограничения смотри. Если бы не они, то это была бы легкая задача, и стоила бы она ну максимум 20 баллов, а не 94.

Deleted
()
Ответ на: комментарий от Deleted

За сколько продашь 200ГГц процессор? :)

Лучше 1 ТГц :)

Deleted
()
Ответ на: комментарий от Deleted

На ограничения смотри

И? На питоне, миллион, при 10 инверсиях на n270 прогоняется за секунду.

Сишечка на этой задаче будет на четыре порядка быстрее. А у них там явно не атом.

baverman ★★★
()

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

Xellos ★★★★★
()
Ответ на: комментарий от baverman

О боже. Ты что, делаешь все инверсии последовательно? А если ламп миллион? А инверсий пять тысяч штук?..

Xellos ★★★★★
()
Ответ на: комментарий от stevejobs

>Нужна книжка по жаве для новичка.

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

madcore ★★★★★
()
Ответ на: комментарий от baverman

Убивать. Вот такие как ты и пишут

[br]
sub count {[br]
 ...[br]
my $data;[br]
my @data;[br]
while ($data=get_next_data()){push @data, $data};[br]
my @ret=@data;[br]
return @ret;[br]
}[br]
[br]
@counted=count();[br]
[[/code]][br]
Ну и что, что у нас массив по двадцать мегабайт получается? Процессоры у нас быстрые, памяти у нас много, ну кинем мы двадцать мегов десять раз туда-сюда, ну подождём лишние десять секунд, жалко что ли?

Xellos ★★★★★
()
Ответ на: комментарий от baverman

Для упоротых: ограничения - 1 <= N <= 10^9, 1 <= K <= 100, 1 <= Pi <= 50. Даже если оптимизировать немного за счет выбрасывания повторяющихся инверсий, то все равно в худшем случае придется сделать 10^9 * 50 итераций. А сделать 10^9 * 50 итераций, даже таких простых - это нереально.

PS. У них Pentium 4 2.4 Ghz, на винде, да еще и в виртуалке :)

PPS. Раз задача детская, жду пруфа того, что ты ее сдал. Причем именно таким наивным способом.

Deleted
()
Ответ на: комментарий от baverman
sub count {
my $data;
my @data;
while ($data=get_next_data()){push @data, $data};
my @ret=@data;
return @ret;
}
@counted=count();
Xellos ★★★★★
()
Ответ на: комментарий от Xellos

Инверсий там сотня (можно повыбрасывать одинаковые, и будет 50), а ламп - миллиард. и при этом у baverman это легкая задача :)

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

Deleted
()
Ответ на: комментарий от Deleted

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

Xellos ★★★★★
()

>Посоветуйте подходящих учебников, желательно на русском

желательно на русском


дейтель и дейтель, http://www.ozon.ru/context/detail/id/2419347/ только надо с 1й начинать

Karapuz ★★★★★
()
Ответ на: комментарий от Manhunt

А что под Ъ-way понимается? Рискую показать свою неосведомленность, но спрошу - а ява широко распространена во фрилансе? думал она больше энтерпрайзна...

aptyp ★★★★
()
Ответ на: комментарий от Xellos

Насколько я понял, вы предлагаете так:

пусть есть инверсии 2 и 3, тогда лампочки с номерами, кратными 2 и 3, будут светить, а кратные 6 - нет. Если так, я это решение уже рассматривал: с большим количеством инверсий всё еще хуже, чем наивным способом.

Deleted
()

Программист - это творческая профессия.

Сходная с профессией лингвиста или филолога или философа. (Не путать с ГСМ!)

Это только старые пердуны, совковые препы со всякими лажовыми ВАКовскими «степенями» думают, что для программирования нужна «математика».

Для программирования нужен врожденный лингвистический дар.

Недаром знатоки свободного разговорного английского ценятся «охотниками за головами» более «ботаников»-математиков-теоретиков.

Bioreactor ★★★★★
()
Ответ на: комментарий от Deleted

Есть инверсии 2 и 3. Есть 600 ламп. Делим 600 на 6, получаем 100. Из первых 6ти - светят 2,3,4, итого 3, не светят 1,5 и 6, итого тоже 3. Получается что 3*100 светят, 3*100 не светят.

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

Xellos ★★★★★
()
Ответ на: комментарий от baverman

См. пример кода. Я такое видел, и не раз. Ещё я видел и не раз - на странице показана таблица и график по ней. Таблица и график делаются каждый своим запросом к серверу. Без кеширования. Без оптимизаций. У нас же памяти много, сервер шустрый, каналы широкие...

Xellos ★★★★★
()

Если чтобы устроится на работу то можно. Если Just For Fun то лучше C.

urxvt ★★★★★
()
Ответ на: комментарий от Manhunt

>Человек - состоявшийся специалист в своей профессиональной области. Однако проблема в том, что удалёнки у них там не бывает, а посещать работу он в ближайшее время не сможет.

может не стоит париться? раньше чем через полгода все равно на жабе писать ничего не сможет

Karapuz ★★★★★
()
Ответ на: Присоединяюсь к реквесту от valich

>Неужели по Java нет книг подобного плана? Не описаний концепций JVM с основными принципами ООП и типов данных, а построение хоть сколь-нибудь реального приложения

есть. http://www.ozon.ru/context/detail/id/1348088/ и http://www.ozon.ru/context/detail/id/2419347/

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

Ты меня не понял. Кодеры не нужны, в отличие от стоматологов. К тому же кодеров сейчас в промышленных масштабах выпускают в Индии.

hydrogen
()
Ответ на: комментарий от luke

>Я же лишь могу напомнить, что есть книга Брюса Эккеля «Философия Java» с весьма подробным описанием языка

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

Karapuz ★★★★★
()
Ответ на: комментарий от aedeph

Какая нафиг функциональщина? Что за идиотский миф? Нету её в SICP.

hydrogen
()
Ответ на: комментарий от baverman

> Казалось бы, причем тут кусок перла и расход памяти питоновского скрипта?

«Они хочут свою ученость показать и всегда говорят непонятное» (с) А.П. Чехов

Bioreactor ★★★★★
()
Ответ на: комментарий от hydrogen

>кодеров сейчас в промышленных масштабах выпускают в Индии

то есть все русскоязычные заказчики размещают свои заказы на конфигурирование 1С на индусских сайтах, так чтоли? или ты хочешь сказать что кодеры не нужны, а нужны архитекторы ПО, которые должны за 20000 руб/мес разрабатывать мегасайты и порталы госуслуг? Предлагай зарплату от 200000 и набигут тебе архитекторы

Karapuz ★★★★★
()
Ответ на: комментарий от JFreeM

> Люди, начинающий с джавы никогда не станут хорошими, высокооплачиваемыми программистами.

Да? А я чей-то на зарплату не жалуюсь. (Пишу под Android)

If you are so clever show me your money (c)

Bioreactor ★★★★★
()
Ответ на: комментарий от Xellos

Есть инверсии 2 и 3. Есть 600 ламп. Делим 600 на 6, получаем 100. Из первых 6ти - светят 2,3,4, итого 3, не светят 1,5 и 6, итого тоже 3. Получается что 3*100 светят, 3*100 не светят.

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

Ясно, что, раз уж они простые, то их НОК будет равен их произведению. Произведение всех простых чисел до 50 равно: 614889782588491410

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

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.