Bender
1 уровень
Маунтин-Вью

Как стать программистом (часть 1)

Пост из группы Архив info.javarush.ru
3681 участников
как стать программистом Итак, ты испытываешь острое желание стать программистом. Куда теперь бежать? На этот вопрос существует множество ответов в сети. Некогда мы уже писали статью об этом. Тем не менее, судя по вопросам, которые нам задают в социальных сетях, новички часто теряются в обилии информации и не знают, с чего конкретно начинать. В принципе, мы на JavaRush только тем и занимаемся, что помогаем ответить на этот вопрос. Однако для тех, кто совсем растерялся, мы решили составить приблизительный план действий.

Для начала определись с пулом технологий

  1. Выбери 2-3 основных источника знаний, а также с десяток дополнительных. Но не забывай «гуглить», если что-то не ясно.
  2. Выбери среду разработки и установи на свою рабочую машину всё необходимое ПО.
  3. Определись с тем, что еще учить и где черпать информацию.
А теперь обо всем по порядку. Для начала определись с языком и пулом технологий Если ты совсем-совсем ничего не знаешь о программировании, у тебя есть два варианта (на самом деле — больше, но мы тут не для того, чтобы тебя запутать). Путь первый. Попробовать что-то максимально простое на базовом уровне, и уже потом — определиться. HTML CSS JS Например, язык разметки сайтов HTML. Базовое знание HTML — полезный навык для любого айтишника. Однако сам по себе этот язык дает новичку очень смутное представление о программировании как таковом. Разметка — это не вполне программирование, и чтобы дойти от создания страничек до настоящих задач, которые решают не верстальщики, а программисты, нужно изучить очень многое. Тем не менее, получить представление об HTML и его наводящем красоту вечном спутнике CSS — очень просто. Интерактивные курсы можно найти здесь: https://www.codecademy.com/learn/web https://htmlacademy.ru/program В обоих курсах есть платный и бесплатный контент. Бесплатного для начала вполне достаточно. Не слишком сложно будет изучить основы JavaScript. Это уже самый настоящий язык программирования. Мегапопулярный причем, правда, с одним «но» — это самый популярный «второй язык», то есть такой, который большинство программистов используют как вспомогательный. Основным он является для так называемых «Фронтендщиков», тех программистов, которые создают и привносят интерактивность в интернет-странички. Справедливости ради заметим: простота JavaScript — палка о двух концах. На начальном уровне всё очень просто, но, запрограммировать относительно сложное многострочное приложение на JavaScript — задача не из легких. Так что его нельзя назвать универсальным языком. Тем не менее, вот тебе пара ссылок на хорошие JavaScript-ресурсы. Пригодятся если не сразу, то немного позднее. http://learn.javascript.ru/intro https://www.codecademy.com/learn/javascript Хорошим «учебным» языком сегодня считается Python. Он достаточно прост в освоении, отличается читаемым кодом решает широкий круг проблем, позволяя сфокусироваться на задаче, без постоянных треволнений о том, как в этом самом программировании всё устроено. В какой-то момент эта особенность («высокоуровневость») может сыграть с новичком злую шутку, и он будет пытаться искать у доброй «змейки» руки и ноги, которых нет. python У Python’а есть и другие недостатки, например, медлительность при исполнении программ. И еще масса всяких подводных камней, которые становятся очевидны позднее, когда программист достаточно «набьет руку» на простейших задачах. Есть еще очень популярный PHP, но вряд ли стоит с него начинать: язык и правда распространён, но к нему у профессионалов масса претензий. Упомянем и Ruby — язык чем-то похожий на Python, но не самый простой для понимания. PHP, Ruby и Python решают примерно одни и те же задачи. В принципе, если ты уверен на все 200%, что хочешь писать только сайты и ничего более, пул HTML + CSS + JavaScript + Python/PHP/Ruby тебе подходит. Хотя на самом деле, эти прекрасные технологии даже Web не полностью охватывают. Всякие сложные бизнес-программы, которые прячутся за сайтами очень часто написаны на более универсальных языках. Таких как Java или C#. Помимо всего остального, рекомендуем обязательно посмотреть популярный Гарвардский курс по основам программирования CS50 (мы его перевели на русский недавно, посмотреть можно здесь). Он идеально подходит для новичков. А что если тебе, обучившись, захочется не сайты клепать, а писать игры, создавать приложения под мобильные устройства, программировать микропроцессоры, или создавать огромные корпоративные программы? А вдруг робототехникой увлечешься? Наукой? Да мало ли, куда занесет… Вспомни, так ли редко жизнь вносила в твои планы свои коррективы? Вот почему мы считаем более рациональным и правильным второй путь. Путь второй. Изучить универсальный и востребованный язык программирования, умение работать с которым хорошо оплачивается. Java Вышеупомянутый Python в какой-то мере подходит, но есть куда более мощные в своей универсальности языки. Среди них — Java, C#, C++. Первые два во многом похожи и решают похожие задачи. По сути, они решают какие угодно задачи. Web, десктопные и мобильные (с оговорками, о которых позднее) приложения, работа с консолью и графикой. Учебный код на них тоже вполне комфортно писать. Какой выбрать? В принципе, любой из них хорош. Но давай действовать рационально (это очень полезно для программиста!). Вбиваем в Google что-то вроде «самые востребованные языки программирования» и смотрим на результат. Вот несколько интересных ссылок: https://dou.ua/lenta/articles/language-rating-jan-2016/ https://hh.ua/article/13333 http://itdistrict.ru/kakoy-yazyik-programmirovaniya-samyiy-vostrebovannyiy-v-2016-godu/ https://dev.by/lenta/main/top-15-samyh-vostrebovannyh-yazykov-programmirovaniya-v-2015-m http://www.3dnews.ru/926356 В первой статье подведен итог традиционного опроса разработчиков (6181 человек, 91,5% респондентов проживает в Украине, 8,5% — за ее пределами), посвященного востребованности языков программировании. Во второй — опрос HR-менеджеров (это те, кто персонал подбирают), о том, какие специалисты в сфере разработки им больше всего нужны. Последние три статьи содержат выводы экспертов, речь идет о глобальном рынке труда. Если тебе лень переходить по ссылкам, вот выжимка из статей: Судя по источникам, самым востребованным языком является Java. Также в лидерах числятся кое-где JavaScript и PHP. JavaScript по причине его распространённости в вебе и потому, что его очень часто используют в качестве «второго» языка (это тоже отображено в исследовании из первой ссылки). Причина распространения PHP следующая: очень много сайтов было написано именно на этом языке, их нужно как-то поддерживать, поэтому специалисты всё ещё нужны. Однако их количество, согласно тому же исследованию и здравому смыслу (язык имеет массу недостатков, с этим тезисом согласно большинство разработчиков), продолжает сокращаться. Стало меньше и тех, кто пишет на C#, в то время как количество людей, использующих Java, возросло, JavaScript — тоже. Выросло и число программистов на Python, но процент опрошенных по рынку пока невелик: 8%, в то время как доля Java составляет 26.3%. Далее — опрос рекрутеров. Из него тоже можно сделать однозначный вывод, что самые востребованные разработчики сегодня — те, кто владеет языком программирования Java. Их назвали нужными все опрошенные HR-ы без исключения. Вторыми по востребованности по мнению специалистов по найму являются те, кто программирует на C#. Ссылки на статьи, в которых описаны мировые тенденции не внесли никакого разнообразия в стройную картину: Java, Java и снова Java. Или вот еще подробный видеоролик, в котором умудренный программист поясняет, какой язык и для чего нужен. Сам программирует на C#, C, Python. В качестве первого языка рекомендует Java: https://www.youtube.com/watch?v=T70qJndjYi0 Популярность языка связана в первую очередь с его спецификой: именно на Java реализуется множество бизнес-приложений, он универсален и не зависит от платформы, на которой запускается программа. Язык отлично подходит для создания больших и маленьких программ. Кроме того, на основе Java создан Android. Java существует уже довольно давно, и за время, прошедшее с её рождения, язык оброс множеством полезных библиотек, и при этом активно развивается и обновляется. Так что для работы с Java нужны специалисты и для разработки новых продуктов, и для поддержки/обновления уже существующих.
Ну хорошо, допустим, Java. Как платят специалистам по этому языку?
как платят программистам Чтобы это выяснить, есть много прекрасных сайтов, например, DOU. Кроме всего прочего на этом сайте собирается статистика о том, сколько зарабатывают специалисты по разработке и другие «айтишники» в Украине. Итак, переходим по ссылке, выбираем там, например, город Киев и должность Junior Developer (или просто Developer), выбираем Java и сравниваем с другими языками. Если ты живешь не в Киеве, не переживай: мы отслеживали разницу стоимости работы в разных городах и в статье «Путь программиста», приводили таблицу с приблизительными данными. Скопируем её сюда, вот она: сравнение зарплат Это — докризисная таблица. В настоящий момент ситуация несколько изменилась, киевские зарплаты остались примерно на том же уровне, а вот московские приблизились к киевским. Если ты изучил ссылку с DOU, то, вероятно, заметил, что Java-программисты — не только самые востребованные, но также и одни из самых высокооплачиваемых специалистов.
А, может, Java — это слишком сложно?
...На самом деле, нет. Есть языки, которые на первом этапе обучения покажутся проще. Однако у Java есть огромный жирный плюс: он массовый, нужный и присутствует на рынке уже много лет. Соответственно материалов для обучения, лекций, книг, форумов как для новичков, так и для матерых программистов — великое множество. Комьюнити очень помогает учебе. Главное во всем этом разнообразии не запутаться и подобрать учебные материалы. Об этом мы напишем в следующем пункте. Ты решил, что точно хочешь разрабатывать игры и прочитал, что большинство суперхитов написано на C++. Так может сразу его и учить, этого старейшину мира универсальных языков? Можно попробовать, но идея не лучшая: С++ чрезвычайно сложен для новичка. А вот после подготовки на Java ты без проблем сможешь перейти на C++, если захочешь. Кстати, далеко не все «большие» игры написаны на C++. Знаменитый Minecraft, например, создан на Java.

Краткие выводы

Выводы
  • Самые востребованные разработчики пишут на Java и потребность в них постоянно растет;
  • У Java-разработчиков высокие зарплаты;
  • Java — универсальный язык. На нем можно писать почти что угодно. Игры в том числе;
  • Java относительно прост в изучении;
  • После Java несложно перейти на C#, совсем просто изучить JavaScript, Ruby, Python. После Java программист готов к подробному знакомству со сложным С++;
  • Android основан на Java;
  • Реализация многопоточности в Java доставляет. Если ты новичок, ты, скорее всего, пока не понимаешь, как это классно. Просто запомни эту фразу=);
  • Подавляющее большинство программистов владеет JavaScript в качестве второго языка.
Исходя из всего вышеперечисленного, наш рекомендуемый пул технологий для изучения на начальном уровне: Основной язык: Java. Учим ту его часть, которую называют Java Core; Дополнительно: HTML, CSS, JavaScript. Подключай их постепенно, начиная со второго-третьего месяца учёбы для отвлечения и отдыха от Java. Вторую часть статьи читайте здесь. Третью часть статьи читайте здесь. Четвертую часть статьи читайте здесь.
Комментарии (48)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизироваться
boyarskiy 21 уровень
17 июля 2016, 16:19
В одной из лекций JavaRush было сказано, что читать книги ради чтения — потерянное время. Полностью согласен, и на себе это уже прошёл. Иными словами, к книгам нужно обращаться только тогда, когда наболели вопросы на которые ты постепенно находишь в книге ответы. Так вот найденные таким образом ответы уже на 100% остаются в твоей голове, иначе — в одно ухо вошло, из другого вышло. Есть запрос — ищи ответ, нет запроса — нечего тратить время.
Что касается Шилдта, Эккеля и курса JavaRush: сначала я тоже плевался на книгу Эккеля, так как считал её слишком мудрёной, и перешёл на Шилдта. Но со временем выработал такую систему: когда я в JavaRush дохожу до предела имеющихся знаний (то есть ты уже решаешь задачу наугад, неосознанно) — я погружаюсь в Эккеля, причём штудирую его пример за примером, упражнение за упражнением, набирая всё ручками, иногда даже на листке бумаги, так бывает быстрее озаряет. Причём штудирую его последовательно, не прыгая по главам, поскольку его курс очень грамотно построен, и проходить его нужно последовательно. Так вот когда ты прошёл нужный материал, и возварщаешься на JavaRush, то все страшные до этого задачи автоматически становятся детскими, и ты с пониманием сути довольно быстро идёшь дальше.
Что же касается Шилдта, полный курс — то я его читаю последовательно в свободное время, и использую уже как закрепление пройденного, или восполнения пробелов. Примеры в его книге не такие мудрёные, но некоторые вещи он очень грамотно и просто объясняет.
Fatal 14 уровень, Харьков
17 июля 2016, 23:58
Так как вы описали я читал Headfirst Java и это действительно работает. С эккелем нарисовалась проблема, ибо первые 50% книги идет повторение уже известного мне материала, НО — более углубленно (да чего уж там, все кроме сервлетов более менее поясняется в Headfirst java). И в этом западло и кроется — читать нужно, но уже не интересно. Ибо тонкие моменты нужно именно искать, а бОльшая часть материала уже известна. Так вот, это «искать» навевает скуку несусветную. В моем случае вероятно больше подойдет методика — дошел до непонятной темы, открыл главу — прочитал. Но не все подряд.
boyarskiy 21 уровень
18 июля 2016, 11:39
Есть такое, но книга это как горькая пилюля — невкусная, но полезная. Я сам стал штудировать Экккля, когда начало узнал у Шилдта и в JavaRush. Вначале тоже было скушно, но чтобы преодолеть скуку я стал просто набивать все примеры, иногда даже просто ручкой на листке бумаги, и решать все задачи. И только в этом случае я начал понимать в чём фишка Эккеля: даже в простеньких примерах проскакивают хитрые возможности языка Java, его код боле компактен, скажем так. Вес его примеров намного больше веса примеров у того-же Шилдта. Да, конечно, нужно поломать голову над некоторыми примерами, но после озарения этот материал закрепляется железно.
Плюс с помощью Эккеля я разобрался в package-ах, import-ах, classpath-ах, и модификаторах доступа, как самостоятельно из блокнота собрать решение из нескольких пакетов, и достучаться до классов и членов класса из разных пакетов. А главное — после Эккеля прохождение JavaRush становится приятным времяпровождением, а чтение Шилдта — как сказка на ночь, или как полировочка неровной поверхности.
Headfirst у меня лежит на полке, я её начинал проходить, но как раз-таки почему-то она на меня навевает скуку.
Мой совет, время от времени, попробуйте смириться и тихо с ручечкой или карандашиком и листком бумаги, набивая в блокнотик штудировать примерчики Эккеля. Если очень непонятно, постарайтесь на бумаге нарисовать те же классы, и взаимоотношения между ними. Когда примеры проходят через написание, то начинаешь улавливать тонкости, которые при простом осмотре незаметны. Уверен, в этом случае, вы заметите ценность и красоту примеров Эккеля. Эккеля нужно именно грызть, это не диванное чтиво. Быть может опытные программисты и могут бегло его читать и находить для себя новое, но не новички.
Fatal 14 уровень, Харьков
18 июля 2016, 14:58
Да уж, вот уже пол года время от времени читаю различные отзывы по поводу книг. Вкусу фломастеров и не снилась такая разница в предпочтениях, которая есть у книг :)
Smetchik 15 уровень, Москва
8 июля 2016, 19:20
-Android основан на Java;

