Знания и навыки, необходимые программисту

Мирослав Войнаровский
Знания и навыки, необходимые программисту
В большинстве случаев программисту для работы нужен компьютер и Интернет. И все. К тому же, у многих компьютер и доступ в Сеть уже есть.

Это вам не летчики, которым для обучения нужен целый самолет. Благодаря таким небольшим требованиям, многие учатся программированию самостоятельно и могут попробовать это занятие без посторонней помощи. Основы информатики сейчас преподают в школах, так что минимальное представление о профессии должно быть у всех.

Без английского тут никак. Его придется учить, в основном на перевод с листа. Умение писать не так важно, умение говорить и понимать на слух — вообще не имеет значения (оно, конечно, полезно, но не для программирования). Если после школы у вас сложилось впечатление, что достаточно запомнить переводы нескольких команд Basic и Pascal, то вы неправы: программистам приходится читать очень много технической документации на английском и с большой скоростью.

Может сложиться впечатление, что программисту надо хорошо разбираться в математике. Это так, но математика тут довольно специфичная. Очень сильно зависит от той области, в которой вы будете работать.

Насколько сложная математика вам понадобится, зависит от той области, в которой вам придется работать. Дело в том, что только в самом начале программирование занималось вычислительными задачами и только ими. В большинстве нынешних программ вычисления происходят на уровне четырех арифметических действий, поскольку задачи поменялись.

Общительность

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

Бывает, что очень популярные и очень хорошие программы пишутся энтузиастами-одиночками. А хорошо оплачиваемые прграммы всегда делаются в коллективе.

Вам придется ладить с начальством, которое может что-то понимать в работе программиста, а может и ничего не понимать. Вам придется с начальством спорить, но очень корректно (все-таки начальство), а то вас могут попросить сделать за неделю вечный двигатель или что-то в этом роде, а потом накажут за неисполнение. Придется вежливо объяснить, что до вечного двигателя придется подождать, пока Microsoft не выпустит нужные драйвера (лучше не говорить, что это невозможно), а вот продлить срок службы существующего «движка» можно попробовать.

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

Оптимальное — именно в техническом смысле, по затратам денег и рабочего времени, а не в том «кто виноват» или «кто главнее».

Переучивание

Программисту приходится очень часто и очень много переучиваться. Иногда придется изучать и то, что не нравится. На работе программиста учиться приходится буквально каждый день. Дело в том, что все необходимые знания просто не влезают в одну голову — поэтому приходится добавлять эти знания по мере необходимости, а многое из старого — забывать. Достаточно сказать одно: если вы надеетесь, что «отучусь в школе, отучусь в институте, а потом буду работать» (а не учиться), то зря надеетесь: потом будете и работать, и учиться.


Читайте также

Комментарии (2)

Дамир, 26.06.2011, 20:03
А можно поподробней равить эту тему?
Сергей Скупой, 18.11.2014, 00:14
>>>Может сложиться впечатление, что программисту надо хорошо разбираться в математике.
Ну, не может сложится, а НАДО разбираться в математике. Надо хотя бы уметь разбираться. И фундаментальные основы нужно знать. Знаю дипломированных "программистов" не знающих даже основ.
Ни слова о теории алгоритмов. Я заметил, это такой тренд прямо, никто на собеседованиях не интересуется. А как же писать эффективный код без базовых знаний? Я говорю о настоящем программировании, а не конструировании из фреймворков.

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

Чтобы добавить комментарий нужно войти.
Оставить комментарий