Чи будуть мої комунікативні навички марними в кар'єрі інженерії програмного забезпечення? [зачинено]


40

Я був на арені фінансового інжинірингу (після BA Math та BA Computer Science) близько 5 років (20% аналіз / програмування, 80% спілкування) і пишаюся своєю здатністю спілкуватися з людьми та обговорювати технічні проблеми (тобто взаємодія з командою). Я люблю цю частину своєї роботи. Підійдіть до білої дошки, щоб намалювати абстрактні ідеї та мозковий штурм.

Однак, з багатьох причин я хочу перейти свою кар'єру в технологічну компанію (інженерія програмного забезпечення), але я дуже боюся, що потрапляю на роботу зі стереотипного програмування, де програмісти кодують із великими навушниками. Я, звичайно, знаю, що це лише стереотип, але я був свідком подібного середовища раніше (при стартапах), і мене лякає думка, що я міг би перейти до кар'єри ізоляції.

Я люблю алгоритмічно кодувати і мислити, але не хочу відмовлятися від взаємодії з людьми. Я розумію, що володіння навичками спілкування - це лише позитив, але я налаштовую себе на невдачу в кар’єрному щасті шляхом переходу на інженерію програмного забезпечення. Я хотів би почути будь-які роз’яснення та / або поради.


14
Ви розумієте, що відповіді тут можуть бути трохи упередженими, правда?
JB King

2
Абсолютно, але відповіді поки що були чудовими та дуже інформативними.
Райан

Я сподіваюсь, що ви зрозуміли, що ваше запитання настільки незвичне для таких людей, як я, які добре програмують, але відхиляються від HR (і не отримують цієї золотої роботи ...), оскільки їх дефіцит у відділі комунікацій. Навички спілкування безумовно є плюсом, особливо в контексті командного проекту (scrum + standup зустрічі ...) та дистанційної роботи. Ви також виявите, що певне переформулювання відбувається при переході вимог. Є деякі функції, які передбачають менше програмування та більше координації.
Джеймс П.

Абсолютно ні ..
Луї Різ

2
Програмний інженер, який не може висловити свої ідеї як розмовною мовою, так і письмовою комп'ютерною мовою, нічого не вартий.
Рамхаунд

Відповіді:


53

Ось секрет програмування: це майже 100% спілкування . Значна частина цього - спілкування з людиною; решта - це передавання комп'ютера того, що ви тільки що навчилися.

Остання частина легша з двох. Комп'ютери роблять саме те, що їм сказано, і ви завжди можете перевірити, що те, що ви сказали, є правильним.

Перший - це щось інше. Відмінності термінологій, розуміння, пріоритетів, від людини до людини дуже важко отримати правильне повідомлення для подачі на комп'ютер. Міськокомунікації на цьому рівні набагато частіше, ніж неправильні комунікації між програмістом та комп'ютером.

Хороші програмісти добре спілкуються з комп’ютером; чудові програмісти добре спілкуються і з людьми, тим чи іншим засобом.

Ті програмісти, яких ви бачите, що ніколи не виходять із навушників? Вони все ще роблять це спілкування, будь то електронною поштою чи помилковим трекером чи навіть месенджером. Це все відбувається, інакше вони не можуть знати, що сказати комп'ютеру робити.

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


Хороший момент щодо спілкування в цілому, але може змінити акценти на особистих зустрічах на більш приватні та письмові.
JeffO

Якщо ви дійсно вважаєте, що реалізація легша з запропонованих двох частин, то ви працюєте з поганою командою, або реалізація, яку ви робите, занадто проста. Порахуйте кількість робочих годин, витрачених на впровадження, порівняно з розмовою про виконання: реалізація повинна бути чітко 2/3 загальної кількості; якщо ні, то вашому менеджеру потрібна спеціальна зустріч зі своїм начальником.
Джонатан Клайн IEEE

6
@Jonathan: Я б дуже сильно розрізнив складний і трудомісткий.
пдр

