Як я можу зрозуміти, чи правильно для мене програмування? [зачинено]


22

У мене є ІТ-досвід і був досить впевнений, поки на роботі не з’явилася можливість зайнятися програмуванням (C #). Я ніколи до цього не програмував, а програмне забезпечення, для якого я програмую, - це програма, яку я ніколи не використовував (програмне забезпечення для 3D моделювання).

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

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

Як я можу зрозуміти, чи правильно для мене програмування?


11
Ви десь студент? Цікаво, адже в MS є сайт під назвою DreamSpark, де ви можете отримати Visual Studio, SQL та більшість серверів для домашнього комп'ютера. Це може надати вам можливість зробити власне програмне забезпечення для себе та спробувати речі самостійно. Крім того, у MS є досить акуратний навчальний майданчик під назвою Channel 9 , на якому є кілька акуратних проектів. Я пропоную це лише тому, що якщо вам подобається програмування, то деякі з них насправді повинні розважатись, а не працювати.
iMortalitySX

5
Коли з’явилася ця можливість, які причини були для вас?
AakashM

1
@iMortalitySX: Чи доступні інструменти, доступні у DreamSpark, від VS Express Edition?
FrustratedWithFormsDesigner

4
@ User66414 Ваше запитання привернуло пару близьких голосів, тому я трохи відредагував його, щоб зосередитись на головному питанні, яке ви, як видається, задаєте, який, на мою думку, є хорошим для сайту. Не соромтеся відкинути правки, якщо я неправильно зрозумів ваше запитання :)
Рейчел

2
@Rachel: Можливо, нам потрібно запустити петицію, щоб зберегти сайти StackExchange від натовпу Close-All-The-Questions. :-)
Warren P

Відповіді:


87

Є декілька речей, які слід зазначити про програмування.

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

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

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

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

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


11
Я би розмістив власну відповідь, але мені ця подобається. Я хотів додати, що програмування - це все про виконання через створення чогось, що працює. Якщо ви можете порівняти, як ви почуваєтесь між створенням програмного забезпечення порівняно з підтримкою (виправлення) сервера, то ви отримаєте свою відповідь. Крім того, я б настійно пропонував усім новим людям, які навчаються «на руках», щоб спробувати потрапити в команду SCRUM, тому ви працюєте тісно з іншими розробниками та швидко навчаєтесь (але вам потрібно бути в курсі).
iMortalitySX

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

7
... programming can be frustrating, but it can also be very rewarding.Це я називаю "ефектом гірки" професії програмування. Мінімальний рівень дуже низький, може прийти дуже швидко, і з нього важко піднятися. Але максимуми захоплюють дух, і трепет викликає звикання.
Райан Кінал

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

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

24

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

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

Суть моєї складеної історії полягає в тому, що навіть найпростіший пакет моделювання 3D був би еквівалентом розробника програмного забезпечення, який летить на 747. Багато програмістів були б залякані цим, навіть через десять-два десятки років у цій галузі. Не дивно, що ви відчуваєте розчарування: ви взяли на себе неправильне завдання для вашого нинішнього рівня майстерності!

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


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

22

Можливо, ви вибрали не найкращий шлях до вивчення програмування :)

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

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

FWIW, я програмую в MS Windows з 2.x, і якби я заскочив у існуючий проект тривимірного моделювання, я думаю, був би розчарований також на деякий час :)


Я згоден. 3D-програмування - це не зовсім прогулянка по парку. Бізнес-програми у фінансовій, медичній чи технологічній сферах є кращим місцем для початку вашої кар'єри на C #.
ROFLwTIME

+1 для вказівки 3D-моделювання не є хорошою відправною точкою, багато математики також ІМО. Я думаю, що це головне, завжди почніть з легких речей, коли ви намагаєтеся бігти занадто швидко, ви в кінцевому підсумку займаєте більше часу (дивно чи не так?)
fiftyeight

8

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

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

Ось мій список того, що ви повинні мати, щоб продовжувати програміст:

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

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

Редагувати: Якщо у вас виникли проблеми з чимось, спробуйте точно визначити, у чому проблема, і перенесіть її на один із сайтів Stack-Exchange, якщо на ваше питання ще не відповіли, ви зобов'язані отримати хороша відповідь. Зрештою, вам також буде добре прочитати кілька структурованих книг про парадигми програмування, інженерії програмного забезпечення та алгоритми. Більшість імпортів, проте, продовжуйте писати код - і як більшість відповідей тут пропонують, знайдіть трохи часу для роботи над програмами, не пов'язаними з тим, що ви вже робите, навіть якщо це означає, що ви складаєте власні проекти, щоб працювати вдома.


4

Це просто: вам подобається це робити? Якби вам не платили за це, чи зробили б це у вільний час, для розваги? Якщо відповідь "ні", програмування, ймовірно, не для вас.

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

Я почав програмувати, коли мені було 12 років, і я це зробив, бо хотів. Мені було 20 (і на півдорозі через коледж), перш ніж мені спало на думку, що, можливо, я можу цим заробляти на життя. Це я просто робила, бо любила це.

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


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

Я можу, наприклад, насолоджуватися роботою ОП, якби мені вдалося навчитися чогось справді класного з 3D-математики, і мені подобається вивчати тривимірні системи та пов'язану з ними математику. Про деталі OpenGL або DirectX та відеокарти.
Warren P

2

Моя рада вам - витратити деякий час самостійно на C # та програмування взагалі.

Складіть маленьку гру. Складіть простий інструмент для організації фотографій. Зробіть щось справді.

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

Ресурс, який може бути використаний для вивчення деяких понять:

http://msdn.microsoft.com/en-us/library/618ayhy6.aspx (C # Reference)


2

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

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


2

Я пам'ятаю, починаючи з асемблера на Commodore VIC20. Спочатку я просто дотримувався вказівок щодо хакків, які публікувалися в ігрових журналах, щоб дати мені нескінченне життя на Jet Set Willy або що б там не було, на що я намагався обдурити. У мене з'явилася цікавість і туга, які змусили мене створити власні хаки і зрозуміти, як і чому вони працюють. Це в свою чергу призвело до написання моїх перших програм.

Справа в тому, що я був дуже заплутаний протягом досить тривалого часу (не 6 місяців, але я згоден, що це, мабуть, функція починати з 3D-моделювання), але потім, копійка раптово впала. Я почав розуміти, як код, який я написав, перекладався на інструкції процесора та посилання на пам'ять, і незабаром я міг написати досить грамотний асемблер. Звичайно, ви зараз працюєте на 20 рівнів вище процесора, але я впевнений, що якщо у вас є здатність, цей момент лампочки станеться.

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

Якщо ви можете дати одну пораду, це "наполегливо і вивчити основи об'єктно-орієнтованого програмування". Удачі.


2

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

Навіть я боровся на своєму четвертому тижні програмування: P


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

2

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

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

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


2

Це я чи маю рацію розчаруватися?

Питання, яке вам справді потрібно задати собі:

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

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

Редагувати: "Програмне забезпечення для 3D-моделювання" не є основною програмою потокового програмування. Таким чином, ви можете опинитися в вивченні дуже специфічних знань / методик, які не застосовуються в інших сферах (CRM, бухгалтерський облік, охорона здоров'я тощо). Якщо вам здається, що "3D-моделювання" НЕ цікаво, просто шукайте іншу ділову сферу програмування що стимулює ваш інтерес.


2

3D-графічне програмування - це ніша, до якої навіть більшість добре зарекомендували себе розробники програмного забезпечення не хотіли б потрапити. Я дуже багато працюю з OpenGL і знаю це з перших рук. Сподіваємось, уся ваша робота передбачає роботу зі сценами на більш високому рівні, але якщо ви глибоко внизу в кишечнику, як я. Для нового програміста це схоже на немовля, який бігає ... у спринті на 100 м .... з подібними Усаїном Болтом ... з додатковим тиском людей, що насправді мають реальні очікування, що дитина переможе в гонці.

Однак трапляються чудеса, і вся надія не втрачається.

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

Але серйозно, ви впевнені, що хочете продовжувати це? Що для вас важливіше? ця робота чи повний набір волосся?


1

Нещодавно я просто кинув книгу про C # - оскільки вона не має для мене цінності.

Але можу підтвердити, розчарування та помилки вважаються "нормальними".

Хоча це не термін, що сидить на шиї - не хвилюйтесь.

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

Коли ви отримаєте надзвичайні результати - вони можуть назвати вас "сер" :)

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

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

Всі ненавидять помилок та несправності - але з ними можна рости. Я маю на увазі те, що робити (або навіть провокувати) помилки - це не обов'язково погано.

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

Тому що якщо цілі, які ви поставили, повністю недосяжні - саме це викликає розчарування.

Я дізнався налагодження в SNES Nintendo - я обманював, як мотика, і отримував гроші з консольного журналу за надання їм свіжих читів. Пізніше я отримав Atari ST і навчився кодувати Omikron Basic ... і я все ще тут, зараз самозайнятий майстром JS :)

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


1

Програмування вимагає багато приводу та відданості, щоб дістатися до того, що ви знаєте, що робите, і є винятковими у виконанні того, що знаєте.

Щоб ви справді мали успіх, програмування має стати способом життя; а не бажаної професії. Він повинен перерости в одержимість, яка починається від резистора і поширюється на всю мережу, що включає Інтернет.

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

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

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

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

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


1

Я думаю, що найбільш певна річ, щоб запитати себе, це "чи ти любиш вчитися".

За допомогою цього простого запитання ви дізнаєтесь, чи правильно для вас програмування з гідною ймовірністю. Якщо ви не любите навчання, то ні, програмування вам, мабуть, не сподобається. Програмування - це 5% щодо написання коду, 10% - про те, як створити код, і 85% - навчитися писати кращий код та робити кращі конструкції. (і це не змінюється! Я займаюся програмуванням 8+ років і все ще постійно вчуся!)

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


0

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

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