Отличие пользователя от программиста: В чем отличие программиста и пользователя
Чем программисты отличаются от обычных людей? Отвечают Яндекс, Микротест и Нотамедиа
У свободолюбия есть еще один аспект — в IT-компаниях не так сильно чувствуется иерархия: руководитель не может просто дать подчиненному указание и ждать, что оно будет выполнено, — надо обязательно обсудить осмысленность этого указания, поговорить, подискутировать. Поскольку программисты мыслят исключительно логически, воздействовать на них можно только железной логикой. Чтобы они начали тебя слушать, нужно разговаривать с ними на их же языке. При проявлении «женской логики», они перестают воспринимать разговор серьезно и теряют к нему интерес.
Елена Сардовская, «Микротест», директор по персоналу
Эта сфера бизнеса в плане кадров всегда была у нас остродефицитной, соответственно рынок труда ИТ-специалистов «перегретый». Вопреки прогнозам многих экспертов, кризис не смог оздоровить ситуацию. Я бы даже сказала еще более её обострил. Отсюда вытекают две больших «головных боли» для HRа:
1. Как и где находить специалистов в оптимальные сроки, за оптимальные зарплаты.
2. Как удерживать специалистов от перехода к конкурентам.
Проблема №1 обязывает ИТ-компании приглашать на работу опытных рекрутеров, готовых не только искать в открытых источниках, но и использовать технологии прямого поиска, хантинга и прочие.
Также необходимо готовить своих специалистов, то есть, должно быть обучение. Правда, специфика ИТ в том, что учить совсем неопытных выпускников ВУЗов получается слишком затратно и не выгодно. К тому моменту, когда стажер становится младшим специалистом, конкуренты уже готовы его купить за 1.5 цены.
Проблема №2. Конечно же, раз Вы маните у конкурентов, то и они отвечают Вам взаимностью. ИТ-компании предлагают своим работникам различные по набору соцпакеты, укрепляют корпоративный дух, поощряют гибкий график и надомную работу, вариантов масса, но все они нацелены на одно – удержать работника.
Я бы подытожила шутливо, префразировав Булгаковского Воланда: «ИТ-шники обыкновенные люди… «перегретый» рынок только испортил их…»
Сергей Оселедько, «НОТАМЕДИА», генеральный директор
IT – сфера, где работают люди «с головой». Причем с головой, в которой иногда рождаются самые неожиданные и смелые идеи, способные перевернуть представление о том, что раньше считалось аксиомой. Айтишники обладают высоким интеллектом, нестандартным мышлением и, самое главное — способностью быстро учиться.
Но, при всем этом, управлять командой IT-специалистов непросто. Как правило, ими движет более сложная мотивация, чем деньги или карьерный рост. Посмотрите на стартаперов: они готовы работать сутками, получая крошечную прибыть, чтобы их проект в будущем получил всемирную известность и признание. Поэтому в работе с айтишниками важно учитывать их индивидуальную мотивацию, будь то возможность реализовывать собственные идеи или свободный график работы.
Отличие Системного администратора и Программиста.
Сисадмин VS Программиста).
Часто приходится сталкиваться, что люди не понимают разницы между системным администратором и программистом и всех IT-шников называют программистами. Некоторые обижаются, а кто-то уже привык. Но я хочу попытаться разъяснить эту разницу, чтобы было понятно большинству, прочитавшим эту статью 🙂
Если в организации есть IT отдел (инженерно-технический), а проще говоря компьютерный, то в нем есть следующее разделение:
Системные администраторы — основная задача контролировать работу серверов и серверного ПО, администрирование телефонных станций, политика безопасности — в общем это мозги всей компьютерной структуры организации.
Специалисты (или инженеры) технической поддержки — это ребята, которые занимаются обычными компьютерами пользователей, настраивают их, помогают пользователям решать текущие проблемы, ловят вирусы на компьютерах пользователей и т.д. и т.п. По сути, Специалист — это будущий системный администратор, т.к. системный администратор так же может выполнять работу специалиста. Специалист может выполнять работу системного администратора, если ему разрешит руководство — к системному администратору у руководства больше доверия 🙂
Программисты — это ребята, которые постоянно пишут различные тексты на непонятном для обычного пользователя языке. Эти тексты потом превращаются в полезные программы, утилиты, или просто модули (дополнительные опции) к полезным программам.
Чтобы проще было понимать приведу пример на различие системного администратора от программиста. Программист написал программу, которую в последствии назвал, ну например Windows, а системный администратор ее настроил (используя функции, которые предусмотрел в своей программе программист) для пользователя.
Вконтакте
Одноклассники
Чем профессиональные программисты отличаются от любителей — Офтоп на vc.ru
Однажды, будучи главой команды программистов в одном небольшом стартапе, я нанимал JavaScript-разработчика. Очередной приглашенный кандидат, который, судя по резюме, имел пятилетний опыт разработки на JavaScript и знал его в совершенстве, опоздал на очное собеседование из-за сильного снегопада и приехал ровно за десять минут до того момента, когда мне нужно было уезжать. Отправлять человека домой, чтобы ему пришлось приехать еще раз, не хотелось. Мы с ним сели за стол в переговорной, секретарь налил ему чаю, и мы начали собеседование.
Я задал ему только один вопрос: «Чем вам интересно программирование?». Он ответил: «Большим количеством свободного времени и высоким заработком». Я с удивлением посмотрел на него и озвучил свое решение: «Извините, но вы нам не подходите». Попрощался, пожал ему руку и уехал.
Масштаб проблемы
Известно, что скорость и качество работы программистов различного уровня может отличаться на порядок. Многие из нас сталкивались с тем, что программисты срывали сроки, а также с классическим примером того, как качество разработки влияет на проект. Наверняка почти все, кто имеет дело с разработкой, слышали, как программист, только что увидевший чужой код в незнакомом проекте, говорит: «Нужно все переписать!». Чаще всего это происходит при сочетании двух факторов: один программист написал код плохо, а другой не в состоянии его понять. Отсюда берет начало требование «умение читать чужой код», которое часто встречается в описаниях вакансий для программистов.
С течением времени некачественно написанные проекты становится почти невозможно поддерживать. Известно, что если команда разработчиков пишет «плохой» код и не придерживается единой архитектуры, ее производительность может со временем снизиться вплоть до нуля. Ситуация становится тупиковой: внесение мелких изменений занимает слишком
много времени, а на глубокий рефакторинг руководство соглашается с большим трудом, и дело разрешается в лучшем случае выделением дополнительного бюджета, а в худшем — увольнением команды или даже закрытием проекта.
По нашей
статистике, которую мы собираем уже несколько лет, из 20 человек, называющих
себя программистами, только один действительно им является. Сначала мы рассчитывали статистику по количеству человек, которые в состоянии на очном собеседовании на листе бумаги написать код по задаче, аналогичной
FizzBuzz. Потом мы поняли, что такой проверки недостаточно, и валидировали эту статистику другим способом.
Основное допущение, которое мы сделали, состоит в том, что действительно профессиональный разработчик в состоянии не только адекватно писать и читать код, но и грамотно производить его рефакторинг. В задачах по рефакторингу сочетаются навыки написания и понимания кода, а для их выполнения совсем недостаточно прочитать книгу или пройти обычный институтский курс по программированию. По таким задачам относительно легко понять, готов ли человек к работе в команде. Ниже представлены три примера таких задач. Задание всегда выглядело одинаково: «Взгляните на следующий код. Есть ли в нем какие-то проблемы? Если да, перепишите его».
Пример кода на JavaScript (проверка опыта работы с jQuery)
Пример кода на PHP (проверка знания основ объектно-ориентированного программирования)
Пример кода на Java (проверка базового знания паттернов проектирования)
Часто проблема заключается не только в некачественном коде, который пишут разработчики, и не только в уровне профессионализма тех, кто называет себя профессионалами. Если человек адекватно себя оценивает и честно говорит, что он джуниор, — это очень хорошо и проблемы в этом нет. Проблемой это становится тогда, когда у человека шикарное резюме, он хочет устроиться к вам на работу ведущим frontend-разработчиком за очень высокую зарплату, пишет, что отлично знает нативный JavaScript, а сам при этом вообще не понимает, как работают контексты, как устроено прототипное наследование или как работать с событиями в DOM-модели.
Здесь имеет место либо абсолю
Менеджер vs Программист / Хабр
На данный момент существует довольно серьезная пропасть в понимании работы друг друга между программистами и менеджерами. Мы будем постепенно сужать эту пропасть, с обеих сторон. В идеале, конечно, хочется, чтобы граница растворилась вообще, и появилась новая профессия – бизнес-программист, но, будем реалистами, если у нас получится сблизить видение реальности менеджеров и программистов, то жизнь точно станет лучше.
Итак, попробуем разобраться, что общего между программистом и менеджером, а в чем они, на данный момент, различаются.
Программист
Программист, в смысле настоящий программист – это человек, который пишет программы. Для простоты, чтобы не запутаться в бесконечном перечне современных технологий, будем говорить о программистах 1С.
Ключевая функция программиста – внесение изменений в систему. Есть, конечно, второстепенные функции, вроде обучения, внедрения, и иногда, при плохой организации работы, второстепенная работа начинает преобладать над основной, но тем не менее, главное – внесение изменений. Программист создает новый функционал – документы, справочники, подсистемы, отчеты, обработки, обмены, интерфейсы и т.д.
Сегодня пользователи работают с одной системой, с определенными показателями производительности, масштабом функциональности, удобством и т.д. Завтра, после внесения программистом изменений, они работают с другой системой. Она, обычно, становится лучше, быстрее, полезнее и удобнее. Всякое, конечно, бывает, иногда система на короткий промежуток времени становится хуже, но потом программист во всем разберется и все встанет на свои места – система станет лучше.
Программист или не работает вообще, или минимально участвует в системе в качестве пользователя. Понятно, что он, как сотрудник компании, тоже ведет в ней свои задачи, бюджеты, иногда табель. Но основная его работа – улучшение системы.
Плохой программист
Кроме настоящих программистов, есть еще ненастоящие, или плохие программисты. Отчасти это связано с неправильным использованием термина «программист» — например, иногда так называют системных администраторов. Иногда даже они сами себя называют программистами – просто для того, чтобы не объяснять пользователям каждый раз, в чем разница.
Но и среди тех, кто должен быть программистом, встречаются плохие парни. Это те, кому по должности положено вносить изменения в систему, а они занимаются лишь ее администрированием и эксплуатацией. Особенно часто такое положение дел встречается именно среди программистов 1С.
Например, программист занимается закрытием месяца, вместо или вместе с главбухом. Помогает рассчитывать зарплату, готовить отчетность, выполняет выгрузку на сайт, даже занимается автоматической установкой обновлений от вендора. По сути, это не программист, а продвинутый пользователь, который взял на себя самые сложные операции с системой, и этим кормится, не передавая своих знаний пользователям или настоящим администраторам системы.
Ключевое отличие плохого программиста – он не вносит в систему изменений, а только пользуется ей. Для него система, конечно, уже не черный ящик, как для большинства пользователей, но, не зная ее устройства изнутри, а тем более, не имея опыта ее модернизации, он остается пользователем, пусть и продвинутым. Он знает чуть больше, чем остальные пользователи, знаком с несколькими продвинутыми инструментами, в том числе, возможно, с консолью отчетов, но изменений в поведение, функциональность, производительность он не вносит.
Система остается неизменной, что с плохим программистом, что без него.
Менеджер
Менеджер – это человек, который руководит сложной системой. В нее включены люди, автоматизированная система, бизнес-процессы, отделы, система мотивации, цели, система управления, политика, отношения с вышестоящими, горизонтальные коммуникации и т.д.
Настоящий менеджер – это человек, который вносит в эту сложную систему изменения.
Менеджер постоянно мониторит состояние системы, видит (или чувствует), где возникают сбои, понимает причины неудовлетворительных результатов, и вносит соответствующие изменения. Может поменять систему мотивации, чтобы тратить меньше времени на ручное управление, заставив людей самостоятельно хотеть достигать результатов. Может внести изменения в автоматизированную систему (руками программистов), если она не дает нужных цифр или не помогает в управлении. Может поработать с целью системы, если она недостаточно четкая, или не соответствует реальности, не мотивирует и не двигает вперед. Может исправить систему управления, если она расходится с бизнес-процессами, и только мешает своей бюрократией. Может оптимизировать бизнес-процессы, если видит провалы, простои, потери или бессмысленную работу.
Менеджер – это программист бизнес-системы. Он не пишет код, но суть его работы точно такая же, просто методы «внесения изменений» различаются. Программисту нужно писать код, рисовать формы, ковыряться в системе компоновки данных. Менеджеру нужно разговаривать с людьми, создавать регламентирующие документы, ставить задачи, набирать или увольнять сотрудников. Методы другие, цель та же – внесение изменений.
Сегодня люди работают в одной бизнес-системе, с одними правилами, бизнес-процессами, целями, расстановкой мест в кабинете, схемой мотивации. Завтра, после запуска изменений, они попадают в другую систему – и это дело рук менеджера.
Плохой менеджер
Есть на свете и не настоящие менеджеры – те, которые занимаются только руководством вверенной системы. Они не вносят никаких изменений, не особо анализируют показатели, а просто руководят. Распределяют задачи, дают пинка, ставят сроки, ходят на совещания и т.д.
Плохие менеджеры знают несколько «кнопок» в системе, и более-менее умеют ими пользоваться. Но, правильнее сказать, не умеют, а имеют право. Например, могут увольнять и нанимать людей, заставлять выходить на работу в выходные, менять приоритет задач, немного повышать зарплату, выписывать небольшие премии, орать и материться. Никому, кроме плохого менеджера, эти инструменты не подвластны.
Применение этих инструментов не вносит изменений в систему, это вроде вынесенных наружу пользовательских настроек. Такими же настройками пользуется плохой программист. Это несколько рычажков и кнопок, иногда – ползунков, регулируя которые, можно немного менять поведение системы.
Значительных изменений с помощью этих инструментов совершить нельзя. Радикальные изменения кроятся внутри системы, но внутрь плохой менеджер не заглядывает. Он предпочитает имитировать изменения – например, затевая сокращение затрат или персонала. Со стороны это, действительно, выглядит как бурные изменения, но суть системы от этого не меняется.
Наиболее простой и доступный рычаг – это персонал. Потому наиболее популярным способом изменения среди плохих менеджеров считается расширение штата. Если вышестоящее начальство ругает плохого менеджера за недостаточные результаты, он обычно ссылается на персонал. В большинстве случаев – просит добавить штатных единиц.
Плохие менеджеры ничего не могут, не умеют делать с эффективностью, т.е. стоимостью результата, или КПД. Если у него в отделе 3 человека, работающих с определенным КПД, то единственный путь увеличения общего результата отдела – увеличение штата. КПД при этом либо не меняется, либо немного падает из-за проблем с управлением, но общая результативность системы повышается.
Хороший менеджер в такой ситуации может применить усилия, и изменить КПД, тем самым получив аналогичную результативность, но без изменений численности персонала. Плохой менеджер так не может, потому что КПД, или эффективность – это свойство системы, оно внутри, а не снаружи. Нет снаружи системы рычажка с названием «Эффективность», который можно было бы подкрутить.
Точно так же нет в настройках информационной системы рычажка «Производительность», который мог бы отрегулировать плохой программист. Некоторые, псевдорычажки, конечно, имеются, но кардинального влияния на производительность они не оказывают.
Итого
Итак, есть плохие и хорошие программисты, есть плохие и хорошие менеджеры.
На самом деле, оценки «плохой» и «хороший» не важны, их можно выкинуть, если начать называть вещи своими именами.
Если человек следит за состоянием информационной системы, ставит обновления, помогает закрыть месяц, ковыряется в настройках, и даже делает шринк базы, он – не программист. Можно называть его, например, «администратор базы данных». Тогда все становится на свои места, и появляется выбор.
Если бизнесу только и нужно, что поддержание состояния системы в текущем состоянии, то нужен не программист, а администратор. Если нужно кардинальное, или хотя бы заметное изменение в развитии, производительности, функциональности – нужен программист, который умеет вносить в систему изменения.
Если бизнесу только и нужно, что поддержание работы отдела, службы, функции или целой бизнес-единицы в текущем состоянии, то нужен не менеджер, а нянька, или администратор, или диспетчер, или пастух – выбирайте любое название. Если же нужны кардинальные, или хотя бы заметные изменения в какой-то части бизнес-системы, то нужен менеджер, который умеет вносить в эту систему изменения.
Проверить, программист у вас или администратор, легко – просто посмотрите код, который он написал (или попросите его самого показать этот код). Как бы глупо это не звучало, в моей практике несколько раз встречались ребята, называвшие себя программистами, при этом годами не писавшие код.
Проверить, менеджер у вас или диспетчер, тоже несложно – попросите его рассказать об изменениях, внесенных в бизнес-систему, и об их последствиях. Хотя, последствия должны быть очевидны, если вы – вышестоящий руководитель.
Резюме
Как видите, между менеджерами и программистами масса аналогий. И между хорошими, и между плохими.
В процентном соотношении хороший/плохой побеждают, конечно, программисты – просто потому, что их системы проще. Создать таблицу в базе данных, нарисовать для нее форму ввода, и наполнить цифрами – значительно проще, чем заставить сотрудника ежедневно вести план работы.
С менеджерами все значительно хуже – реальными изменениями среди них занимаются единицы процентов. И с этим надо что-то делать.
Программист или Системный администратор | HelpIT.me
Чем отличается программист от системного администратора?
Системный администратор или программист – тесты и опросы показывают, что большинство людей просто не различают данные понятия, и думают, что эти люди занимаются одним и тем же. Но на самом деле программеры и админы – это совершенно разные специалисты. Нельзя просто так ответить на вопрос: системный администратор или программист – что лучше? Для каждого есть преимущества в той или иной профессии, но чтобы разобраться в них, необходимо четко разделять понятия и понимать, кто из них и чем занимается.
Итак, кто же такой системный администратор? Обычно это люди, которые самостоятельно обучаются работе с ПО, компьютерами, серверами, различным компьютерным оборудованием и сетями. Высшее образование у таких людей – не то чтобы редкость, но встречается нечасто. Админы выполняют такие работы как контроль и поддержание работы сети, обеспечение безопасности сети, в том числе и информационной, администрирование мини-АТС, создание оптимального ПО. Системный администратор должен вникнуть во все нюансы такой работы, поэтому часто работодатели неохотно принимают в штат компании молодых людей, которые только закончили учебу или недавно занимаются системным администрированием. Для нормального и стабильного функционирования ИТ-сферы предприятия нужен немалый опыт. А вот те админы, которые уже давно работают в данной сфере, очень ценятся, поэтому получают довольно неплохую зарплату.
Программист – это совершенно другая история. Он знает от одного и больше языков программирования, имеет высшее образование, занимается проектированием, производством программного обеспечения, осуществляет разработку ПО и утилит, благодаря которым обычные пользователи существенно упрощают себе жизнь. Если же говорить о том, кто важнее – программист или системный администратор, то здесь нет однозначного ответа. Каждый из них по-своему ценен, выполняет определенные работы и может работать в своем направлении профессионально. Так, если нет определенной программы, то не получается работать системному администратору. Если же программа есть, но она не отвечает основным требованиям предприятия, то здесь большое поле работы для программиста.
Кстати, программист и системный администратор – это далеко не полный список. Есть еще такие специалисты, как инженеры технической поддержки. Это такие люди, которые выполняют работы по настройке компьютеров пользователей, установке и настройке ПО, различных прикладных программ. Такие функции похожи на те, которые имеют админы, и достаточно часто из таких специалистов получаются неплохие системные администраторы. Часто инженеры начинают выполнять работы, которые входят в сферу деятельности системного администратора, причем руководство компании больше доверяют таким специалистам. А это уверенность в собственных силах и возможный карьерный рост.
Разработка программного обеспечения или системное администрирование?
Выбирая между двумя направлениями, специалист с достаточно большим опытом часто не может решить, куда именно ему направить свои усилия. Никогда не нужно думать, что админы не смогут работать программистами. Да, из системного администратора в программисты перейти довольно сложно, но при этом нет ничего невозможного. К основным профессиональным качествам, которые имеет системный администратор, стоит отнести довольно высокие аналитические способности, гибкость, высокую концентрацию внимания, устойчивость к стрессам, а также желание и возможность выполнять рутинные работы. Также необходимо понимать, что работать придется не только с оборудованием и техникой, а еще и с людьми, поэтому в характере такого специалиста должна присутствовать коммуникабельность и тактичность.
Если говорить о новом поколении специалистов, то здесь намечается тенденция к тому, что новые админы обладают не только базовыми знаниями и умениями работать с компьютерами, могут обслуживать сети и целые системы. Системный администратор нового поколения часто обладает фундаментальными знаниями в области программирования, знает несколько языков программирования.
Бывает и так, что мелкие фирмы, не обладая достаточным бюджетом, нанимают специалиста, который выполняет все обязанности, входящие в профессии системный администратор vs программист. Это наглядно можно увидеть в таком направлении, как 1С, где руководство небольшой фирмы принимает на работу нового сотрудника с тем расчетом, который позволяет в лице одного человека получить сразу двух ценных сотрудников. При этом системный администратор будет заниматься обслуживанием сетей, обеспечивать их жизненный цикл, поддерживать работоспособность. В то же время такой специалист будет разрабатывать СУБД. То есть, взвалит на себя все обязанности по настройке, проектированию, разработке и обслуживанию ИТ-инфраструктуры предприятия. Такой подход является в корне неправильным. Взвалив на плечи одного человека все обязанности, нужно понимать, что качественно выполнять их даже при всем желании он не сможет. Рано или поздно в работе будут допущены серьезные ошибки, и тогда придется потратить немало средств, сил и времени, чтобы исправить их.
Программист, системный администратор – профессии, как считают многие руководители, для молодых. Им кажется, что уже после сорока лет человек не способен своевременно реагировать на изменения в области ИТ, не получает достаточно знаний, ориентируется только на свой предыдущий опыт. Действительно, во многих компаниях сложно встретить программиста или же сисадмина, которому уже больше 40-45 лет. На самом деле такие специалисты не уходят так рано. Они оседают в достаточно солидных и крупных компаниях, находят свою нишу и отлично чувствуют себя в профессиональном и хорошо сформированном коллективе. Огромное значение имеет не только масштабность компании, но и регион. Программист или системный администратор – это своеобразный многорукий Шива, для которого практически нет ничего невозможного. Он занимается любыми задачи, которые ставит перед ним руководство. Именно поэтому перспективные молодые специалисты стараются переехать в большие города, чтобы полностью отдаться своей профессии, а не выполнять многочисленные работы за себя и парня из соседнего отдела.
В некоторых моментах данные профессии перекликаются даже в крупных компаниях, где все обязанности каждого специалиста четко разделены. Так, админы должны понимать хотя бы начальный уровень программирования, а программеры должны иметь какие-либо знания в том, как обеспечить правильные настройки сервера.
Если же говорить об уровне заработной платы и о перспективе карьерного роста, то кто в этом плане лучше – программист или сисадмин? Естественно, программеры получают зарплату, которая намного больше, чем зарплата, которую получают админы. Сложность профессии заключается в том, что системный администратор, придя на работу, может выпить кофе, осудить сплетни в офисе, поговорить о жизни с коллегами. Программеры практически всегда лишены такого удовольствия, так как всецело заняты поставленной задачей. И если у них в договоре прописан 8-часовой рабочий день, то и часто они вынуждены работать такой 8-часовой рабочий день без обеда, отдыха и каких-либо отвлекающих моментов. Что касается характера работы, то раньше считалось, что программисты – это сплошные интроверты. Сегодня ситуация кардинально поменялась. Необходимо обладать практически уникальными коммуникативными способностями, так как придется работать в совершенно разных направлениях, причем, находить язык с людьми, которые не смыслят в программировании и даже в компьютерах ровным счетом ничего. Естественно, это очень напрягает, но здесь ничего не поделаешь. Нужно как-то объяснять начальству определенные этапы своей работы, узнавать подробности изменения ПО в компании, которая занимается аудитом в бухгалтерии. В общем, необходимо находить язык практически со всеми в компании, чтобы получить максимальный объем нужной информации, а это бывает довольно сложно.
Конечно же, устраиваясь на работу программиста, но при этом имея знания только в системном администрировании, нужно быть готовым к тому, что руководство поставит задачу, с которой невозможно справиться человеку без определенных знаний. Поэтому перед любым начинанием необходимо четко понимать, какие задачи придется выполнять, и быть готовым к работам любой сложности.
Чем хакер отличается от программиста
Взломщик
Чаще всего понятие «хакер» ассоциируется со специалистом, который занимается взломом программного обеспечения, поиском уязвимостей в программах, операционных системах и компьютерах. В данном случае хакер обязательно должен являться программистом достаточно высокой квалификации, который должен хорошо владеть как минимум 1 языком программирования и знать структуру и построение компьютерных приложений.
Хакеры хорошо знакомы с теорией компьютерной безопасности и сетей, знают технологии передачи данных и распространенные ошибки программистов, чтобы осуществить взлом программного продукта или целого компьютера (сервера).
Деятельность хакеров не всегда направлена на уничтожение какой-либо информации или завладение доступом к тому или иному интернет-ресурсу. Существуют специалисты, имеющие большой опыт программирования и написания приложений. Такие хакеры работают в крупных компаниях в качестве исследователей уязвимостей IT-систем, которая построена на предприятии и может хранить большие массивы данных. Работа специалистов заключается в усовершенствовании систем безопасности с целью сохранения работоспособности ПО и обеспечения максимальной степени сохранности данных.
В отличие от хакеров, программисты занимаются проектированием, написанием и отладкой компьютерных программ. Специалисты пишут компьютерный код, который используется для решения различных задач, начиная с компьютеров обычных пользователей и заканчивая операционными системами или программами управления базами данных.
Другие значения
Также слово «хакер» часто употребляется людьми для обозначения высококвалифицированного человека, который отлично знаком с базовыми принципами функционирования компьютерных систем и устанавливаемого программного обеспечения. В таком случае хакерами можно назвать большинство профессиональных программистов, поскольку настоящий программист соответствует данным критериям.
Термин «хакер» иногда используется по отношению к людям, которые по своему роду деятельности не связаны со сферой IT, однако являются настоящими специалистами в своей деятельности.
Слово «хакер» раньше использовалось по отношению к людям, которые исправляли ошибки в работе программ. Нужные исправления вносились в экстренном порядке, чтобы быстро решить какую-либо проблему в безопасности или исправить ошибки, возникающие в процессе использования приложения.
Перестаньте называть себя программистом и другие карьерные советы / Хабр
Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
90% работы для программиста — это корпоративное ПО
Основы экономики: цена чего-угодно (включая вас) — это функция спроса и предложения. Давайте сначала посмотрим на спрос. Большинство ПО не продается в коробках и не доступно для скачивания в интернете или App Store. Большинство ПО — это тоскливые узкоспециальные корпоративные приложения, поддерживающие глобальную экономику со всех вообразимых сторон. Эти приложения подсчитывают издержки, оптимизируют расходы на пересылку, помогают составлять бухгалтерские отчеты, проектировать новые интерфейсы, вычислять цену страховки, помечать подозрительные заказы для ручной проверки и т.д. ПО решает проблемы бизнеса.
ПО решает проблемы бизнеса несмотря на свою душераздирающую скучность и отсутствие технологической сложности. Например, представьте себе электронную форму отчета о командировочых расходах. Для компании размером в 2000 человек она может сэкономить порядка 5000 человеко-часов в год в сравнении с ручной обработкой бумаг, что при средней стоимости часа работы в $50 сэкономит $250,000. Компании все равно, что это самое примитивное на свете CRUD-приложение. Единственное, что имеет значение, это то, что оно сокращает издержки или генерирует прибыль.
Есть компании, которые создают ПО, которым пользуются реальные люди, и под это описание попадает почти все, что приходит вам в голову, когда вы думаете о ПО. Очень маловероятно, что вы будете работать в такой компании, если только вы не предпринимаете для этого целенаправленных шагов. И даже если вы таки окажетесь в такой компании, большинство программистов все равно не работают над пользовательской частью приложения.
Программистов нанимают для того, чтобы они приносили пользу компании, а не для того, чтобы они программировали
Периодически компании предпринимают что-то из иррациональных или политических причин (читайте ниже), но в основном их действия направлены на увеличение прибыли или сокращение издержек. В хорошо поставленной компании котируются люди, которые занимаются именно этим. (Что может, но совсем не обязательно, подразумевать реально выполняемую работу.) Тот, кто решил нанять еще одного или нескольких программистов, решил сделать так не потому, что ему нравятся гики в кабинете, а потому, что эти гики позволят довести до конца проект (или проекты), которые увеличат прибыль или снизят издержки. Создание красивого ПО не является целью, также как и решение сложных проблем программирования или написание беспроблемного кода. Повысить прибыль или сократить издержки — ваши единственные задачи.
Питер Друкер — возможно, вы не слышали о нем, но он пользуется уважением среди людей, которые подписывают финансовые документы — предложил определения центра прибыли (profit center) и центра издержек (cost center). Центры прибыли — это та часть организации, которая непосредственно зарабатывает на хлеб с маслом: партнеры в юридических фирмах, продажники в компаниях, инвесторы на Уолл-стрит и т.д. Центры издержек — это, по сути, все остальное. Вам надо быть частью центра прибыли, потому что это принесет вам больше денег, статус, и больше возможностей во всем, чем вам хотелось бы заниматься. Это не сложно: толковый школьник легко определит центр прибыли компании по ее описанию длиной в один абзац. Если вы хотите работать в этой компании, цельтесь именно туда. Если не можете, то или а) идите работать куда-нибудь еще, или б) организуйте себе перевод после того, как будете наняты.
Программисты — особенно дорогие центры издержек, что вызывает оптимизационный зуд у любого выпускника MBA. Это выливается в такие замечательные инициативы, как аутсорсинг, что можно понимать как “давайте заменим очень дорогие центры издержек, которые занимаются какой-то магией, суть которой нам вроде как не важна, но без нее никак, более дешевыми центрами издержек в стране с более низкой стоимостью труда”. (Лирическое отступление: вы можете абсолютно спокойно игнорировать аутсорсинг как угрозу своей карьере, если прочтете эту статью до конца.) Никто и никогда не отдаст на аутсорсинг центры прибыли. Попытка сделать так родит множество управленческих шуток. Это как если бы вам предложили заменить систему контроля версий файлами на дискетках.
Перестаньте называть себя программистом
“Программист” звучит как “аномально дорогой холоп, пишущий непонятную ерунду в другой непонятной ерунде”. Если вы называете себя программистом, знайте, что кто-то уже работает над тем, чтобы вас уволить. Слышали о Salesforce, Software as Service компании? Их слоган “Без ПО” (“No Software”) буквально сообщает будущим клиентам: “Если бы вы использовали Salesforce, вы бы могли уволить половину программистов, работающих над вашим внутренним ПО, и положить разницу себе в карман.” (В этом, кстати, нет ничего страшного. Вы в индустрии, которая лишает людей работы. Если вы думаете, что это неправильно, идите назад в университет и обучитесь чему-нибудь ненужному.)
Вместо этого, говорите о себе в контексте своих достижений по увеличению прибыли и сокращению издержек для других работодателей. Если у вас пока не было возможности чего-то в этом достичь, говорите о себе так, чтобы было понятно, что вы способны увеличить прибыль и снизить издержки и рассказывайте о своих идеях на этот счет.
Есть множеcтсво высокооплачиваемых профессионалов, которые работают с кодом, но при этом не называют себя программистами. Квонты (от “quantitative analyst” — аналитики, занимающиеся алгоритмизацией торговли на бирже, моделированием рисков и т.д. — прим. переводчика) с Уолл-стрит — самый яркий тому пример: они используют компьютеры и знание математики, чтобы принимать решения более эффективно, чем группа людей без такой поддержи, и в результате их компании зарабатывают миллионы долларов. Бонусы успешного квонта в хороший год превышают заработок многих талантливых программистов за десяток лет.
Аналогично, даже если Google кажется вам подходящей компанией, то там тоже есть программисты, и есть люди, чья работа привела к увеличению кликабельности AdWords-объявлений на 1%. (Последние стоят миллионы долларов, намек ясен?) Я недавно наткнулся на сайт парня, у которого в профессиональной биографии было написано: “создал код системы биллинга, через которую проходит 97% прибыли Google”. Сейчас он занимается ангельским инвестированием (это красивый способ сказать, что он очень богат).
Вы не ограничены своим стеком технологий
Недавно я спросил в Twitter, что начинающие программисты хотели бы знать о том, как строить карьеру. Многим было интересно, какой язык программирования или стек технологий изучать. Мой ответ: не имеет значения.
Java-программисты зарабатывают больше, чем .NET-программисты? Все, кто считает себя Java-программистом или .NET-программистом уже в пролете, потому что а) они программисты (а вы, как написано выше, нет) б) они закрывают для себя возможность быть нанятым на большинство позиций. В реальном мире изучение основ нового языка занимает пару недель, и через 6-12 месяцев уже никто не догадается, что вы не занимались этим всю свою карьеру. Я занимался Enterprise Java разработкой еще в марте 2010 (статья написана в октябре 2011 — прим. переводчика). Поверьте, всем все равно. Если компания, занимающаяся разработкой на Python, будет искать технаря, способного заработать им денег, тот факт, что я в жизни не написал ни строчки кода на Python не сыграет против меня.
Талантливые программисты редко встречаются, гораздо реже, чем в них возникает потребность, поэтому сейчас самая благоприятная конъюнктура для соискателей почти во всех отраслях. В Matasano пишут на Ruby. Если вы не знаете Ruby, но вы хороший специалист, вас все равно наймут. (У хорошего специалиста есть опыт в — повторяйте за мной — увеличении прибыли или снижении издержек.) В FogCreek используют стек Microsoft. Я не могу написать ASP.NET без ошибки, но они все равно наймут меня.
Есть компании с таким криво поставленным процессом найма, что если в вашем резюме нет искомого ключевого слова, вас даже не пригласят на собеседование. В таких компаниях лучше не работать, но если вам очень хочется, то потратив несколько вечеров и выходных вы сможете добавить в свое резюме нужные слова. Но еще лучше влиять на выбор технологий на своем текущем месте работы так, чтобы это продвигало вашу карьеру. Хотите изучить Ruby, работая в .NET-компании? Сделайте одноразовый проект на Ruby. И, о-па, вы стали профессиональным Ruby-программистом, вы писали на Ruby и вам за это платили. (Смешно? Я провернул это в компании, занимающейся Java. Единоразовый проект на Ruby заработал нам $30,000. Мой начальник был ожидаемо счастлив и никогда не интересовался, на чем был сделан проект.)
Коллеги и начальники вам не друзья
Вы будете проводить с коллегами очень много времени. Рано или поздно с некоторыми из них вы можете стать друзьями, но в общем случае в течение трех лет вы смените работу и, несмотря на теплые отношения, никогда не пригласите никого из них в гости. И они будут относиться к вам точно также. Вам стоит хорошо относиться ко всем людям, с кем вас сводит жизнь, — это просто правильно, и кроме того поможет развитию связей, — но не пребывайте в иллюзии, что все вокруг ваши друзья.
Например, когда при приеме на работу вы беседуете с приятным 28-летним парнем, который кажется вам просто улучшенной копией вас самих из будущего, это ни к чему не ведет. Он не видит в вас приятеля, вы для него не больше чем ресурс, необходимый для деятельности компании, который он стремится приобрести по наименьшей цене. Треп о World of Warcraft — это не более чем установление контакта, и он наверняка (надеюсь, порядочно) попробует сделать что-то такое, чего ваши друзья никогда не допустят, например, уболтать вас сбросить несколько тысяч в год с вашей зарплаты, или сманипулировать вами, чтобы вы задержались и поработали подольше, когда вы могли бы провести это время со своими настоящими друзьями. Также, у вас будут и другие коллеги, которые, учтиво и порядочно, будут предлагать вещи, идущие вразрез с вашими интересами, от “я присвою себе твои заслуги на этом проекте” (возможно, это будет сформулировано чуть короче) до “нам стоит заняться тем, что продвигает мои профессиональные интересы, а не твои”. Не удивляйтесь, когда это случится.
Вы сильно переоцениваете средний по рынку уровень компетентности ваших конкурентов, ориентируясь на тех людей, которые непосредственно вас окружают
Многие их тех, кто сейчас работает старшим программистом, на деле не может написать FizzBuzz. Занавес. Основной вывод: вы, скорее всего, достаточно компетентны для того, чтобы работать в компании мечты. Пусть они нанимают лучших из простых смертных, но, тем не менее, они нанимают простых смертных.
“Объявление. Резюме. Интервью. Работа.” — скорее исключение, чем правило в процессе найма
О большинстве вакансий никогда не будет объявлено публично, точно так же как и лучшие кандидаты никогда бывают открыто свободны (читайте об этом здесь). Информация о вакансии распространяется приблизительно со скоростью бокала пива, и иногда смазывается email-перепиской. Кто-то хочет нанять программиста. Он сообщает об этом друзьям и партнерам по бизнесу. Кто-то из них точно знает кого-то подходящего — члена семьи, соседа по комнате из университетской общаги, знакомого с конференции, бывшего коллегу, и т.д. Людей представляют друг другу, случаются встречи, они достигают принципиального соглашения о найме. И только после этого начинаются танцы с резюме/отделом кадров/контрактом и прочими формальностями.
Это особенно правдиво относительно наиболее стоящих вакансий. Быть первым сотрудником успешного стартапа имеет определенный флер среди айтишников, и ни одна из таких вакансий не была закрыта с помощью резюме, отправленного в отдел кадров, отчасти потому что у стартапа из 2-х человек пока маловато подкожного жира, чтобы организовать отдел кадров. (Скорее всего, вам не стоит стремиться стать первым сотрудником стартапа, лучше станьте последним из со-основателей.) Хотите работать в Google? У них есть официальный процесс, чтобы чуть-чуть вас протолкнуть вперед просто за то, что вас порекомендовал другой сотрудник Google. (Кроме того, у симпатизирующего вам сотрудника Google есть еще порядочно неофициальных способов повлиять на этот процесс. Один из вариантов — купить компанию, в которой вы работаете. Когда у вас есть пара миллиардов в кармане, у вас появляется много интересных способов решения проблем.)
Есть много причин к тому, почему найм происходит приватно. Одна из них — это то, что в ответ на опубликованную вакансию приходит огромное количество нежелательных резюме (особенно при нынешней конъюнктуре) от вопиюще неподходящих людей. Другая — то, что в некоторых компаниях настолько не умеют нанимать, что если со стороны нанимателя никто лично не знаком с кандидатом, они могут запросто принять на работу кого-нибудь, неспособного написать FizzBuzz.
Сетевое взаимодействие — это не только TCP пакеты
Развивать связи значит а) встречаться с людьми, которые однажды могут оказаться вам полезны (и наоборот) и б) производить на них хорошее впечатление.
Есть много мест, где можно познакомиться. Например, отраслевые события, такие как конференции или открытые лекции в университетах. Пользовательские сообщества (user groups) — другой вариант. Имейте ввиду, что эти события привлекают разную аудиторию, и подстраивайтесь соответвенно.
Всегда стремитесь помочь. Это правильное дело, особенно учитывая, что люди имеют тенденцию хорошо запоминать, кто им помог или принял их помощь. Если однажды случится так, что вы сами не сможете помочь человеку, но будете знать кого-то, кто способен решить его вопрос, познакомьте их между собой. Если все делать правильно, эти двое будут счастливы сейчас и расположены помогать вам в будущем.
Знакомиться можно и в интернете, но что-то в нашем унаследованном от обезьяны мозгу придает особенно большое значениe взаимодействию лицом к лицу. Я знакомился с людьми в интернете и затем переводил контакт в реальный мир. Физическое рукопожатие — это большая подвижка в отношениях, даже если во время общения в сети своими советами вы уже помогли кому-то заработать больше. Пишите блог, участвуйте в форумах на Hacker News или на других заметных в вашей отрасли ресурсах, но не забывайте ходить на реальные встречи.
Университеты далеки от реального мира
Ваш средний балл не имеет значения (за редким исключением, как в одном международном рекламном агентстве). Он влияет только на то, будет ли ваше резюме отобрано для приглашения на собеседование. Если вы читали то, что написано выше, то вы знаете, что рассылка резюме — не единственный способ попасть на собеседование, поэтому не тратьте слишком много времени оптимизируя то, что и так работает достаточно хорошо (поскольку со средним баллом в 3.96 вам будут звонить так же часто, как и с 3.8), или то, что вам просто не нужно (поскольку вы умеете находить работу, приглашая правильных людей на кофе).
Специальность и кафедра на которой вы учились не имеют значения. Большинство руководителей в отрасли не знают разницы между информатикой и прикладной математикой. Было дело, я был готов расплакаться от того, что небольшой прокол с учебой поставил под вопрос мою возможность получить более престижную специальность в дипломе. В научном сообществе эти мелочи важны. В реальном мире — нет.
Ваши преподаватели могут знать, как работает рынок труда в научной сфере (в двух словах: он дико неэффективный и запутанный сверх всякого человеческого понимания), но при этом имеют довольно идеалистические представления о том, как это происходит в реальном мире. Например, они могут убеждать вас получать дополнительные специализации, потому что это а) кажется им хорошей мыслью б) им всегда нужны рабы, работающие за Роллтон, для ведения их научной работы. Помните, что рыночная стоимость специалиста, способного вести научную работу $80 — $100 тысяч в год. Роллтонами на эти деньги можно уесться.
Преподаватель, у которого я писал научную работу, предлагал мне место на кафедре, оплату обучения и аж $12,000 в год в качестве стипендии, если я подпишусь работать с ним следующие 4-6 лет. Это отличное предложение в том, и только в том случае, если вы только что иммигрировали из страны с более низким уровнем оплаты труда и вам нужна поддержка в получении визы.
Если вам очень нравится сама атмосфера в университете, то никаких проблем, накиньте на плечо рюкзак и вы в любое время сможете войти в здание любого университета в Соединенных Штатах. Купить рюкзак намного дешевле, чем остаться работать в науке. В коммерческих компаниях вы тоже сможете работать головой, но при этом там будет меньше политики и вам будут лучше платить. Вы даже сможете публиковаться в журналах, если оно вам нужно. (Поле того, как вас попустит безумная атмосфера научного сообщества, вы можете справедливо начать сомневаться, действительно ли публикация в научном журнале это что-то более значительное, чем, например, публикация статьи в блоге, который читают умные люди.)
Сколько зарабатывают программисты?
Неправильный вопрос. Правильный вопрос: на какие предложения о работе программисты обычно соглашаются? Потому что зарплата — это всего лишь один из рычагов, которые могут использоваться, чтобы вас привлечь. И мой ответ на этот вопрос вам не особо поможет: на всякие.
В целом, крупные компании платят больше (деньги, соц. пакет, и т.д.), чем стартапы. Программисты, знающие себе цену, зарабатывают больше, чем те, кто в себе сомневается. Старшие программисты зарабатывают больше, чем младшие. Люди, работающие в более денежных отраслях, зарабатывают больше, чем те, кто работает в менее денежных. Люди, умеющие вести переговоры, зарабатывают больше тех, кто в этом не силен.
У нас есть культурное табу никогда на говорить о зарплате. Но это не абсолют. Во многих культурах, о деньгах вполне приемлемо говорить в профессиональном контексте. (Если бы вы были японцем среднего класса, вы бы посчитали уместным рассказать о своих доходах уже на второй встрече кому угодно, от ребят из вашей команды по футболу до повара, который крутит вам суши. Если бы вы были владельцем компании, вы бы, возможно, были более уклончивы говоря о себе, но зарплаты своих сотрудников обсуждали бы так же, как программисты обсуждают компиляторы — достаточно часто и без тени смущения.) Если бы я был марксистом или сторонником теории заговора, я бы предположил, что американская культура была специально заточена под интересы нанимателей и против интересов наемных работников. Прежде чем обсуждать зарплату с потенциальным работодателем, стоит поговорить с кем-нибудь, кто уже работает в этой компании на схожей позиции и уточнить вилку. На дворе <%= Date.today.year %>;, такого человека вполне можно найти в сети (с помощью LinkedIn, Facebook, Twitter или любой другой не-графовой социальной сети).
В том или ином виде программистам обычно предлагают соц. пакет. В Соединенных Штатах имеет смысл побеспокоиться о страховке здоровья (обычно работодатель оплачивает большую часть стоимости) и о пенсионных накоплениях, которые обычно предлагаются в формате “мы доложим в на ваш пенсионный счет сумму, равную той, что вы внесете туда сами, вплоть до максимума в х% от вашей годовой зарплаты”. Что вы получите в результате легко посчитать: х% от годовой зарплаты. (Это дополнительные деньги, поэтому всегда по максимуму пользуйтесь пенсионными программами работодателя. Инвестируйте эти деньги и забудьте о них на следующие 40 лет.)
Есть и другие плюшки, такие как бесплатные напитки, обеды в офис, оплачиваемые книги по программированию, и т.д. Это в большей степени социальные па. Если я предлагаю покупать вам напитки, это в первую очередь говорит о порядках в моей компании и о том, как я буду относиться к тем, кто у меня работает. (Буквально, “я собираюсь вдохновлять неискушенных молодых программистов на трудовые подвиги, проставляя им копеечную газировку и экономя десятки тысяч долларов на оплате труда, одновременно помогая им разрушать свое здоровье”. Я люблю газировку.) Умейте видеть такие социальные па и реагируйте соответвенно. Например, компания, готовая оплачивать обучение своих сотрудников, может оказаться стоящим местом для работы, но не соглашайтесь на существенно более низкую зарплату в замен на то, что вы запросто можете пойти и купить себе сами.
Как мне стать лучшим переговорщиком?
Об этом можно написать целую отдельную статью. Но если кратко, то:
- Помните о том, что вы продаете решение бизнес-проблем (увеличение прибыли и сокращение издержек), а не ваш навык программировать или интеллигентное лицо.
- Ведите переговоры в меру агрессивно и уверенно, как профессионал. С той стороны будут держаться именно так. Если вы стремитесь прийти к взаимовыгодному предложению, не соглашайтесь на все подряд.
- “Сколько вы зарабатывали на предыдущем месте?” понимайте как “подскажите мне причину предложить вам меньше”. Отвечайте соответвенно.
- Всегда имейте на готове контр-предложение. Будьте готовы торговаться чем-то, кроме денег. Если они не могут предложить вам большую зарплату, попросите более длинный отпуск.
- Говорить о деньгах уместно только после того, как вы достигли принципиальной договоренности о переходе. Обычно этот разговор происходит в самом конце, когда они со своей стороны уже вложили довольно много времени и денег в то, чтобы заполучить вас, то есть не на собеседовании. Помните, что не суметь договориться с вами на этом этапе сулит им потери, поэтому они, скорее всего, не будут слишком сильно настаивать на незначительных для компании, но существенных для вас вещах, как если бы вы накинули на их предложение по зарплате несколько тысяч и твердо это отстаивали.
- Прочтите книгу. Их много написано по теме ведения переговоров. Мне нравится «Путь к согласию» («Getting to Yes»). Мысль о том, что неумение вести переговоры стоит вам тысячи долларов ежегодно, может смущать, и поэтому программисты часто не делают направленного усилия, чтобы научиться этому, вместо этого тратя время на игры с какой-нибудь новой технологией.
Сколько стоят акции
Roll d100. (Вы не из этих? Прошу прощения, rand(100).)
0 — 70: Ваши акции не стоят ничего.
71 — 94: Ваши акции стоят сумму, приблизительно равную той, которую вы не заработали, когда пошли работать в стартап, вместо крупной компании с более высокой зарплатой и соц. пакетом.
95 — 99: Стоимость ваших акций существенно изменит вашу жизнь. Тем не менее, вы не будете чувствовать себя богатым, потому что многие из тех, с кем вы плотно работали в последние пару лет, богаче вас по определению. Но зато ваша семья больше не будет вас критиковать за то что вы не пошли работать в $TA_SAMAYA_KOMPANIYA как хороший $NA_KOGO_VAM_PREDLAGAUT_RAVNYATSYA
100: Вы работали в убийце Google и ваше состояние огромно. Поздравляем.
Пытливый читатель заметит, что 100 никогда не будет результатом вызова d100 или rand(100).
Почему ты так скептически настроен о работе за акции?
Потому что вы сильно перееоцениваете вероятность того, что стартап, в котором вы работаете, выстрелит, и очень сильно перееоцениваете кусок пирога, который достанется вам, если это случится. Почитайте об очередности выплат акционерам при ликвидации компании на Hacker News или Venture Hacks, а потом подумайте о том, что люди, которые там об этом пишут, понимают в вопросах венчурных сделок не меньше, чем вы в программировании, и о том, как вы можете наколдовать в коде, когда на кону несколько миллионов долларов.
Стоит ли начинать карьеру в стартапе?
Есть высокая вероятность того, что пару лет вы будете очень тяжело работать, часто и больно обламываться, в конце концов останетесь без работы и будете искать себе новый стартап. Если вы правда хотите поработать в стартапе, поработайте в крупной компании, накопите денег, опыта и связей и через пару лет после окончания университета сделайте свой.
Когда вы работаете в стартапе, вашим кругом общения становятся такие же стартаперы, как и вы сами. Через несколько лет большинство из этих людей не смогут нанять вас. Работая в крупной компании, вы крутитесь среди людей, которые работают в крупных компаниях. Многие из них через несколько лет смогут предложить вам работу сами или порекомендовать вас кому-то.
Так работать в стартапе или нет?
Работа в стартапе это, безусловно, путь развития карьеры, но в большей степени это образ жизни. Это чем-то напоминает работу в финансовой отрасли или в науке. Это три очень разных подхода к жизни. Многие люди пытаются завлечь вас туда из своих собственных интересов. Если вам искренне нравится жить как стартапер, вперед. Если вам нравятся только некоторые аспекты, то помните, что если очень хочется, то многое можно организовать для себя и так. Например, если вы хотите работать с самыми новыми технологиями, и вместе с тем вам важно быть дома к 5:30, чтобы успевать видеть детей, то вы можете работать с новыми технологиями в огромном количестве крупных компаний.
(Кроме шуток. Если что-то генерирует прибыль, то компании будут в это вкладывать. Конечно, помимо этого они также будут делать огромное количество CRUD-приложений, но стартапы в этом мало отличаются от крупных компаний, разве что у них лучше получается вкусно описать свое CRUD-приложение.) Первый час работы над новой социальной сетью — это попытки сделать CRUD-приложение интересным, все остальное время — это драма развода пары гетеросексуальных мужчин.)
Коммуникация — ваш основной профессиональный навык
Всегда помните о том, что программистов нанимают не для того, чтобы они программировали, а для того, чтобы они приносили пользу бизнесу. Основное качество, которое влияет на то, получите вы работу, или нет — ваша способность убедить других в том, что вы полезны. При этом быть полезным совсем необязательно.
Многие из лучших программистов, что мне встречались, патологически неспособны поддержать разговор. В результате другие люди а) не хотят с ними работать б) недооценивают их вклад, потому что чтобы что-то узнать о том, что они сделали, об этом нужно поговорить, а те просто не реализуют этот протокол. Обратное тоже верно: люди в среднем думают, что я один из лучших программистов, которых они когда-либо встречали, потому что я а) очевидно, могу программировать б) очень, очень хорошо пишу и говорю.
(Было время, когда я считал себя программистом “чуть ниже среднего”. С тех пор я понял, что я довольно искаженно представлял себе распределение навыков, что навык программирования это не то, на чем стоит сосредотачиваться, и что моя скромность играет против меня. Сегодня, если вы спросите меня, насколько я крут как программист, я скорее всего начну рассказывать вам о том, как писал систему, которая помогла миллионам детей научиться читать или которая помогла компании заработать миллионы. Где я нахожусь со своим навыком программирования на графике нормального распределения никого не волнует, так почему это должно волновать меня?)
Коммуникация — это навык. Упражняйтесь, и у вас будет получаться все лучше и лучше. Один из важных навыков второго порядка — умение быстро, кратко и уверенно рассказать о том, чем вы полезны, кому-нибудь, кто не разбирается в предметной области и у кого нет причин быть к вам расположенным. Если во время этого упражнения в вашей речи появляются технические термины (“сократил на 200 мс время работы 99 процентов запросов оптимизировав индексы…”), попробуйте еще раз без них. Вы должны уметь объяснить то, что вы делаете, толковому восьмилетке, главбуху вашей компании, программисту другой специальности, или смотрите сами, какая абстракция вам больше всего подходит.
Вам придется заниматься продажами и другими вещами, которых вы надеялись избежать, становясь программистом
Корпоративные продажи — это когда вы приходите в компанию и пытаетесь убедить их потратить шести- или семизначную сумму на ПО, которое либо увеличит их прибыль, лиюо снизит издержки. Всякое собеседование — это корпоративные продажи. Ваши политические и коммуникационные навыки, а также способность строить отношения имеют решающее значение, тогда как ваши технические навыки второстепенны.
Когда вы пытаетесь убедить коллег реализовать ваши идеи, вы тоже продаете. Если делать дело — ваша прямая обязанность, то уметь убеждать людей — ваш основной профессиональный навык. Потратьте время и отточите его. Это значит уметь эффективно перередавать информацию в официальных письмах, по электронной почте, в разговорах один на один, на собраниях и с помощью PowerPoint-презентаций (где это уместно). Это значит уметь написать бизнес-кейс под технологическую инициативу. Это значит понимать, что иногда придется пожертвовать технологичностью ради достижения бизнес-целей, и это правильно.
Ваша скромность работает против вас
У многих программистов есть проблемы с уверенностью в себе. Многие были так воспитаны, что хвастовство своими достижениями не поощрялось. В американской корпоративной культуре такая скромность не ценится. Более правильный тон для интервью и общения можно описать как “уверенный сдержанный профессионализм”.
Если вы работали в команде и ваша команда добилась успеха, не говорите “это не моя заслуга, это была работа команды”, если только вы не находитесь на такой позиции, что всем понятно, что вы врете, чтобы показаться скромным. Попробуйте так: “я был счастлив сделать свой вклад, координируя усилия команды в $VASHA_SPETSIALNOST”. Тренеруйтесь перед зеркалом, пока у вас не станет получаться говорить это с серьезным лицом. Вам может казаться, что вы преувеличиваете свой вклад. Не думайте об этом. Тот, кто заявляет, что координирует оптимизацию производства, на деле являясь упаковщиком бутербродов, преувеличивает свой вклад. А вы программист. Вы делаете свои магические штучки и жизнь людей становится лучше. Если вы отвечали за базу данных на важном проекте, в котором кроме вас участвовали другие люди, то, черт побери, да, вы координировали усилия команды по работе с базой данных и это было критически важно для успеха проекта. Такие правила игры. Если вам от этого как-то не по себе, то вы как бейсболист, который не крадет базы (кража базы — игровая ситуация в бейсболе — прим. переводчика): вы не высокоморальный, вы просто не умеете играть.
Все бизнес-решения принимаются многоклеточными родственниками шимпанзе, а не следуя правилам и алгоритмам
Люди есть люди. Социальные танцы — это важный навык. Люди часто поддерживают идеи своих друзей, несмотря на то, что другие идеи могут быть лучше. Люди часто более расположены к тем, с кем ели за одним столом. (Есть такая книга, “Никогда не ешьте в одиночку” (“Never Eat Alone”). Возможно, ее стоит прочесть, название не врет.) Люди отдают предпочтение людям, похожим на них самих. (К этому можно относится хорошо, нейтрально или по-разному. Просто принятие этого факта — первый шаг к тому, чтобы извлечь свою выгоду из такого положения вещей).
Ваш внешний вид тоже как минимум имеет значение, потому что к людям до смешного просто подобрать ключ с помощью таких простых уловок, как одежда, адекватная обстоятельствам, профессиональный внешний вид, уверенный тон голоса и т.д. Ваш костюм будет стоить не меньше нового монитора. Он будет вам нужен крайне редко, но в эти редкие моменты вы будете очень, очень рады, что он у вас есть. Честное слово, если я иду в государственное учереждение одетый в свою повседневную одежду, со мной разговаривают, как с неблагополучным подростком, в то время как когда я одет в костюм, ко мне относятся как к директору мультинациональной компании. На самом деле я неблагополучный подросток, являющийся директором мультинациональной компании, но я сам решаю, на что сделать упор, когда мне предстоит общаться с бюрократами.
(Люди, с которыми я работаю, могут начать возражать, что я лукавлю, говоря о себе как о директоре мультинациональной компании, потому что моя компания не очень похожа на то, что приходит в голову большинству, когда речь идет о “мультинациональной компании”. Ну извините, это простой разговорный трюк. Если вы думаете, что людям не нравятся, когда им таким образом пускают пыль в глаза, я вам скажу что есть еще и такие, которые вообще рьяно ненавидят людей в костюмах. Но это не умяляет ценности костюма. Просто будьте адекватны обстановке. Ответы, верные только технически, — это, кстати, самый лучший тип ответов, когда министерство миграции грозит вам депортацией.
В конце концов, ваше счастье по жизни не зависит от карьерных успехов
Поговорите с людьми постарше или просто поверьте социологам, которые утверждают, что семья, вера, хобби и т.д. более важны для счастья, чем деньги и карьерные успехи. Делайте выводы. Сделать карьеру важно, и прямо сейчас это может казаться самой важной вещью в вашей жизни, но есть вероятность, что с течением времени вы пересмотрите свои взгляды. Работайте чтобы жить, а не наоборот.
Разница между разработчиком и программистом
Разработчик против программиста
Тот, кто развивает, и тот, кто программирует
Люди в компьютерной индустрии имеют свой собственный опыт и должности, но наиболее взаимозаменяемые и самые запутанные должности и описания существуют между разработчиком компьютера и программистом.
Итак, что общего в этих двух рабочих местах? Оба человека занимаются компьютерным программным обеспечением, и оба человека на этих двух должностях должны писать, тестировать и отлаживать коды.Кроме того, обе должности часто обслуживают клиентов, у которых есть особые потребности.
Чтобы быть конкретным, разработчик компьютеров определяется как человек или компания, которые часто создают идеи и решения для неясного определения бизнеса. Разработчик компьютеров имеет нечеткую специализацию и ориентацию в различных областях, таких как программирование, общение с конечными пользователями, бизнес-требования и анализ, архитектурный дизайн, технические требования, взаимодействие с клиентами, документация, тестирование, управление проектами и другие потребности.Разработчики обладают широким набором навыков: они могут писать коды не так хорошо, как программисты, но они также могут выполнять связанную работу, такую как тестирование и отладка исходного кода, как компьютерные программисты. Кроме того, эти люди также занимаются деловой стороной и проблемами в этой области. Их работа часто требует следующего: определение требований, написание спецификации, планирование проекта, создание установочного пакета, устранение неполадок во время установки и многое другое. Короче говоря, разработчик занимается анализом, проектированием, реализацией, кодированием, тестированием, обслуживанием и документацией.
Способность разработчика отражается на том, насколько представленное решение удовлетворяет потребности клиента. Для сравнения, разработчик похож на швейцарский нож — служебный инструмент, имеющий множество функций для любой возникающей ситуации.
С другой стороны, компьютерный программист — это еще и человек, который возится с кодами. Как и разработчик компьютеров, он специализируется на программном обеспечении. Однако компьютерные программисты более искусны в написании кодов, чем компьютерные разработчики. В отличие от разработчика компьютеров, программист специализируется на написании кодов в других областях, таких как бизнес-аспекты (проблемы, анализ и т. Д.).Способность хорошего программиста описывается как написание наилучшего, наиболее эффективного кода без ошибок. Код должен быть для четко определенной цели. Клеймо хорошего программиста — это работающий и стабильный код. Тестирование и отладка кода также являются частью работы программиста. Список задач программиста: писать, тестировать и отлаживать коды, выполняя при этом некоторый объем документации и обслуживания.
Компьютерный программист может сосредоточиться и писать на одном программном обеспечении или писать для самых разных программ в зависимости от своих способностей.
Подводя итог сравнению двух соответствующих позиций, разработчик компьютеров видит проблему и имеет навыки, чтобы найти решение для любых проблем. Разработчик обладает целым арсеналом навыков, которые включают как программирование, так и другие навыки, необходимые для создания компьютерного программного обеспечения. Между тем, программист специализируется и сосредотачивается на коде для программного обеспечения и использует код как инструмент для поиска решения. Программист воплощает идеи разработчика в реальность и стабильность.
Большинство людей употребляют слова «программист» и «разработчик» как синонимы.Эти две позиции часто перекрывают друг друга с точки зрения рабочего контекста.
Резюме:
1. Компьютерные разработчики и программисты работают над программным обеспечением и написанием, тестированием и отладкой кодов.
2. У компьютерных разработчиков больше способностей и навыков, чем у компьютерных программистов. У них нет никакой специализации. Они могут работать во многих областях компьютерного программного обеспечения.
3. Компьютерные разработчики много работают. Это включает в себя анализ, проектирование, реализацию, обслуживание, документацию и другие связанные области.
4. Компьютерные программисты специализируются на кодах. Они пишут, тестируют и отлаживают коды, но больше ничего не делают.
: Если вам понравилась эта статья или наш сайт. Пожалуйста, расскажите об этом. Поделитесь им с друзьями / семьей.
Укажите
Селин. «Разница между разработчиком и программистом». DifferenceBetween.net. 4 июня 2011 г.
.
Разница между кодированием и программированием
Люди, обычно занимающиеся компьютерным программированием, признают термины «кодирование» и «программирование» как синонимы, поскольку оба они часто используются как синонимы. Вы можете найти несколько форумов, на которых проводится мозговой штурм о различиях между ними, и здесь грань становится немного размытой. Цифровая эра — это значительный сдвиг от механической электронной технологии к цифровой электронике, которая изменила лицо компьютерного программирования.В этой статье объясняются различия между двумя терминами, которые часто используются как синонимы — кодирование и программирование. Большинству людей они кажутся одинаковыми, но сильно отличаются друг от друга.
Что такое кодирование?
Простое кодирование означает написание кодов, а кодировщик — это человек, который кодирует с одного языка на другой. Кодирование — это тоже программирование, но оно используется для реализации начальных шагов компьютерного программирования. Термин «программирование» используется в гораздо более широком смысле, в отличие от кодирования, которое в основном предполагает написание кодов на различных языках в соответствии с инструкциями.Компьютеры не общаются на нашем языке; он понимает только машинный код, который является двоичным языком. Итак, кодировщик переводит требования на язык, понятный машине. Они больше ориентированы на язык программирования, которые переводят логику в машиночитаемый код.
Кодировщик создает коды на производственном уровне, что означает, что он должен хорошо понимать азбуку языка, на котором он пишет. Однако они не кодируют сами по себе; фактически, они получают инструкции о том, что делать и что необходимо выполнить, после чего следует реализация, отладка, тестирование и контроль качества.Ну, кодить проще, чем программировать, что значительно упрощает работу кодера. Эти инструкции обычно называют «исходным кодом». Это просто набор письменных инструкций, которые легко понять машине. Однако написание кода — это лишь одна часть создания программного обеспечения. Вот тут-то и появляется программирование.
Что такое программирование?
Программирование означает программирование машины или приложения для работы без ошибок. Программирование — это общий термин, используемый для описания процесса подачи машины с набором инструкций для выполнения.Проще говоря, программирование означает совершенствование рецепта: вы манипулируете ингредиентами, чтобы приготовить рецепт, в то время как компьютер манипулирует данными для выполнения задачи, следуя набору команд. Например, возьмите кофеварку. Вы можете запрограммировать кофемашину на приготовление кофе к 9:15. Или возьмем радио, если на то пошло; вы можете запрограммировать радио на воспроизведение ваших любимых каналов. Программирование — это более широкая картина, которая включает больше, чем просто написание кода.
Программист создает вещи, развивает логику и анализирует проблему.Написание кода — это только начальные этапы того, что составляет задачи программиста. В то время как кодировщик кодирует на промежуточном уровне, программист активно работает над абстрактными решениями потенциальной проблемы, которая может иметь или не иметь отношения к процессу. Идея состоит в том, чтобы исправить даже малейшую проблему, которая может испортить код, и составить идеальный план, согласно которому проект будет успешно реализован без каких-либо ошибок и ошибок. Работа программиста — найти решения проблем, которые могут или не могут возникнуть.Чтобы стать профессиональным программистом, нужны годы. Они могут работать разработчиками, кодировщиками, аналитиками и т. Д.
Разница между кодированием и программированием
Основы кодирования и программирования
— Хотя оба термина являются синонимами друг друга и часто используются как синонимы, они сильно отличаются друг от друга. Кодирование означает просто написание кодов с одного языка на другой, например с английского на Java. Это менее пугающе и менее интенсивно.Программирование, с другой стороны, означает программирование машины с набором инструкций для запуска.
Кодеры против программистов
— Кодер — это тот, кто переводит логику на понятную языковую машину. Кодирование больше ориентировано на язык, тогда как программирование отличается. Это более широкая картина, и программист имеет дело не только с написанием кода, а это только начало того, что составляет задачи программиста.
Большое мышление
— Написание кода — это только начало создания программного обеспечения.Программирование заключается в концептуальном осмыслении и анализе решений проблем, которые могут или не могут возникнуть, а затем определении того, как эти проблемы должны быть решены. Задача программиста — разделить строки кода, а программист имеет дело с более широкой картиной; он разрабатывает и строит решения, используя наилучший курс действий для потенциальных проблем, которые могут возникнуть.
Уровень опыта в кодировании и программировании
— Как программисту вам необходимо определить масштабируемость проекта, чтобы минимизировать проблемы в коде.Для этого программист должен вдаваться в мельчайшие детали, такие как настройка семантики, анализ кода, разработка различных шаблонов и многое другое. Идея состоит в том, чтобы сэкономить время, используя минимум строк кода. Программирование — это сложный процесс, требующий глубоких знаний и понимания языка.
Кодирование и программирование: сравнительная таблица
Кодирование | Программирование |
Кодирование означает создание кодов с одного языка на другой. | Программирование означает программирование машины для работы с использованием набора инструкций. |
Это основной способ облегчить общение между людьми и машинами. | Программирование — это формальный акт написания кода, но на гораздо более высоком уровне. |
Это часть процедуры компьютерного программирования, которая включает перевод требований на машиночитаемый язык. | Программирование — это более широкая картина, которая включает в себя все, от компиляции и отладки до тестирования и реализации. |
Кодировщик разделяет строки кода, не беспокоясь о деталях. | Работа программиста — концептуализировать и анализировать решения проблем до того, как они возникнут. |
Кодеры — программисты, но с меньшим опытом. | Программисты — это опытные профессионалы, которые работают над существенной логикой для решения сложных задач. |
Краткое описание кодирования и программирования
С появлением нового поколения, технически подкованного, термин «программирование» начал набирать обороты.Чтобы еще больше усложнить ситуацию, в картину вошли новые слова, такие как «кодирование» и «создание сценариев» с более пугающей историей. Мы используем эти термины слепо, не зная, что они означают или что они делают. Кодирование и программирование — два таких синонимичных термина, которые, кажется, означают одно и то же, но они сильно отличаются друг от друга. В этой статье объясняется, чем оба термина отличаются друг от друга.
Сагар Хиллар — плодовитый автор контента / статей / блогов, работающий старшим разработчиком / писателем контента в известной фирме по обслуживанию клиентов, расположенной в Индии.У него есть желание исследовать самые разные темы и разрабатывать высококачественный контент, чтобы его можно было лучше всего читать. Благодаря своей страсти к писательству, он имеет более 7 лет профессионального опыта в написании и редактировании услуг на самых разных печатных и электронных платформах.
Вне своей профессиональной жизни Сагар любит общаться с людьми из разных культур и происхождения. Можно сказать, что он любопытен по натуре. Он считает, что каждый — это опыт обучения, и это приносит определенное волнение, своего рода любопытство, чтобы продолжать работать.Поначалу это может показаться глупым, но через некоторое время это расслабит вас и поможет вам начать разговор с совершенно незнакомыми людьми — вот что он сказал ».
Последние сообщения Сагара Хиллара (посмотреть все)
: Если вам понравилась эта статья или наш сайт. Пожалуйста, расскажите об этом. Поделитесь им с друзьями / семьей.
Cite
Сагар Хиллар. «Разница между кодированием и программированием». DifferenceBetween.net. 13 марта 2018 г.
.
Инженер-программист против разработчика ПО: в чем разница?
- Home
Тестирование
- Back
- Agile Testing
- BugZilla
- Cucumber
- Тестирование базы данных
- Тестирование ETL
- 0003
- Jmeter
- Jmeter Backing
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества (ALM)
- RPA
- SAP Testing
- Selenium
SAP
- Назад
- ABAP
- APO
- Начало er
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- FICO
- Pay4
- HR
Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Tutorials
Web
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Angular
Web
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 00030003 COBOL 9000 Compiler
- 9000 Встроенные системы
- 00030002 9000 Compiler 9000
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сеть
- Операционная система
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
0003
0003
.