Совсем недавно мы проводили вебинар и нас, как владельцев онлайн курсов по Java, попросили рассказать, каким же образом можно выучить Java самостоятельно. Мы решили написать несколько проверенных способов, как выучить Java или вообще, как выучить программирование с нуля.
Итак, ты твердо решил стать Java-программистом. И сразу у тебя возникает куча вопросов: “С чего начать обучение Java? Как правильно выбрать программу обучения? Как выучить Java и получить опыт работы?”.
Сегодня есть множество способов научиться чему-либо, и программирование не исключение. Помимо классических методов — самостоятельного обучения и офлайн-курсов программирования — в настоящее время существует множество онлайн-курсов по Java, тренингов, как платных, так и бесплатных.
Мы выделили самые популярные способы выучить программирование самостоятельно.
Итак, несколько способов выучить Java:
Преимуществом такого способа обучения является то, что ты сам можешь планировать абсолютно все аспекты своего тренинга — что, где, как и когда тебе учить.
Недостатком же является то, что не у каждого хватит силы воли самостоятельно освоить огромное количество материала, прочитать кучу книг, получить достаточно практического опыта и не бросить все в начале пути. Кроме того, у каждого будут сомнения: “А верной ли дорогой я иду, все ли делаю как надо?”.
Преимуществом данного способа обучения является, конечно, стоимость — её просто нет, все материалы бесплатны и это огромный плюс.
Недостаток заключается еще в том, что, как показывает практика, далеко не у каждого хватит мотивации закончить онлайн-курс по Java или любому другому языку, и многие бросают, по сути даже не начав учиться.
Преимуществом такого изучения программирования на Java будет то, что можно общаться с преподавателем вживую, кроме того, здесь уже будет небольшое комьюнити твоих коллег, с которыми ты можешь обсуждать возникшие вопросы и их решение.
Недостаток — это то, что, как правило, проходят такие курсы не в самое удобное для усвоения материала время — по вечерам, да и затраты времени на дорогу туда-сюда могут быть весьма значительны. Вдобавок в стоимость курса включается стоимость аренды помещения, оборудования и материалов для проведения занятий.
Преимущество данного способа выучить Java или другой язык программирования — это то, что можно найти себе опытного ментора-наставника, который будет работать лично с тобой, готовить специально для тебя индивидуальные задания, делать код-ревью твоего кода и указывать именно на твои ошибки и пробелы в знаниях.
Единственным недостатком будет то, что время опытного наставника стоит немало, да и найти человека, который согласится уделить тебе столько внимания, не всегда просто.
Есть вариант устроиться на какие-либо учебные курсы в IT-компанию, где, скорее всего, ты будешь работать на проекте, достаточно приближенном к реальным условиям, плюс есть большая вероятность после успешного окончания курса устроиться на работу в эту компанию. Однако, конкурс на такие тренинги зачастую очень высок и нужно уже обладать уверенными знаниями, чтобы тебя взяли.
В любом случае выучить Java или выучить программирование с нуля можно, просто найди способ, который подойдет именно тебе.
Удачи тебе во всех твоих начинаниях! Если ты знаешь еще некоторые способы и на своей практике убедился, что они работают, напиши нам. Мы всегда готовы пообщаться с людьми, которые открыты к диалогу.
Мне бы хотелось начать писать приложения для Android. Это, очевидно, все в Java. Программирование заданий на Craigslist составляет не менее 100 Java до 1 С++. Я хочу изучить Java.
К сожалению, программа CS, которую я рассматриваю, учит С++, а не Java, поэтому С++ - это то, что я изучаю. (Я уверен, что обучение на С++ научит меня хорошо программировать, но так же будет Java, а затем я смогу получить работу. Это разочаровывает, что программы CS придерживаются языков, которые они использовали в течение 20 лет, вместо того, чтобы преподавать языки, которые помогут им студенты преуспевают.)
Мой вопрос заключается в том, хорошая идея взломать книги Java на моей полке после того, как я закончу домашнее задание на С++. Смогу ли я в конечном итоге смутить, или я получу лучшее в обоих? Кто-нибудь одновременно изучал как С++, так и Java?
Изменить: Спасибо за все быстрые ответы! Я проделал некоторое программирование, и, я думаю, я легко забираю языки. Сравнивая бок о бок, я обращаюсь ко мне. Но я также склонен откусывать больше, чем я могу пережевывать, и изучение С++ и Java кажется похожим на большую еду, которая может вызвать у меня проблемы.
15 ответов
Я не вижу реальной проблемы с этим. В качестве дополнительного бонуса вы сможете читать книги по соответствующим разделам бок о бок и посмотреть, как они сравнивают и сравнивают различия в том, как языки обрабатывают вещи.
Например, когда вы читаете о указателях на С++, это может помочь вам визуализировать, как ссылочные типы Java работают в определенной степени.
Не расстраивайтесь, ваша школа учит С++, будьте благодарны. Читайте, Опасности Java-школ . Вы не в технической школе, которая хочет узнать самый горячий язык на данный момент. Вы можете научиться информатике. Моя школа учит Java как вводный язык, и я думаю, что это огромная ошибка. Мы должны учиться C, поэтому к тому времени, когда мы познакомимся с Java (скажем, объектно-ориентированным классом), мы узнаем, что на самом деле происходит, и ничего "магического" для нас не происходит.
Знания, которые вы получаете в своей степени и даже от использования C или С++, превзойдет новейший "популярный" язык.
С++ - это язык, на который уходят недели, чтобы учиться и годы учиться. Поэтому, чем раньше вы займетесь, тем быстрее вы освоите его.
Не путайте показатели количества заданий. Соотношение скучных и интересных заданий, вероятно, также составляет от 100 до 1, как вы сказали. Также в эти дни высокоуровневые вещи, зная, что низкий уровень платит.
ИМХО самых интересных (программирующих) заданий есть задания С++. Хотя в Java или С# могут быть интересные проекты, большинство из них связано с перемещением данных (от DB до html или gui, обратно к DB...). Это зависит от того, что вы хотите запрограммировать для жизни, -).
Если вас интересуют робототехника, компьютерное зрение, компьютерная графика... вы обязательно должны пойти на С++.
Не обязательно больше заданий Java, чем заданий на С++, оно сильно варьируется от региона к региону; где вы ищете?
Я думаю, что С++ - отличная основа, и изучение Java было бы проще, если вы знаете С++, и что это, как правило, более простой язык для изучения. Если у вас есть способность к программированию, вы можете изучать оба языка одновременно.
Однако (и что большой, однако), если большая часть фактического программирования, которое вы делаете в школе, находится в С++ (домашние задания, проекты и т.д.), а Java - это то, что вы будете делать как хобби и реже, вы улучшится на С++.
Когда вы идете на собеседование, лучше быть хорошим на одном языке, чем быть посредственным в обоих.
Как студент и программист, я должен сказать, что это слишком легко отвлечься от разных технологий.
Если вы делаете С++, вам следует усердно учиться на это, иначе вы довольно много затягиваете, изучая Java.
С++ имеет целую кучу вещей, которые у Java нет, и если вы изучаете - вы не получите меток, если начнете писать Java в своих тестах на С++!
Мой совет - найти проект, с помощью которого вы можете использовать С++ (возможно, некоторые opengl?) - возможно, есть несколько лучших предложений (я не кодирую в С++). Таким образом, вы будете наслаждаться собой, изучая то, что вы должны изучать:)
100 Java до 1 С++? Я просто искал на dice.com, и он вернул 9322 для Java и 4777 для С++. Конечно, Java более востребован, но соотношение близко к 2: 1. Кроме того, существует также "запасная" сторона уравнения - конкурентов на Java больше конкурентов на Java.
Почему я не вижу рекомендаций по изучению С#? В любом случае я бы изучил С++ и С# одновременно. Я думаю, вы не должны банки на одном или двух языках. Изучайте новый каждый год или около того. Как только вы овладеете ООП и шаблонами дизайна, языки становятся тривиальными (в основном). Тогда вы можете иметь более одного резюме. Вы также должны думать о том, что вы хотите сделать именно... веб-разработка? низкоуровневый материал? Создание драйверов устройств? Немного расширьте свои горизонты и разверните то, что делает ВАС, как программиста, тикающим.
Просто спросите себя, насколько легко научиться концепциям для вас в настоящее время. Насколько глубокое понимание вы получаете?
Если вы хорошо понимаете, вам будет легко различать и разделять их. Если вам это немного сложно, вы, вероятно, можете запутаться.
Изучение любого количества разных языков всегда является хорошей практикой. Это может помочь вам лучше понять концепции и теорию, лежащие в основе обучения, а не сосредоточиться на синтаксисе и ключевых словах. При этом идеи достаточно схожи, но может быть сложно разобраться как одновременно, так и потому, что вы можете переносить синтаксис по ходу дела.
Основное отличие - сбор мусора, и я думаю, что как только вы изучите С++, вы научитесь понимать и ценить преимущества сборщика мусора. Попытка научиться Java в то же время может смутить вас или сбить с толку. Изучите ключевые понятия, хорошо подходите к С++, затем переходите к Java, когда будете готовы.
Здравствуй, дорогой читатель. Давно хотел написать подобную статью, но либо не хватало времени, либо мешала предательская лень. Но, как бы там ни было, все-таки у меня получилось собраться с мыслями, чтобы написать то, что принесет вам, я надеюсь, какую нибудь пользу. С радостью поделюсь своими знаниями и опытом, в ответ с вас причитается время и внимание. По моему мнению, данная публикация хорошо подойдет для тех, кто готов определиться в своих интересах и хочет связать свою жизнь с IT - тем или иным образом. Итак, поехали!
Логично, что чем популярнее язык и востребованность, тем больше шансов будет найти работу в будущем, при этом язык должен быть несложным в освоении. Потому что хотя на C++ и пишут большое количество игр и получают за это хорошие деньги, новичку, тем более не знакомому с ООП (объектно-ориентированное программирование) лучше отложить на некоторое время этот язык куда подальше. Далее по ссылке предоставлен список самых популярный языков программирования 2014 года , и как видно, на первом месте стоит Java, далее идут C языки, затем Phyton, JavaScript, PHP, Ruby и т.д. Если самим поискать подобные статистики, то вы увидите, что в разных источниках места заняты по разному, но в целом первые 10 мест по содержанию везде будут совпадать.
Если же обратиться к другому , в основе которого анализ выложенных в Twitter вакансий, вы увидите очень похожую ситуацию с первым примером. И да, обе статьи на английском, привыкайте к этому, если хотите стать программистом, запомните, что практически вся документации и источники полезной информации написаны на английском, так что если ваши знания в этом языке слабоваты, добавьте себе в список дел на завтра и на ближайшее будущее изучать и практиковать английский. Думаю, я даже напишу отдельную статью, посвященную изучению иностранного языка.
Исходя из этих двух источников мы уже можем себе представить, какие языки программирования сейчас «в моде». Как видно по названию, автор статьи выбрал для себя Java. Хотя я считаю его лучшим для изучения ООП, найдется много людей, которые не согласятся со мной, и это логично - сколько людей, столько и мнений. Тут мы встаем на небольшое перепутье дорог: выбирать Java, С# (очень похож на Java), Phyton, если мы хотим работать с начинками программ и приложений (back-end) или же PHP, JavaScript, HTML, если хотим заниматься веб-разработкой (front-end). В первом случае я бы свой выбор остановил на Java, а во втором - на PHP, хотя опять же, тут больше по вкусу, надо уже самому искать информацию о различных языках и вообще понимать, чем ты хочешь заниматься. Для размышлений вот подборка языков, которые используются в крупнейших интернет компаниях мира .
Есть 2 основных причины, почему бы я выбрал либо Java, либо PHP. Первая - это очень популярные языки и найти соотвествующую работу не составит труда, а вторая - в том, что ни по каким другом языкам вы не найдете столько обучающего материала как по этим двум, причем как на русском, так и на английском.
Вообще, у меня есть своя теория, не раз подтвержденная мною же на практике: абсолютно всему можно научиться за 1 год. . Поверьте мне, это сущая правда, кому-то даже понадобиться меньше времени, но если человек не перестает сдаваться и в течение года с умом подходит к обучение, то практически невозможно, чтобы он не научился. Это не только в программировании, абсолютно в любой сфере: хочешь играть на гитаре - без проблем (у меня это заняло не так уж много времени и сил), научиться аргентинскому танго, кататься на серфе - на все это хватит одного года. Главное - учитесь!
В данном случае я буду рассматривать язык Java, так как он мне все таки ближе. Благо в интернете полно людей, которые безвозмездно помогают другим в обучение, поэтому найти подходящий для вас материал не составит труда. , которые можно с пером и бумагой просматривать в стенах свою уютной квартиры (пока только на русском языке). Для тех, кто привык вчитываться в проходимый материал, опять же интернет предоставляет большие возможности и это только один из всевозможных сайтов с уроками по Java . Теории хоть отбавляй, но не могу сказать про такой обучающий сайт, как Coursera.org , где вы сможете найти обучающие курсы на различных языках и по различным областям, в том числе и программированию - опять же все абсолютно бесплатно. Таких сайтов не один и не два, стоит всего лишь поискать.
Но как бы не была познавательной теория, в программирование без практики не обойтись. Но даже тут за нас уже сделали пол дела и не надо искать различные задачи, чтобы улучшать свои навыки, такой сервис как JavaRush очень в этом поможет. В целом данный сайт дает как теорию, так и практику, начиная просто с дублирования кода с экрана и заканчивая комплексными задачками, а в перерывах даже предлагает расслабиться и посмотреть небезызвестный мультсериал. По заверениям авторов, достигшие 20 уровня в сервисе будут иметь достаточные знания, чтобы уже устраиваться в IT компанию.
Ну и конечно, кто-то спросит, а как же книга? Разве не надо их читать, а если надо - то что? На это я отвечу, что от чтения книг еще никто глупее не становился. Книг тоже очень много, но я перечислю только небольшую часть из них:
У многих начинающих программистов на первых порах возникает большое количество вопросов, особенно когда нужно выполнять самостоятельное задание. Это нормально. Но в таких ситуациях надо понимать, что практически на любой возникший у вас вопрос можно найти ответ в интернете. Вряд ли вы первый, кто с ней сталкивается, поэтому не торопитесь сражу же задавать вопросы на различные форумы программистов (о которых я напишу чуть позже). Посидите минутку, правильно сформулируйте проблему у себя в голове и смело ищите её в поисковике. Наверняка большинство будут искать на русском языке, но не забывайте, что язык программистов - это английский, поэтому, если вы не нашли ответ на великом и могучем, стоит поискать на языке, который в школе вроде бы все учили, но так и не выучили. Но если даже и в этом случае оказалось, что на ваш вопрос нигде нет ответа, в бой вступают лучшие форумы интернета:
Форумы - это, конечно, не единственный способ получить ответы на интересующие вопросы. В своей практике программисты повсеместно работают с официальной документацией языка, на котором они пишут. Там описываются, как работают те или иные классы и интерфейсы, порой документация является единственным источником, который может помочь в разрешение вопросов, ведь это только на начальном этапе у всех схожие вопросы и без проблем можно найти готовые решения, но чем дальше вы забираетесь в дебри, тем сложнее и сложнее находить ответы, поэтому приходиться уповать на свою, я надеюсь, уже умную голову.
Наконец, для тех, кто хочет действительно стать программистом, желаю взять быка за рога, собрать всю волю в кулак и делать то, что вам нравится. До меня уже тысячи раз говорили, но я повторюсь, главное - желание и труд. Тогда все у вас получится. Запомните самое главное: воспринимайте изучение языков программирования и различных технологий не как цель, а как СРЕДСТВО. Только представьте, какие возможности перед вами открываются. Может быть, именно вы станете одним из тех, кто меняет мир в режиме реального времени. Так что удачи и спасибо за внимание!
Теги: Добавить метки
С тех пор, как C/C++, Python и некоторые другие языка программирования становятся все более популярными, Java постепенно уходит в небытие. Стоит ли продолжать изучать Java или лучше просто переключиться на другой язык? Эту тему обсудили пользователи Quora . Для вас мы собрали самые интересные мнения.
Ашиш Датта , FizzBuzz
Я бы продолжил изучать Java. Он совершенно точно не «уходит в небытие», примите к сведению следующее:
Возможно, Java не так уж привлекателен, но конкретно Java 8 является вполне приличным языком программирования, существует большое количество свободного софта Java. Мобильный и предпринимательский спрос на Java довольно велик. Так что продолжайте изучать Java, но непременно познакомьтесь и с языками вроде Python, C и C++ ‑ все любят полиглотов!
Майкл Браун , ветеран индустрии разработки программного обеспечения с 20-летним стажем
Ирония заключается в том, что когда 17 лет назад язык Java набирал популярность, многие люди считали это погребальным звоном для C/C++.
Если я чему-то и научился, работая в этой индустрии, так это тому, что если бросить взгляд сверху, под солнцем (англ. Sun – прим. ред .) нет почти ничего нового (пару лет назад это считалось бы неплохим каламбуром, но компания Sun уже не существует…). Отрасль все еще достаточно молода для того, чтобы мы могли учиться у первых программистов. Проблема состоит в том, что мы продолжаем «переучиваться» одним и тем же вещам, и так уверены, что то, что мы делаем, является совершенно уникальным, что в конечном итоге мы едва ли движемся вперед.
Вернемся в 2010 (когда Sun все еще была компанией). Все были помешаны на шаблоне MVVM, я даже заключил издательский контракт на написание книги на эту тему (MVVM Unleashed: Michael Brown: 9780672334382: Amazon.com: Books) . Я так и не написал эту книгу, потому что каждый раз, когда я принимался за дело, я узнавал что-то новое. Например, тот факт, что MVVM существовал еще со времен разработки первого пользовательского интерфейса, Smalltalk на Xerox PARC. Отрасли понадобилось более 30 лет, чтобы вновь вернуться к концепту, который был разработан (и основательно задокументирован, надо сказать) вместе с самой первой пользовательской платформой.
Или как насчет облачных вычислений? Арендуйте ненадолго компьютер, созданный крупной компанией. Выключите его, когда в нем нет необходимости, включите его, когда вам нужно. Коммунальные вычислительные услуги: это волна будущего!
Если есть совет, который я могу дать молодому программисту, то вот он: не гонись за водным потоком… Я имею ввиду новые тенденции: не преследуй их, сфокусируйся на изучении основ и опирайся на них. К тому моменту, как ты научишься тому, что в данный момент в топе, оно уже будет заменено чем-то новым, что скорее всего было «вчерашней новостью» тогда, когда ты гнался за трендом.
Питер Лорей , 23 года работы в сфере IT
Чем больше пророчеств, тем сильнее Java. После каждого релиза наступает пик прогнозов скорой кончины Java, постепенно их становится меньше (именно в этот момент компания и может находиться к критическом состоянии).
История «Смерти Java»
Большая часть прогнозов исходит от людей, которые пытаются протолкнуть «лучший» язык программирования, не завоевывавший своей пользовательской аудитории.
Существует распространенное заблуждение, что технического превосходства достаточно, чтобы предпочесть X (икс) Y (игрику) (хотя не всегда очевидно, что X лучше, чем Y). Большинство людей используют Qwerty клавиатуру, хотя причиной ее изобретения была попытка избежать заклинивания молоточков в пишущей машинке. Было изобретено множество «лучших» раскладок, но едва ли кто-то их использует.
Владислав Зоров , могу убедить людей в том, что я знаю Java
Стивен Панвази , технический директор в Perchbox
Java далек от вымирания. Поскольку его выбрали в качестве языка для Android, его использование сейчас важнее, чем когда бы то ни было.
Даже не буду упоминать о том, что большая часть учебников по составлению алгоритмов учат использовать Java, так что его уход в небытие привел бы к необходимости переписывания целой системы.
Согласно той информации, которой мы обладаем сегодня, инфраструктура поддержки Java настолько сильна, что вряд ли этот язык исчезнет в ближайшее время.
Гэрри Тейлор , пишет на Java,C,Python, Objective-C, PHP, C#,Swift
Окей, пора развеять пару мифов. Я знаю, интернет их обожает, но некоторые из них меня уже достали.
1. Java на находится на грани исчезновения. Сегодня Java используют больше людей, чем 5 или 10 лет назад.
2. Вымирает из-за Python? Java младше, чем Python.
3. Нет языка более популярного, чем Java, за исключением разве что JavaScript, но только из-за того, что у компании монополия. В сети у вас просто нет другого выбора.
Изучите другой язык, если хотите, забросьте Java, если вам так угодно, или продолжайте изучать его, если вам заблагорассудится.
Умур Озкул , технический директор в Publitory
Если вы хотите найти работу, языка лучше Java вам не найти. Большая часть компаний используют Java и продолжат это делать. Для них просто не имеет смысла выбрасывать их код. Следовательно, если вы специалист в Java, в переквалификации просто нет смысла.
Если вы планируете стартап или работаете на себя, тогда Elixir+Phoenix или Ruby on Rails будут лучшими языками для вас. Большая часть стартапов не использует Java, так как на данный момент существуют более быстрые пути выполнения того же объема работы. Чтобы составить представление об этом: Comparison of Java and Ruby on Rails with Hobo .
Для работы по договору одинаково актуальны Java и Ruby.
Сырая статистика популярности того или иного языка не дает представления об использующей его аудитории. Все относительно.
Артём Моисеев , стартапер
Я считаю, надо изучать то, что приносит больше всего удовольствия, так вы станете настоящим экспертом в выбранном языке.
Java отнюдь не на пути к исчезновению. Большое количество софта, разработанного крупными компаниями, написано на Java. Это язык корпоративного мира. Он обладает широкой пользовательской аудиторией, обширными библиотеками, что делает его уникальным инструментом. Не забудьте про Android, он тоже работает на Java.