3
З часом я дізнався, що спілкуватися з комп'ютером так само важко, як і люди. Річ - це більшість коду, який я пишу, пізніше читає хтось інший (що хтось може бути самим собою через місяць, що дивно не робить це менш важким) - що, по суті, повертає нас до спілкування з людьми, просто в письмова та непряма форма. Код - лист до майбутнього, кодер - це письменник. Джойс кому?
гнат

Кожен може написати код, який комп'ютер може зрозуміти, хороший програміст може написати код, який люди розуміють.
Майкл Браун

23

Програмістам, можливо, хочеться кодувати великі навушники (ну, не всі вони), але це не означає, що вони не можуть спілкуватися, це просто означає, що вони не хочуть, щоб їх турбували в той момент - не те, що вони ніколи не спілкуватимуться.

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

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


1
Повністю згоден з цим. Я надягаю лише навушники, щоб вказати, що я зайнятий.
Іван

7

Мені це здається, що вам слід шукати роботу технічного консультанта. Він часто включає програмування, але також вимагає великої комунікації - з клієнтами, з колегами, консультантами інших компаній ... ОТО це також означає виправлення безлічі технічних проблем без фактичного написання коду, якщо вам це не подобається, вам слід напевно, шукайте різні шляхи. HTH.


2
Ви навіть програміст ??
CenterOrbit

2
Так я. Я також деякий час був технічним консультантом. Що це так засмучує мою відповідь?
SL Barth - Відновити Моніку

Технічний консультант як особа, яка йде назустріч клієнту?
Джеймс П.

@James P. Це те, що я мав на увазі, так - і саме це я робив, коли був технічним консультантом. Заходьте в офіс замовника і допоможіть їм вирішити свої технічні проблеми. Очевидно, що розробникам потрібні також сильні комунікативні навички, але про це вже досить довго обговорювали інші.
SL Barth - Відновити Моніку

6

Навички спілкування є надзвичайно важливими для розробника програмного забезпечення. Десь є статистика (можливо, поруч із статистикою, яка каже, що 68% всієї статистики складається), яка говорить про те, що більшість програмних програм провалюються через погану комунікацію. Хоча бути людиною, яка може спілкуватися з бізнесом (і розуміти бізнес) в команді з розробки програмного забезпечення.


6

Я твердо стверджую, що моя найбільша конкурентна перевага перед іншими програмістами та типами ІТ, про які я знаю, - це моя здатність спілкуватися з людьми, які не володіють ІТ-концепціями. Це є найбільш недооціненою та недостатньо розвиненою майстерністю середнього члена ІТ-спільноти, і все ж це одна з найважливіших.

Майже в кожній ролі, яку можна уявити, в якийсь момент вам потрібно буде поговорити з тим, хто майже не розуміє, що ви робите, і вам потрібно буде мати змогу продати їх у тому, що ви робите.

Можливо, вам також доведеться зіткнутися з користувачами, щоб зібрати вимоги щодо специфікації - що спеціалізований вид прослуховування (у поєднанні з правильними підказками та питаннями) - це і спілкування!

Звичайно, є ще одна перевага - хороші комунікативні навички полегшують роботу в першу чергу набагато простіше.


4

Вітаю. У вас є світле майбутнє як інженера-програми, а потім менеджера інженерних програм (FAE Manager).

У рамках цієї професії стерлінгів ви створюватимете презентації Powerpoint для клієнтів рівня I з текстом "Стек програмного забезпечення", написаним по всьому, та абстрактними дуже складними розробками програмного забезпечення в прямокутні блоки різних кольорів, часто розташовані випадково; ці презентації будуть розпочаті від головних інженерів програмного забезпечення на найвищих рівнях науково-дослідних розробок, перетворюються на ментальність клієнтів із найнижчим загальним знаменником, а згодом вставлятимуться у документи, що пред'являються до вимог, які надаються головним інженерам програмного забезпечення на найвищому рівні науково-дослідних та дослідницьких робіт у якості технічних характеристик для виготовлення або розриву. Один із ваших бонусів залежатиме від ліберального використання слова «хмара».


Слід зазначити, що інженери-програми зазвичай роблять в середньому на 20% -30% більше, ніж дизайнери на тому ж рівні. Це лише тому, що, як кращі комунікатори, вони краще вимагають більш високої оплати; тоді як типовий інженер-дизайнер як поганий комунікатор зазвичай не вимагає більше. Таким чином, стандарт встановлений, і App Engrs сміються весь шлях до банку, все залишаючи роботу раніше, ніж дизайнери щодня. І я згадав про завищені, з більш високою ціною, поза обідами з офісу, тоді як дивовижникам пощастило з'їсти піцу з виїздом у конференц-залі?
Джонатан Клайн IEEE

3

Вам буде краще з великими навичками спілкування. Програмісти, що знижують голову, часто є тими, хто не вкладається у захоплюючі проекти, оскільки їхні менеджери також не можуть їх зрозуміти. По суті, якщо ви ніколи не підійдете до повітря, вас покладуть як "дивний хлопець у кутку".

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

Скільки ви спілкуєтесь, залежить від вас. Ви будете рідкісними, щоб ви опинилися в команді, що переповнені головними програмістами, ні з ким не хоче розмовляти, але якщо ви не любите з придумливим гумором, готуйтеся до того, щоб представити її швидко. Також будьте готові до неминучих соціально незграбних програмістів. Завжди є хоча б один.


3

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


2

Наразі я програмую з великими навушниками. Ну, я просто програмував. Ясно, що зараз я перебуваю на StackExchange ... anywho:

Це правда, що багато програмування робиться солідарно. Для того, щоб добре програмувати, вам ПОТРІБНІ ці фокус та конфіденційність. Однак чи справді ви навіть думаєте, що більшу частину часу витрачаєте на програмування? Багато часу ви будете розділені між зустрічами команди, стратегічними розмовами, ходьбою, мисленням, обговоренням і т. Д. Насправді сидіти за вашим столом друкувати не буде все ваше життя. Я пам'ятаю, як читав у своєму курсі інженерної програми програмне забезпечення, що найкращі / найпродуктивніші програмісти в команді - це вихідні, а НЕ інтроверти.

Хороші програмісти можуть добре спілкуватися зі своєю командою. Отримання та розуміння вимог технічного керівника чи керівника часто не є легким завданням. Для уточнення своїх завдань, а також для спілкування з командою потрібні хороші комунікативні навички. Якщо ви працюєте на шляху до технічного керівника чи менеджера, комунікативні навички будуть вирішальними для проведення команди разом.

Я теж хтось, хто любить бути вихідними. Треба визнати, спочатку я виявив, що кількість солідарності в моїй програмістській роботі трохи пригнічує. Хоча я зробив кілька кроків, щоб зробити роботу більш соціальною, в основному: 1) Відмовлятися від їжі на обіді 2) Робити перерви в тренажерному залі / баскетболі з друзями

Завдання програмування не повинно бути антисоціальним.


2

Навички спілкування точно не будуть марними. Навіть якщо ви витрачаєте 80% свого часу на написання програмного коду, вам повинно бути зрозуміло, що робить код. Ефективна комунікація з вашим клієнтом (або керівником проекту) необхідна для того, щоб ваші зусилля не витрачалися даремно, а фактично призводили до того, що потрібно. Крім того, ви зможете легше пояснити свою роботу, потенційні проблеми з дизайном, більш простими реалізаціями тощо тим, хто менш знайомий з програмуванням. Нарешті, програмуючи інтерактивне програмне забезпечення, комунікативні навички будуть дуже корисними при розробці інтерфейсу користувача, який отримує правильну інформацію у зручному для користувача способі, який буде зрозумілий. Це також допоможе отримати правильну інформацію від користувача для виконання завдання.


1

Я погоджуюся з усіма, хто вважає, що комунікація є ключовою в комп'ютерному програмуванні. Я чесно думаю, що з того, що описано, ви зробите чудового головного програміста або іншого типу «інженера-програмного забезпечення». Я почав як загальний ІТ в компанії, і, як тільки мені вдалося довести свої навички програмування, я перейшов до програміста, будучи дуже соціальним та командно орієнтованим, зараз я провідний програміст у двох проектах. Ви виявите, що чим вище ви отримаєте ланцюг програмування, тим більше білої дошки та вирішення проблем ви почнете робити.

Якщо у вашої особистості є властивість «лідерства» (на що ви натякаєте), ви дуже швидко підніметесь до вершини. Просто за умови, що ви перебуваєте в компанії, яка дозволяє вам рости таким чином.

Соціальні навички, вирішення проблем та хороше програмування часто рідше, ніж вам здається. Роботодавці вбивають за таку майстерність. Я думаю, що ваш на вірному шляху. Просто продовжуйте гарну роботу!


1

Я погоджуюся з усіма, хто каже, що в розробці програмного забезпечення є багато спілкування, і я додам, що навіть написання хорошого коду вимагає хороших комунікативних навичок.

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


1

Звичайно, важливе хороше спілкування! Те, на чому я би зосередився, - це стати відмінним викладачем. Дійсно ефективні програмісти можуть пояснити основу того, що потрібно було зрозуміти років за 15 хвилинний дзвінок. У цій же розмові ви повинні пояснити деталі в нетехнічному плані, щоб людина на іншому кінці лінії могла прийняти освічене рішення, яке найкраще підходить для їхнього бізнесу протягом тривалого періоду.


1

Це залежить від того, куди ти їдеш. Я знаю, що займається торговою компанією, де ви б провели багато часу на дошці, міркуючи з докторами. Я знаю престижну консалтингову фірму, де ви також хотіли б багато спілкуватися, але з людьми, які не мали досвіду технологій ... Я знаю про велику непрограмну фірму Fortune 100, де ви б також робили багато спілкування, але в основному це буде грати в політику.

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

Єдиною областю, де спілкування насправді грає, - це інжиніринг продажів / технічний консалтинг / тощо ... Ось де, якщо ви справді прекрасний комунікатор (а не просто інженер SW, який не є соціальним незручним), ви отримаєте платили приємні гроші. Там продаються і деякі продажі .


0

О, ну, з точки зору людей, що приїжджають ззовні ... Я не можу реально сказати (як це роблять усі інші), що програмування стосується спілкування.

Це насправді не звичайне спілкування щоденне, що базується на взаємній повазі , інтересах та ставках ... це більше стосується читання розуму , вихованки , і певна суперечка , безумовно, пов'язана. Тут теж багато переговорів , але не такого, до якого ви, мабуть, звикли.

Ви дійсно не продаєте sh-t програмістам, ви повинні грати в них або спокушати їх важкими доказами та фактами. Хоча це може здатися справедливим для вирішальних важливих питань місії , застосуйте, що до дрібних неприємностей ніхто, навіть той, хто його викликав, насправді не повинен був піклуватися, і ... ласкаво просимо до спілкування в пеклі .

Якщо у вас є байт у зовнішньому світі (продажі штук / закриття угод / потискування світу) , справді важко адаптуватися до того виду (дещо неповнолітніх, дещо академічного), який програмісти взаємодії працюють у кабінах.

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


0

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

Ви, мабуть, були б щасливішими, як інженер програм, тобто інженер, який допомагає клієнтам адаптуватися та використовувати програмний продукт, що виробляється розробниками «голови вниз». Таким чином ви працюєте з програмним забезпеченням, але більшу частину дня проводите, розмовляючи.


0

Оскільки ви відокремили програмування від своєї інтерпретації спілкування (обговорення з людьми) і хочете спілкуватися з людьми 80% часу, програмування не є хорошим вибором. Можливо, якщо ви потрапите в ситуацію, коли ви можете бути штатним аналітиком, архітектором, менеджером чи клієнтом лізонами (Ви можете поговорити з клієнтами та програмістами, ви інтепретер (Вибачте за невеликий гумор Office Space).

Є етапи проектів, де ви могли провести цілий день біля дошки, але зрештою, вам доведеться написати код. Це форма спілкування, але не така, як ви описали. Можливо, в магазині програмування пар ви можете багато спілкуватися, кодуючи. Більшу частину часу вам потрібно зосередитись на клавіатурі. Носити навушники означає, що вас оточує занадто багато людей, яких немає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.