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