Як молодий розробник, чи повинен я турбуватися про те, що в роботі потрібно використовувати техніку "не в стилі"? [зачинено]


11

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

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

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

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


12
Ви стріляєте собі в ногу, ні, звичайно, ні. Хтось повинен робити те, що ви робите, іноді вам доведеться брати такі роботи, щоб отримати досвід, АЛЕ якщо ваш нещасний шукає іншу роботу. Можна як сподобатися вашій роботі, так і заплатити за неї. Не кожна робота збирається поставити перед собою виклик, ось як складається світ, немає нічого поганого у використанні власних інструментів та Perl.
Рамхаунд

13
Принаймні, це не МУМПИ!
Мартін Бекетт

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

5
@schwern: Я б не хвилювався ВСЕ. Просто введіть ці мови у своє резюме та подайте заявку на наступну роботу. :-)
Джорджіо

7
Perl - це по суті стрічка програмування, про яку ніколи не зашкодить знати, і вона може бути і використовується для майже нічого.
Рятал

Відповіді:


51

Перш за все, перестаньте думати, що ваша робота не наближає вас до своєї мрії! Кожна робота робить! Все залежить тільки від вас!

  • Це ваша перша робота після закінчення навчання, і кожен може зрозуміти, що ви не мали вдалого вибору або могли врахувати деякі інші фактори, наприклад, переїзд до місця, де ви хочете залишитися. Це дійсний "привід", його можна згадати, якщо його безпосередньо запитають під час співбесіди.
  • Кожна робота з програмування сприяє вашому досвіду як розробника. Є багато мовних агностичних речей, які кожен розробник повинен вивчити самостійно (реалізація слабко поєднаних архітектур, налагодження та профілювання коду, написання тестових одиниць тощо), які можна вивчити будь-якою мовою , і Perl не найгірший використання. Я звик практикувати всіх трьох в VBA, що розроблявся для MS Access, і це було дуже цікаво.
  • Зрештою, це не є результативним : доки ви вважаєте, що ваша нинішня робота нудна і марна, ви багато чого з неї не навчитесь. У багатьох випадках вашого майбутнього роботодавця зацікавить ваша «крива навчання» - як швидко ви освоюєте нові технології, а не як нудна остання робота!

Отже, способи, які допоможуть вам, наступні:

  • Спробуйте оволодіти мовою, якою ви зараз працюєте, настільки глибоко, наскільки це можливо . Подивіться тег perl на сайті SO і спробуйте відповісти на питання, яке люди задають там. Читайте документи про багато ресурсів розробника тощо. Спробуйте стати гуру в цій галузі!
  • Perl - багатомовна парадигма, тепер підтримує OOP та багато інших парадигм. Спробуйте розділити їх з мови і поглянути на них окремо. Який тип спадкування має Perl? Які існують різні типи модифікаторів доступу для класів, членів класу тощо? Це сильно набрано чи ні? Багато мов функціонують подібним чином, якщо ви знаєте, як це працює в цілому, ви легко зафіксуєте різницю в інших мовах .
  • Отримати глибоке розуміння вашої поточної системи : чому вона реалізована в Perl? Як тут вирішуються різні аспекти, такі як продуктивність, безпека, надійність? Що таке невирішені проблеми, застереження, можливі порушення? Як би ти впорався з ними? Можливо, потрібні якісь розумні рефакторинг поточної бази коду?

І не залишайтеся на цій роботі надовго, якщо ви незадоволені нею - достатньо лише засвоїти основні навички, проявити свою готовність до навчання та свою силу волі, щоб подолати тупість своїх завдань!

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

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


2
+1 за будь-яку пораду, яка пропонує випускникам виконувати рішення, навіть якщо згодом вони пошкодують про це. Я втратив підрахунок кількості опитаних кандидатів, які стріляли в ногу на співбесіді. Якщо кандидат визнає, що нудьгує, виконуючи той рівень роботи, який очікував випускник, то він розуміє, що вони будуть задоволені, якщо я їх найму. Моя порада будь-якому новому працівникові, чи іншому місту, - шукати проблеми з роботою та повною мірою займатися. У гіршому випадку вони заробили чудовий реферал, а в кращому випадку - просування та більші проблеми.
S.Robins

