Поздравляем студентов с профессиональным праздником
Дорогие хабрастуденты!
Мы хотим поздравить вас с профессиональным праздником — днём студента. Пускай учеба приносит вам счастье! По случаю праздника мы начинаем «студенческую неделю», в которой представим вашему вниманию несколько тематических постов для студентов. Их можно будет найти в нашем блоге на хабре или в нашем студенческом блоге.
Когда я был студентом, то Татьянин день был для меня почти таким же приятным праздником, как Новый год. Ведь в это время для многих заканчивается сессия, можно немного отдохнуть на каникулах и с новыми силами браться за новый семестр. А каникулы — это такое прекрасное время для самообразования!
В этот день мне хотелось бы поделиться с вами одной важной мыслью. Мне часто пишут и спрашивают: как лучше научиться программировать, какие языки программирования нужно изучать? И я почти всегда даю один и тот же ответ: бесполезно просто изучать языки по различным урокам, лучше поставить себе какую-то интересную задачу и начать её делать, а со всем остальным — включая языки, которые нужны для её реализации — разбираться по ходу дела. Также как и иностранный язык невозможно хорошо выучить только по книжке, без разговорной практики — так и язык программирования лучше всего изучать «в процессе».
При этом очень важно, чтобы задача была интересной. Ниже я немного подробнее расскажу про то, как можно сделать интересным процесс обучения в области IT (конечно же, с помощью технологий Майкрософт!), а также про небольшой подарок.
Кому-то повезло, и интересные задачи удалось найти на работе. Но чаще всего такие задачи удается придумать себе самому — ведь сам человек лучше всего знает, что ему интересно. Поэтому я всегда призываю студентов браться за интересные задачи, даже если сразу не очень понятно, зачем это нужно. Как минимум, это позволит удовлетворить интерес, а вполне вероятно, что из такой задачи вырастет хороший проект Imagine Cup (кстати, срок подачи заявок на конкурс этого года истекает 15 февраля) или будущий стартап.
Также прекрасный источник интересных задач — это курсы, которые вы изучаете в университете! Как преподаватель открою вам секрет: я очень радуюсь, если ко мне подходит студент и говорит, что вместо стандартных лабораторных работ или курсового проекта он хочет сделать что-то интересное на релевантную тему. Поэтому очень часто вы можете сами придумать себе какие-то интересные задания по изучаемым предметам!
Чтобы было проще придумывать, вот некоторый список интересных технологий Майкрософт, которые могут пригодиться в обучении:
- Самое простое — это курс программирования. Научитесь программированию на C# в увлекательной форме за пару дней, и затем по примерам из этого курса вы сможете экспериментировать с простейшей графикой, цифровым искусством, или изучать дальше разработку приложений для мобильных устройств (об этом мы напишем чуть позже в отдельной статье). Изучив C#, вы сможете создавать на нем совершенно разные приложения, от веб-сайтов до игр — подробнее об этом мы рассказываем в отдельном видео-курсе «Современное программирование на C#». Также в отдельной статье я расскажу вам, как увлекательно изучать некоторые аспекты программирования с помощью микроконтроллеров и электроники.
- Если вы изучаете программирование на языке Python (это тоже очень хорошая идея!), то обратите внимание на то, что в Visual Studio есть прекрасные инструменты Python Tools for Visual Studio, которые хорошо описаны в этой хабрастатье.
- Если вы изучаете курсы искусственный интеллект или машинное обучение — обратите внимание на облачную технологию Azure ML. Она позволит вам построить схему обучения, натренировать модель на конкретных данных, и затем получать предсказания — всё это без глубокого знания алгоритмов машинного обучения. Из наиболее ярких технологий, основанных на машинном обучении, хочется также упомянуть Project Oxford — набор API для более естественного человеко-машинного взаимодействия, которые позволяют, например, распознавать по лицу настроение человека, или общаться на естественном языке. Ну, а для тех, кто серьезно занимается темой обучения на больших данных, стоит посмотреть на Distributed Machine Learning Toolkit
- Компьютерная графика — это один из самых увлекательных предметов, поскольку он очень близок к построению игр. Для более детального понимания работы с графикой хорошо разбираться с DirectX — для этого как нельзя лучше подходит технология MonoGame, в которой вы можете пользоваться примитивами DirectX прямо из C#. Конечно же, эта технология подходит не только для игр, но и для научной трехмерной визуализации. Ну, а если разбираться в деталях алгоритмов не надо, то можно сразу перейти к Unity3D, по которой у нас также есть отличный курс.
- Мой любимый предмет — это функциональное программирование, изучить которое (на основе языка F#) вы также можете в увлекательной форме с помощью вот этого курса. F# также вам будет очень полезен при изучении различных математических курсов, например, дискретной математики, кроме того, в нём очень легко анализировать любые данные и сразу визуализировать результат. На эту тему есть прекрасная бесплатная англоязычная книжка.
- Различные курсы по администрированию, компьютерным сетям очень хорошо изучать на примере облака Microsoft Azure. Ведь в облаке вы можете легко создавать различные объекты инфраструктуры, виртуальные сети, настраивать VPN-соединения между виртуальной сетью в облаке и вашим компьютером, поднимать и конфигурировать виртуальные машины. К сожалению, в рамках студенческого облачного предложения эти возможности недоступны, но вы можете использовать 30-дневный пробный период, или подарок, о котором я пишу ниже.
- Облако естественным образом может использоваться в рамках курсов веб-программирования, причем для создания веб-сайтов, как статических, так и динамических, достаточно бесплатного облачного предложения. Буквально на днях это предложение было расширено новыми функциями, о которым мы напишем в рамках нашей студенческой недели.
- Если вы изучаете курс базы данных — не забывайте, что помимо традиционных реляционных баз данных сейчас всё большую популярность приобретают нереляционные хранилища, получившие общее название NoSQL. Познакомиться с несколькими такими хранилищами вы также сможете в облаке Microsoft Azure, и там же сможете развернуть и попробовать Microsoft SQL Server.
- Облако можно также использовать в курсах вычислительной математики и численных методов, для проведения высокопроизводительных вычислений на кластере. Для этой цели очень хорошо подходит F# и технология {m}brace, хотя можно использовать и более традиционный Hadoop или HDInsight.
- Какой-бы предмет вы не изучали, наверняка вам приходится часто писать отчеты, в которых присутствуют математические формулы. Если TeX кажется вам черезчур громоздким с точки зрения синтаксиса, то обратите внимание на замечательную среду подготовки документов на основе Markdown Madoko. Будучи основанной на TeX, она позволяет получать то же качество отчета, но с более кратким синтаксисом исходного документа.
Чуть подробнее про некоторые из этих тем мы напишем в ходе предстоящей недели студенческих статей. Если вы знаете другие увлекательные технологии Майкрософт, которые можно использовать в учебных курсах, которые обычно изучают в университете — напишите мне в комментариях, мне будет очень интересно пообщаться на эту тему. Я уверен, что мой список далеко не полон!
Ну, а теперь — небольшой подарок. Я много писал выше про облако Microsoft Azure, многие возможности которого недоступны в рамках бесплатного студенческого предложения. В качестве подарка, я готов раздать 20 промо-кодов на использование облака Microsoft Azure в течение месяца, которые позволят вам использовать любые возможности облака в рамках некоторой суммы (около $100). Чтобы получить такой промо-код, напишите мне вконтакте пару слов о том, что бы вы хотели попробовать в облаке — и я вышлю код ответным сообщением.
Хороших каникул и интересных занятий!