Я студент, и, думаю, для каждого студента, изучающего программирование, актуален вопрос: "Что учить?" или, скорее, "Как учить". От опытных программистов можно получить что-то типа этого.
(orangy):
Окееей. Под кандидатом дальше понимаю студента старших курсов или выпускника
1. Алгоритмы и структуры данных. Как это не банально, но мало кто из кандидатов понимает эти вещи. Знать — знают. Обычно. Вот один тут летом заявил, что он всегда пользуется списками, потому что массивы "ему не нравятся". На вопрос о сложности поиска большинство отвечает очень невнятно.
2. Типы. Понимание типов вообще у большинства сводится к слову "переменная" и чуть более сложный вопрос о типах вводит кандидата в полный ступор.
3. Поголовно все заявляют, что они знают С++. Обычно имеется ввиду "расширенный С". ООП — по нулям. Редко-редко кандидаты понимают основополагающие принципы.
С теми, кто говорит, что не знает С++ вообще гораздо проще общаться
4. Смежные знания. Сжатие, шифрование, сети, парсеры и т.п. — даже на примитивном уровне сплошное болото. Я понимаю, что шифрование — отдельная наука и заниматься ей можно всю жизнь, но уж представлять себе, что это такое и с чем это едят нужно обязательно.
5. Специализация. Практически не встречал кандидатов, которые владели бы какими-то специальным знаниями, не входящими в общую кучу программирования. Что-то особенное, что человек бы умел делать особенно хорошо.
Но это "что", а более интересно "как", т.е. "каким образом".
Нет ли желающих написать цикл статей, содержащие способы постижения этих тем?
Что в этих областях must read (с кратким описание книги), в каком порядке читать эти книги, чтобы выстроить целостную картину?
Что с практическим применением знаний?
Или завести рубрику "Beginners Guides" желательно, чтобы она не превратилась в "Idiots Guides".
Я думаю, новички вам скажут большое человеческое спасибо
Глядишь, и сетований на то, что молодёжь ничего не знает, поубавиться
Или всё это чушь, и универсальные советы не имеют смысла?
Привет, коллега, из родного города
!
Что учить, Как учить... Увы, универсального ответа нет. Поэтому, могу ошибаться во всем, что скажу ниже ( и сказал выше
).
Как завещал Michael Abrash, ключ к успеху это:
1. Работа
2. Работа и еще раз
3. Работа
Работа не только в какой-то компании, а, в первую очередь, работа над собой. Могу предположить: научить нельзя, можно только научить
ся. Конечно, личность преподавателя (хорошего преподавателя, коих не так и много) может влиять очень и очень сильно на ученика, но все-равно, учится ученик. Желание — вот, пожалуй, что необходимо. "Как учить" это уже больше "средство" достижения цели.
Ты говорил об опытных программистах... Общение с ними — одно удовольствие. Часто встречал разных людей имеющих богатый опыт за плечами, задавал такие же вопросы. В основном, ответ был такой: "Универсального метода нет". Что объединяло этих "монстров", так это усердная работа над собой в юности, начиная со школы и университета, которая не прекращается и по сей день. Сейчас в IT если не хочешь остаться за бортом, постоянно нужно совершенствоваться.
F>Окееей. Под кандидатом дальше понимаю студента старших курсов или выпускника...
Пожалуй, то описание, которое ты приводишь больше подходит для аматора, а далеко не для выпускника
. Впрочем, надеюсь, начать учиться никогда не поздно.
Как можно освоить алгоритмы и структуры данных? Ха! Писать лабораторные работы на первом/втором курсе для себя, своей группы, своего общежития и рядом стоящих
(так было у меня
). На втором-третьем можно браться за курсовые работы для третьего-четвертого-пятого курсов. Заодно и кое-какой заработок
. Конечно, "алгоритмы и струткуры" в молодую голову сами по себе приходят редко (я про свою голову). Обычно, нужно было почитать Вирта, иногда Кнута, но очень часто спасал Google (тогда я об rsdn'e не знал). Какой итог отсюда? Опять все сводится к работе. Каждый раз решая что-то — получаешь опыт. Лучший учитель — практика. Отсюда пойдут и "смежные знания"... Если хочешь, можем сравнить программирование с RPG-игрой
. Выполнил задание — получил опыт, повысил скил. В следующий раз задание будет решать проще.
Что касается специализации — это дело определяется обычно с самого начала, если судьба не испортит: лежит душа к программированию игр — будешь "копать" в ту сторону каждый день... Однажды очнувшись, заметишь, что прорылся на "свет Божий": проснулся — а тебя уже Экспертом кличут
. Впрочем, может быть и другая картина: пошел работать на фирму, заставили писать что-то под БД... потом понравилось и т.д.
F>Нет ли желающих написать цикл статей, содержащие способы постижения этих тем?
Может, и найдется кто-то. Мое же, имхо, просто постигай, а не жди, пока тебе постигнут
. В любом случае, все это уже есть, все это уже спрашивали. Нам же остается только
найти.
F>Что в этих областях must read (с кратким описание книги), в каком порядке читать эти книги, чтобы выстроить целостную картину?
Чем больше книг читаешь — тем объемнее представление. Иногда я сравниваю каждую новую прочитанную книгу, с введением дополнительной оси координат: вот была плоскость, а теперь уже пространство. Что именно выбрать из всего этого моря книг? Когда-то тоже это спрашивал. Посмотри внимательно на этом сайте в ресурсы. Там есть не только список книг, но и мнения (ценные) об этих книгах.
F>Или завести рубрику "Beginners Guides" желательно, чтобы она не превратилась в "Idiots Guides".
Боюсь, что между "Beginner's Guide" и "Idiot's Guide" будет очень тяжело провести границу. Человеческие знания не постоянны, поэтому каждый может посмотреть на одно и тоже в разные моменты времени под совершенно иными углами. Отсюда и получается: для тебя кто-то "гуру" а для кого-то он дилетант. Всегда найдется кто-то умнее
, и, как правило, разница между тобой и ним кажется огромной...
Что касается новой рубрики — имхо это лишне. Статей тут и так очень много, за что бесконечно благодарен rsdn'у. Форумов для вопросов (и поиска ответов) тут тоже предостаточно.
F>Я думаю, новички вам скажут большое человеческое спасибо
Пусть лучше себе скажут, за то что построили успешную фундамент своей достойной жизни
.
Happy Programming
Здравствуйте, anvaka, Вы писали:
A>Привет, коллега, из родного города !
Привет!
Как-то неожиданно много харьковчан. Чувствуешь, что не одинок.
A>Что учить, Как учить... Увы, универсального ответа нет. Поэтому, могу ошибаться во всем, что скажу ниже ( и сказал выше ).
A>Как завещал Michael Abrash, ключ к успеху это:
A>1. Работа
A>2. Работа и еще раз
A>3. Работа
Мда, похоже, ты прав... Придется полагаться только на свои силы. Ну, и на силы других РСДНеров
Просто я только недавно на РСДН появился, до этого практически контактов с внешним миром не было.
Спасибо за подробное объяснение.