Он не основан на Java, он использует синтаксис Java(да как бы частями там Java есть), и использует собственный байт код и виртуальную машину. При этом для Android внезапно с тем же успехом можно писать на C++, C#, ruby, Ada(есть компилятор под Freebsd) и куча всего еще, так что это лучше убрать из плюсов.
Fatal 14 уровень, Харьков
17 июля 2016, 23:53
Сударь, извольте. Оракл с вами бы не согласилась, ибо

/**
  789        * Checks that {@code fromIndex} and {@code toIndex} are in
  790        * the range and throws an appropriate exception, if they aren't.
  791        */
  792       private static void rangeCheck(int length, int fromIndex, int toIndex) {
  793           if (fromIndex > toIndex) {
  794               throw new IllegalArgumentException(
  795                   "fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")");
  796           }
  797           if (fromIndex < 0) {
  798               throw new ArrayIndexOutOfBoundsException(fromIndex);
  799           }
  800           if (toIndex > length) {
  801               throw new ArrayIndexOutOfBoundsException(toIndex);
  802           }
  803       }


:)))) Если сурьезно, то Java нативна для Android, а все остальное подпадает под ваше уместное «можно». Если точнее, то андроид это пирог, нижний слой которого Linux, потом библиотеки C++/C, потом исполнительная среда — основные либы, которые все на Java, потом идут api приложений, потом идут сами дефолтные приложения. Зачем было придираться к этой фразе — не понятно
Smetchik 15 уровень, Москва
18 июля 2016, 11:17
Да шо вы говорите, это Оракл не соглашаясь со мной подала в суд на Гугл с формулировкой, Несовместимый клон Java? Java настолько нативна для Android, что вы с легко запустите любое Java приложение откомпилированное любым компилятором из Java SDK(хотя бы консольное)? Исполнительная среда написана на чем угодно, так как откомпилена в байткод Dalvik. То есть как минимум пол платформы Java ввиде JVM в Android нет.

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace App3
{
    [Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.MyButton);

            button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
        }
    }
}


^Вот это тоже работает в Androide? скажете менее наитевно?
Fatal 14 уровень, Харьков
18 июля 2016, 15:12
Ой все
Joysi 41 уровень
30 июня 2016, 17:06
Старая баян-картинка думаю таки к месту в этом топике:
Torin 27 уровень
30 июня 2016, 21:44
кому баян, а кому нет )
Torin 27 уровень
29 июня 2016, 22:14
А у меня другая проблема. Никак не могу поставить себе внятной задачи по домашнему проекту. Т.е. нЕчто весомое, но не сильно толстое, чтоб не забросить. Гуглопоиски сводятся к чату, но имхо это уже настолько баян, что можно собрать чат не разрабатывая, а просто копируя код с гугловыдачи.

1) Задание должно быть интересным (вызывать азарт, бессонные ночи)
2) Готовый проект должен быть таким, чтоб его захотел юзать хоть кто-то, кроме меня.
3) Игры не подходят, писать игры это фан, но не профессиональная разработка
Grif 11 уровень
29 июня 2016, 22:28
Позвольте не согласиться с Вами :)
Хорошая игра — содержит несколько баз данных, позволяет выбирать уровень сложности, позволяет настраивать себя, может учитывать игровое время и вообще вести какую либо статистику, содержать искусственный интеллект, обращаться к интернет ресурсам, реализовывать многопользовательский интерфейс, иметь консольные, декстопные, мобильные вебклиенты и GUI… и это ещё далеко не всё :) Чем же это — не профессиональная разработка? :)
Joysi 41 уровень
29 июня 2016, 22:46
Назовите свой круг интересов и хобби. Постараемся придумать вам задачу, чтобы удовлетворял 1-2 пунктам :)
Torin 27 уровень
29 июня 2016, 22:55
Да, звучит конечно солидно, но ведь это все равно игра. Двоякая ситуация — да, на бумаге использован большой стек технологий, НО цель использования — увеселительно-развлекательное приложение. Тот же пресловутый Нотч (М. Перссон) писал свои игры уже работая в НЕ-игровой компании. Короче хз, игры бы меня устроили конечно :) Но ведь мы все явно не играми будем на работе заниматься
Torin 27 уровень
29 июня 2016, 23:00
Хобби — разработка игр (именно разработка, в игры я не играю). Интересы — все кроме Фронтенда веба. html, css, javascript… даже смотреть на них не хочется. Вот например чат :)) я бы хотел что-то клиент-серверное, но моя фантазия заточена на игры, даже сейчас в голове уже есть идея для след. игры, для которой я даже не обладаю всеми технологиями. В целом, кроме серверной части нравится десктоп, но что-то я не встречал в вакансиях Java — десктопа. Поэтому в голове зреет подозрение об отсутствии целесообразности изучения, что явно портит мотивацию
Grif 11 уровень
29 июня 2016, 23:13
На счёт html, css это Вы зря… очень не плохо, хотя бы в общих чертах знать. Да, вряд ли глубокое изучение Свинга или чего-то подобного понадобится, разве для себя (утилитки всякие там писать и т.д.), но ориентироваться то надо.
Если не интересует Веб и декстоп, есть ещё базы данных например и мобильный контент…
Joysi 41 уровень
29 июня 2016, 23:14
Чат на биг-задаче JR есть. МОжно взять его за основу. И прикрутить свою фишечку. Например, следящий за ходом чата агент. Который имеет словарь, если в чате произнесено редкое по частоте распространенности слово (например, синхрофазотрон) — лезет сам в Wikipedia и иные подобные ресурсы и достает + обрабатывает материал, который в отдельном окошке показывает участникам чата, чтобы они были больше в теме. Ну и аналогичные фишки запили. Для них знаний Java достаточно, а вот код (алгоритмы и т.п.) продумать придется и отрефакторить реализацию :)
Torin 27 уровень
29 июня 2016, 23:17
веб именно фронтенд не интересует. Базы данных это да, но это такой зверь… пока не знаю с какой стороны к нему подойти. Кстати это добавило бы мне занятий :) может есть литература начального уровням по БД на Java? Свинг — это примерно как охота с копьями. Будущее за JavaFX. Мобильный контент это уже не Java. Точнее java, но уже без будущего
Torin 27 уровень
29 июня 2016, 23:20
Не дошел еще до биг таск, но чат был даже в хэд ферст… Меня в чате больше всего интересуют сессии. Вот кто-то не понимает многопоточность, а я вот сессии. Ну лан, дойдем до этого
Torin 27 уровень
29 июня 2016, 23:21
кстати нужно к джаварашу прикрутить чат. Давайте напишем чат и будем все в нем сидеть.
Joysi 41 уровень
29 июня 2016, 23:25
IDEA и некоторые другие IntelliJ IDE написаны на базе Swing — выглядит очень даже :). Базы данных начни с азов, есть ресурс с практикой и теорией SQL — sql-ex.ru. Пройди хотя бы начальные упражнения, чтобы прочувствовать логику организации СУБД, основные команды, принципы работы с точки зрения построения запросов.
Torin 27 уровень
29 июня 2016, 23:27
Кстати вот сижу, пытаюсь расширить свое сознание :) Мы пойдем от обратного — допустим html, css, javascript — я рассматриваю для своего стека. Как это расширило бы список проектов, которые можно было бы собрать? учитывая 2 первых моих пункта
Torin 27 уровень
29 июня 2016, 23:30
sql запросы уже проходил. Учился по самоучителю, не помню как книга называется… да и вообще мало что помню с этой книги :)) это было еще полтора года назад, ни разу не применял на практике… Интересует именно связка java-mysql например, или другая бд.
IgorBrest 33 уровень
30 июня 2016, 09:21
Нравится разрабатывать игры, есть даже идеи — вперед. Мне кажется, что сейчас еще не время что то доказывать другим, ты сначала докажи себе, что могЁшь. В азарте разработки легче осваивать новые технологии… потому что в противном случае вероятность послать это всё к №?*_;?**@" очень высокая.
Grif 11 уровень
30 июня 2016, 10:16
:) Именно так :) Как я писал, игры — такой вид программ, которые могут охватить практически все технологии программирования, все зависит от желания и фантазии. :)
Grif 11 уровень
30 июня 2016, 10:41
javascript не рассматривал пока, а вот html и css фичи, которые дают широчайшие возможности по оформлению внешнего вида различных пользовательских форм если не ошибаюсь Swing тоже позволяет оформлять внешний вид своих форм с помощью html и css. Java серверы иногда так-же формируют html страницы.
Torin 27 уровень
30 июня 2016, 16:08
прямо таки мотивирует )
ZackFox 14 уровень
30 июня 2016, 16:10
но что бы на Java написать игру надо изучить что-то типа swing, который нигде не нужен. Не хочется тратить на него время, но при этом хочется на чем-то практиковаться.
Grif 11 уровень
30 июня 2016, 16:28
Ребята, Вам реально не угодишь. Изучение базовых принципов/операций Свинга отнимет что-то около недели, зато потом можно очень много практиковаться в изучении различных технологий с возможностью нормальной визуализации плодов своей деятельности… если нет, значит нет, дело-то житейское :)

