302

О моей работе - программирование.

С удовольствием читаю посты о разных профессиях, но о моей никто ничего не писал. Решила поделиться опытом, может кому-нибудь будет интересно. Работаю я программистом уже около 10 лет, к сожалению экшена в нашей работе мало, поэтому пост будет немного скучноват. Я люблю свою работу и могу трындеть о ней часами, но не всем будет понятно, поэтому попытаюсь быть максимально кратка и отвечу на самые часто задаваемые вопросы тех, кто подумывает связать свою жизнь с программированием.
1. Можно ли быстро научиться программировать?
Нет, категорически. Несмотря на обилие учебников - C# за 21 день и тому подобное. Сначала надо обязательно изучить систему, под которую пишете. Потом освоить логику и блок схемы и только затем браться за язык. И даже изучив язык программирования считайте, что вы выучили таблицу умножения. Так как дальше больше.
Кроме программирования мне очень помогли знания математики, численных методов, дискретной математики, теории кодирования, теория вероятности.
2. Какой язык лучше учить?
Да какой хотите) Есть очень много областей. Прикладное программирование, базы данных, графика, сайты, планшеты... Сначала надо освоить базовые знания. Для этого подойдет любой распространенный язык. Ну я как фанатка паскаля его советую для начала. Он довольно легкий. Затем определиться, в какой области вы хотите работать и уже тогда, имея какие-то знания выбирать средство разработки. Вообще, зная один язык, считай знаешь все. Т.к. дальше они будут даваться легче и легче.
3. Много ли платят
Это как и в любой области зависит от знаний и места работы. Могу точно сказать что толковый программист никогда не пропадет, если он живет в большом городе.
4. Интересно ли работать.
Очень интересно! Не всем конечно же. Если вам нравиться решать логические задачи то будет интересно. Мы работаем над заказами. И они касаются совершенно разных областей. Один проект с графикой, другой с базами, третий с внешними устройствами. Все знать невозможно, часто приходиться работать с совершенно разными областями и изучать новые технологии. Не могу описать восторг, когда долго парился над изучением SDK к какой-нибудь малоизвестной фигне и наконец у тебя все работает.
Иногда работа неблагодарная. Всегда заранее обговариваем проект, делаем тз и утверждаем. На его основание продумываем структуру программы и пишем. И вот после сдачи довольный клиент просит чуть-чуть поменять. Ему-то кажется что фигня вопрос. А относительно структуры это жопа полная, ну не предусматривает текущий вариант подобных изменений. И как бы ты не пытался создать гибкую программу, все равно бывают моменты, что переделка маленького кусочка программы потребует исправлений половины кода.
Еще многим кажется, что программисты ничего не делают.
Да, мы работаем сидя у компа. И если прогер лежит с печенькой на диване, это не значит, что он отдыхает. Иногда надо хорошенько все обдумать. В такие моменты трудно доказать начальству, что ты не балду гоняешь.
Экстрим тоже бывает. Не могу объяснить сей феномен, когда 100500 раз проверенная всеми, в том числе и тестировщиком программа, при финальной сдаче клиенту выдает не только ошибку, но и вешает комп. Море эмоций.
Кстати, лучший друг программиста кто? Дядя, который деньги платит. И вопреки заблуждениям это тестировщик. Мы нашего на руках носим. Код кодом, а за надежность продукта отвечает он.
5. Легко ли работать?
Если опыт есть - легко. Даже когда нужно много нового перекопать. От себя могу только два сложных случая добавить. Сложно, когда меняешь работу. Нужно вникать в их проект. Это временное явление. И иногда сложно с чужим кодом. Это отдельная история. Некоторые прям загляденье, а иные ну просто черти что и с боку бантик. И поди разбери что автор хотел сказать. Разбор чужого кода это как проникновение в логику другого человека, часто чуждую и не всегда здоровую.
Еще момент - нужно быть готовым развиваться постоянно. Прогресс на месте не стоит, знания устаревают, плюс ко всему приходиться изучать не только свою область, но и предметную. Если я пишу для бухгалтерии, то должна знать потребности, минимум знаний бухучета обязательно. Конечно в больших компаниях не так, где каждый отвечает за свою задачу. Но мы живем в России, где прогер должен уметь и кран починить и иконки сам клепать.
От себя добавлю еще один момент. Часто слышу от программистов - работающему коду в зубы не смотрят. При красивом внешнем оформлении (программы) код может быть просто ужасен. И даже если все работает идеально, хорошей работой это назвать нельзя. Не берусь объяснить, насколько код может быть элегантен, скажу только, что программисты хвалятся друг другу, показывая кучу строчек на экране - глянь какую я красаву сделал! Сложно понять, но оно имеет место быть.
Ну и убивает естественно - тыжпрограммист! Про технику и винду я молчу. Иногда просят написать сайты. В принципе представление имею, писала маленькие проекты. Но при попытках объяснить человеку, что мне это как проктологу через жопу гланды лечить, он мне кидает - какой же ты тогда программист, если сайтик не можешь запилить. Мы можем. Но лучше и быстрее это сделает человек, который занимается сайтами.
Шутки про прогеров возникли не на пустом месте. Наше мышление своеобразно. Мы любим систематизировать, часто перфекционисты, хотя попадаются и пофигисты.
Всего не написала, это было бы слишком много. Надеюсь было интересно.
0
Автор поста оценил этот комментарий
Автор, спасибо за статью, было интересно!
У меня такой вопрос, можете привести примеры задач, которые ставятся перед только принятым работникам (новичкам).
Я бы хотел работать в этой сфере, но боюсь, что моих знаний недостаточно (а может и достаточно), но я быстро изучаю материал.

Только, можно живой пример, а то на форумах уже начитался "кучи воды".
P.S. Окончил колледж, сейчас в универе, бьюсь в истерике, от того, что не знаю как поступить, ибо боюсь оплошать.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я даже не берусь ответить. Все зависит от области в которую пойдешь, от их задач. Скорее всего сначала тебя ознакомят с продуктом, с его кодом и архитектурой и только потом будут давать задачи, если, конечно, это не новый проект.
А вот к собеседованию советую подготовиться. Там любят по теории гонять и задачки давать на месте. Иногда дают тестовое задание по почте.
В любой профессии трудно начинать, втянешься.
У меня первым заданием были ком объекты для программы, работающие с устройством записи звука.
показать ответы
0
Автор поста оценил этот комментарий
Спасибо большое за пост! :) Я тоже хочу стать программистом, так что он мне очень помог. А еще, можно пару вопросов? Вам не трудно было как девушке, ну там, не было недоверия к качеству работы, пренебрежения среди мужчин? И какой примерно уровень знаний должен быть при поступлении в хороший вуз?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Конечно же было недоверие. Но что интересно среди коллег не программистов и просто знакомых. Ребята с которыми работала никогда мои знания сомнениям не подвергали. Насчет знаний не могу сказать, я когда поступала совсем все по другому было. Я сдавала только математику и русский язык. Остальному научат) Поступай, не бойся. Работа хорошая, главное спрос на прогеров есть.
2
Автор поста оценил этот комментарий
Начнем с того что данное понятие редко к дельфе применяется. НО тем не менее там это делается подобным макаром
type
TMyEvent = procedure(I: Integer) of object;

TNewClass = class(TObject)
private
FOnDoSomething: TMyEvent;
procedure DoSomething(I: Integer);
public
property OnDoSomething: TMyEvent read FOnDoSomething
write FOnDoSomething;
end;

procedure TMyClass.DoSomething(I: Integer);
begin
if Assigned(FOnDoSomething) then
FOnDoSomething(I);
end;

Создаем класс объекта и присваиваем ему событие OnDoSomething.
Object1.OnDoSomething := Object2.SomethingFunction
Здесь делегат - событие
Во избежание труднопонимания - в других языках это может выглядеть несколько иначе, знаток китайских мудростей
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Пардон, объект класса
Автор поста оценил этот комментарий
автор, в чем разница между делегатом и событием?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я распинаться не буду в теории
Object1.OnDoSomething := Object2.OnDoSomething там и объявление типа будет и метода этого типа.
показать ответы
1
Автор поста оценил этот комментарий
тоже в универе на Делфи программирую, нравится язык. Вопрос знающей, перейти на С++ тяжело? Много ли перелопатить книг надо будет?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Одной хватит для начала. Он легко учится. Только Visual Studio после дельфи непривычна будет.
2
Автор поста оценил этот комментарий
Почему C#, а не Java? В первом синтаксис переусложнен дублирующими конструкциями, из-за чего спецификация огромна. Второй же нарочно прост и отточен годами.
раскрыть ветку (1)
17
Автор поста оценил этот комментарий
Понеслась... Когда в комнате собирается больше одного программиста они тут же начинают выяснять с какого языка больше програзма словишь
показать ответы
9
Автор поста оценил этот комментарий
Стоило бы еще упомянуть область занятости автора) Все-таки веб-фронтенд-разработчик - фрилансер и программист в софтверной конторе - это две большие разницы, как говорится)

ЗЫ Но такой огонёк искреннего позитива от небезразличного к делу человека - это то, что нужно новичку =) А то ходят кругом груженые идеями марсиане, говорят о своих делах неземных на незнакомом языке...
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
В конторе. Есть свой софт + принимаем заказы, если кому-то хочется экзотики.
показать ответы
1
Автор поста оценил этот комментарий
тоже радовался красивому коду и плевался от некрасивого, но когда проект нужно было сдать вчера пишется все с очень огромной скоростью абы работало, так что не думаю, что тут стоит осуждать:)
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Ага, а потом не спишь ночами. Перфекционизм. Конечно такое бывает, но рефакторинг никто не отменял.
показать ответы
0
Автор поста оценил этот комментарий
Какого рода софт, если не секрет? Я имею в виду прикладную область. Чисто праздный интерес =)
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Системы охраны, слежения
показать ответы
Автор поста оценил этот комментарий
это ответ программиста с 10 летним опытом. да уж. женщина-программист как морская свинка (с)китайская мудрость
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Начнем с того что данное понятие редко к дельфе применяется. НО тем не менее там это делается подобным макаром
type
TMyEvent = procedure(I: Integer) of object;

TNewClass = class(TObject)
private
FOnDoSomething: TMyEvent;
procedure DoSomething(I: Integer);
public
property OnDoSomething: TMyEvent read FOnDoSomething
write FOnDoSomething;
end;

procedure TMyClass.DoSomething(I: Integer);
begin
if Assigned(FOnDoSomething) then
FOnDoSomething(I);
end;

Создаем класс объекта и присваиваем ему событие OnDoSomething.
Object1.OnDoSomething := Object2.SomethingFunction
Здесь делегат - событие
Во избежание труднопонимания - в других языках это может выглядеть несколько иначе, знаток китайских мудростей
показать ответы
Автор поста оценил этот комментарий
Категорически не согласен с тем, что нельзя научиться быстро программировать. Особенно учитывая нынешний реалий с быстроразвивающимися и постоянно новыми создающимися языками программирования. Программирование - это прежде всего алгоритмизация. Если ты любишь решать задачи по алгоритмизации, то понять базы программирования очень легко. А уже даже на базах можно решать высокие задачи. Вопрос только в том, насколько качественными и быстрыми будут решения этих задач. А вот изучение архитектур, паттернов, особенностей платформы, языка, различные "фишечки" и прочее - это уже чистейший опыт, который просто надо наработать.

Я тоже люблю рассуждать на тему работы программистов, так что могу впасть в хорошую дискуссию с автором)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Согласна, для человека знакомого с алгоритмами. А когда совершенно без знаний и сразу за язык берутся, это неизбежно заведет в тупик. Отсюда и депрессняк новичков и опущенные руки.
показать ответы
1
Автор поста оценил этот комментарий
Я тут ко всем пристаю с одними и теми же вопросами сегодня..)
Ты на чем пишешь?)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Основной Delphi. C++ редко для библиотек юзаю.
Кто бы что ни говорил, а я дельфи люблю, К тому же у Rad Studio есть и другие вкусняхи
показать ответы
4
Автор поста оценил этот комментарий
Категорически не согласен, что в нашем деле мало экшена)
Несколько случаев из практики :)

Прототип.

"Очень Важный Заказчик" попросил отрисовать 3 варианта дизайна для мобильного приложения. Сказано - сделано, отправили 3 pdf-ки с макетами на утверждение - заказчик в восторге от третьего варианта. Ок, 4 дня пишем код / верстаем. Заслали билд. Приходит ответ: "Как-то странно. Мы же утвердили 3-ий макет, а вы сделали второй". Дрожащими руками начинаем разбираться - в названиях файлов закралась ошибка. Документ, на титульной странице которого крупно значится "Вариант 2", называется "design3.pdf"... Руководство экстренно звонит клиенту извиняться за факап. Ведущий программист разминает пальцы, заряжает обойму капсульного кофе и заводит в наушниках соответствующую ситуации "Survivor - Eye Of The Tiger". 4 часа непрерывного стука клавиш, и начальству в скайп падает ссылка на новый билд, с правильным дизайном. Подобного КПД у ведущего программиста не было ни до, ни после этого случая, а в течении нескольких дней, коллеги бросали на него недоверчивые взгляды.

Очень Важная Демонстрация.

Пол года работы над большим сервисом. Громадная инфраструктура. Несколько серверов с различными API, веб морда и клиенты для разных мобильных платформ с кроссплатформенным ядром на C++. Десятки тысяч потраченных человеко часов. iOS версия клиента, как венец всего сервиса, в котором все компоненты стыкуются в нечто, что видит конечный пользователь. Вся команда трудиться выходные напролет, чтобы успеть залатать максимум дыр перед презентацией. Вечер воскресенья, тройка самых стойких бойцов решает поработать в ночь, остальные потихоньку разошлись по домам. Ночь неистового фигачинга. Утро. Ещё двое бойцов, отправились восстанавливать силы. Ведущий программист, приняв стоячее положение дабы не заснуть, и зарядив в наушники музыку потяжелее, с неминуемо опускающимся КПД, продолжает предпринимать попытки, сделать что-нибудь полезное, ничего не поломав. Необходимо оставаться на подстраховке до самой демонстрации, ибо мало ли что. Пошли третие сутки без сна. За 25 минут до призентации, выясняется что не работает очень важная фича. К тому же накопился солидный объем хотфиксов, сделанных за ночь. Еще 10 минут уходит на исправление данной фичи. 15 минут до презентации. Стоит сказать, что в компании используются всякие правильные вещи, типа continuous integration, юнит тестов, итерационного тестирования и т.д. При этом весь рабочий процесс, в традициях лучших практик, налажен таким образом, что выложить билд может только руководство, после того как он протестирован по всем тест-планам. Руководство на презентации. Чудесным образом выясняется, что единственным человеком, кто еще обладает правами на выкладывание сборок, является руководитель отдела тестирования дочерней компании, который восседает этажом ниже. Сломя голову, огибая повороты и периодически врезаясь в двери от недосыпа ведущий программист бежит туда и убеждает товарища выложить сборку. 5 минут до презентации. Звонок руководству, загрузка сборки по медленным интернетам. Приложение заработало уже на сцене, буквально за секунды до старта презентации :)

Внезапный успех.

Университетские годы. Разработка небольшой собственной игры, под всё ту же iOS. Много интересных задач, вроде оптимизации ресурсов игры так, чтобы уложиться в 20мб (чтобы приложение могли качать по 3g), выдумывание хитрых способов компрессии, чтобы влезть в 40мб при загрузке в оперативную память (чтобы запускалось на стареньких iPod Touch). Делалась в свободное время и с момента начала разработки, до момента релиза, процесс занял примерно год. Не самый удачный запуск. Хорошие отзывы, но мало загрузок. Приняли решение, сделать приложение бесплатным на некоторое время. И внезапно, буквально за сутки, происходит 70 000 загрузок в одной только Италии. Подобных эмоций не было ни до, ни после :) Оно, конечно не совсем про программирование, но без программирования их бы не было.

Здорово, когда у программиста есть возможность получить фидбек от конечных пользователей о плодах своего труда, хоть это и не всегда возможно. Но и в противных случаях, когда невозможно показать внешнюю красоту продукта, всегда есть внутренняя красота. Чувство, красиво спроектированной архитектуры - дорогово стоит. И чем скилловей программист тем дольше оно длиться, до тех пор пока он сам не разочаруется в том, что сархитектурил :) Программирование оно вообще не про знание языков. Оно про проектирование. Про владение всем зоопарком сопутствующих средств разработки, выстроенных вокруг вашего языка. И про умение решать задачи.

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

Не, я чо хочу сказать, много экшена в нашей профессии, много :)

p.s. а всем кто темой интересуется, рекомендую еще ознакомиться со статейкой "История одного байта": http://www.wasm.ru/wault/article/show/onebyte
Это классика по теме :)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Очень интересно написано) У меня правда такого не было, чтоб ночами работать.
Чем тяжелее музыка и крепче кофе, тем ближе релиз.
Автор поста оценил этот комментарий
это ты себя с двух аккаунтов плюсуешь чтоли?)) или вот это считается грамотным ответом на вопрос в чем РАЗНИЦА между СОБЫТИЕМ и ДЕЛЕГАТОМ? в качестве ответа ты мне привела пример как ты юзаешь события в коде. я в твоем же стиле отвечал на экзамене по философии что такое бог. но мне тогда 4 поставили за ответ, а тебе даже 2 много. тема не раскрыта. почитай чтоли теорию, морская фауна)))
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Оскорбилась, хотела ответить, но... просмотрела историю ваших постов. Таким что-то доказывать - себя не уважать
показать ответы
Автор поста оценил этот комментарий
аргумент, да %)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Не вижу смысла спорить в этой теме. Дельфи для меня среда разработки, мне она удобна. А технологии во всех средах одинаковые. Мне какая разница где, например, OpenGL применять.
Автор поста оценил этот комментарий
дык, я же вроде и не отрицал, что необходимо %)

а что на нее смотреть то? говно мамонта, извините за выражение %) для системных апликух c/плюсы вне конкуренции, для бизнес-процессов давно есть шарп и ява.
расскажите же мне о преимуществах дельфи перед ними?)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Плохому танцору и яйца мешают
показать ответы
2
Автор поста оценил этот комментарий
не, ну а чего сразу минусуете?)
автор уж слишком возмонил из себя "программиста" и с такой готовностью ручается за всех, что прямо не могу %) особенно доставило "Еще момент - нужно быть готовым развиваться постоянно. Прогресс на месте не стоит, знания устаревают", если учесть что автор прогает на делфях *рукалицо* охранные системы (!) *рукалицо*
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я вас уверяю, даже без прогресса необходимо пополнять свои знания. Не наезжайте на Delphi, она и не на такое способна!
Да, она несколько лет была заброшена, но посмотрите на нее сейчас!
показать ответы
4
Автор поста оценил этот комментарий
Хаха) Красочно) Где-то то ли картинка, то ли даже видео было, где внешне программист сидит и тупит в монитор, затем его внутренний мир: сплетение связей, красочные модели логики, борьба с проблемой "Аватар" нервно курит
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да да! Но я эту часть упустила, даже не знала как описать подобное.
Автор поста оценил этот комментарий
Комментарий удален.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Погуглила. Это не я. Есть замечательный сайт - Delphi Kingdom. Без помощи не оставят.
0
Автор поста оценил этот комментарий
Пробовала кодить в android studio?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Нет. У Rad Studio есть продукты, чтобы под андроид писать. Пока дальше постов с примерами не заходило.
0
Автор поста оценил этот комментарий
А как работа в мужском коллективе? Не тяжело?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Замечательно работается. Только 23 февраля тяжело приходится)

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества