Перспективы программиста: Реальность и перспективы рынка IT‑профессий

Содержание

Почему программисты через 10 лет будут не нужны? / Хабр

Это один из распространённых вопросов о судьбе программирования: мне не раз приходилось его слышать от журналистов, блогеров и родителей, чьи дети выбирают будущий вуз. Для меня этот вопрос звучит довольно удивительно: во-первых, 10 лет для программирования это не такой уж большой период, чтобы выпасть из обоймы, во-вторых, я пока не вижу никаких прорывных движений в этом направлении, в-третьих, мне не кажется что за 10 лет полностью исчезнут компьютеры или люди — а это два единственных условия для уничтожения программирования на планете. Между тем вопрос есть, он в топах поисковых запросов по теме, а значит, это жжжж неспроста. Давайте разбираться.


Disclaimer

Мы открываем в блоге RUVDS на Хабре новую рубрику — вопросы с поиска. Принцип прост: выбираем самые интересные и популярные поисковые запросы о программировании, технологиях, программистах и карьере в ИТ и отвечаем на них с помощью наших постоянных экспертов. Будет интересно.

Итак, а откуда родом вопрос?

Если обратиться к российским и зарубежным источникам, форумам, социальным сетям, этот вопрос можно встретить. И действительно, даже у самих программистов есть опасения, пригодятся ли они через 10 лет или пора переучиваться на другую специальность и искать новые места для наработки практики. Разномастные эксперты, футурологи и аналитики предсказывают разные формы кончины программирования: от возврата в экологичный мир без технологий до глобальной победы искусственного интеллекта, который будет воспроизводить сам себя и писать программы по устному указанию любого пользователя. Как всегда, обе крайности напрочь несостоятельны, но среди вероятных причин отмирания профессии программиста есть несколько замысловатых и небезынтересных концепций.

▍ Абстракция и контейнеры

Есть версия, что программирование будет более абстрактным, оно станет заметно отличаться от того, с чем мы имеем дело сегодня.

Многие аналитики и визионеры полагают, что serverless-технологии и контейнеризация ощутимо изменят облик программирования, а разработчики откажутся от низкоуровневого программирования. Они будут пользоваться «кубиками» разделов программы и собирать некие «модульные» решения, как в конструкторе или, если ближе к миру ИТ, в готовых шаблонах проектирования сайтов (типа Tilda или WordPress).

Сразу скажу: эти рассуждения довольно далеки от глубинных сущностей программирования. Ни одно подобное решение не сможет существовать без поддержки разработчиков и опять же минимальная кастомизация такой модульной программы «на всём готовеньком» требует знаний программирования, понимания работы алгоритмов и даже владения необходимым языком программирования и специфическими инструментами. Думаю, это не нужно объяснять никому из тех, кто работал с готовыми шаблонами сайтов и конструкторами — если нужна чуть более серьёзная функция, сразу к вашим услугам раздел для создания и редактирования кастомного кода.

Сделай сам, если хочешь круто. С абстракциями в будущем программирования та же история: каждое чуть более глубокое требование будет нуждаться в реализации силами программиста. 

▍ Всех спасёт Low-code 

Каждый пользователь сможет справиться с кодом самостоятельно, — самоуверенно заявляют эксперты, которые верят в low-code платформы. Это уже даже не лукавство, а огромная ложь, сформулированная устами кабинетных маркетологов. Те из вас, кто внедрял ПО для бизнеса, обучал пользователей или хотя бы смотрел, как бухгалтер отчаянно ломает 1С, знает, что low-code это обычная рекламная замануха и никак уж не убийца классического программирования. Чтобы задеплоить на платформе low-code самый обычный рабочий процесс и связать его с 2-3 сущностями из оперативной работы компании, нужно уже что-то знать про реляционные базы данных, ключи, алгоритмы, оптимизацию. Иначе получится школьная контрольная по Access — что-то вроде соединил и красиво, а таблицы и окна не работают.

 

▍ Электроник напишет программу за Сыроежкина

Помните главный посыл «Электроника»? Робот, стань человеком. Евгений Велтистов знал, о чём он пишет: преодоление порога между искусственным и естественным интеллектом — обычная научная фантастика и научить робота понимать человеческие требования затруднительно. Однако сторонники теории исчезновения профессии программиста полагают, что искусственный интеллект станет самым продвинутым разработчиком, а главным инструментом оставшихся программистов станут обученные модели и нейросети, которые выдадут нужный код по паре ключевиков. Останется сделать копипаст (правда, ничего нового? ;-)), скомпилировать, немного изменить дизайн и вуаля, программа готова. Однако это слишком оптимистичный прогноз: искусственный интеллект может быстро искать по массивам кода и выбирать нужный, но он никогда не сможет учесть все требования пользователей и запрограммировать всё именно так, как того требует заказчик. Тут у людей-то через раз получается… И потом, а кто будет разрабатывать искусственный интеллект и нейросети?

▍ Вавилон наоборот

А вот этот прогноз кажется разумным и логичным: есть предпосылки того, что появится какой-то один суперуниверсальный язык программирования, максимально близкий к нативному английскому, который избавит мир от сложностей совместимости, стандартов, миграций, интеграции и т. д. Кто-то видит такой язык наследником Python, кто-то предполагает, что появится язык блоков и готовых функций, из которых можно будет собрать программу. Эксперты считают, что этот новый язык станет доступным для спикеров с любым родным языком, а также легко портируется в сенсорные формы для незрячих программистов.

Однако пока это выглядит тоже научной фантастикой: миру программистов многие годы предстоит поддерживать старые проекты и огромный пласт легаси-кода на всех тех языках, которые мы привыкли использовать в работе. К тому же, универсальный язык может в своём развитии пройти путь в десятки лет, пока станет доступным и приемлемым как для простого учебного проекта, так и для сложной системы безопасности или инжинирингового продукта. Так что пока — только призрачная иллюзия конца вавилонского столпотворения в разработке.

Кстати, есть и обратный прогноз — так, портал TechRepublic уверен, что языками программирования будущего являются Go, Kotlin, Python, TypeScript, R, Scala, Swift, Rust, Ruby и Haskell.

Однозначно интересный и почти на 100% справедливый список (за исключением дискуссий в рамках вкусовщины), но, очевидно, что не хватает как минимум С/С++, которые играют огромную роль в машинном обучении, алгоритмах, нейросетях и т.д. Опять же, несмотря на присутствие в перечне будущего «детей Java», самой Java также не хватает — а она гарантированно будет продолжать играть огромную роль спустя 10 лет. И, если честно, при всей привлекательности концепции, я тоже не верю в новый универсальный язык, а вот в более простые и изящные высокоуровневые языки в будущем верю. Но, кто знает теорию и практику возникновения новых крутых языков программирования, тот сразу скажет, что с появлением новых публичных и популярных языков количество программистов будет только расти.

Как видите, большинство прогнозов с позиций айтишника выглядят несостоятельно, хотя некоторые моменты хотелось бы реализовать в нашей повседневной работе. 

А что случится с программистами через 10 лет на самом деле?

Начнём с того, что не через 10 лет, а за эти 10 лет. Эволюция идёт непрерывно и изменения нарастают с каждым днём. Поэтому человеку, погружённому в мир современного ИТ, никакого труда не составит наметить реалистичный прогноз. 

  • Прежде всего спадёт бум программирования и компании начнут диктовать свои условия: слабые программисты, формоклёпы и сайтоделы на шаблонах станут никому не нужны, для них будет гораздо меньше гарантий занятости. И если как раз лет 5-10 назад в программирование можно было попасть с весьма скромными скилами, то сейчас и в дальнейшем будет расти тренд интереса к разработчикам, которые владеют несколькими стеками, способным включаться в DevSecOps и гибкие команды разработки, быть не только кодером, но и архитектором, менеджером, сисадмином. На рынок выходят ребята, которые учились программированию на факультетах высшей школы и они на старте сильнее некоторых фрилансеров и кодеров, которые как сели в 2000-х на одного конька (PHP, например), так и скачут на нём по одним и тем же дорожкам. Это, конечно, деградация.
    Поэтому через 10 лет программист, почти как врач, будет просто обязан учиться всю свою трудовую жизнь.
  • Автоматизация проникнет на каждое рабочее место и с этим ничего не поделаешь. Задача программиста — работать с автоматизированными системами в полноценном партнёрстве, а не перекладывать на машину ответственность за свои косяки и промахи. 
  • Кроссплатформенная разработка выйдет на новый уровень. Пользователь (частный, корпоративный, учёный) хочет работать сразу на всех устройствах, не теряя данные, авторизацию, результаты работы, силы и время, поэтому кроссплатформенные решения будут всё более популярны. К тому же, в пул устройств ворвутся средства IoT, различные датчики, универсальные электронные помощники и прочие интеллектуальные и не очень системы. Включение в кроссплатформенную разработку не только сделает программиста состоятельным, но и позволит сохранить должность в экстренной ситуации (кто же захочет терять уникального специалиста, который «шарит», как раскатать и улучшить экосистему на всех железяках и облаках пользователей).
     
  • Low-code на какое-то время станет важной частью разработки — даже уже в 2021 году это выглядит как свершившийся факт. Корпорации предлагают бизнес-пользователям low-code решения как средство дичайшей экономии и быстрого построения уникального и оптимизированного строго под конкретный бизнес ПО. Но оставьте эти сказки руководителям и директорам по развитию — многие из нас, читающих эту статью, пробовали методы визуального кодирования, но, как известно, они ограничиваются простыми формами и несложными операциями. Хорошую корпоративную систему hi-level на такой платформе можно построить и поддерживать только с помощью профессиональных программистов. И, поскольку этот тренд проживёт как раз лет 10-12, можно присмотреться к low-code и заработать на этих «потенциальных убийцах» профессии программиста. 
  • Кибербезопасность была, есть и всегда будет огромной проблемой и той сферой, которая всегда требует профессионалов высочайшего класса. Их вечно не хватает, киберпреступники гораздо лучше подкованы и оставляют шансы только на реактивные действия служб безопасности крупных корпораций и вообще любых компаний.
    В этом направлении каждого разработчика ждёт много интересного, поэтому стоит постараться, чтобы стать значимым специалистом в этой сфере. Окупится с головой. Пока я не вижу горизонта снижения этого тренда, можно спокойно жить в нём и 10, и 15 лет. (Кстати, ещё одной такой отраслью являются телеком и связь — они технологически сильно меняются, но без них человечество не обойдётся). Более того, кибербезопасность будет и дальше сращиваться с DevOps: она потребует включение тестирования безопасности любых систем на самых ранних этапах разработки, формирование устойчивых практик обеспечения безопасности кода, снижения накладных затрат и дорогих рисков. 
  • Наука будет требовать всё больше и больше программистов. Роботы, автоматизированные системы, алгоритмы будут продолжать заменять человека на сложных и опасных участках, работать с данными и т.д. Поэтому через 10 лет будут востребованы не просто программисты, а программисты с ещё одним базовым образованием (биологи, врачи, инженеры, лингвисты и т. д.).

▍ Какие технологии будут в тренде?

