Учусь на 2 курсе. И почти все свое свободное от учебы время, около 6-7 часов, каждый день(6 дней из 7-ми) пытаюсь изучать Computer Science. Погуглил и составил для себя план из книг, и по книгам уже ищу в гугле, там где не понял.
- Код. Тайный язык информатики
- Архитектура компьютера. Таненбаум(сейчас на этом этапе)
- SICP(MIT)
- Математика для Computer Science
- Алгоритмы и структуры данных. Скиена или Седжвик
- Операционные системы. Таненбаум
- Сети. Таненбаум
- Базы Данных
- Компиляторы. Наверное книга Дракона.
Пока почти 90 процентов это теория т.е на Архитектуре особо не попрактикуешься. Но планирую матем и алгоритмы изучать уже как на теории так и на практике.
Хочу не просто кодить, а именно понимать структуру изнутри, ну или хотябы представлять как это работает. Знать фундамент, на чем все простроенно. Когда начинаю заниматься более прикладными вещами типа Андроид, то сразу мысли о том, что пока не узнаю как все работает, то не имею право что то делать )
Но вот, когда смотрю на вакансии, то там в основном, требуется, тот кто учил какой нибудь фреймворк и умеет его использовать. И тут сразу приходят обратные мысли, насчет моего плана ((
Как поступить ?
UPD: язык программирования знаю Java. Могу писать не сложные приложения на Андроид. Но вот решил вернуться у основам всего, т.к многое пропустил вначале обучения.
sim3x, откуда речь про джун собесы? Зачастую компании зовут на собес, и уже сами решают, какого вы уровня.
А если будет джун собес, то тоже могут спросить. Но ожидать будут не правильного ответа, а общую логику.
sim3x, Рональд Макдональд, Ivan Yakushenko Попробую объяснить вопрос, я не совсем полный новичок, где то 1 год занимаюсь программированием. Начинал с java и android, делал небольшие приложения. Для меня написать несложное приложение за пару дней легче, чем решить какую нибудь задачу например с графами. И я понял, что сильно отстал в выше перечисленных темах. И хотелось бы понять, реально ли нужны перечисленные мной темы, я не говорю про все, ну я понимаю, что архитектура никаким боком, ну например остальные темы после архитектуры, ведь они реально применимы на практике ?!
sim3x в целом, я заметил, что здесь автором имеется ввиду архитектура компьютера, а не ПО. Поэтому думаю, что наши общие комментарии не имеют смысла и относятся именно к ПО.
noob777, сети, базы дынных в каких-то определенных аспектах знать вам нужно. Всё остальное не имеет практически никакой прикладной значимости практически во всех направлениях.
Всё зависит от того, что вы хотите и что вам нужно. Просто так учить можете всё, что угодно. Если хотите заниматься программированием под Android вычеркните вообще все, что есть в вашем списке, возьмите книгу Шилдта по Java, там есть все, что вам нужно знать для программирования. Если уж сильно захочется углубиться в принципы работы тех-же сетей, или чего-то еще - пожалуйста, вас никто не сдерживает. Ну и что-то из Head First по Android.
И да, пишите код, много кода.
techkuz,
При появлении такого вопроса, стоит сразу спросить у собеседующего, платят ли в данном заведении "попаттерно" или за решение задач
Такие вопросы часто используются разрабами без о/р и/или с завышенным ЧСВ, что также не очень хорошо
Забавно что народ на слово "архитектура" тригерится именно как на архитектуру ПО хотя у автора архитектура выч. техники скорее.
По факту была похожая беда (начинал попытки своей учебы с кернигана и ричи, но натыкаясь на "магию" которую нужно было запомнить и не понимал - бросал все). Сейчас пришел к компромиссу для себя. Петцольд с его Кодом дали мне оооочень приблизительное и обзорное понимание абстракций от простых элементов к ПК и ОС, и как оно примерно работает, несколько дней асма тоже немного понимания добавила, маленько таненбаума почитал по ОС а дальше я по цепочке достроил в голове что все остальные уровни такие же абстракции и сейчас спокойно пишу под андроид почти не заглядывая под капот, но с пониманием что никакой магии нет и будь необходимо всегда можно вникнуть на любом уровне абстракции.
З.Ы. Я вообще планирую к этому всему вернуться, но уже когда поднакоплю опыта в андроиде, когда времени побольше будет. А сейчас для меня основное это все же набраться практики и использования прикладных библиотек и фреймворков, потому что именно они "решают задачи". А уже потом можно будет вернуться к математике, алгоритмам, ОС, сетям и прочему.
Кстати, если смотреть на вопрос в заголовке - лично мне скорее интересно быть разносторонне направленным, на андроиде останавливаться не планирую. Просто потому что мне так интереснее. Соответственно и смотреть надо именно на то что интересно тебе.