Start-365.ru

Работа и Занятость
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Инженер или программист

Время. Инженер или программист?

Дубликаты не найдены

Моя микробиблиотека про программирование вообще. В этот же список стоит добавить «Джоэль о программировании» Джоэля Спольски. Очень хорошая книжка)

engineering — это, говоря в общем смысле, конструирование. Так вот, код конструируют.

Ну и название профессии на английском как бы намекает — Software Engineer.

Будь как я: инженер-программист ))))

В плане книг начать с ОБЯЗАТЕЛЬНО C ЭТОГО:
1. «Код», Чарльз Петцольд
2. «Как программировать на C++», два Дейтела

Не слушай никого. Достань эти книги как хочешь и начинай с них. Вторая очень популярна и постоянно переиздается, так что можно будет купить в бумажном виде. Гарантирую, затрешь книги до дыр. Особенно последнюю. Она стоит того, чтобы купить. Я с ней весь универ прошел и года три на работе непрерывно пользовался. Всех программеров в нее тыкал носом, как котят. Начитаются Керниги и Ритчи или Кнута, а сути не знают. Вообще не представляют как программа живет. Затем можно читать что угодно, но с этих двух книг нужно начинать по любому. И времени тебе такой подход сэкономит просто офигенное количество.

Еще вещь «Совершенный код». Но это перед тем, как пойдешь на работу. Чтобы не быдлокодить.

Человек-все

Не спрашивайте, почему я в свое время ушел от этого работодателя. Насчитал 5-6 профессий. Кто больше?

Про облака.

Есть старый, 15 лет назад сделанный механизм расчета. Считает медленно, с их слов, но они это воспринимают как данность.

Я говорю «Что-то тут неправильно, както медленно. Может пересмотреть уже подходы? Есть же новые инструменты, есть математика, в конце концов. «

Мне говорят «Да забей. Там знаешь какие люди делали? Это на века сделано, и лучше не бывает. «

«Ну ок» — говорю — «Давайте вы мне объясните что надо посчитать, а я подумаю. Я ж математик.»

Мне говорят «Ну давай, надо посчитать вот это. «

Делаю за час. На тестовом сервере, на тестовом срезе — 3 секунды.

Мне говорят — «Там мало данных. Ты попробуй на 20 миллионах записей»

Ок. Делаю. 9 секунд. Но им пытаюсь объяснить — «Можно еще быстрее, просто ресурсов больше надо. Это ж облака.»

Они выкатывают кучу требований, описывают вычисления итд. Делаю за пару дней, тестим, 30 секунд.

«Да ну блин, лажа» — они говорят — «Что-то тут не так»

Вышел в курилку. Вышел один из инженеров. Стоим курим.

И он мне выдает «Да оно у нас и на втором шаге уже часы считало, и это год говорят делали. А последний никто и не пробовал даже. А что такое облака, про которые ты говорил?»

Вот так. «Что такое облака?» 21 век на дворе. Часы считало 15 лет. Прогресс. И дождь пошел.

Полезные блоги для IT-специалистов

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

Объяснять причины, приводить доказательства не буду: долго и выглядеть будет неубедительно для тех, кто пока не дошел до этой мысли самостоятельно. Однако перечислю ряд источников, которые, на мой взгляд, крайне полезны для ознакомления IT-специалистам любого профиля.

Также укажу примеры постов, чтобы сразу можно было открыть и начать читать.

Если в будущем материал по приведенным ссылкам пропадет, ищите с помощью Wayback Machine — https://archive.org/web/

2) Блог Александра Алексеева — https://eax.me

— «Десять веских причин не тащить в продакшн новые игрушки» — https://eax.me/avoid-new-toys/

— «Почему эти ваши модные NoSQL решения не так уж хороши» — https://eax.me/avoid-nosql/

— «Советы и примеры задач, которые помогут вам в освоении нового языка программирования» — https://eax.me/programming-language-learning/

— «Должен ли ИТ менеджер программировать» (в трех частях) — https://vit-r.livejournal.com/30889.html

— «Про то, как победила дружба, а люди стали рабами машин» — https://vit-r.livejournal.com/621261.html

— «Что такое корпоративная культура и как она влияет на вас» — https://dou.ua/lenta/articles/company-culture

— «Enterprise разработка накануне провала традиционных методов» — https://dou.ua/lenta/articles/enterprise-dev

6) Статьи Игоря Ашманова

9) Блог Сергея Теплякова — sergeyteplyakov на блогспот.ком

— «Культ карго в программировании» — http://sergeyteplyakov. /2013/09/blog-post_24.html

— «Шпаргалка по SOLID принципам» — http://sergeyteplyakov. /2014/10/solid.html

— «Книги» — http://sergeyteplyakov. /2013/08/blog-post.html

10) Блог Максима Захарова — wolonter на блогспот.ком

— «О профессионалах» — https://wolonter. /2016/09/blog-post.html

— «О менеджерах, тестировщиках и их отношениях» — http://wolonter. /2016/06/blog-post_21.html

Дополняйте в комментариях, у кого тоже есть интересный материал

Проект «Недовольный пылесос»

Что-то меня потянуло на пылесосную тематику.

Где-то 6 лет назад мною был приобретен робот-пылесос Румба. Сначала он не сильно прижился: на съемной квартире ему мешала пылесосить не самая удачная, но единственно возможная планировка мебели. Высланный в Калининград к родителям тоже стоял голодный и пылился, потому что мама мыла пол быстрее, чем тот пачкался. Окончательно пылесос осел со мной в Дании, освоился, резво пылесосил большую комнату и кухню и провожал меня на работу, за что был назван Бобиком.

А потом, в один из долгих зимних датских вечеров мне пришла в голову идея научить Бобика разговаривать. Идея простая: пылесос едет, натыкается на препятствие и говорит недовольным голосом «понаставили тут». Или «позасирали тут», если натыкается на грязь.

Идея простая, но реализация оказалась далеко не такой тривиальной. Дальше всякие технические детали.

Собственно, имелось следующее:

1. Сам пылесос Румба 500й серии и спецификация интерфейса, через который можно было общаться с пылесосом (через серийный порт)

2. Миникомпы (ардуино, распберри пай и свифт), с которых планировалось запускать программу для контроля сенсоров и проигрывания аудио записей

3. Куча проводов, макетная плата и прочие радости юного инженера

4. Паяльник — мой любимый инструмент. Ну и олово

5. Мультиметр — тоже ничего, но ни в какое сравнение с паяльником не идет

Чего не хватало:

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

2. Всевозможные трансформаторы напряжения, чтобы запитать миникомпьютер от батарейки пылесоса и чтобы настроить соединение через серийный порт.

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

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

Первым делом надо было разобраться с аудио усилителем. В интернете нашелся прекрасный сайт с не менее прекрасными схемами. Простите за шакальную картинку

Заработало почти с первого раза, хоть и выглядело довольно убого. Тем не менее до 80 Дб звук дотянулся, что было уже вполне достаточно. На фотке как раз убогий вариант.

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

Научилась двигать пылесос по прямой путем отправки специальной команды через Румба-интерфейс. И всё, казалось бы, шло хорошо, пока я не попыталась получить данные с сенсоров (грязевого и бампера, чтобы как раз отследить, когда надо начинать разговаривать). Румба начинал включать моторы, кататься вперед-назад, дергаться, двигать щеткой, затихать на 20 минут и начинать всё по новому. Заткнуть несчастного Бобика можно было только вынув батарейку, что задалбывало.

На этом потерялось довольно много времени, и в итоге было принято решение заставить распберри общаться не с пылесосом, а с ардуино (хорошо иметь больше двух миникомпьютеров). И тут это зараза и попалась. Ардуино слал распберри сообщение в стиле «Привет, лох, чо как там?», а распберри предлагал.. ВВЕСТИ ПАРОЛЬ. Всего-то надо было поменять настройки. Заработало. Счастье.

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

ИТ шник или инженер?

Какая профессия перспективнее, инженер или ИТ-шник. Инженер, тот который работает с реальными объектами. Будь то с автомобилями, оборудованием, стройка и т.д. или же ИТ шник, который работает с виртуальными объектами. Коих труд могут оценить только единицы людей. В перспективе за что будут охотнее платить? Как вы считаете? Лично я считаю скоро рынок сильно перенасытится программистами и зарплаты начнут демпинговаться

Рынок наукоемких отраслей, а это и иНженерия и ИТ, всегда будэт испытывать кадровый голод. Но нужны толковые, с их ОЧЕНЬ МАЛО

Иди в коммерцию там от 100к а инженеры и программисты до 100к.

Для версии Форума Woman.ru на компьютерах появились новые возможности и оформление.
Расскажите, какие впечатления от изменений?

Иди в коммерцию там от 100к а инженеры и программисты до 100к.

Брэд собачий. Толковые ИТшники ОТ 200к

ИТ и есть инженер.
Платить в айти всегда будут больше, кстати айти это не только программирование. Рынок айти специалистами не будет перенасыщен никогда, особенно хорошими, потому что вычислительные машины и системы занимают все большие и большие территории в нашей жизни.

Инженеришко с шарикоподшипника-это такая нищета

Инженеришко с шарикоподшипника-это такая нищета

«Программист из Калифорнии Шэрил Филкс, которая обратилась в суд с иском против поискового гиганта Google, на прошлой неделе получила первое решение суда в свою пользу. Филкс, которая старше 40 лет, утверждает, что компания отказала ей в трудоустройстве из-за ее возраста. Благодаря решению суда, которое классифицировало ее иск как коллективный, теперь она сможет пригласить в суд других соискателей, недовольных политикой найма в Google.»

ИТ и есть инженер.
Платить в айти всегда будут больше, кстати айти это не только программирование. Рынок айти специалистами не будет перенасыщен никогда, особенно хорошими, потому что вычислительные машины и системы занимают все большие и большие территории в нашей жизни.

Читать еще:  Высшее образование инженер

Программисты это креативная профессия. Инженеры это другое

Брэд собачий. Толковые ИТшники ОТ 200к

Вопрос насколько долго эта тенденция останется актуальной. Слишком многие ломанулись в ИТ. Сегодня ИТ шник это не волосатый чел в свитере с аленем, который маршрутизирует в машинных алгоритмах. Сегодня все намного проще а разработке. А западный рынок успешно демпингуют индусы. Условно конечно есть пара компаний как Гугл, где действительно нужны рили спецы

Та которая приносит доход по умению !а если не умеешь то любую выбирай переспектив ни каких

ИТ и есть инженер.
Платить в айти всегда будут больше, кстати айти это не только программирование. Рынок айти специалистами не будет перенасыщен никогда, особенно хорошими, потому что вычислительные машины и системы занимают все большие и большие территории в нашей жизни.

Он уже перенасыщен, пока что на уровне низших квалифи, но они то когда нибудь высастут в около тру позиции

Программисты это креативная профессия. Инженеры это другое

Вы сами поняли, что написали?
Программист — это ИТ инженер и есть. Инженер-программист.

ИТ и есть инженер.
Платить в айти всегда будут больше, кстати айти это не только программирование. Рынок айти специалистами не будет перенасыщен никогда, особенно хорошими, потому что вычислительные машины и системы занимают все большие и большие территории в нашей жизни.

Я сам ИТ шник и вижу нехорошие тенденции. Например рынок Микрософт сильно просел с началом массового внедрения Юникс систем и облачных технологий

Он уже перенасыщен, пока что на уровне низших квалифи, но они то когда нибудь высастут в около тру позиции

Нет, он даже еще не насыщен.

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

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

Вы сами поняли, что написали?
Программист — это ИТ инженер и есть. Инженер-программист.

Нет, если бы он ещё собирал железо руками, а то код набирать это не то, что в темке тут указано. Реальные вещи руками делать тут инженер. А кодить- так, итшник

Вопрос поставлен неверно.))

Нет, если бы он ещё собирал железо руками, а то код набирать это не то, что в темке тут указано. Реальные вещи руками делать тут инженер. А кодить- так, итшник

А разве в реале как то по-другому?

А разве в реале как то по-другому?

Ну Гостья тут видимо получила диплом, где написано инженер-программист и думает, что она инженер. А дай ей кран собрать-разведёт руками. Я поняла, что вы имеете в виду и согласна с вами.

я за инженера, айтишников щас пруд пруди а инженер более серьезная и интеллектуальная профессия

айтишник -это специалист без диплома.
закончит ВУЗ или УНИВЕР будет диплом ИНЖЕНЕРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ, Инженера телекоммуникаций , Инженера программиста,Инженера электроника,инженера схемотехника, инженера радиотехника.
Все эти ИНЖЕНЕРЫ могут и в состоянии работать АЙТИШНИКОМ.

Инженер — это фууу.

айтишник -это специалист без диплома.
закончит ВУЗ или УНИВЕР будет диплом ИНЖЕНЕРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ, Инженера телекоммуникаций , Инженера программиста,Инженера электроника,инженера схемотехника, инженера радиотехника.
Все эти ИНЖЕНЕРЫ могут и в состоянии работать АЙТИШНИКОМ.

ИТ шник это человек в той или иной степень связанный с вычислительной техникой или программным обеспечением. Образование тут вообще не причем. Что бы работать с той или иной технологией не обязательно иметь диплом, хватит и пары сертификатов актуальной технологии, в отличие от инженера. Я знаю о чем говорю. Работал и тем и другим

Инженер — это фууу.

Если Вы о России, то какие у нас промышленные отрасли, где востребованы НЕ айтишные инженеры? Нефтегазовая, разве что.

Не гоните пургу. «Все ломанулись», так ведь и потребности выросли. 10 лет назад не было VR, 5G сетей, такого разнообразия языков программирования и фреймворков. Еще долго сохранится потребность — это раз. Получить специальность по информатике и работать инженером никто не мешает — это два. Сейчас не так важно, какое основное образование, как важно, где вы доучиваетесь и какие навыки имеете. Идите на хабр читать аналитику.

Сегодня все намного проще а разработке.

С++ проще фортрана? Или джава проще питона? Или может ксс проще хтмла? Железо движется вперед (которое разрабатывают инженеры кстати) -> ставятся более сложные задачи для которых требуется все больший стек -> регулярно расширяется функционал языков и в итоге создаются совершенно новые, проект на которых вручную написать уже ниреал и юзаются доп либы и целые фреймворки .
Треугольник нарисовать в машинном коде разумеется гораздо сложнее, чем через современный компилятор, но и задачи нынче совершенно отличные от рисования треугольника. Задач по мультипоточности например 20 лет назад никто не ставил.

С++ проще фортрана? Или джава проще питона? Или может ксс проще хтмла? Железо движется вперед (которое разрабатывают инженеры кстати) -> ставятся более сложные задачи для которых требуется все больший стек -> регулярно расширяется функционал языков и в итоге создаются совершенно новые, проект на которых вручную написать уже ниреал и юзаются доп либы и целые фреймворки .
Треугольник нарисовать в машинном коде разумеется гораздо сложнее, чем через современный компилятор, но и задачи нынче совершенно отличные от рисования треугольника. Задач по мультипоточности например 20 лет назад никто не ставил.

Вы и сами подтвердили мои слова. Библиотеки и созданы для упрощения разработки, набор готовых решений. Где этот ++ нужен? В пару конторах? Нужно ли современному программисту знать как работают сумматоры, регистры, как работает оперативная память? Конечно нужно, но это настолько ничтожно мало по сравнению с остальной разработкой

Вы и сами подтвердили мои слова. Библиотеки и созданы для упрощения разработки, набор готовых решений. Где этот ++ нужен? В пару конторах? Нужно ли современному программисту знать как работают сумматоры, регистры, как работает оперативная память? Конечно нужно, но это настолько ничтожно мало по сравнению с остальной разработкой

Потому что сейчас языки настолько функциональны, что держать все в голове физически не реально, я помню свою первую древнюю книгу по бейсику — страниц 50 может, функции/методы? ООП? Циклы? Ага. Логический и алгебраический функционал (if вроде единственный оператор условия был, без цикличности) процедурного кода и на этом все, этого достаточно. За сколько сейчас изучается синтаксис любого языка? Да неделя, может две, а раньше он занимал чуть ли не 50% объема всего языка.
Ксс и хтмл так же не просто вспомнил, помните как раньше фронтенд сайтов на блоки делился? Тегами таблицы, теперь разумеется так не делают, но я не знаю ни одного верстальщика, что бы он не знал о табличных тегах. Т.е. с простотой и знаний больше следует усвоить.
Не путайте С++ и С, это второй низкоуровневый, на первом же пишется подавляющее большинство «крупных» ресурсоемких десктопных программ, ибо написанный на той же джаве 3дсМакс какой-нибудь тупил бы на любой современной машине, как солитер на тетрисе)

Программный инженер или разработчик ПО? Узнайте в чем разница!

  • 454 shares
  • Share
  • Tweet
  • +1
  • Reddit
  • Share

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

В начале мы поговорим об этих профессиях по отдельности. Мы расскажем о функциях каждой из них и относящихся к ним аспектах. После этого мы сравним эти виды программистов по различным критериям и дадим окончательный ответ на волнующий нас вопрос – чем отличается программный инженер от разработчика программного обеспечения.

Введение

Перед тем как мы перейдём к отличиям, нам нужно затронуть ещё одну важную тему. Вы часто можете услышать, что работу в сфере ИТ “называют работой мечты” – однако многие ограничиваются лишь упоминанием заработной платы. Поэтому, исключая этот аспект, почему вас должен интересовать программный инженер или разработчик программного обеспечения в целом?

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

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

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

Читать еще:  Военный инженер специальности

Чем Занимается Разработчик Программного Обеспечения?

Итак, кто такие разработчики программного обеспечения и чем они занимаются?

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

Так как вас интересует программный инженер (или же инженер-программист), то вы можете спросить – зачем компаниям необходим специалист такого профиля? Конечно, есть определённые компании, которые специализируются исключительно на разработке программного обеспечения (вроде Microsoft), но это не объясняет популярности этой профессии в целом. Что же, если вы взглянете на некоторые популярные вакансии на сайтах по поиску работу, то вы заметите, что многие компании ищут разработчика программного обеспечения для работы с определённой платформой. Хотите ли вы создать программу для повседневного использования или нечто более специфическое, вроде программы для редактирования аудио-файлов, именно разработчики будут теми, кто стоит за процессом создания. Круг их обязанностей может иногда совпадать с веб-разработчиками, поэтому не удивительно, что обе группы могут работать в одной команде.

Почему разработка приложений настолько популярна, что позволяет выделить её в отдельный вид программистов? Что же, если мы не будем брать в расчёт заработную плату и будущие карьерные возможности, то основной причиной этого станет – гибкость.

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

Учитывая сказанное, теперь у вас должно быть более ясное представление о разработчике программного обеспечения и его работе. Что же, давайте узнаем, чем занимается инженер-программист или программный инженер.

Чем Занимается Программный Инженер?

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

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

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

Если вы программный инженер, то ваша работа будет включать в себя частые переговоры с другими членами команды – вам будет необходимо преобразовывать определенные конкретные задачи и команды в запрограммированные коды. Скорее всего, вы будете писать эти коды на одном из самых популярных языков программирования. Это означает, что если вы хотите стать программным инженером, то сначала вам нужно приобрести опыт в области программирования. Однако, как вы поняли из этого руководства, такое требование не является исключительным для инженеров – к разработчикам программного обеспечения также предъявляются те же требования.

В Чём Различие?

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

Для проведения черты между этими двумя профессиями существует “золотое правило”. И звучит оно так: программный инженер может быть разработчиком программного обеспечения, но разработчик программного обеспечения не может быть программным инженером. Почему так? Что же, разработчик этот тот, кто работает с программой, тогда как программный инженер (или инженер-программист) работает с базой для этой программы. Улавливаете смысл?

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

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

Критерии и Анализ

Мы не будем вдаваться в скучные подробности – вместо этого мы рассмотрим простые, но важные аспекты каждой из профессий.

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

У Кого Лучше Заработная Плата?

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

По данным Glassdoor.com, разработчик программного обеспечения может ожидать заработную плату в размере около $80,000 USD в год или $6700 USD в месяц. В отличие от него, программный инженер может зарабатывать около $103,000 USD в год или почти $8600 USD в месяц.

Это большая разница! Однако, если вы вспомните золотое правило, которое мы упомянули ранее, то поймёте почему так происходит.

У Кого Менее Стрессовая Рабочая Нагрузка?

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

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

Где Больше Возможностей Выбора?

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

Стоит признать, что программный инженер в этом случае имеет больше свободы выбора. У них есть вариант работать с веб-приложениями, системами, разработкой приложений, анализом данных и т.д. С другой стороны, разработчик программного обеспечения ограничен в своём выборе – он может работать в качестве фронтенд или бэкенд разработчика.

Заключение

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

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

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

Надеемся, что это руководство было для вас полезным, и вы смогли узнать много нового и интересного. Увидимся в следующий раз!

Все инженеры умеют программировать, но не все программисты могут быть инженерами: в чем отличие?

Никто не может стать инженером за два месяца, за шесть месяцев или за год. Почему не все программисты могут называться инженерами и какими навыками обладают настоящие инженеры-разработчики?

Многим людям не нравится термин “инженер по разработке программного обеспечения” из-за относительного сравнения с инженерным делом. Но эта статья посвящена не термину. Если вам не нравится название, вы можете заменить его на “автор ПО”, “мастер ПО” или даже “художник по ПО”.

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

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

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

Хотите еще бльше аналогий? Конечно:

  • Мы изучаем математику и правописание в школе, но это не делает нас математиками и авторами.
  • Многие могут научиться готовить, но, чтобы накормить много людей, мы зовем повара.
  • Вы не будете звать соседа с инструментами, чтобы построить дом с нуля.

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

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

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

Если человек не понимает проблему, он или она не может создать решение для нее.

Склонность к поиску решений

Инженеры не считают свою деятельность просто написанием программ. Они думают о потребностях и решениях проблем. Это важно, потому что не каждая проблем нуждается в новой программе. Некоторые проблемы можно решить уже существующими программами. Некоторые проблемы можно вообще предотвратить, если действовать заранее. Создание хороших программ часто включает предотвращение будущих проблем.

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

Читать еще:  Востребованность инженеров на рынке труда

Перед созданием программы инженер задает вопросы:

  • Какие проблемы я пытаюсь решить?
  • Можно ли сделать для их решения что-то, кроме написания кода?
  • Что я могу сделать, чтобы эти проблемы было проще решить при помощи кода?

Качество кода

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

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

Сама по себе программа не так полезна. Ценность их функций проявляется, когда разные программы коммуницируют друг с другом, обмениваются данными и совместно работают над представлением данных и интерфейсов пользователям. Об этом нужно помнить при создании программ. Какие сообщения они будут принимать? Какие события будут отслеживаться? Какие сообщения они будут отправлять? Как мы будем проводить аутентификацию и авторизацию коммуникаций?

Другой важный аспект отличных программ — это ясность кода, а не количество тестов или число в отчете по тестовому покрытию. Этот код может прочитать кто-то ещё? Смогу ли я понять этот код через несколько недель?

В программировании существует только две по-настоящему сложных вещи: инвалидация кэша и наименование вещей, — Фил Карлтон

Удобство чтения кода важнее, чем вы думаете. К сожалению, для ясности кода нет хороших метрик. Знание хороших методов может помочь, но часто этого недостаточно. Хорошие инженеры просто учатся этому с опытом. Здесь подходит метафора с писательством: знание большого количества слов не поможет вам писать понятные тексты.

“У меня не было времени на короткое письмо, поэтому я написал длинное”, — Марк Твен

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

Среда и тестирование

Когда инженеры пишут программы, они должны убедиться, что эти программы будут работать в разных средах, на разных устройствах, в разных часовых поясах. Программы должны работать на экранах разного размера и ориентации. Они должны справляться с ограниченностью памяти или вычислительной мощности.

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

Чтобы написать программу, инженеры должны продумать любой возможный сценарий и спланировать тестирование всех этих сценариев. Это начинается со “счастливого пути”, когда ничего неожиданного не происходит, но затем инженеры должны прописать каждую проблему, которая может случиться, и написать для них тесты. Некоторые инженеры начинают с написания тест-кейсов, которые симулируют эти сценарии. Затем они пишут код, который проходит все эти тесты.

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

Стоимость и эффективность

Во многих случаях инженеры могут решить проблемы быстро. Если вы думаете, что найм опытных программистов повысит расходы, подумайте еще раз. Чем больше у программиста опыта, тем быстрее он или она сможет создать надежное решение, которое можно будет поддерживать без особых трудностей. Это означает сокращение расходов в долгосрочной перспективе.

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

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

Удобство использования

Хорошие программы создаются с учетом пользовательского опыта. Взаимодействие человека и компьютера — это большая тема с многочисленными исследованиями и выводами. Чем чаще будут учитываться эти выводы, тем лучше будут программы.

Вот несколько примеров:

  • При создании форм для ввода данных хорошая программа будет игнорировать прописные или строчные буквы? которые используются для ввода email-адреса. Она также уберет ненужные пробелы. Не нужно мучать пользователя из-за включенного Caps Lock, адрес почты уникален. Если программа принимает новые адреса, она должна сообщать пользователю о проблемах с вводом, например, об отсутствии знака @ или опечатке в gmail.ocm.
  • При перенаправлении пользователя хорошая программа запомнит первоначальное местоположение и перенаправит пользователя туда после завершения задачи. Хорошая программа также запомнит уже введенные данные и взаимодействия, которые нужны будут в следующих шагах. Например, вы ищете авиабилеты на Expedia в качестве гостя. Затем вы решили создать аккаунт. Вся ваша история поиска будет сохранена в новый аккаунт, и вы сможете получить к ней доступ с разных устройств.
  • Хорошая программа создается с учетом пользовательских сценариев. Поставьте себя на место пользователя. Однажды я забронировал билет United и забыл ввести свой номер постоянного пассажира. После получения подтверждения я отправился на сайт United, чтобы добавить номер, и эта задача заняла у меня десять минут. К этой функции не было очевидных путей, поэтому мне пришлось проверить все ссылки, которые могли бы вести к ней. Я уже был на странице с этой функцией, но я не увидел её в первый раз, потому что она была спрятана в большой форме. Мне пришлось найти информацию о пассажире, пролистать около 20 строк в этой форме, ввести номер пассажира и номер телефона, чтобы отправить эту форму. Это пример программы, которая создавалась без учета точки зрения пользователя.

Читабельность и безопасность

Это наиболее важные моменты, которые отличают профессионалов от любителей. Они знают, что ответственны за создание надежных и безопасных решений.

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

Пользователи будут вводить неверные данные в программу. Некоторые будут делать это специально, чтобы взломать её. Ответственного за недавний скандал с Equifax обвинили в том, что этот человек не сделал свою работу, то есть не создал устойчивую к зловредным входным данным программу.

Безопасность касается не только зловредных данных, но и обычных. Если пользователь забывает пароль, то сколько раз он или она сможет его ввести? Заблокируете ли вы после этого аккаунт? Что если кто-то этого и добивается? Позволите ли вы вводить пароль через незащищенное соединение? Что если попытка логина состоялась из необычного места? Что если логин кажется сгенерированным автоматически?

Что вы сделаете, чтобы защитить пользователей от межсайтового скриптинга и подделки запросов, атаки посредника и простого социального фишинга? Есть ли у вас стратегия на случай DDoS-атаки? Эти вопросы — это только несколько из проблем, к которым вы должны готовиться.

Безопасные программы не хранят чувствительную информацию в форме простого текста, а в виде зашифрованных данных, которые сложно взломать. Это запасная стратегия на случай взлома. В программах будут случаться ошибки, и если вы об этом не знаете или вы не подготовлены, то вас нельзя считать профессионалом.

Дефекты программ невидимы. Наша способность предсказывать и предотвращать известные дефекты ограничена. Поэтому инженеры понимать ценность хороших инструментов, которые могут помочь им писать корректные и безопасные программы.

Инструменты

Несомненно, нам нужны хорошие инструменты. Они многое меняют и часто недооцениваются. Представьте, если бы нам все ещё нужны были FTP для ффайлов! Представьте проблемы с производительностью и устранением багов без Chrome DevTools! Представьте, как неэффективно бы было писать на JavaScript без ESLint и Prettier!

Любой инструмент, который сокращает цикл обратной связи, должен быть ценным дополнением. Аргумент Брета Виктора об изобретении мгновенной визуальной репрезентации того, что мы создаем, открыл мне глаза. Принятие и улучшение инструментов — это единственный способ попасть в это светлое будущее.

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

Выбор языка имеет значение. Типобезопасность имеет значение. Лучшее, что случилось с JavaScript — это TypeScript и Flow. Статический анализ кода важнее, чем вы думаете. Если вы этого не делаете, то ставите себя под удар неизвестных будущих проблем. Не программируйте без системы статической проверки типов. Если в вашем языке этого нет, поменяйте язык или используйте компилятор. Сегодняшние компиляторы могут работать, просто читая комментарии в коде, и это будущее проверки типов для языков, которые не поддерживают её.

Эволюция разработки

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

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

Проблемы эволюционируют, и разработка должна развиваться аналогично. Будущее этой профессии — позволить обычным пользователям использовать свои компьютеры без необходимости учиться пять лет. Дайте пользователям возможность решать простые проблемы простыми инструментами. Инженеры должны создавать хорошие инструменты, решать большие проблемы и пытаться предотвращать неизвестные.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector