Я начал программировать в возрасте 6 лет на Commodore 64. Теперь мне 28 лет, и я должен закончить 4 курса с первой степени в области компьютерных наук.
Я начинаю скучать по написанию кода после всех этих лет. Я прошел курс компьютерных наук по теоретическим компьютерным языкам и 10-летнему программированию на языке C в области сетевой безопасности, и я просто не получаю никакого стимула от написания кода.
Я могу написать код на C, C ++, Python или любом другом языке, который вы хотите, но я не могу быть в восторге от того, что я делаю. Я не чувствую никаких проблем. Я написал многопоточный код, HTTPS MITM-прокси и приложение WSGI без каких-либо специальных навыков в области алгоритмов.
Я чувствую, что все эти новые вещи все те же, с более простыми (или более) абстракциями или автоматизацией, но для меня все это звучит одинаково. Снова и снова. Все вычислимые языки вычислимы по Тьюрингу, поэтому кодирование - это всего лишь репликация аналогичного шаблона в этом подмножестве частичной функции.
В моей повседневной работе мне скучно даже искать ошибки, делать тесты кода или исправлять проблемы с библиотекой X, Y, Z.
Я очень любопытный человек. Меня всегда что-то стимулирует. Но я не могу, даже когда смотрю на отличный код. Я чувствую себя более комфортно в том, как все работает.
Пришло ли время сделать карьеру в моей карьере? Или получить более сложные вещи в области компьютерных наук? Может быть, получить высшее образование в области CS?
Я начал читать свою первую книгу по управлению проектами «Peopleware», и меня больше интересует жизненный цикл разработки программного обеспечения. Что вы предлагаете делать?
Возможно, пытаясь войти в Google, Microsoft или Apple, как это сделали некоторые мои друзья. Или, возможно, более управленческий путь карьеры. Я также попытался найти хорошую книгу о правилах общения и «личности людей», чтобы подготовить меня к возможности войти в управление.
Какие-либо предложения?
PS: У меня большой интерес, я не в депрессии :) Я люблю горы, треккинг, делаю фотосессии, и я спортивный альпинист, я люблю плавать и заниматься спортом в целом, иногда я бегаю, на самом деле я ' Я читаю книгу о моей стране (Италия), рассказывающую историю AC и до сегодняшнего дня, и я люблю поездки (этим летом я проехал 4000 км, чтобы увидеть много места в Испании и залезть на него, всего за 3 недели, не праздник, а марафон , 24 км треккинга сделали мою травму грыжи), я люблю театр и жизнь в целом.
Спасибо всем, размышления над ответом дают мне возможность прояснить мой путь.
Для краткого изложения мы можем обобщить о наиболее проголосовавшем ответе.
Прежде всего, все люди голосуют за необходимость сделать нашу работу опорой вашей жизни, а не единственной причиной остаться в жизни (это не мой случай), поэтому, если вы только причина жизни, если работаете, вы приходите быстро в действительно депрессивной ситуации. Как говорят люди, Вена не ждет вас :)
После этого напоминания люди предлагают:
- увеличить техническую сложность, над которой я на самом деле работаю, чтобы усложнить задачу и меньше скучать по этому поводу.
- измените область знаний на нетехническую область, пытаясь стать менеджером или сделать карьерный рост в нетехнических областях, связанных с вашей работой.
- измените область знаний в другом виде технической задачи, вы системный программист? постарайтесь меньше скучать над разработкой приложений для людей, чтобы вы могли чувствовать себя более комфортно при просмотре людей с помощью вашего полезного программного обеспечения
- сделать некоторые успехи в вашей степени информатики в вашем академическом пути
Для моей цели правильный ответ - продвинуться в области компьютерных наук. По моему мнению, программирование - не единственный способ получить информатику, и я думаю, что могу чувствовать себя лучше, если поймать другой путь в информатике, отличный от специалиста по программированию.
Ответы:
Это должно было случиться.
Если ваш основной интерес связан с кодом, он будет время от времени приводить вас в бешенство, разочарование и депрессию, а иногда и навсегда.
Интересуйтесь разработкой продуктов и получайте удовольствие от того, как люди их используют. Это конечная цель написания кода, верно? Код - это всего лишь инструмент для выполнения чего-то большего.
источник
Я отвечу на ваш вопрос вопросом ...
Работа программиста - программировать или решать проблемы?
Вы говорите, что вам скучно, потому что написание кода кажется чем-то, что вы делали раньше, как будто каждый бит кода уже был сделан раньше.
Но как вы пришли к выводу, что этот код является кодом, который должен быть написан? У большинства проблем есть сотни способов ее решения, но есть только один лучший способ.
Если вы действительно не найдете проблем, любопытства или интереса в поиске решений или в решении проблем, то вы действительно должны измениться. Хотя я не уверен, что это будет управление разработкой программного обеспечения. Я не хотел бы работать на менеджера программного обеспечения, который чувствовал столько апатии к решению проблем. Вероятно, это должна быть просто другая отрасль с другим набором проблем.
Если вы любите решать проблемы, но не любите программировать, возможно, вы не находите достаточно проблем для решения. Каждый раз, когда моя работа становится утомительной, я считаю, что есть проблема, которую нужно решить. Почему я делаю занятую работу? Какое решение я могу найти, чтобы удалить занятую работу с моей работы? В этом прелесть программирования.
источник
Звуки для меня , как вы сделали ЛИ процедурное программирование и надоели ему - что я полностью понимаю. Определение шаг за шагом во многом одинаково для всех процедурных языков.
Поскольку у вас много неработающих занятий, я бы предложил изучить некоторые концепции, которые не похожи на то, что вы знаете сейчас, и - да - их много, но для начала я бы порекомендовал Haskell, потому что это
Вот полная функция сортировки:
(См. Http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding для объяснения)
Если что-то из этого является новым для вас, я бы посоветовал вам начать приключение.
Удачи повеселиться.
источник
Компьютеры скучные потребители. Когда вы весь день кодируете машинные взаимодействия, они каждый раз реагируют одинаково. Хорошо, чтобы сделать проект, но через некоторое время утомительно. Это действительно помогает разрушить монотонность чем-то, что не связано напрямую с машиной.
Я нашел вдохновение как в фотографии, так и в изучении пользовательского опыта. Подумайте об этом, как получается, что Apple может заставить людей выделять слюну из-за слюны, чтобы следующая вещь вышла из Санта-Клары, когда другие продавцы получили теплый отклик? Вы серьезно думаете, что Android получил бы столь большой отклик, если бы Apple не сопротивлялась выпуску iPhone на Verizon так долго? Я дам вам подсказку: не обязательно, что эти продукты настолько технологичны. В мании есть огромный психологический компонент.
Понимание дизайна продукта и пользовательского опыта - это то, что многим из нас есть чему поучиться. Что заставляет кого-то тикать? Как вы разрабатываете что-то достаточно крутое, чтобы заставить людей отказаться от устоявшегося решения? Как вы создаете свой собственный технологический культ, такой как Apple (не то чтобы я стремился быть лидером культа, заметьте)? Это все очень интересные и стимулирующие вопросы. Они связаны с разработкой программного обеспечения - но теперь ваш фокус изменился.
источник
Возможно, вам просто не хватает технических проблем?
И т. Д. Конечно, будьте готовы изначально зарабатывать меньше в области, где трудность для вас сложная, а не скучная.
источник
Я нашел мотивацию, переместившись в область, в которой нет «правильных» решений, я пишу редакторские инструменты, и моя работа настолько хороша, насколько пользователи находят ее полезной. Я знакомлюсь с множеством нетехнических людей, и вместе мы пытаемся найти способы улучшить программное обеспечение, с которым они должны работать, я нахожу взаимодействие с человеком и необходимость постоянно переключать точки зрения полностью приятным, и внезапное кодирование не так утомительно больше.
Я знаю, что это не для всех, но некоторые справляются с опасностью отсутствия объективной оценки качества вашей работы сложнее, чем другие.
Но это вариант, который может стоить рассмотреть.
источник
Да, у меня иногда возникает ощущение, что на самом деле каждый раз пишут один и тот же код снова и снова. Но нет, мне это еще не надоело. Почему это?
Потому что мне в основном нравится открывать новые способы кодирования и новые, сжатые, элегантные способы выражения чего-либо в коде. Есть два возможных пути решения этой проблемы: изучение новых языков программирования или изучение новых библиотек или сред.
Изучение нового языка программирования стало для меня легче с каждым языком, который я пробовал. И через некоторое время это перестало быть очень интересным. Но затем, примерно год или два назад, я, наконец, перешел к функциональному программированию, которое как парадигма программирования достаточно отличается от ООП, чтобы стать новой проблемой. Я чувствую, что это действительно обогатило мои возможности программирования и дало мне новую перспективу, с которой я могу взглянуть на проблему программирования. Сейчас я пытаюсь открыть разные парадигмы программирования, а не просто разные языки программирования. Это большая проблема.
Во-вторых, изучение новой библиотеки, фреймворка или API: как вы правильно сказали, новые фреймворки часто не решают новых проблем; они просто решают это по-другому, например, добавляя дополнительный уровень абстракции. Возможно, это возможно, потому что современные компьютеры более мощные, чем более ранние; или, возможно, потому что мы в целом становимся лучше в написании программного обеспечения.
Этот последний бит, вероятно, нуждается в пояснении. Я приведу пример: в течение самого длительного времени, практикуя свои навыки программирования, я никогда не задумывался серьезно о поддержке кода, который я писал. С тех пор, как я начал программировать на работе, моя точка зрения изменилась. Написание поддерживаемого кода часто очень важно в корпоративной среде, потому что каждый час, который вы тратите на кодирование, стоит реальных денег, поэтому корпорация будет стараться придерживаться существующего кода, если это возможно, и есть вероятность, что в конечном итоге вам придется пропустить Ваш код для преемника.
Я считаю, что написание поддерживаемого кода на самом деле является большой проблемой. Это часто означает, что вы не будете писать супер-умный и высоко оптимизированный ассемблерный код (помните историю Мел - Настоящий программист , кто-нибудь? ;-) Вместо этого вы с большей вероятностью воспользуетесь абстракцией. Чем ближе вы можете получить свой код к некоторым бизнес-правилам и проблемной области, тем лучше. Вот где появляются все эти новые библиотеки. Если они позволяют записывать код, чтобы он был чистым, ясным, лаконичным и легким для понимания, то это хорошо.
Извините, если этот ответ несколько длинный. Я пытался показать, откуда взялась моя мотивация в программировании ... и мне было бы интересно узнать, чувствовали ли вы когда-нибудь то же самое, и, в любом случае, (и почему) ваша мотивация в конце концов ушла.
источник
Если вы устали от написания кода, если он вас не волнует, если он вас утомляет, вполне может быть, настало время для изменений. Вы можете изучить переход на руководящую должность, а также управлять и направлять других программистов с вашим многолетним опытом работы. Или попробуйте продвинуться в сторону системной архитектуры, где вы могли бы проектировать и планировать системы, и большинство людей выполняло бы большую часть внедрения.
Или вы можете полностью сменить карьеру на то, что не имеет абсолютно никакого отношения к компьютерам. Задавались ли вы вопросом, какой будет работа вашей мечты, если кто-то может дать ее вам?
источник
Начните играть с микроконтроллерами. Это самое освежающее и захватывающее применение таланта программирования, которое я могу себе представить.
источник
Похоже, что отправные точки нашего опыта схожи в том, что мы оба начали программировать в возрасте около 6 лет на одинаковых машинах, и оба занимались программированием по разным причинам. Ни одна из моих степеней не имеет никакого отношения к программированию - у меня есть все музыкальные степени - хотя я и прошел некоторые курсы информатики для выпускников.
Вы правы, я думаю, что вы заметили, что программисты часто решают одни и те же проблемы неоднократно и что «новое» основано на «старом». То, что вы осознаете этот факт, является вашей заслугой; слишком много разработчиков и бизнесменов считают, что новые технологии совершенно не связаны со старыми.
Таким образом, решение таких проблем вам неинтересно. Что было бы интересно? Вам нравится решать проблемы в целом? Может быть, жизнь в качестве «делового» разработчика программного обеспечения не для вас.
Я знаю, что предоставил больше вопросов, чем ответов, но я надеюсь, что ответы на эти вопросы дадут некоторое представление о направлении, которое вы должны выбрать.
источник
Мне кажется, что ты застрял. Вы находитесь в ситуации, в которой вы не хотите быть, и вы не знаете, как из нее выйти. Мой совет прост: делай что-то другое только ради чего-то другого. Даже если это не решит вашу проблему, это, вероятно, расклеит вас.
Не поймите это неправильно (это достойные достижения), но это далеко не полный список всех сложных и захватывающих проблем в программировании. Есть еще много сложных проблем для решения. Самые сложные проблемы связаны с работой в масштабе. Вы написали приложение WSGI, но написали ли вы приложение, которое может обрабатывать миллиард просмотров страниц в день? Вы написали многопоточный код, но вы написали многопользовательский код (с сотнями компьютеров)?
Короче говоря, если вы хотите попробовать сделать что-то нетехническое, сделайте это. Но не делайте этого, потому что вы чувствуете, что решили все проблемы, которые нужно решить, потому что это не так.
источник