Сложно точно предсказать, что именно будет востребовано в течение 10 лет и через 10 лет (вспомните 2020, который породил новые требования и тренды совершенно внезапно, на фоне форс-мажора). Я выделю пять интересных технологий, которые могут дать значительное конкурентное преимущество профессионалу.

  1. Моделирование поведения человека — глубокое понимание человека, паттернов действий, его психологии и даже физиологии позволит создавать уникальные модели тестирования программного обеспечения и инженерных решений. И это должны быть не интуитивные предположения, а научные знания.
  2. Медицинская кибернетика — супернаправление будущего, которое будет востребовано во всех сферах медицины и жизни общества. Чрезвычайно сложная отрасль, которая потребует сразу двух образований и постоянного развития. 
  3. API — важная часть будущего программистов, которая позволит не плодить зоопарк программного обеспечения, а бесшовно интегрировать различные сервисы в единую рабочую инфраструктуру. Продуманный API станет стандартом и хорошим тоном в разработке. 
  4. Математика будет всё больше входить в программирование: распознавание изображений, нейросети, алгоритмы, безопасность, искусственный интеллект и т.д. Хорошее знание математики значительно повысит ценность программиста и позволит ему выбрать самые высокооплачиваемые вакансии. Так что пришли те времена, когда на вопрос «должен ли программист знать математику?» остался один правильный ответ «да». 
  5. Графический дизайн попал в этот список не просто так. GUI программ, интерфейсы, наглядная инфографика, юзабилити становятся востребованными не только в наших мобильниках, но и в системах всех уровней. Дизайн может определять не только коммерческий успех продукта на рынке, удобство его использования, но и безопасность ПО и целых систем. Одновременно с этим дизайн, разработка и программирование будут всё больше терять границы и формироваться в некую новую технологию. Это тренд только-только начал намечаться, и у него очевидно большое будущее.

Мы углубились в свои прогнозы, но ответ на вопрос выглядит гораздо проще. Все сферы нашей жизни завязаны на программировании и, если мы предположим, что через 10 лет все программисты исчезли, значит, произошёл один из сценариев. Вариант первый: компьютеры научились создавать ПО в строгом соответствии с требованиями пользователя. Но ведь кто-то объясняет компьютеру задачу на понятном ему языке, а это и есть формат программирования — далеко не каждый с этим справится. Вариант второй: компьютеры реально научились писать ПО сами, с любым техническим заданием, всё вокруг автоматизировано. Тогда остаётся вопрос: а что будет с людьми, если все задачи выполняют машины? Это только в песенке вкалывают роботы, счастлив человек, а наяву — безработица, социальная напряжённость, конфликты внутри стран и городов. Так себе будущее, правда?

Но есть и более простой ответ на поставленный вопрос, раскрывающий причины его появления)

Ржу не могу. Да-да, всё так. Многие говорят, что программистов заменит ИИ. Позвольте мне вам прояснить кое-что.

Программисты станут последними, кого заменит ИИ. Не думаете ли вы, что другие рабочие места будут заменены ИИ гораздо раньше программистов?

Менеджеры, хех. Руководители, хех. Правительство, хех. Любая другая работа белых воротничков, хех.

Я бы сказал, что если этот чёртов день настанет, облажаемся мы все, и это будут лучшие годы для человечества.

Так почему же люди говорят только о замене программистов? Просто эти люди глупы, им не терпится увидеть, как более умные люди потеряют работу.

В общем, друзья, опасения напрасны. Работы у программистов через 10 лет будет много, но работа будет другой. Смело идите в программирование, развивайтесь в программировании — эволюция технологий окажется в ваших руках.

P.S. Для тех, кто ищет альтернативные точки зрения, есть довольно спорное интервью.

Есть ли будущее у программистов? Почему эксперты говорят о ненужности профессии — Карьера на vc.ru

{«id»:13896,»url»:»\/distributions\/13896\/click?bit=1&hash=5f60379e3a9c533df2884b8b260a5bc3e8cd4070ead81a1c2721cafc8b3fb105″,»title»:»\u041a\u0435\u0439\u0441 ARMOS: \u043a\u0430\u043a \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0447\u0435\u043a, \u0435\u0441\u043b\u0438 \u0442\u044b \u043d\u0435 \u0433\u0438\u0433\u0430\u043d\u0442 \u0440\u044b\u043d\u043a\u0430″,»buttonText»:»»,»imageUuid»:»»,»isPaidAndBannersEnabled»:false}

Не так давно высказывание футуриста Герда Леонгарда о том, что уже лет через 10 программисты станут безработными, вызвало массу дискуссий. Действительно, такой миф популярен среди идеологов, которые не обладают достаточной экспертизой в этой профессии. Обычно в качестве аргумента приводится ситуация с экономистами и юристами, которые еще пару десятков лет назад возглавляли рейтинги самых востребованных специалистов, а сегодня расцениваются как сорняк на производственном поле — много и бесполезно. Страна остро нуждается в интенсивном экономическом росте, ей нужны производители, а не теоретики.

12 889 просмотров

С другой стороны, и с этим фактом можно поспорить. Те, кто хоть раз испытывал потребность в юридических услугах, неизбежно сталкивались с отсутствием высококвалифицированных кадров. Зато, обладателей дипломов о высшем образовании, которые, к примеру, просто складывают и подшивают дела, действительно много. В таком случае, нужно говорить о том, что через 10 лет в любой отрасли экономики рутинные задачи передадут машинам. А предприятия будут нуждаться в тех, кто сможет писать коды для этих машин. То есть, навык создания хотя бы простейших программ будет давать серьезное преимущество представителям всех профессий.

Что касается программистов, то развитие высоких технологий дает им пространство для роста и изучения задач более высокого уровня, а не лишает работы. Так, от создания кассового аппарата пострадали только деревянные счеты, кассирам же просто пришлось освоить новый инструмент. Если рассматривать ситуацию под таким углом зрения, то не через 10 лет, а уже через год — два работу потеряют специалисты с ограниченным базовым набором навыков. Цифровой мир не прощает инертности, особенно программистам, которые становятся локомотивом четвертой промышленной революции.

Перейдем от теории к цифрам. Для этого Ассоциация АПКИТ совместно с АНО «Цифровая экономика» провели анализ текущей численности ИТ-специалистов в России и на его основе спрогнозировали потребность в разработчиках разной квалификации до 2024 года с учетом развития высоких технологий. По результатам этого исследования в России численность занятых в ИТ-сфере специалистов составила 1,8 млн. человек или 2,4% от трудоспособного населения страны. Для сравнения, в Великобритании на момент исследования этот показатель достигал уже 5%, в Финляндии — 7%, ну и в Польше всего 3% — все равно выше, чем у нас.

Это очень обобщенное исследование. Даже, если вычесть из этих 1,8 млн человек 0,35 млн. занятых в сфере телекоммуникаций, статистический анализ не сможет провести четкую грань между действительно талантливыми разработчиками и техническими специалистами с очень ограниченным набором функций. Потребность в первых, очевидно, лет через 10 только возрастет, а вторые с развитием цифровой среды уже не будут считаться представителями этой профессии — их место в статистическом ряду займут новые более квалифицированные кадры.

Сегодня для выполнения поставленных цифровой революцией задач прирост программистов высокой категории, занятых в наукоемких отраслях и вносящих свой вклад в развитие инновационных технологий, должен составлять 222 тыс. человека в год. Годовая потребность в разработчиках средней квалификации — 76 тыс. специалистов. И этот разрыв с каждым годом будет только увеличиваться в пользу первых. По прогнозу Ассоциации АПКИТ к 2024 году ежегодно рынок труда будет нуждаться в 300 тысячах новых талантливых программистах высокого уровня.

При этом, уже сейчас основная масса профессионалов в сфере ИТ сосредоточена в Москве — это целых 20%. На регионы приходится всего 1,5% разработчиков от общего числа экономически активного населения. Причем, об искусственном интеллекте или цифровой трансформации большинство из них читали только в научных статьях. Поэтому в России о переизбытке даже программистов с базовыми навыками не актуально будет говорить и через 10, и через 20 лет. А востребованность в высококвалифицированных специалистах с каждым этапом промышленной революции будет только возрастать.

Подводя итог, важно еще раз подчеркнуть, что специалисты ИТ-сферы — это столь же абстрактное понятие, как юрист, врач или экономист. К этой категории занятых очень условно можно причислить даже оператора связи на почте, который не является разработчиком каких-либо программ. В цифровой век пользователями ПК становятся все: от школьника до пенсионера; а вот писать коды для выполнения даже простых рутинных задач пока могут единицы. Со временем в своем развитии человечество поднимется еще на несколько ступеней. А прокладывать путь к высоким технологиям будут высококвалифицированные программисты, для самых передовых из которых возможность развития в цифровом мире не имеет преград.

CS:APP3e, Брайант и О’Халларон

Эта страница содержит дополнительные ресурсы для учащихся, использующих Текст CS:APP3e.

Материал из учебника CS:APP

  • Лабораторные работы для самостоятельных занятий (без решений)
  • Оригинальные линейные рисунки PowerPoint и графики Excel
  • Примеры кода

Справочники по Linux

  • Майкл Керриск, Интерфейс программирования Linux , No Starch Press, 2010.
    • Основное руководство по системному программированию Linux от сопровождающий справочные страницы Linux. Ясный, авторитетный и энциклопедический. Включает файловый ввод-вывод, процессы, сигналы, время, потоки, общие библиотеки, IPC, синхронизация и сокеты. Отличная книга.

Online GDB Materials

  • Beej’s Краткое руководство по GDB (на основе очень удобного режима gdb -tui )
  • Двухстраничная шпаргалка x86-64 GDB (pdf, тхт)

Интернет-материалы по C и Linux

  • Часто задаваемые вопросы по CS:APP3e Unix
  • Профессор Норм Матлофф Учебный центр Unix/C
  • Проект GNU предоставляет онлайн-руководства для все инструменты GNU, включая Эмакс, ССЗ, ГБД и Делать.

Документация по IA32 и x86-64

Окончательный Руководства разработчика программного обеспечения для архитектур Intel 64 и IA-32 доступны онлайн. К ним относятся:

  • Том 1: Базовая архитектура
  • Том 2a: Справочник по набору инструкций, AM
  • Том 2b: Справочник по набору инструкций, N-Z
  • Том 3a: Руководство по системному программированию, часть 1
  • Том 3b: Руководство по системному программированию, часть 2

Глава 1: Обзор компьютерных систем

  • Статья Денниса Ритчи, 1993 г., посвященная Разработка языка Си.

Глава 2. Представление информации и обработка информации

  • Практическая задача 2.9. В этой задаче используется цветовая система RGB. как иллюстрация булевой алгебры. Вот полноцветное изображение этой цветовой системы.
  • Книга CS:APP представляет несколько примеров, где взаимодействие между подписанными а беззнаковая арифметика приводит к ошибкам и уязвимостям безопасности. А книга Роберт Сикорд (из Группа реагирования на компьютерные аварии) описывает более полное набор уязвимостей и предоставляет рекомендации по безопасному кодированию. Обратите особое внимание на совет использовать беззнаковые типы данных для циклических индексов.
  • Официальный отчет об отказе Ариан-5.

Глава 3. Представление программ на машинном уровне

    Глава 4: Архитектура процессора

    • Инструменты и документация Y86-64
      • Исходный дистрибутив (ПРОЧТИ МЕНЯ)
      • Руководство по симулятору (pdf)
      • Технический отчет с описанием успешной попытки официально проверка более ранней версии конвейерных реализаций Y86. (pdf)

    Глава 5. Оптимизация производительности программы

    • Полный код, используемый для демонстрации профилирования программы
      • Исходный дистрибутив (ПРОЧТИ МЕНЯ).
    • Текстовые файлы для эталонной программы анализа частоты слов
      • Полный текст собрания сочинений Шекспира.
      • Полный текст Моби Дика.

    Глава 6: Иерархия памяти

    • Создайте собственную память, используя инструмент ECT memperf разработан Томом Стрикером (изобретателем горы памяти) и Кристиан Курманн из ETH.
    • Менее сложная программа из текста CS:APP3e для генерации гора памяти (смола)

    Глава 10: Виртуальная память

    • П. Уилсон, М. Джонстон, М. Нили и Д. Боулс, Dynamic Распределение памяти: обзор и критический обзор , International Семинар по управлению памятью, Кинросс, Шотландия, сентябрь 1995 г. (pdf).
      Полный справочник по распределителям памяти.

    Глава 12: Сетевое программирование

    • Tiny Web-сервер (tiny.tar).
      Расширяется с помощью tar xvf tiny.tar в каталог с именем ./tiny , который содержит все необходимое для тестирования Tiny. веб-сервер, включая образцы файлов HTML, GIFS, сценарии CGI и файлы csapp.c и csapp. h . Скомпилировано и протестировано на Linux-боксах.
    • Официальный список MIME-типы.

    CS:APP3e, Брайант и О’Халларон

    Предисловие к CS:APP предлагает 5 основных стилей системных курсов (ОРГ, ОРГ+, ICS, ICS+, и SP), которым можно было бы научиться по книге:

    Гл. Тема ОРГ ОРГ+ ИКС ИКС+ СП
    1 Обзор систем X X X X X
    2 Представление данных X X X X X (d)
    3 Машинный язык X X X Х Х
    4 Архитектура процессора X X
    5 Оптимизация кода X X X
    6 Иерархия памяти X (a) X X X X (a)
    7 Соединение X (с) Х (в) Х
    8 Исключительный поток управления X X X
    9 Виртуальная память X (b) X X X X
    10 Ввод/вывод системного уровня X X
    11 Сетевое программирование X Х
    12 Параллельное программирование X X

    Примечания: (a) только оборудование, (b) без динам. выделение памяти, (c) Нет дин. связывание, (d) Нет п.п.

    Конкретные примеры

    Вот несколько вариантов этих стилей, которые есть у настоящих инструкторов. разработаны для своих классов.

    • Университет Сент-Луиса, факультеты математики и информатики, а также ECE
      CSCI 224/ECE 317 – Компьютерная архитектура
      Джейсон Фриттс, весна 2015 г. (16-недельный семестр)
        Вариант курса ORG, который охватывает первые четыре главы CS:APP, кульминацией которого стало изучение архитектуры процессора.
    • Университет штата Небраска, кафедра компьютерных наук и инженерии,
      CSCE/RAIK 284H — Основы компьютерных систем
      Стив Годдард, весна 2010 г. (14-недельный семестр)
      • Интересный вариант курса ORG+, дополняющий обычные темы представления данных, языка ассемблера, архитектуры процессора и система памяти с дополнительным охватом базового программирования на системном уровне. Чтобы увидеть, как учащиеся реагируют на то, как Стив усердно изучает материал, см. эта картинка
    • Северо-Западный университет, факультет компьютерных наук,
      EECS 213: Введение в компьютерные системы,
      Фабиан Бустаманте, весна 2012 г. (10-недельный квартал).
      • Хороший пример варианта курса ICS для школ на квартальная система. Он пропускает оптимизацию кода, но включает некоторое освещение системного программирования.
    • Университет Карнеги-Меллона, факультет компьютерных наук,
      15-213/18-213: Введение в компьютерные системы,
      Преподается каждый семестр (14 недель)
      • Это курс ICS+, основной источник вдохновения для текста CS:APP.
    • Университет Карнеги-Меллона, факультет компьютерных наук,
      15-349: Введение в проектирование процессоров,
      Рэнди Брайант и Дэвид О’Халларон, лето 2002 г. (3-недельный мини-курс).
      • Хорошо зарекомендовавший себя мини-курс по архитектуре процессора, который мы преподавали чтобы помочь нам отладить материал в главе 4.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *