302

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

С удовольствием читаю посты о разных профессиях, но о моей никто ничего не писал. Решила поделиться опытом, может кому-нибудь будет интересно. Работаю я программистом уже около 10 лет, к сожалению экшена в нашей работе мало, поэтому пост будет немного скучноват. Я люблю свою работу и могу трындеть о ней часами, но не всем будет понятно, поэтому попытаюсь быть максимально кратка и отвечу на самые часто задаваемые вопросы тех, кто подумывает связать свою жизнь с программированием.
1. Можно ли быстро научиться программировать?
Нет, категорически. Несмотря на обилие учебников - C# за 21 день и тому подобное. Сначала надо обязательно изучить систему, под которую пишете. Потом освоить логику и блок схемы и только затем браться за язык. И даже изучив язык программирования считайте, что вы выучили таблицу умножения. Так как дальше больше.
Кроме программирования мне очень помогли знания математики, численных методов, дискретной математики, теории кодирования, теория вероятности.
2. Какой язык лучше учить?
Да какой хотите) Есть очень много областей. Прикладное программирование, базы данных, графика, сайты, планшеты... Сначала надо освоить базовые знания. Для этого подойдет любой распространенный язык. Ну я как фанатка паскаля его советую для начала. Он довольно легкий. Затем определиться, в какой области вы хотите работать и уже тогда, имея какие-то знания выбирать средство разработки. Вообще, зная один язык, считай знаешь все. Т.к. дальше они будут даваться легче и легче.
3. Много ли платят
Это как и в любой области зависит от знаний и места работы. Могу точно сказать что толковый программист никогда не пропадет, если он живет в большом городе.
4. Интересно ли работать.
Очень интересно! Не всем конечно же. Если вам нравиться решать логические задачи то будет интересно. Мы работаем над заказами. И они касаются совершенно разных областей. Один проект с графикой, другой с базами, третий с внешними устройствами. Все знать невозможно, часто приходиться работать с совершенно разными областями и изучать новые технологии. Не могу описать восторг, когда долго парился над изучением SDK к какой-нибудь малоизвестной фигне и наконец у тебя все работает.
Иногда работа неблагодарная. Всегда заранее обговариваем проект, делаем тз и утверждаем. На его основание продумываем структуру программы и пишем. И вот после сдачи довольный клиент просит чуть-чуть поменять. Ему-то кажется что фигня вопрос. А относительно структуры это жопа полная, ну не предусматривает текущий вариант подобных изменений. И как бы ты не пытался создать гибкую программу, все равно бывают моменты, что переделка маленького кусочка программы потребует исправлений половины кода.
Еще многим кажется, что программисты ничего не делают.
Да, мы работаем сидя у компа. И если прогер лежит с печенькой на диване, это не значит, что он отдыхает. Иногда надо хорошенько все обдумать. В такие моменты трудно доказать начальству, что ты не балду гоняешь.
Экстрим тоже бывает. Не могу объяснить сей феномен, когда 100500 раз проверенная всеми, в том числе и тестировщиком программа, при финальной сдаче клиенту выдает не только ошибку, но и вешает комп. Море эмоций.
Кстати, лучший друг программиста кто? Дядя, который деньги платит. И вопреки заблуждениям это тестировщик. Мы нашего на руках носим. Код кодом, а за надежность продукта отвечает он.
5. Легко ли работать?
Если опыт есть - легко. Даже когда нужно много нового перекопать. От себя могу только два сложных случая добавить. Сложно, когда меняешь работу. Нужно вникать в их проект. Это временное явление. И иногда сложно с чужим кодом. Это отдельная история. Некоторые прям загляденье, а иные ну просто черти что и с боку бантик. И поди разбери что автор хотел сказать. Разбор чужого кода это как проникновение в логику другого человека, часто чуждую и не всегда здоровую.
Еще момент - нужно быть готовым развиваться постоянно. Прогресс на месте не стоит, знания устаревают, плюс ко всему приходиться изучать не только свою область, но и предметную. Если я пишу для бухгалтерии, то должна знать потребности, минимум знаний бухучета обязательно. Конечно в больших компаниях не так, где каждый отвечает за свою задачу. Но мы живем в России, где прогер должен уметь и кран починить и иконки сам клепать.
От себя добавлю еще один момент. Часто слышу от программистов - работающему коду в зубы не смотрят. При красивом внешнем оформлении (программы) код может быть просто ужасен. И даже если все работает идеально, хорошей работой это назвать нельзя. Не берусь объяснить, насколько код может быть элегантен, скажу только, что программисты хвалятся друг другу, показывая кучу строчек на экране - глянь какую я красаву сделал! Сложно понять, но оно имеет место быть.
Ну и убивает естественно - тыжпрограммист! Про технику и винду я молчу. Иногда просят написать сайты. В принципе представление имею, писала маленькие проекты. Но при попытках объяснить человеку, что мне это как проктологу через жопу гланды лечить, он мне кидает - какой же ты тогда программист, если сайтик не можешь запилить. Мы можем. Но лучше и быстрее это сделает человек, который занимается сайтами.
Шутки про прогеров возникли не на пустом месте. Наше мышление своеобразно. Мы любим систематизировать, часто перфекционисты, хотя попадаются и пофигисты.
Всего не написала, это было бы слишком много. Надеюсь было интересно.
Вы смотрите срез комментариев. Показать все
25
Debug mode
Автор поста оценил этот комментарий
При всей моей любви к паскалю стоит признать что он скорее мертв чем жив и его синтаксис немного отличен от всего что нынче популярно (одно присваивание через := чего стоит). Я бы в современных условиях советовал начинать c Python, он достаточно строг, при этом прост и популярен
раскрыть ветку (76)
2
Автор поста оценил этот комментарий
школа, колледж, везде был паскаль, все понятно оператор значение, каждый оператор выполняет свою функцию, но блять я начал objective-c учить, не знаю что общего с ним и паскалем, но проклял мир я не раз, тяжко конечно учится, но прогресс есть, плохо что не у кого спросить.
раскрыть ветку (7)
0
Debug mode
Автор поста оценил этот комментарий
изучение objective c, обязательно нужно начинать с просто С, тогда и понимание языка складывается и переход не так страшен (хотя у меня были тупняки в некоторых местах).
Идейно objective c достаточно прост, но авторы его синтаксиса явно курили что-то тяжелое, ибо длина конструкций и обилие квадратных скобок вымораживают.
раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Есть такое, я начал его учить собственно после С, но мать его, переодическия его не навижу
P.S. все еще его учу
Автор поста оценил этот комментарий
да с я разобрал, на уровне паскаля, не сложная, просто как пошли методы и классы, а так же их создание, я путаю класс с методом и вообще белебирда получается
раскрыть ветку (4)
1
Debug mode
Автор поста оценил этот комментарий
попробуй начать с чего-нибудь более классического, у objective c немного странная терминология и когда только начинаешь учить оно сбивает с толку, выше по треду есть холиварчик про то, с чего нужно начинать (C++/C#/Java/Python) - выбирай на свой вкус.
З.Ы. да простят меня коллеги за этот совет, но попробуй сразу начать со swift раз уж на apple тянет, он гораздо проще и понятнее.
раскрыть ветку (2)
Автор поста оценил этот комментарий
Дело в том, что давно горю идеей выучить языки программирования, но вот на работе напрямую столкнулся с тем что нужно разработать програмку, которая в принципе проста и по шаблонам соберется, вот и сел на objective, начинал так же джава, более менее понятный, даже если смотреть на код обычных программ, с++ когда начал вообще после паскаля мозгоснос, библиотеки сбили с толку и я думаю с++ первым вообще не правильно, да С пошел нормально а как я слышал от него и джава не далеко, так что думаю пока сломаю мозг и все же выучу этот язык. А играясь с шаблонами многих людей сам начну придумывать. Надеюсь, я такой наивный типа.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да уж, С++ - это не специализация, это половая ориентация))
0
Автор поста оценил этот комментарий
Ну я запомнил так, типа класс это как город, а метод что то вроде его служб)
0
Автор поста оценил этот комментарий
Батальон закапывателей на месте! =)
0
Автор поста оценил этот комментарий
И питон не нужон.
Ибо динамичен и совсем не нагляден.
раскрыть ветку (54)
3
Автор поста оценил этот комментарий
Нагляден, питон вышел на первое место для обучения программированию в университетах США.
раскрыть ветку (19)
0
Автор поста оценил этот комментарий
Очень странное решение, на самом деле, учитывая популярную доселе джаву.
раскрыть ветку (18)
1
Debug mode
Автор поста оценил этот комментарий
стоит учесть, что питон очень популярен в академической среде благодаря относительной простоте и наличию SciPy и его производных => для специальностей отличных от Software Engineering Python - идеальный выбор.
раскрыть ветку (17)
0
Автор поста оценил этот комментарий
Специальности, отличные от SE обычно используют православный Matlab.
Но человеку свойственно заниматься поиском "серебряной пули", это я могу понять.
раскрыть ветку (16)
2
Автор поста оценил этот комментарий
Ложь. Питон очень распространен в анализе данных.
раскрыть ветку (10)
0
Автор поста оценил этот комментарий
Ни разу не встречал, с кем ни работал. Для автоматизации - часто, чаще только Bash.
раскрыть ветку (9)
1
Автор поста оценил этот комментарий
Очень много питонячих либ есть для анализа данных в открытом доступе, что уже намекает. К тому же из моего опыта, питон очень распространен для этих целей.
раскрыть ветку (8)
0
Автор поста оценил этот комментарий
На Си еще больше либ, например)
раскрыть ветку (7)
0
Автор поста оценил этот комментарий
Для анализа данных? Нет
раскрыть ветку (6)
0
Автор поста оценил этот комментарий
олд фаги от математики используют Hasckell )
раскрыть ветку (4)
4
Автор поста оценил этот комментарий
Извращенцы*
Олдфаги от математики используют Fortran))
раскрыть ветку (3)
3
Debug mode
Автор поста оценил этот комментарий
+1 haskel силшком молод для олдфагов,
З.Ы. а еще есть Лисп)
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
ну если в таком контексте рассматривать, то можно и о перфокартах вспомнить :)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Фортран сейчас все-таки реально кое-где можно встретить, вы зря)
2
Debug mode
Автор поста оценил этот комментарий
а что же тогда нужно (из того на чем сейчас реально пишут)?
Если из всех ЯП выбрать те что 1 - реально используются и развиваются (убираем Pascal, Fortran и иже с ним), 2 - достаточно просты в освоении (-всевозможная функциональщина типа Haskel, Scala и т.д.) 3 - не имеют тяжелого наследия в виде непродуманного дизайна (- Javascript и PHP) 3 - не слишком молоды и имеют устоявшийся синтаксис
Лично я могу посоветовать только C# и Python
З.Ы. все вышеописанное - мое личное мнение, оно отчасти субъективно + я много что не пробовал лично и просто не возьмусь судить
раскрыть ветку (33)
12
Автор поста оценил этот комментарий
C/C++ я считаю языками с которых вполне реально начать, если не углублять супер глубоко. А дальше уже по интересам
раскрыть ветку (2)
10
Автор поста оценил этот комментарий
Кстати, да! С++ хорош тем, что уровень "красноглазия" там регулируемый. А Си синтаксически прост, как сапог!
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
С си все началось. Если Выучишь сишный синтаксис и теорию ооп то другие языки пойдут влет.
5
Автор поста оценил этот комментарий
Реально пишут на C-подобных. Крупных проектов на Python не много.

Вот все пытаются учить как можно меньше и сразу зарабатывать, зачем? все равно не выйдет ;-)
Но я сейчас совсем не о применимости.
Выучить новый синтаксис может и обезьянка. На первом этапе важна простота и наглядность! Тут идеален Turbo Pascal. Бессмертная императивщина и статические проверки.
Ура, товарищи!
раскрыть ветку (11)
2
Debug mode
Автор поста оценил этот комментарий
крупных проектов на питоне действительно немного, однако мелких дофига + он очень часто используется как скриптовый язык для автоматизации всего на свете, с учетом сильно развитой стандартной библиотеки если надо что-то быстро посчитать я лучше за 5 минут накидаю это на питоне, чем минут 10-15 писать на C (тупо меньше кода получается, за счет того что очень многое вшито в сам язык и стандартную библиотеку)
Pascal хорош для обучения основам алгоритмики, но когда хочется попробовать себя в чем-то реальном выяснится что придется учить что-то еще, так почему сразу не начать с этого чего-то?
З.Ы. про обезьянок: после того как пришлось переходить с паскаля на C в универе, PHP в жизни и т.д. около года приходилось вычитывать код на предмет наличия if (a = b) ибо компилятор жрет, а последствия непредсказуемы
раскрыть ветку (7)
4
Автор поста оценил этот комментарий
Не забывайте про перл. Скрипты на нем еще проще писать. А динамическая типизация только ускоряет это. можно даже прямо из командной строки.
И кстати да, про Си. Я бы советовал начинать именно с него!
Он приучает думать, он максимально универсален.
Небезызвестный Кериган сказал (Не точная цитата): Си — как скальпель: с его помощью можно сделать тончайшую операцию, а можно устроить кровавое месиво.
раскрыть ветку (4)
2
Debug mode
Автор поста оценил этот комментарий
ну да, аналогия хороша ибо скальпелем можно без проблем отрезать себе что-нибудь жизненно важное
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
В неумелых руках и утюг - страшное оружие))
0
Автор поста оценил этот комментарий
можно даже прямо из командной строки.

ТЫ забыл добавить что это достигается тем, что в нем есть спец-переменные и сокращения позволяющие писать программы в одну строчку.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Скорее основная фишка в том что есть ключ интерпретатора, позволяющий так сделать.
И странно, что ни кто не вспомнил про патч Бармина =)
3
Автор поста оценил этот комментарий
Флаги компиляции нужно поумнее проставлять просто. Для gcc -Wall сам найдет присваивания в ифах и много чего еще.
0
Автор поста оценил этот комментарий
Главная беда Питона - динамическая типизация.
О применимости первого языка думать нет смысла, учить еще что-то придется обязательно.
0
Автор поста оценил этот комментарий
Нет ну не совсем, бывает запарывался с ситаксисм когда учил вэб, так что лучше начинать с четого более расспростаненного, и в добавок учить мат часть без нее никуда)
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Вот для этого важна наглядность первого изучаемого языка. Основные идеи императивного подхода редко где изменяются, но неофиту просто не с чем еще проводить параллели.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Собственно да. Првда такая штука как мета языки мне очень помогла в наглядности построения конструкций.
2
Автор поста оценил этот комментарий
Почему C#, а не Java? В первом синтаксис переусложнен дублирующими конструкциями, из-за чего спецификация огромна. Второй же нарочно прост и отточен годами.
раскрыть ветку (16)
17
Автор поста оценил этот комментарий
Понеслась... Когда в комнате собирается больше одного программиста они тут же начинают выяснять с какого языка больше програзма словишь
раскрыть ветку (6)
4
Автор поста оценил этот комментарий
"zim32: Пора вводить новый термин в психиатрии — синдром программиста. Основные признаки — с пеной у рта доказывать непонятно что, непонятно кому, непонятно зачем"
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Ну как правило, с пеной у рта доказывают новички в языке, чтобы подтвердить что они правильно сделали выбор в языке и они самые клевые. Со временем это проходит )
4
Автор поста оценил этот комментарий
Была на хабре такая статья - что было бы если программистов принимали на работу как плотников. Не обращайте внимания, это не программисты, разница есть, но точно не в синтаксическом сахаре.
3
Автор поста оценил этот комментарий
главное не начинать с пхп ;)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
главное им не ограничиваться)
0
Debug mode
Автор поста оценил этот комментарий
вероятно с того, на котором пишет большинство из собравшихся
3
Debug mode
Автор поста оценил этот комментарий
потому что опыта общения с Java у меня совсем чуть-чуть, оно мне ну совсем не понравилось (тут скорее проблема была не в языке, а в конкретном проекте, но тем не менее говорить что Java хорош я не готов).
З.Ы. знаю очень много JAVA-разработчиков, которые утверждают, что JAVA по сравнению с C# перегружен устаревшими конструкциями, которые живы исключительно ради совместимости и что основной недостаток C# - привязка к .NET и windows
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Яснопонятно.
Только не язык Java перегружен конструкциями, а стандартная библиотека имеет некоторый дублирующий функционал.
C# же перегружен синтаксически. Потому что потому.
1
Автор поста оценил этот комментарий
У шарпа есть много вкусностей, WPF LINQ. И вообще все зависит от системы под которую пишешь.
раскрыть ветку (5)
5
Автор поста оценил этот комментарий
Это делает его привлекательным для новичка?
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Думаю да. Лучше начать с низов. Можно сразу бороду растить
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Знания лишними не бывают)
1
Автор поста оценил этот комментарий
у Java не меньше плюшек. Тут уже дело вкуса.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Согласен. Я считаю шарп клоном java, но почему то он мне ближе. Гребаная магия
ещё комментарий
0
Автор поста оценил этот комментарий
Ну собственно могу сказать, что нужно все, и многи языки пригодятся, как бы странно не звучало, но вомногих современных прогах для увеличения их работоспособности и Ассемблер, сам только не давно в разговоре с отцом программистом узнал)
Как пример найди открытый код DOOM'a)
0
Автор поста оценил этот комментарий
Да, мне тоже кажется, что python хорошо подходит.
Хотя один знакомый программист считает, что надо прямо с чистого C начинать и с изучения основ архитектуры компьютера, чтобы понимать механизм.
раскрыть ветку (9)
0
Debug mode
Автор поста оценил этот комментарий
такой подход тоже имеет право на жизнь, но имхо в современно мире применим скорее для людей, которым интересны микроконтроллеры, embedded системы и иные места с серьезным ограничением ресурсов.
В мире больших серверов с множеством процессоров и десятками гигабайт памяти, на которых крутятся абстрактные виртуалки знание архитектуры и оптимизация под железо теряют смысл.
раскрыть ветку (8)
3
Автор поста оценил этот комментарий
В мире существует не только веб-программирование. Кроссплатфоменные десктопные приложения сам бог велел писать на Qt (потому что у них есть прекрасный и удобный Qt Quick), а там C++ нужен.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
да не очень то и нужен, QML + JS там тоже ок
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну вот как-то не обходилось. Сетевой код, воспроизведение музыки/видео всё-таки на C++ пишут.
1
Автор поста оценил этот комментарий
Не люблю, когда говорят о халявной RAM =/

В мире хайлоад-проектов есть тенденции все делать на C/C++, а интерпрайз ВЫНУЖДЕН закупать память, потому что любимая Java жрет, как не в себя.

Ненативный Android известен чем? Офигевшим энергепотреблением и тормозами.

Вот вам и эмбеддед...
раскрыть ветку (4)
1
Debug mode
Автор поста оценил этот комментарий
Блин, что все прицепились, к плюсам, я же не говорю что они не нужны, в исходном комменте была фраза
"Хотя один знакомый программист считает, что надо прямо с чистого C начинать и с изучения основ архитектуры компьютера, чтобы понимать механизм."
Я утверждаю, что в современном мире начинать изучение с архитектуры, ассемблера и C (как языка для написания продукта, а не решения академических задачек) имеет смысл только в разрезе МК и иже с ним ибо там во-первых без этого никак, а во-вторых архитектура и ассемблер достаточно просты. Во всех остальных случаях - это знание, которое можно получить потом и при необходимости.
раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Эм...ну Python для продуктового программирования годится не более, чем Си.
Судить с высоты колокольни своих знаний куда легче, но новичку до написания крутоты предстоит получить знания самых основ, чтобы не предполагать, а пощупать своими руками, что там внизу, под толщей фреймворков, интерпретаторов и виртуальных машин.
раскрыть ветку (2)
0
Debug mode
Автор поста оценил этот комментарий
по первому пункту ребята из Dropbox с вами не согласятся, по второму - пусть будет по вашему)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А сколько компаний не согласятся тогда с вами?)
0
Автор поста оценил этот комментарий
Не ну как по мне тогда для начала лучше взять обычны С не С++, а именно С, я лично с него начинал, правда я еще студент 3-го курса, но как по мне такая база самое оно)
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества