Моя профессия — программист

Опубликовано 15 июля 2014 в 14:38
0 0 0 0 0

С детства я мечтал стать программистом, работать с компьютерами. Я тогда слабо представлял, что это такое, но общая атмосфера мне нравилась. Ходил в школьный кружок по программированию, но это мало что мне дало: мы учились вычислять какие-то формулы, и я стабильно списывал программы у соседа, это было неинтересно.

Толчок к развитию дало прочтение статьи, написанной Эриком Рэймондом (Eric S. Raymond) ещё в 1998 году: «Как стать хакером?» (How to become a hacker). Я стал руководствоваться статьёй, и всё произошло так, как и написано. Удивительно наполненная духом работа, которую я перечитываю до сих пор.

Поставил себе Linux и стал изучать, старался постигнуть шелл, пайпы и прочие маленькие радости автоматизации. Разобравшись, чувствуешь себя неуютно и ограничено на какой-нибудь Windows-машине.

Я стал изучать языки программирования и писал простенькие программы — не потому что нужно, а потому что дико интересно. Есть особенное, невероятное ощущение, которое испытал каждый программист — осознание возможности творить. Взять и создать новую живую клетку — и пусть существует она по примитивным законом, не обладает разумом, а вместо рук и ног у неё прямоугольник на экране да клавиатура. И тогда ты понимаешь что ты — бог!

Компьютерщики, сисадмины, эникейщики


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

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

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

Эникейщики — от «press any key», они же компьютерщики. Это те люди, которые переустанавливают вам Виндоусы, чистят систему от вирусов и ставят антивирусы, восстанавливают жёсткие диски и устанавливают драйвера. В общем, делают всё то, что умеет любой продвинутый пользователь, не более.

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

Университет


В университет (БФУ им. И. Канта, матфак) я поступал с нетерпением — ведь там меня будут обучать программировать, я стану совсем настоящим программистом, смогу создавать очень сложные вещи. Но тут меня ждало разочарование — программирование преподавали мало и плохо, больше половины я знал ещё со школы, а остальное легко мог выучить сам по первой необходимости.

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

Нетрудно догадаться, что это закончилось моим отчислением, о котором, впрочем, я ничуть не жалею. Без образования вполне можно работать программистом, что я с успехом и делаю.

Вообще не могу сказать, что образование бесполезно — хороший математический минимум (линейная алгебра, мат. логика, дискретная математика, теория вероятности, матан, в конце-концов!) уж точно пригодится. Но остальное просто ест ваше время, не давая ничего взамен.

Как выглядит код программы


Любая программа, абсолютно ЛЮБАЯ программа (графический редактор, браузер, операционная система, драйвер для вашей видеокарты) состоит из последовательных инструкций на специальном языке, которые выполняет процессор. Это называется машинный язык. Но машинный язык очень примитивен, и даже программистам выражать свои идеи на нём довольно сложно и многословно. Поэтому существуют различные языки программирования — более богатые и выразительные языки. Те же инструкции, но с гораздо более изощрённой логикой и дополнительными страховками.

Код — это просто текст, написанный на определённом языке программирования. Поэтому программы можно писать в самом обычном текстовом редакторе (да-да, блокнот на вашем Windows).

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

Вопрос «На чём пишешь?» звучит примерно также как «Где служил?». Используемый язык программирования много говорит о человеке как о программисте.

 

Программисты все умные, и хорошо разбираются в математике


Вообще программист не обязан хорошо разбираться в математике, это сильно зависит от области, в которой он работает. Но создание совершенно новых вещей (кто-то ведь придумал распознавание текста, поиск в интернете, красивую компьютерную графику?) часто требует хорошей математической подготовки.

И программист не обязан быть «умным». Хватит и самой обычной внимательности к деталям и общей адекватности. В программировании нет какой-то особенной магии. Не сложнее, чем строить город из Лего, или замок в майнкрафте.

Есть, к примеру, такой человек как Кон Коливас, по образованию анестезиолог, который внезапно стал программистом, сделал вклад в написание операционных систем. Без какого-либо образования, просто в свободное от работы время баловался программированием.

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

Православность, каноничность


Если набрать в Google «православно ли», то на первой-второй странице вы найдёте ссылки на какое-нибудь техническое обсуждение вроде «Православно ли выносить интерфейс контейнера STL begin/end/iterator наружу?» или «Использовать slapt-get — Православно ли?».

Забавно, да?

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

Английский язык


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

Так сложилось, что никому не нужна техническая документация на русском языке. Зачем её переводить, если к завершению работ над переводом она уже немного устареет? Да и всё равно все читают в оригинале.

Поэтому новички плюются, а потом начинают читать на английском. Кроме того, английский порождает международную терминалогию, общую для всех программистов. Очень часто получается, что некоторые термины до сих пор не имеют принятого стандарта, как переводить на русский язык. Поэтому встречаются шедевры вроде: «Смежить бранчи и разрезолвить конфликты» (Merge branches and resolve conflicts)

Зарплаты


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

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

У нас в Калининграде средний опытный программист вполне может рассчитывать на 30-50 т. р. А вообще, можно зарабатывать гораздо больше, если ты не средний =). Но для этого нужно постоянно расти над собой.

 

0 0 0 0 0




Вконтакте
facebook