Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java как первый язык программирования


Автор: ПапаМишка 4.11.2005, 18:47
Вот у меня вопрос:
на данный момент я не программист, хотя и работаю в сфере компьютеров.
Мой уровень программирования НОЛЬ сейчас, последние несколько дней я анализировал разную информацию, и решил что Java язык выучить для меня сейчас наиболее целесообразно.

Только вот вопрос. Я не знаю о сложности этого языка ничего.

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

а то я всю голову изломал smile

Автор: val 4.11.2005, 18:57
Реально на все 100, особенно если имеется техническое образование.
Но для начала запаситесь литературой, настоятельно рекомендую:
Брюс Эккель "Философия Java"
П. Ноутон, Г. Шилдт "Java 2"

Автор: ПапаМишка 4.11.2005, 19:14
Цитата(val @ 4.11.2005, 18:57)
Реально на все 100, особенно если имеется техническое образование.
Но для начала запаситесь литературой, настоятельно рекомендую:
Брюс Эккель "Философия Java"
П. Ноутон, Г. Шилдт "Java 2"


СПАСИБО огромное,
техническое образование имееться, В/О с красной корочкой, от которой правда толку никакого.

А сейчас в FAQ прочитал что язык сложен для обучения очень из за обширных библиотек smile

Автор: batigoal 4.11.2005, 20:24
Цитата
А сейчас в FAQ прочитал что язык сложен для обучения очень из за обширных библиотек smile

Язык - несложен. А вот API, действительно, обширен, даже если брать только стандартные классы. Но это все приходит довольно быстро.

Хинт: на Западе именно Java является базовым языком обучения программированию. У нас - пока нет, но тенденция прослеживается.

Автор: chief39 4.11.2005, 20:42
Цитата
А сейчас в FAQ прочитал что язык сложен для обучения очень из за обширных библиотек

Есть разница: выучить английский и знать наизусть произведения всех англоязычных авторов smile Или уметь водить машину и водить ЛЮБУЮ машину smile
А то что запугивают.... "На заборе ..й написано, а постучишь - дерево" smile

Цитата
Мой уровень программирования НОЛЬ сейчас

Ничего страшного нет. Желательно почитать ещё по архитектуре компов. Чтоб понимать как происходит взаимодействие процессора, памяти, дисковых накопителей и проч. Чтоб не путать своп с кэшем smile

А java - язык довольно простой и красивый. Ибо создавался с нуля с использованием наработок прежних языков и учётом ошибок их создателей.

Главное понять суть объектно-ориентированного программирования и базовые принципы и конструкции JAVA. Дальше - как по маслу. А всего знать всё равно нельзя smile

Так что смело за дело!
-------------------------------------------------------------------------------------------------------------
"Не бойтесь браться за неизвестное, помните:
Ковчег строил любитель,
профессионалы стоили Титаник"

P.S. Тем более форум-то под рукой ;)

Автор: Stampede 4.11.2005, 20:59
Цитата
Поскажите, реально ли выучить этот язык, не имея опыта в программировании, или подскажете начать с какого либо языка более простого ?


Ответ очень сильно зависит от того, какие цели вы перед собой ставите. Я тут проглядел ваш топик "Стать программистом в 27 лет", но там цели все равно расплывчатые. Я понимаю, это не ваша вина: пратически невозможно точно сформулировать, чего именно ты хочешь добиться в вопросе, о котором имеешь лишь самое общее представление. Поэтому я сейчас попытаюсь ответить на ваш вопрос именно с этих позиций - естественно, в меру исключительно своего субъективного восприятия.

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

Самый реальный сценарий представляется примерно так: должность программиста в какой-нибудь конторе советского типа, типа там на трикотажной фабрике или в тресте коммунального хозяйства, в маленьком отделе автоматизации с коллективом из нескольких не самых продвинутых спецов. Хозяйство - складские задачи, бухучет, мелкие самописные программы. Все это надо будет в меру сил поддерживать и по возможности развивать. Инструментарий - чаще всего полный зоопарк: FoxPro, Access, C, VB, Delphi - в общем, может оказаться все что угодно.

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

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

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

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

В этом случае надо сразу для себя решить: или это будет Java, или .Net. Третьего не дано (на самом деле есть еще сфера графики/мультимедиа/игр - там понадобится C/C++, но это в нашей ситуации неправдоподобный сценарий).

Так вот, выбирая между Java и .Net. Скажу сразу, про .Net практически ничего не знаю, кроме того, что это платформа Microsoft. Для меня, однако, этого достаточно, чтобы сразу поставить на ней крест из соображений личной брезгливости. Но я допускаю, что не все в этом вопросе такие щепетильные, так что решать вам.

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

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

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

Вот такие вот мои пять копеек smile

Автор: allex 5.11.2005, 00:30
Stampede
Была необходимость покопаться с .NET после Java. Жутко плевался. Информации меньше, организована она хуже, как язык C# сложнее Java.

C сложнее Java - надо больше понимать про указатели, работу с памятью. Дебажить сложнее.

По-моему, из "взрослых" языков Java - самая приятная для изучения. Только не надо сразу с последней версией разбираться, где generics etc.

Автор: Ch0bits 5.11.2005, 00:53
ПапаМишка
В добрый путь!

Автор: Souljah 5.11.2005, 16:02
разве в c# есть указатели?
новость!

Автор: vzf 5.11.2005, 16:08
Начинать с JAVA неплохо: сам язык, его синтаксис, пожалуй, один из самых легких для изученя (по крайней мере легче С++ и не сложнее C#). К тому же знание JAVA откырвает неплохие перспективы.

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


Согласен на 100% С - всему голова smile , но изучить С - дело не самое быстрое

Автор: tux 5.11.2005, 17:03
Тогда и мои 5 копеек smile
Цитата(Stampede @ 5.11.2005, 01:59)
Самым идеальным, на мой взгляд, было бы начать с языка C. Это заложило бы базу и понимание принципов работы программ на всю оставшуюся жизнь. Но в ситуации, когда сильно хочется кушать, это может быть не самой подходящей стратегией.

Насчет заложенной базы полностью согласен. Только у меня возникает такой вопрос - а нужно ли понимание этих принципов прикладному программисту, коими являются 90%? Положим я их знаю, но не уверен, что мне это сильно помогает в программировании на Java. Если занимаешься системным программированием или вещами, близкими к системным, такие знания несомненно нужны. Да и писать тогда придется скорее всего как раз на C. А написать прикладную систему учета товаров можно и без них.

Еще одно замечание. Поставьте себя на место человека, который ни разу программированием не занимался. Что ему будет проще - изучить процедурный C или объектно-ориентированную Java, где он будет оперировать с объектами, их свойствами и поведением? Я не знаю точного ответа на этот вопрос. Однако, ближе все-таки ко второму. Объектно-ориентированные языки программирования ближе к обычной мыслительной деятельности человека, имхо будет проще описать множество классов, соответствующих предметной области программы, чем переводить эти термины в язык, близкий машинному.

Замечание насчет большого API верно, но ведь не обязательно изучать все сразу. Постепенно, по мере необходимости. К конце концов, обширность стандартной библиотеки Java - это не недостаток, а достоинство. Подмножество, которое примерно соответствует стандартной библиотеке того же C, изучить можно не менее быстро.

Автор: batigoal 5.11.2005, 17:04
Цитата(Souljah @ 5.11.2005, 17:02)
разве в c# есть указатели?
новость!

Речь шла о С.

Автор: allex 6.11.2005, 11:48
Souljah
Я действительно про С говорил, а не про C#, но и в C# есть указатели. Если это новость - почитайте про unsafe код. smile

Есть два пути изучения - начать с общего случая, тогда все более частные автоматически получатся. Либо наоборот - идти от простого к сложному, на каждом этапе имея реальные знания, которые уже можно применять. Так вот С++, на мой взгляд - тот самый общий случай. Имеет ли смысл сразу начинать с него - я лично сомневаюсь.

Автор: maxim1000 6.11.2005, 13:46
читал как-то статью Джоела Спольски
там было такое соображение
на данный этапе развития можно просто начать изучение просто с какого-либо высокоуровневого языка и не беспокоиться о том, как это реально работает
это прокатит в 99% случаев, но найдется такой 1%, когда отсутствие этих знаний тормознет работу
из этого был сделан такой вывод: действительно классный программист должен изучать все уровни программирования: от ассемблера (+какое-то понимние устройства процессора, конечно же) до того, на котором он программирует
не то, чтобы быть в них мастером, но хотя бы ориентироваться...

однако, опять же вопрос, стоит ли оно того (потому как времени затратить придется много)...

Автор: chief39 6.11.2005, 17:50
Кстати, в какой-то книжке по ООП(хоть убейте не помню чья) было сказано: "Если вы бывалый программист со знанием процедурных языков, вам поначалу будет трудновато думать стиле ООП" - не совсем согласен с этим, но что-то тут есть smile
Мы же не изучаем счётную машинку Паскаля или архитектуру первой ЭВМ 40-х годов smile Просто помним что такие были.
Неплохо бы знать всё, но почему бы не начать с новейших разработок? smile

В общем, в добрый путь! smile

Автор: Zandr 17.11.2005, 14:52
Джоэль Спольски рулит. Кстати вот по теме: http://russian.joelonsoftware.com/Articles/BacktoBasics.html
На счет API у него тоже где-то было.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)