Узко vs Широконаправленный разработчик?

Учусь на 2 курсе. И почти все свое свободное от учебы время, около 6-7 часов, каждый день(6 дней из 7-ми) пытаюсь изучать Computer Science. Погуглил и составил для себя план из книг, и по книгам уже ищу в гугле, там где не понял.
- Код. Тайный язык информатики
- Архитектура компьютера. Таненбаум(сейчас на этом этапе)
- SICP(MIT)
- Математика для Computer Science
- Алгоритмы и структуры данных. Скиена или Седжвик
- Операционные системы. Таненбаум
- Сети. Таненбаум
- Базы Данных
- Компиляторы. Наверное книга Дракона.

Пока почти 90 процентов это теория т.е на Архитектуре особо не попрактикуешься. Но планирую матем и алгоритмы изучать уже как на теории так и на практике.

Хочу не просто кодить, а именно понимать структуру изнутри, ну или хотябы представлять как это работает. Знать фундамент, на чем все простроенно. Когда начинаю заниматься более прикладными вещами типа Андроид, то сразу мысли о том, что пока не узнаю как все работает, то не имею право что то делать )

Но вот, когда смотрю на вакансии, то там в основном, требуется, тот кто учил какой нибудь фреймворк и умеет его использовать. И тут сразу приходят обратные мысли, насчет моего плана ((
Как поступить ?

UPD: язык программирования знаю Java. Могу писать не сложные приложения на Андроид. Но вот решил вернуться у основам всего, т.к многое пропустил вначале обучения.
  • Вопрос задан
  • 664 просмотра
Решения вопроса 3
Adamos
@Adamos
Узконаправленный разработчик - это человек, который досконально знает нюансы своей ниши и имеет кучу опыта в тех вопросах, которые в них возникают.
Широконаправленный разработчик - это человек, который попробовал многое и успешно воплотил проекты в нескольких разных нишах.
А тот, кто пролеживал бока, листая Танненбаума и Дейкстру - это вообще не разработчик, и нанимать его никто не будет по той простой причине, что опыта у него нет, и оплачивать время, пока он будет его набирать, набивая свои нубские шишки, никто не разбежался.

Книги - это прекрасно. Но в разработчиках ценят не умение проходить тестирование, а реальный опыт и приобретенные навыки. Даже если идиоты-эйчары организуют наем поперек этой логики.
Ответ написан
Комментировать
Neikist
@Neikist
Бывший 1сник, теперь пишу под андроид
Забавно что народ на слово "архитектура" тригерится именно как на архитектуру ПО хотя у автора архитектура выч. техники скорее.
По факту была похожая беда (начинал попытки своей учебы с кернигана и ричи, но натыкаясь на "магию" которую нужно было запомнить и не понимал - бросал все). Сейчас пришел к компромиссу для себя. Петцольд с его Кодом дали мне оооочень приблизительное и обзорное понимание абстракций от простых элементов к ПК и ОС, и как оно примерно работает, несколько дней асма тоже немного понимания добавила, маленько таненбаума почитал по ОС а дальше я по цепочке достроил в голове что все остальные уровни такие же абстракции и сейчас спокойно пишу под андроид почти не заглядывая под капот, но с пониманием что никакой магии нет и будь необходимо всегда можно вникнуть на любом уровне абстракции.
З.Ы. Я вообще планирую к этому всему вернуться, но уже когда поднакоплю опыта в андроиде, когда времени побольше будет. А сейчас для меня основное это все же набраться практики и использования прикладных библиотек и фреймворков, потому что именно они "решают задачи". А уже потом можно будет вернуться к математике, алгоритмам, ОС, сетям и прочему.

Кстати, если смотреть на вопрос в заголовке - лично мне скорее интересно быть разносторонне направленным, на андроиде останавливаться не планирую. Просто потому что мне так интереснее. Соответственно и смотреть надо именно на то что интересно тебе.
Ответ написан
Комментировать
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
То что вы перечислили -- это фундаментальные знания. Без них разработчик -- просто мартышка. Да, они нужны, т.к. это база.
Но ещё нужен и практический опыт. Потому что вакансии без опыта обычно предполагают простые задачки, где особо не надо думать. Наличие фундаментальных знаний может определить, насколько быстро вы пройдёте этот этап. Ну или можно навсегда остаться "решающим задачи программистом, которому это не нужно". Таких тут много, почитайте ответы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger Куратор тега IT-образование
System Integrator
около 6-7 часов, каждый день(6 дней из 7-ми) пытаюсь изучать

Примерно 60% этого времени вы тратите впустую.
Остальное - какие-то страдания и держания в курсе.

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

А как вы хотели? Вы бы взяли к себе программиста, который хорошо знает оторванную от практики теорию, но не может написать нормальный код? Нет, не взяли, вы возьмёте кодошлёпа, который раз-раз и в продакшон.

Так что бросайте размусоливать и вперёд, курить фреймворки и на завод, махать кловеатурой.
Ответ написан
Комментировать
makarychev13
@makarychev13
.NET-developer
Список объективно слабоват. Вас после такого даже джуном не возьмут. Обязательно нужно добавить следующее:
"Искусство программирования" Кнута (разумеется, все 4 тома)
"Приёмы объектно-ориентированного проектирования. Паттерны проектирования" Банты Четырёх
"DDD" Эванса

После этого можно пытаться идти на собес на стажёра

P.S. Я очень надеюсь, что ваш вопрос - это троллинг
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы