Я программист, 24 года.
Рост 170. Размеры 90-60-90. Я хочу поделиться своим опытом студенческих лет. На что нужно обратить внимание в процессе обучения (по моим наблюдениям), что может пригодиться в будущем.
Расскажу в какие моменты и какой прогресс наблюдался.
Как не сдаваться, если учиться скучно, и где искать мотивацию.
В моей школе информатику преподавали только в 10 и 11 классах.
Мы изучали язык QBasic. Они писали программы объемом не более 30 строк.
По сравнению с другими одноклассниками я вроде бы неплохо справлялся с заданиями, а окружающие говорили, что «сейчас нужны программисты».
Когда я пошел учиться на программиста, я понятия не имел, что это такое.
На первых трех курсах у меня еще не было полного понимания и представления, чем я буду заниматься.
На первом и втором курсе были семестры с изучением языка Си.
Все остальные предметы заключались в ознакомлении с областями, которые помогут в программировании.
Некоторые товарищи недооценили некоторые предметы, а зря.
После обучения в институте понимаешь важность следующих вещей
Стиль кодирования
В первые два года мои программы имели, смею сказать, дерьмовый код (открывая старые программы в более старшие годы, я сам был в шоке от дизайна кода).Я видел несколько вызываемых функций и операторов в одной строке, и все это можно было написать без пробела.
С первого по четвертый курс преподаватели в основном требовали от нас только знания языка и использования изученных алгоритмов для решения задачи.
Нам даже ничего не рассказали о стиле программирования, а для студента работает «не трогай».
Все изменилось с середины четвертого курса.
Когда мы более-менее справились с поставленными задачами, преподаватели начали делать замечания по оформлению кода.
У меня даже есть отчеты, расчерченные стрелками и рекомендациями по изменению расположения кусков кода.
«Чистота» моего кода на первых трех курсах была почти нулевой.
Но потом стараешься написать код правильно, чтобы не было стыдно показать его другим.
Так что, не бойтесь показывать свой код более опытным программистам, одноклассникам, не бойтесь критики, ведь лучше раньше осознать свои ошибки и научиться писать читаемый, грамотный код. Участвуйте в открытых проектах или хотя бы посмотрите, как пишутся программы, например, на github. Кроме того, сейчас существуют книги с рекомендациями по стилю кодирования, которые могут помочь привить «чистоту кода» уже на начальных этапах обучения.
Сделайте свою жизнь проще – используйте системы контроля версий
Впервые с системами контроля версий я познакомился на пятом курсе.И я очень благодарен преподавателю, который заставил нас разработать лабораторную работу в git. Познав все преимущества и гибкость распределенных систем, имея опыт работы с SVN и git, я предпочитаю git. И работать в git bash даже не смущает, хотя графические приложения для работы с Git тоже есть.
Необходимо изучить аппаратное обеспечение
Многие люди не считают определенные предметы.Говорят, это скучно, и вряд ли мне это понадобится.
Как показывает практика, это аукнется вам.
Большинству моих друзей на собеседовании задали вопрос, чего именно им не хватает. Вот несколько вещей, которые мне не раз пригодились.
Обычные выражения
У нас был целый предмет, на котором мы могли отточить навыки составления регулярных выражений — теория компиляторов.Сначала мы писали простые лексические анализаторы, позже стали писать программы для парсинга.
Познакомившись с регулярными выражениями, вы увидите, что они нужны как для парсинга файлов, так и для проверки корректности данных (проверка одного и того же IP-адреса).
И да, на собеседованиях любят давать задания, связанные с регулярными выражениями.
АрхитектураЭВМ
Как работает процессор, как производятся вычисления, как работает память, обрабатываются прерывания и многое другое.Знания о представлении чисел в машине, о процессе выполнения операций с числами в дополнительном/обратном коде обязательно будут полезны любому программисту, работающему с компьютером или ПЛИС, микроконтроллером и т.п.
Знание принципов работы ОС
Работа с потоками, использование механизмов синхронизации, администрирование и т. д. На одном из собеседований спросили, что такое мьютекс.Кто-то из-за непонимания сути вопроса заговорит о функциях lock() и unlock() для работы с мьютексом.
Но что нам действительно нужно донести, так это то, что этот механизм синхронизации представляет собой пассивное ожидание.
В зависимости от направления, в котором вы собираетесь работать, определяется жизненная потребность в этих знаниях.
А вообще, знать и помнить о таких вещах не помешает. Изучая работу ОС и драйверов, я впервые собрал ядро Linux, хотя раньше оно было для меня чем-то загадочным.
Языки аппаратного программирования
Полезно для общего развития.Но пока в работе это не принесло особой пользы.
Хотя нет: когда на лекции нам начали рассказывать про упакованные и неупакованные структуры, я задумался, есть ли такое в языке Си.
Да, я не знал, что существует такая вещь, как битовые поля.
Теория автоматов
И эта теория может быть полезна на практике.Например, если у вас есть длинное выражение if, его, скорее всего, можно упростить с помощью карт Карно или другого метода минимизации логической функции.
Информационная безопасность
Знания по расчету CRC-кодов я нашел полезными для контроля целостности передаваемой информации при обмене.У нас даже была целая лекция о том, что это такое и как правильно выбрать полином.
Сети
Знакомство с различными протоколами, принципами работы и типами сетевых конфигураций было полезным.Это лишь малая часть того, что может вам пригодиться в дальнейшей работе (высшая математика – не исключение).
Это небольшой список знаний, которыми я активно пользуюсь.
Да, в институте нам многое рассказали вскользь, просто для информации, но благодаря этой базе данных вы знаете, куда копать, когда нужно решить возникшую проблему.
А поскольку в последние два года у нас было много предметов по специальности, значительный прогресс и применение знаний на практике происходит именно в последние годы обучения.
Отсутствие мотивации может отбить у вас желание учиться
Сейчас я часто слышу от молодых сотрудников: «Я уже закончил третий (энный) курс, но скучные лекции, занятия и преподаватели только убивают во мне желание».Наверное, мне в этом плане повезло немного больше.
У нас было несколько преподавателей (они до сих пор работают в других компаниях), глядя на которых думаешь: «Я хочу быть таким».
Их наставления и истории из жизни вдохновляли.
Благодаря таким людям у студентов горит огонь в глазах.
Чтобы вызвать чувства у других, вы сами должны быть поглощены ими.Если в институте ваши преподаватели читают лекции на бумаге неинтересно и не дают интересных задач для лабораторных занятий, то не стоит бросать программирование (у меня есть пара друзей, которые действительно бросили программирование), еще не начав.Чтобы заставить плакать других, нужно плакать самому.
Чтобы убедить других, вы должны поверить себе.
(Уинстон Черчилль)
Сегодня многие компании проводят бесплатные семинары и предоставляют бесплатное обучение/стажировку летом.
Поверьте, пообщавшись с опытными программистами, вы почувствуете себя по-другому.
Кроме того, после стажировки у вас есть возможность остаться и работать там.
Что бы я сказал напоследок?
Несмотря на то, что большую часть своих знаний программист получает в результате самообучения, знания, полученные в институте, могут оказаться полезными.Никогда не знаешь, что тебе может понадобиться в будущем.
Так что не нужно так скептически относиться к лекциям, семинарам и лабораторным заданиям, которые вы посещаете.
Если вы хотите быть программистом, вы им станете, но для этого вам придется много работать и не сдаваться перед трудностями.
Теги: #обучение программированию #обучение программированию #студенты #программист #как стать программистом #Управление персоналом #Карьера в IT-индустрии
-
Бесплатный Ноутбук В Сети Можно Легко Найти
19 Oct, 24 -
Конвертер Ptr Ipv6
19 Oct, 24 -
Важное Сообщение О Приглашениях В Профиль
19 Oct, 24 -
Будьте Совершенны!
19 Oct, 24