Доброго времени суток! Возник у меня такой вот вопрос. Какими вузовскими дисциплинами действительно нужно владеть программисту, а какие можно оставить за бортом детального изучения? Дело в том, что неоднократно встречал изречения _бывалых_ о том, что работая программистом на протяжении многих лет, ни разу не пришлось воспользоваться знаниями по высшей математике и т.д. Так вот, мне, как студенту, хотелось бы заранее понять, что можно просто сдавать, а что действительно капитально осваивать на всю жизнь. Суждения о том, что нужно все, бесспорно, имеют место существовать, однако хотелось бы отделить котлеты от мух (т.е. историю от информатики, дискретки ).
Про математику это ты зря - вот как раз ee впервую очередь знать и надо, какой бы она не была!! а вот историю (за исключением историю IT итд) - это на твой выбор...
_proteus проблема в том, что знать заранее: какие вещи пригодятся - какие нет - невозможно. математика по-любому нужна: она тренирует мозг и прививает методологию решения задач; физика тоже лишней не будет, ибо иметь хоть какое-то представление о мире нужно и в работе она может тоже сильно пригодится; другие предметы, в частности гуманитарные, тоже нужны, ибо они определяют твой: кругозор, умение изложить свою позицию, понять позицию другого и на основе этого вырабатывать план дальнейших действий. само по себе уменение просто прогать==0, ибо надо ещё знать, что прогать
Хорошо, однако остается вопрос об объеме знаний. Где-то я встречал мысль о том, что вышка программисту нужна, но вот только держать постоянно в голове всю математику нет смысла. Понадобилось, скажем, найти криволинейный интеграл -- берешь в руки справочник, читаешь все, что нужно по теме, пишешь код программы и благополучно забываешь. Смысл -- то, что нужно время от времени, можно в нужный момент отыскать в литературе, а то, что используешь постоянно, запомнится и так. З.Ы. А к математике я отношусь с уважением.
_proteus Не забудьте подколлекционировать хороших конспектов/учебников по всем темам (даже по экологии, кзоту и охране труда). Не исключено, что не раз пожмете себе руку за бережливость.
_proteus товарищ, твоя задача не просто тупо что-то запоминать, а уметь и учиться строить логические цепочки на основе имеющихся знаний, конечно же, большая часть знаний канет в лету, но, ведь, вспомнить, что забыл можно - всомнить чего не учил, сам понимашь, несколько сложнова-то
_proteus Естественно всю математику и все формулы запомнить не возможно- чисто физически, но основное знать необходимо, как сказал UbIvItSнеобходимо иметь математическое мышление, любой математик(физик) знающий программирование - будет на шаг впереди остальных, анологично и любой программист -... p.s. хм а что для вычисления криволинейного интеграла нужно лесть в справочник? там же просто...
Вот именно это я и имел в виду. Т.е. нет смысла всё помнить, знать. На деле имеет смысл лишь помнить, что из какой области. Грубо говоря, что площадь нужно искать с помощью интеграла, а уж никак не с помощью производной. А конкретная формула/теорема не важна. Её-то как раз можно глянуть на "внешнем носителе". Я правильно понял?
_proteus нужно понимать смысл мат. объектов и уметь их юзать. всего не упомнишь, но уметь доказывать теоремы надо: имея в памяти набор аксиом и мат. логику, можно доказать теорему, а техник для доказательства не так уж и много.
Не что откуда следует.. Нужно знать основы. Базовые понятия, на которых основана практически любая технология. В программировании (особенно высокоуровневом) все слишком быстро меняется. И для того, чтобы успевать гнаться за всем этим, нужно или уметь очень быстро учиться (с нуля) или уметь использовать эти основные знания при осваивании нового материала. А опыт появляется со временем именно применительно к той области, в которой работаешь. Естественно, никакие знания не заменят его (для программиста, не идеолога!), но очень часто их отсутствие слишком болезненно сказывается при смене той же технологии. И во время приобретения этого самого опыта (на что можно потратить очень много лет) вы так или иначе будете получать эти базовые знания. Будет жаль только, что было потеряно столько времени
simnet_ ты так говоришь, будто каждый день меняются все законы физики и математики)) что меняется столь быстро??? новый яву появился?- это, во-первых, не значит, что его нужно сразу юзать; а, во-вторых, вероятность существование в нём неких возможностей, кои не сможет осилить образованный человек - мизерны. новый протокол передачи данных, но математика его работы опять же врятли будет столь революционна.
Я их считаю базовыми Обычно работодатель говорит, что юзать, а что нет. Вы можете только поменять область деятельности. Например, на асм Вы правы, обратите внимание на выделенный текст Обычно подобным и занимаются математики, программисту достаточно уметь его реализовать стандартными функциями языка программирования. Но что если нужной функции не оказалось? Опять бежать к математику?
_proteus Нужно научиться удовлетворять требования учителей и вообще начальства наиболее оптимальным для себя способом. Кроме того, надо научиться расставлять персонажей и действия наиболее эффективным и результативным для своих целей образом. И наконец, самое важное, научиться выбирать для себя действительно стоящие цели и заставлять себя следовать им. Впоследствии для обучения этому не будет хватать времени. Останется только сожалеть.
Насчет физики сказать этого не могу (многие "новые теории" - в основном треп, ничего больше), а по поводу математики - да, почти каждый день появляется что-то новое. И это происходит с такой же скоростью, с какой появляются новые проблемы, требующие нестандартных решений (загляните на arxiv.org, к примеру). Просто чаще нам с вами приходится варится в том, что уже было изобретено с кучей вариаций на тему "мне не нравиться, где расположена эта метка.. переместите ее вниз". Это, кстати, сильно проявляется в системном программировании, в отличие от прикладного, где больший простор для этих самых идей.. Но каждый выбирает то, что ему нравиться Удивительно, но техник достаточно, и появляются все новые. Посмотрите на специфические теоремы, а не "вылизанную" классику. Конечно, есть набор правил, которые используются чаще, чем другие (из-за похожести доказываемых задач), но просто взять и "от балды" что-то доказать не так просто, если рассматривается реальная ситуация, а не теоретический бред, вроде всяких формальных логик Лукасевича В это фразе ответ на вопрос топика
Это то, для чего и предназначено высшее образование. Как и армия - выполняет функции, которые не были изначально задуманы идеологами. Зато когда научишься учится, многое (не все, конечно) новое, с чем приходится сталкиваться впоследствии, выглядит совсем в другом свете - как уже знакомое
simnet_ я всё же имел ввиду классику. не скажите: сейчас в физике ломка - новые факты не вписываются в устоявшиеся теории, а отсюда и математику дёргают, дабы было из чего формулы лабать)
_proteus > Какими вузовскими дисциплинами действительно нужно владеть программисту, > а какие можно оставить за бортом детального изучения? зависит от программиста и от того, чем ему придется заниматься по жизни. в частности, при реверсе малвари намного важнее знать что содержится в fs:[30] в user-land и kernel-land, чем уметь в уме перемножать матрицы, потому как алгоритм перемножения матриц находится в иннете за считанные секунды, а вот содержимое fs:[30]... да еще если программист не знает, что в user- и kernel- оно разное... и быстро этой инфы не найдешь... разве, что просто повезет. а вообще - никогда заранее не знаешь, что тебе пригодится, а что нет... особенно, если ты начинаешь программировать и трудоустраиваться после окончания вуза. начни программировать - и увидишь, какие знания оказываются востребованными, а какие нет.