К тому же не хочется учить старый убогий Свинг — учите новый перспективный FX :)
Torin 27 уровень
30 июня 2016, 17:02
Я думаю проблема в слове «учить» )) Вообще самообучение это большой стресс для организма, особенно взрослого. Поэтому перебирается это все, как говорится, харчами. Думаю начинающему вообще лучше не трогать свинг и fx до тех пор, пока в голове не будет ясной картины ООП и хоть основных паттернов. А то все эти «слушатели» развращают )
Grif 11 уровень
30 июня 2016, 17:19
:) Ну да, народ ленив… сама необходимость что-либо учить, бросает многих в нервный пот, а если еще учить что-то дополнительно так это вообще разрыв шаблона и получение психомозговой травмы от одной только мысли :)
Думаю начинающему вообще лучше не трогать свинг и fx
И когда оно заканчивается… это понятие — начинающий?

Я так понял, что есть индивидуумы, которые и после 40-го уровня считают себя начинающими.
Torin 27 уровень
30 июня 2016, 19:50
Все относительно. Когда я говорю «начинающий» я имею ввиду вообще не бум бум:) понял ООП, все, уже умудрен опытом)))
ZackFox 14 уровень
9 июля 2016, 17:40
посмотрел и решил использовать FX для практики кодинга — у него вроде как апи не большой ))
Iskandar 23 уровень, Baku
29 июня 2016, 18:40
То, что названо «первым путем» — паразитное предложение, которое скорее сформирует апатию к этому делу, даже если есть склонности, имхо. Особенно если говорить о CS50 :) Думаю, этот гарвардский курс хорошо проходить в Гарварде с реальными одноклассниками и коучами, чем по инету. Говорю это, т.к. сам его пробовал и понял, что если бы я его увидел до того, как мне мой приятель предложил попробовать джаву (а я к тому моменту уже был на 17 левеле) и когда мне в руки попала книга Шилдта («Java. Полное руководство»), то я бы здесь не присутствовал бы и даже не пытался бы что-то освоить из программирования. Тоже самое — попытки ковыряться в языках — без хороших книг и задачек для закрепления теории — это будет пар в свисток (были такие на паровозах).

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

В любом случае — очень важно понимать следующее — когда спрашиваете, какую литературу взять, увидите несколько разных предложений — так вот здесь важно понимать, что книга, которая кому-то подошла, вам может не подойти (та же Философия Джава, которая многих восторгает — она больше как справочник для тех, кто уже несколько в теме, а не для тех, кто ноль! Тут гораздо доступнее поясняет Шилдт в своем «полном руководстве»), так что не стесняйтесь пробовать другие варианты.
Grif 11 уровень
29 июня 2016, 20:46
На самом деле любую обучающую Java книгу если читать всухую (исключая тех случаев когда вы уже достаточно опытный разработчик) — на 60% убивать время, обязательно нужно переносить код книги в среду разработки и экспериментировать с ним. Это же не художественная литература, тут надо все не только глазами, но и руками потрогать.
Iskandar 23 уровень, Baku
29 июня 2016, 21:32
а кто сказал что, ее нужно читать? Ею нужно пользоваться для изучения технологии. Но любой книги действительно будет недостаточно. Думаю, даже более чем на 60%, потому что без практики это бесполезно — вот здесь то джавараш и выручает.

Но есть разительная разница между книгами, которые просто информируют и темы, что разъясняют. Я, когда с нуля начал рыть инфу, то первой откопал, конечно же, «философию»… но даже в этой «философии» была ссылка — мол, подите, про С почитайте, чтобы раздуплится для начала, а потом за джаву беритесь. Потом я наткнулся на Шилдта — после этого дядьки Эккель кажется косноязычным и бездарным писакой… но это впечатление ошибочно, т.к. они просто ориентированы на аудиторию с разным уровнем подготовки.
Grif 11 уровень
29 июня 2016, 21:49
Мне тоже Шилдт кажется более доступным чем Эккель, но это может быть весьма субъективно. Однако вряд ли абсолютному новичку я посоветовал бы читать эти книги… философию в особенности (но это моё личное мнение). В этом смысле… первые бесплатные уровни JavaRush куда более полезны.
abbath0767 36 уровень
29 июня 2016, 22:50
Шильдт куда больше подходит новичкам нежели Эккель.
Torin 27 уровень
29 июня 2016, 23:08
Я уже истерил по этому поводу. Мне больше подошел Эккель. Тут еще нужно ввести дополнительно описание к слову «новичек». Если совсем днишко, каким я был, то тут не эккель не шилтд каши не сварят. А вот HeadFirst запросто пинков под ж надает. Правда что не понравилось в HF, это их задачи. Иногда дело доходит до эпического «РУКАЛИЦО», делаешь их «нотный редактор» и плачешь кровавыми слезами. Ну это я к тому, что… да блин, нотный редактор, rly? Хотя помнится я даже на стеке задавал вопросы по генерации звука программынм путем, хотел создать редактор для музыки как в кей генах :)) в результате забросил идею, оказалось что нужно быть прохфесссором, и знать формулы волн и прочее ай на нэ, что сильно сократило бы мое эффективное проведение жизнедеятельности. Закакивать мозг еще и этим имхо пока мне рано, будет сильно грустное лицо, а как известно, денег за грустное лицо никто не дает
abbath0767 36 уровень
29 июня 2016, 23:09
а еще проще купить ардуино и с помощью с или js запилить настоящий синтезатор)
Torin 27 уровень
29 июня 2016, 23:13
мы не ищем легких путей, только java, только HARDCORE
Iskandar 23 уровень, Baku
30 июня 2016, 00:21
ага, я когда проходил первые уровни, у меня уже за плечами было глав шесть или семь Шилдта (полное руководство), так что я прекрасно понимал, благодаря чему я легко справлялся с этими задачками. И это было не благодаря так называемым лекциям, когда я глядя на задачку удивлялся — мол, откуда это я должен знать? Не было же в лекции :) Шилдт очень многое сразу ставит на свои места у тех, кто вообще первый раз берется за это дело.
Iskandar 23 уровень, Baku
30 июня 2016, 00:25
HeadFirst была второй после Эккеля, которая мне в руки попала — ее посоветовали моему приятелю, который в это дело меня втянул :) так вот, ни ему (он, кстати, сетевик, всегда работал на интеграторов), ни мне не пошло :) не знаю, чего так… может формат подачи не подходит… но многие же ей оды поют )

говоря о Шилдте, нужно понимать, что у него по джаве две книги — одна больше на Эккеля похожа, имхо. А та, что «Полное руководство» — достаточно четко всё расставляет на свои места, имхо.
Grif 11 уровень
30 июня 2016, 10:24
Это всё конечно исключительно индивидуально, но у меня сыновья 9-ть и 13 лет самостоятельно до 5-7го уровней по лекциям JavaRush дошли… думаю нет нужды говорить о том какой предварительный уровень подготовки им могла дать средняя школа…
Iskandar 23 уровень, Baku
30 июня 2016, 12:15
я не говорю, что нельзя самостоятельно — там уровень джавы проще математики в третьем классе (имхо), я говорю, что есть разница — когда у тебя уже всё разложено по полочкам и когда ты гуглишь подсказки по каждому пункту задания. Я предпочитаю сперва разобраться в теме.

з.ы. представляю, чтоб у нас так математику преподавали — «детки, вот вам пример, достали планшетики и полезли гуглить, что это такое и как его решать» )) И ищи среди горы треша подходящее пояснение )
Grif 11 уровень
30 июня 2016, 12:51
:)… боюсь разговор заходит в тупик :)
Если моих деток заставить читать Шилда, я уже не говорю про Эккеля… у них шарики за ролики завернутся и Java как и в принципе любое программирование будет сброшено в анналы детского недоразумения :), JavaRush подкупает своей игровой формой и для первых уровней это вполне нормальная замануха. :) А вот когда начинаешь понимать, что мир тесен в рамках JavaRush тогда самое оно подключить доп источники. Если заранее были изучены эти самые доп источники конечно это только в плюс, но мы говорили о самом простом пути стартануть для общих масс и тут JavaRush приуспел.
Iskandar 23 уровень, Baku
30 июня 2016, 13:13
ну дак, должна же быть правильная причинно-следственная цепочка — нельзя начинать учить Джаву с желания почитать книгу Шилдта, нужно книгу начинать читать с желания изучить Джаву :) Тогда она, книга, будет давать ответы, а не напряг.

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

з.ы. на счет игровой формы джавараша — я, честно, не проникся. Просто решаю задачки, все подряд.
Grif 11 уровень
30 июня 2016, 13:37
Не всегда получается/хочется осознанно строить причинно-следственные цепочки, чаще хочется просто начать и увидеть, что всё получается.

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

Если же строить цепочки, то кроме Java в чистом виде очень желательно подучивать и другие средства разработки.