Возможно ваш круг общения больше IT'ый? нам ведь по большей части нет дела где работать. Я вот дома сижу уже несколько лет и то что я нахожусь в Москве для меня не играет никакой роли — работаю по удаленке чаще всего в штатах, ни одного московского коллеги с которыми веду личные проекты. Поэтому где жить в принципе не имеет значения, разве что в глубинке сложнее будет купить какой-нибудь девайс или заказать на дом пиццу. А вот другим порой бывает куда сложней в регионах.
Как-то вам с колледжем не повезло, у меня прямо обратный опыт.
Тот же калькулятор — это обычная лабораторная работа, а не венец творения, причем где-то почти в самом начале, следующая как сейчас помню — создание полного аналога Paint (у меня до сих пор проект сохранился). Помимо этого была большая БД, потом к этой БД нужно было прикрутить ISAPI модуль для полного доступа через веб, создание своего контрола, какая-нибудь мелкая игрушка, работа с мультимедиа, создание activex контрола для просмотра какого-нибудь своего формата файлов, что-то еще. В общем пробежались по всему что было. Помимо этого требовали чтобы первоначально мы составляли план проекта, как будем тестировать все и прочие мелочи. Курсовая была куда сложней, вообше из самых интересных проектов в группе помню принтерный шпион (перехватывал на лету все что печаталось, причем без виртуального принтера), 3D бильярд, черепашка для рисования, но с поддержкой своего довольно развитого ЯП, система удаленного администрирования (они тогда как раз только зарождались), сетевой тотализатор конных скачек.
По БД проходили собственно сам SQL, практика с MSSQL, ADO, еще довольно много времени изучали FoxPro, собственно там пришлось создавать огромный проект включающий в себя и программирование. Я помню еще с приятелем ради шутки на нем написали вирус заражающий чужие проекты и требующий для нас пятерки :)
У нас было много ассемблера, сначала на архитектуре где мы писали первые программки в debug.com и учили опкоды, потом собственно целый год отдельный предмет, из интересного программа для просмотра bmp файлов и резидентный вирус.
Отдельно был предмет про технологию разработки ПО, где мы учили различные паттерны, системы моделирования вроде Rational Rose, различные методологии тестирования. Еще был близкий предмет про сертификацию и стандартизацию.
На ООП собственно нам давали ООП, опять же паттерны и антипаттерны которые мы тут же должны были реализовать из разных нетривиальных задачек-ситуаций.
Ну из передового — учили например wml. Прошу обратить внимание, что это конец 90-х, интернет был не у всех далеко, а WML буквально только появился, при этом сотовых не было у большей части группы и какой там нафиг wml на сотовых — мы просто не представляли :) Кстати когда я в начале 2000-х приходил на встречу выпускников, у нас уже ввели .net, а ведь над ним тогда все смеялись в интернете и писать на C# считалось чем-то позорным и унизительным. Зато очевидно что к моменту выпуска ребят, они все были просто на расхват, ну как сейчас примерно iOS разработчики.
Согласен, у нас сложно найти работу именно что не просто кодером, но как выше заметили — это не проблема ВУЗов, они действительно готовят архитекторов (и это кстати вполне нормально что сразу никто их на такую позицию не возмет, но зато у них есть куда больше перспектив по сравнению с обычным кодером) и математиков.
Например вот с моей группы парень устроился в nvidia, программировал он отвратительно при этом, но был первоклассный математик. Его взяли в отдел оптимизации различных алгоритмов и проблем геометрии, занимается уже много лет над системой расчета света. Причем он больше проводит времени у доски и всяких mathlab, чем пишет код. Еще знаю несколько человек которые ушли заниматься системами моделирования (физика в основном, нам её относительно много давали), в intel, есть кто не постеснялся как говорится пойти и в отечественные КБ. При этом нужно отметить что таких ребят ну не больше десятка и это всё за несколько лет выпусков, потому что это действительно сложная наука, кто хотел просто кодить — они сейчас либо вообше занимаются не по специальности (вот знакомый например стал дизайнером и ушел к Лебедеву), либо самоучки которые так толком и не доучились нормально и стали точно такими же средними программистами, как готовят техникумы.
Ребята которые идут в ВУЗы за специальностью «кодеров» на самом деле просто теряю время. Во-первых поступают после 11 класса, во-вторых учатся по 5-6 лет. Им же нужно после 9 класса идти в техникум, где обучение 4 года. На последнем курсе уже причем будет работа, когда старые школьные друзья только перейдут на второй курс в ВУЗе.
Не PNaCl единым, они сразу разными путями идут, например уже переделали JIT компилятор с Mono CLR в нативный код именно для NaCl (а также свой v8). В итоге получаем код JavaSript/C# (я не очень разбираюсь в этой области, но что там еще есть — vb/delphi/etc?) -> CIL bytecode -> JIT (на стороне клиента) -> native code (NaCl)
«Программирование под iPhone» — не есть высшее образование. Да, это актуально, да это сейчас приносит денег, но через 10 лет почти наверняка станет просто бесполезной кучей знаний у вас в голове, как у меня стало в голове бесполезной кучей знаний умение программирование на Turbo Pascal с Turbo Vision под Dos. Да, когда то это было актуально, да это тогда приносило огромные деньги, но вот сейчас это ничто. Нет больше ни этой ОС, ни этой мощной и огромной библиотеки, ни тысяч проектов под нее, ни языка.
Высшее образование это не умение что-то там «мастерить/кодить», это в первую очередь умение учиться и наука. Да, именно что наука. У нас в последние годы стало какое-то извращенное понимание высшего образования. Хотите работать и быть рабочим — ну так добро пожаловать в колледж где дают то что вы хотите — специальное образование, причем более-менее современные и актуальные знания. Там стараются как можно больше дать того, что вам пригодится на практике, и пока вы будете учиться, даже если вы того не желаете, но вам прийдется выйти на практику и работать. Потому что техникум/колледж/ПТУ — это именно что рабочий класс, что из себя и представляет среднестатистический программист.
На вышке же дают совершенно иное и печально, когда некоторые высшие учебные заведения начинают стараться соответствовать тому, что хотят студенты и начинают им давать сиюминутные и по сути бесполезные знания. В итоге получается что и практики достаточной для работы не имеют, и основы не осилили. Вот скажите, много ли самоучек, которые самостоятельно изучают «Введение в исследование операций» Тахи, читают по вечерам «Построение и анализ алгоритмов» Кормена и Лейзерсона, любят Гурмана, читают Новикова и Кнута и многих других хороших авторов и действительно серьезную литературу? Кто из самоучек занимается именно что «computer science», а не прикладным программированием?
Я сам оканчивал сначала колледж, потом поступил в университет. И это было два разных мира. В колледже мы изучали все подряд, мы писали каждый день огромное количество кода, нас посылали на практику и проверяли в «боевых условиях» что мы там накодим, к концу обучения (4 года) половина как минимум уже были устроенными программистами, но при этом при всем нам никто не рассказывал например про теорию графов, мы не изучали теорию операционных систем и многие другие подобные вещи. На всю математику, дискретку и теорвер всего три семестра. Просто введение, ну потому что это действительно не нужно кодерам. Зато в универе я за все время написал меньше, чем всего лишь за второй курс колледжа, но при этом нам давали именно что фундаментальные знания.
Правда не понятно, что он тогда делает на хабре, а еще больше обидно что половина комментирующих здесь как минимум даже не удосужились прочитать по ссылкам что умеют эти устройства, потому что тогда даже студенту-первокурснику технического вуза станет понятно, что автор да, идиот.
До кучи забыл довить, что и на фейсбуке/вконтакте я под псевдонимом, а единственное место где доступно мое настоящее имя — это AppStore, которое по идее никуда не должно вас привести никаким образом. А вот перспектива теперь появится где-то в инете с телефоном — ну крайне не приятно.
Так их никто и не отдавал, FB их сам забрал. Я вот например свой номер не вводил в FB, хотя он его постоянно настойчиво просил, в итоге пришлось написать им в службу поддержки что у меня нет телефона и они мне все же отключили эти дурацкие капчи. А теперь получается он доступен через кого-то из моих знакомых, а если их взломают (а их обязательно взломают как показывает практика с вконтакта), то это только вопрос времени когда мой телефон который от силы знает 10 человек (и который я кстати регистрировал не по пасспорту) всплывет где-то на просторах инета в аккуратной базе данных.
> зачем же сразу его распаковывать
Это как раз то, почему простые пользователи очень любят мак. Apple хорошо прорабатывает стандартное поведение большинства пользователей и старается под него заложить кейсы, вполне очевидно что большинство пользователей интересует исключительно незаметная распаковка архивов, а не их просмотр перед этим. Это избавляет их от необходимости понимать что такое архив, что за окно с каким-то файлами перед ними открылось, они скачали — кликнули и получили результат. Все довольны. А для остальных — можете поставить плагин для QuickLook который будет вам показывать что внутри, можете посмотреть через терминал, можете в конце-концов поставить программу в 3 клика из магазина.
Вы все ВУЗы знаете? :) Я вот учился в МИФИ, у нас там не было разве что маков, остальной весь зоопарк даже и не вспомню. И консоль нам так же преподавали, лабораторные работы можно было из дома по ssh делать (как минимум задание всеравно иначе не получить), а практика по программированию — как сядешь, кто в vs, кто в vim :)
Скоро станет еще лучше. Как минимум в Mac App Store с ноября все приложения должны будут перейти на использование песочницы, а это значит не только настройки, но и все данные будут лежать так же в одном месте и прекратится бардак некоторых приложений которые как и в Windows иногда любят понараскидовать свои данные везде.
Ну я вот не умею, как раз по обозначенным выше причинам, мне всегда проще сделать, а там пусть другие смотрят что и как, чем пытаться кого-то чему-то научить.
Здесь предлагают просто попробовать, чтобы иметь представление.
1. Изучайте различные парадигмы программирования
Первые три-четыре пункта вероятнее всего у вас будут даже после института, т.е. представление вы уже имеете. Остальное ради интереса опять же не мало смотрели или трогали в той или иной степени.
2. Изучайте тонкости программирования на различных платформах
Реальность такова, что сейчас вообшем-то тоже многие успели себя попробовать везде. Я вот разве что встраиваемое приложение не писал, ну и система реального времени по правде говоря институтский опыт.
3. Совершенствуйте понимание программного обеспечения на различных уровнях.
За исключением B-tree БД и своего ЯП, со всем остальным вам всеравно прийдется столкнутся. Первую программу я написал 15 лет назад, за это время все эти пункты у меня были, причем вынужденные, а не интереса ради.
Остальное опять же с опытом будет само собой, ну разве что кроме open source — для такого нужно время и деньги, а не все обладают такой роскошью.
Интересам общества? Если бы каждый человек на планете потреблял бы столько же природных ресурсов (например чистой воды), как средний жител Москвы, то нам нужно было бы еще ровно 6 точно таких же планет. А если как средний жител Нью-Йорка, то цифры где-то уже около 30 планет. Как вы думаете, за счет чьих «интересов» мы тут так хорошо живем?
Хочется нести прогресс в массы, добро пожаловать волонтером на строительство школ в Афганистане, в диких деревнях без охраны куда даже наши строители не решаются идти, хотя делов-то на неделю при бюджете в $100 тысяч, ООН платит.
Тот же калькулятор — это обычная лабораторная работа, а не венец творения, причем где-то почти в самом начале, следующая как сейчас помню — создание полного аналога Paint (у меня до сих пор проект сохранился). Помимо этого была большая БД, потом к этой БД нужно было прикрутить ISAPI модуль для полного доступа через веб, создание своего контрола, какая-нибудь мелкая игрушка, работа с мультимедиа, создание activex контрола для просмотра какого-нибудь своего формата файлов, что-то еще. В общем пробежались по всему что было. Помимо этого требовали чтобы первоначально мы составляли план проекта, как будем тестировать все и прочие мелочи. Курсовая была куда сложней, вообше из самых интересных проектов в группе помню принтерный шпион (перехватывал на лету все что печаталось, причем без виртуального принтера), 3D бильярд, черепашка для рисования, но с поддержкой своего довольно развитого ЯП, система удаленного администрирования (они тогда как раз только зарождались), сетевой тотализатор конных скачек.
По БД проходили собственно сам SQL, практика с MSSQL, ADO, еще довольно много времени изучали FoxPro, собственно там пришлось создавать огромный проект включающий в себя и программирование. Я помню еще с приятелем ради шутки на нем написали вирус заражающий чужие проекты и требующий для нас пятерки :)
У нас было много ассемблера, сначала на архитектуре где мы писали первые программки в debug.com и учили опкоды, потом собственно целый год отдельный предмет, из интересного программа для просмотра bmp файлов и резидентный вирус.
Отдельно был предмет про технологию разработки ПО, где мы учили различные паттерны, системы моделирования вроде Rational Rose, различные методологии тестирования. Еще был близкий предмет про сертификацию и стандартизацию.
На ООП собственно нам давали ООП, опять же паттерны и антипаттерны которые мы тут же должны были реализовать из разных нетривиальных задачек-ситуаций.
Ну из передового — учили например wml. Прошу обратить внимание, что это конец 90-х, интернет был не у всех далеко, а WML буквально только появился, при этом сотовых не было у большей части группы и какой там нафиг wml на сотовых — мы просто не представляли :) Кстати когда я в начале 2000-х приходил на встречу выпускников, у нас уже ввели .net, а ведь над ним тогда все смеялись в интернете и писать на C# считалось чем-то позорным и унизительным. Зато очевидно что к моменту выпуска ребят, они все были просто на расхват, ну как сейчас примерно iOS разработчики.
Например вот с моей группы парень устроился в nvidia, программировал он отвратительно при этом, но был первоклассный математик. Его взяли в отдел оптимизации различных алгоритмов и проблем геометрии, занимается уже много лет над системой расчета света. Причем он больше проводит времени у доски и всяких mathlab, чем пишет код. Еще знаю несколько человек которые ушли заниматься системами моделирования (физика в основном, нам её относительно много давали), в intel, есть кто не постеснялся как говорится пойти и в отечественные КБ. При этом нужно отметить что таких ребят ну не больше десятка и это всё за несколько лет выпусков, потому что это действительно сложная наука, кто хотел просто кодить — они сейчас либо вообше занимаются не по специальности (вот знакомый например стал дизайнером и ушел к Лебедеву), либо самоучки которые так толком и не доучились нормально и стали точно такими же средними программистами, как готовят техникумы.
Ребята которые идут в ВУЗы за специальностью «кодеров» на самом деле просто теряю время. Во-первых поступают после 11 класса, во-вторых учатся по 5-6 лет. Им же нужно после 9 класса идти в техникум, где обучение 4 года. На последнем курсе уже причем будет работа, когда старые школьные друзья только перейдут на второй курс в ВУЗе.
Высшее образование это не умение что-то там «мастерить/кодить», это в первую очередь умение учиться и наука. Да, именно что наука. У нас в последние годы стало какое-то извращенное понимание высшего образования. Хотите работать и быть рабочим — ну так добро пожаловать в колледж где дают то что вы хотите — специальное образование, причем более-менее современные и актуальные знания. Там стараются как можно больше дать того, что вам пригодится на практике, и пока вы будете учиться, даже если вы того не желаете, но вам прийдется выйти на практику и работать. Потому что техникум/колледж/ПТУ — это именно что рабочий класс, что из себя и представляет среднестатистический программист.
На вышке же дают совершенно иное и печально, когда некоторые высшие учебные заведения начинают стараться соответствовать тому, что хотят студенты и начинают им давать сиюминутные и по сути бесполезные знания. В итоге получается что и практики достаточной для работы не имеют, и основы не осилили. Вот скажите, много ли самоучек, которые самостоятельно изучают «Введение в исследование операций» Тахи, читают по вечерам «Построение и анализ алгоритмов» Кормена и Лейзерсона, любят Гурмана, читают Новикова и Кнута и многих других хороших авторов и действительно серьезную литературу? Кто из самоучек занимается именно что «computer science», а не прикладным программированием?
Я сам оканчивал сначала колледж, потом поступил в университет. И это было два разных мира. В колледже мы изучали все подряд, мы писали каждый день огромное количество кода, нас посылали на практику и проверяли в «боевых условиях» что мы там накодим, к концу обучения (4 года) половина как минимум уже были устроенными программистами, но при этом при всем нам никто не рассказывал например про теорию графов, мы не изучали теорию операционных систем и многие другие подобные вещи. На всю математику, дискретку и теорвер всего три семестра. Просто введение, ну потому что это действительно не нужно кодерам. Зато в универе я за все время написал меньше, чем всего лишь за второй курс колледжа, но при этом нам давали именно что фундаментальные знания.
Правда не понятно, что он тогда делает на хабре, а еще больше обидно что половина комментирующих здесь как минимум даже не удосужились прочитать по ссылкам что умеют эти устройства, потому что тогда даже студенту-первокурснику технического вуза станет понятно, что автор да, идиот.
Это как раз то, почему простые пользователи очень любят мак. Apple хорошо прорабатывает стандартное поведение большинства пользователей и старается под него заложить кейсы, вполне очевидно что большинство пользователей интересует исключительно незаметная распаковка архивов, а не их просмотр перед этим. Это избавляет их от необходимости понимать что такое архив, что за окно с каким-то файлами перед ними открылось, они скачали — кликнули и получили результат. Все довольны. А для остальных — можете поставить плагин для QuickLook который будет вам показывать что внутри, можете посмотреть через терминал, можете в конце-концов поставить программу в 3 клика из магазина.
1. Изучайте различные парадигмы программирования
Первые три-четыре пункта вероятнее всего у вас будут даже после института, т.е. представление вы уже имеете. Остальное ради интереса опять же не мало смотрели или трогали в той или иной степени.
2. Изучайте тонкости программирования на различных платформах
Реальность такова, что сейчас вообшем-то тоже многие успели себя попробовать везде. Я вот разве что встраиваемое приложение не писал, ну и система реального времени по правде говоря институтский опыт.
3. Совершенствуйте понимание программного обеспечения на различных уровнях.
За исключением B-tree БД и своего ЯП, со всем остальным вам всеравно прийдется столкнутся. Первую программу я написал 15 лет назад, за это время все эти пункты у меня были, причем вынужденные, а не интереса ради.
Остальное опять же с опытом будет само собой, ну разве что кроме open source — для такого нужно время и деньги, а не все обладают такой роскошью.
Хочется нести прогресс в массы, добро пожаловать волонтером на строительство школ в Афганистане, в диких деревнях без охраны куда даже наши строители не решаются идти, хотя делов-то на неделю при бюджете в $100 тысяч, ООН платит.