Ваше захоплення щойно зробило мені день. +1 за дуже обґрунтовану пораду.
Raveline

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

1
+1 - Сильні люди не сидять там і чекають, коли стукають можливості, вони встають і створюють їх.
Спустошена планета

7

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

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

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


6

Я розгляну різні аспекти вашого питання окремо:

  1. Ваша перша робота ніколи не буде дуже складною. Причина полягає в тому, що університет викладає вам речі, які вам знадобляться через 30 років, тоді як компанії повинні працювати з уже наявними технологіями. Можна сподіватися, що 30-річний матеріал є більш досконалим, ніж сучасний стан мистецтва. Тривалість півріччя також спричиняє, що робота відрізняється від тієї, до якої ви звикли в університеті.
  2. Навчання в значній мірі робиться власним часом. Це прикро факт, але вартість людей настільки висока, що вони завжди повинні робити щось продуктивне. Найкращою альтернативою буде, якщо можна поєднувати навчання та продуктивний розвиток, але тоді ви будете працювати з технологіями, яких ви ще не знаєте, і це може спричинити проблеми просто тому, що ви не розумієте технології, яку ви використовуєте. Якщо ви хочете створити речі, які насправді працюють, навчання має здійснюватися поза виробничим середовищем. У багатьох компаніях це просто означає, що це ваш вільний час.
  3. Ви повинні розглядати perl як виклик - як покращити свою робочу практику, щоб вони були корисні не лише perl, але й будь-якій новій системі, з якою ви зіткнетесь через 30 наступних років.
  4. Вивчаючи нові речі, орієнтуйтеся на основи. Perl має регулярні вирази, хеш-таблиці та багато хороших структур даних. Усі знання про те, як їх найкраще використовувати, корисні в майбутньому.

Точка 2 мене дещо лякає. Я завжди мав досить хороший вміння програмувати ще з часів своєї молодості - це було те, над чим мені довелося дуже важко працювати, навіть в університеті. Гра музики, яка займає переважну більшість мого вільного часу (заняття, викладання, навчання, запис тощо), здається, перешкоджає моїм кар’єрним прагненням. Чи існує робота, в якій я все ще можу багато чого навчитися (не лише про процес, але і важкі навички)? Можливо, в академіях?
schwern

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

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

2
@schwern Ключовим завданням є пошук роботи, де ви працюєте з розумними людьми . Тоді ви навчитесь просто піддаватися їм, коли ви будете займатися щоденною роботою.
Кріс Пітман

5

Те, що ви називаєте "не в стилі" технологія, це те, що більшість цієї галузі. Причина проста: для підтримки існуючих систем робиться більше розробок, ніж розробляються нові. І навіть при розробці нових, часто вони розробляться за допомогою старих, але перевірених технологій та технологій, які вписуються в більш великий архітектурний ландшафт. Це просто реальність розробки програмного забезпечення. Мало хто з розробників знаходиться в положенні, що вони завжди здатні працювати над «кровоточивим краєм» технології.

На мою думку, в роботі із [вставте сюр-класну нову технологію] менше слави, ніж у доставці вчасно, бюджеті та відповідно до очікувань. Це те, що ви можете дізнатися лише за допомогою досвіду, і це повністю незалежно від технології. Я б сказав, що ти зараз на хорошому курсі. Продовжуйте навчатись торгівлі та мистецтву розробки програмного забезпечення на роботі та йдіть в ногу з технологічною кривою якнайкраще за межами роботи. Ось так це робить більшість із нас.


+ Технічні стилі постійно змінюються. Що сьогодні круто, завтра більше нікого не зробиш. Треба просто бути компетентним та професійним. Коли з'являється кожна нова штука-чуба-річ, знайте, як відокремити значення від пуху, і знайте, коли його використовувати, а коли не потрібно.
Майк Данлаве

5

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

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

  1. Деякі поширені життєві цикли розробки програмного забезпечення
  2. Контроль джерела
  3. Як перевірити код (TDD, одиничні тести, селен, щось подібне)
  4. Принципи OOD (Наприклад: У коледжі ви, сподіваємось, потрапили до моделей дизайну, тепер покажіть мені, що ви насправді використовували / бачили)
  5. Основне розуміння архітектури підприємства (Наприклад, що таке трирівнева система, і чи працювали ви коли-небудь з однією)
  6. Як працювати з командою

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

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


+ для вашої історії VBA. Я не проти VBA, сам по собі, але робити кар'єру з цього? Ви зробили правильно.
Майк Данлаве

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

3

Якби я був ти, я, звичайно, подумав би зробити читання та програмування після роботи на іншій мові (наприклад, Python, Java, Scala, Ruby, C ++ тощо), тож коли ти подаєш заявку на іншу роботу, ти можеш показати, що ти володієш знаннями про мови які широко використовуються, ніж Perl. Крім того, якщо у вас є інші сфери інтересів, я б неодмінно прочитав додаткове читання.

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

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


2

Якщо ви більше не хочете працювати в Perl, це добре.

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


Я хотів би зазначити, що імпульс Перла різко збільшився за останні 5 років.

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

Moose вважається більшістю, що належить до найкращих об'єктних систем Perl на сьогоднішній день, і це датується лише на початку 2006 року. Наступні найпопулярніші об’єктні системи - це в основному спрощені об'єктні системи Moose .

Якщо ви хочете підтвердити, наскільки популярний Moose , подивіться, скільки модулів CPAN залежить від Moose .

Серед тих модулів, які потребують Moose, є Dist :: Zilla , який завжди вимагав Moose . У разі , якщо ви не знаєте, Dist :: Zilla , можливо єдиний найкращий спосіб збирання і випуск CPAN модулів.


Також є ще кілька цікавих нових проектів, які використовують Perl. Простір Лакуни для одного.


2

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

Немає нічого неправильного у визнанні цього і прагненні до чогось більшого!

Те, що ти зараз робиш, безумовно, формує те, що ти робиш завтра, наступного року та наступних десяти років!

Хто-небудь інший, хто говорить інше, намагається стримати вас або змусити себе почувати себе в тому ж гнітючому місці!

Що стосується Perl, то він не відповідає стилю в «кар’єрному» розумінні цього слова. Як у випадку, якщо ви не хочете зробити кар'єру , будучи хлопцем Perl , починайте вчитися чомусь новітньому і більш модному. Python, Java, C # відкриють більше дверей і будуть більш проданими, або щось таке, що може бути ще одним роком, як Erlang.

Все, що сказано, * вчитися, як не робити **, настільки ж цінне, як робити , а вчитися на помилках інших - менш болісно, ​​ніж вчитися на своєму.

Зараз ви отримуєте уроки з обох цих речей.


-1: Хтось повинен забрати сміття, очистити туалети, викопати канави та працювати в McDonalds. Зараз ви робите версію програми для розробки програмного забезпечення ... Те, що ви робите зараз, безумовно, формує те, що ви робите завтра, наступного року та наступних десяти років! - Чудово ... Тож якщо я буду прибирати туалети чи гартати гамбургери в Макдональдсі, куди це залишить мене через десять років? :?
Джим Г.

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

1

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

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


Якщо чесно, він не збив Перла, він просто сказав, що це не та робота, яку він хоче робити в майбутньому. Тож факт існування робочих місць Perl є другорядним.
R0MANARMY

@ROMANARMY від ОП: "Я рідко бачу роботу Perl, і коли я це роблю, зазвичай це робить щось, що мені не цікаво (фронтальні матеріали для веб-розробок). Програмування, візуалізація систем network programmingабо принаймні матеріали веб-розробки є такі теми, над якими я б із задоволенням працював у "хм ... не те, що читаю ... Я працюю в інтернет-компанії першого рівня, Perl широко використовується для задньої роботи.
Білл

1

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

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

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


1

Шверн,

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

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

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

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

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

Пристрасний програміст

Прагматичний програміст

Дизайн, керований доменом

Кар'єрний програміст


0

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

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

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