Я инженер-программист, у которого было программирование позиций в VBA (хотя я не осмеливаюсь учитывать этот «реальный» опыт, так как это было методом проб и ошибок!), Perl с CGI, C # и ASP.NET. Последние два постдипломные, с моим входом в «реальный мир». Я 2 года не учусь в колледже, и у меня было 5 лет опыта (всего) по языкам, которые я упоминал. Тем не менее, когда дело доходит до моего резюме, я могу отложить только 2 года для C # и менее года для ASP.NET.
Я чувствую, что знаю C #, но мне все еще приходится тратить время на размышления «Что делает этот метод?», Тогда как некоторые из инженеров более высокого уровня могут сразу сказать: «О, метод X делает это, даже не взглянув на это. метод раньше. " Так что я знаю эмпирически, что там есть пропасть, но я не совсем уверен, как ее преодолеть. Я начал программировать в Project Euler и взял книгу о шаблонах проектирования, но я все еще чувствую, что трачу каждый день на воду, вместо того чтобы двигаться вперед.
Это не значит, что я не чувствую, что добился прогресса, это просто означает, что, поскольку я прихожу каждый день, я все еще вижу вершину горы вдалеке.
Мой вопрос таков: как вы преодолели это плато? Сколько времени это заняло у тебя? Какие методы вы можете предложить, чтобы помочь мне в этом?
Я прочитал Code Complete , The Mythical Man Month и CLR через C #, 2-е издание - мой вопрос: что мне теперь делать?
Редактировать : я только что нашел этот вопрос о проектах для программистов среднего уровня. Я думаю, что это добавляет к обсуждению (хотя это не вытесняет мой вопрос). Поэтому я добавляю его к вопросу как «Для получения дополнительной информации».
источник
Ответы:
Поздравляем!
Из вашего описания вы являетесь промежуточным разработчиком.
Эта фаза продлится около 3-8 лет, в зависимости от вашей готовности учиться выше и за пределами проблемы момента
Чтобы ускорить процесс, читайте, просматривайте, пишите в блогах, посещайте собрания групп пользователей, находите наставника, проводите независимые исследования, разрабатывайте сторонние проекты и погружайтесь в новые технологии. Это может побрить год или два от времени.
Или вы могли бы жить вне программирования ;-)
Серьезно, будь в курсе и самоанализ, но время от времени выключай #% $ @.
Приложение: когда вы выходите на улицу, не забудьте надеть брюки.
источник
Один из лучших способов подняться в гору - это написать что-то для себя, потому что вы этого хотите. Лучшие программисты имеют замечательные ответы на вопрос «какая самая интересная программа вы написали в свободное время». Если вы не пишете какой-либо код в свободное время, вы не любите свое ремесло, чтобы стать лучше.
источник
Вы должны пройти стадию личинок.
Хотя я сейчас программирую в VB.NET для Windows, я прошел этап личиночки в Linux x86 с ассемблером в качестве основного языка.
Какое-то время вы должны посвятить себя ремеслу, пока не овладеете им. То, что называется инстинктами мастера-программиста, - это действительно выученное поведение. Это общая культура. Программисты должны думать как друг о друге и как машина.
Знать и понимать. Наибольшие навыки не связаны с конкретным языком, но могут применяться практически к любому языку. Знайте концепции, ищите их как на проблемах, так и на разных языках, будьте готовы придумывать новые вещи, когда это необходимо.
Это путь к величию.
источник
Я программирую с 8 лет ... Мне будет 33 года в канун Рождества. Я все еще вижу гору на расстоянии. Неважно, как далеко вы продвинулись, всегда есть чему поучиться.
Возьмите парадигмы за пояс и выясните, как язык, на котором вы сейчас пишете код, реализует эти парадигмы. Программирование - это жизненный опыт, которому всегда есть чему поучиться. Это радость, независимо от того, насколько вы опытны, всегда есть больше.
Один из способов узнать что-то новое, чего я обычно не изучаю, - это проводить время здесь и на других форумах по программированию, таких как Bytes и Experts Exchange, где люди задают вопросы. Если вы можете ответить на вопрос, продолжайте, а если не можете, то постарайтесь выяснить, как выполнить задачу самостоятельно, ОП не только оценит ваши усилия и помощь, но вы также узнаете что-то новое.
Я обнаружил, что узнаю больше, помогая другим людям находить ответы на вещи, которые я еще не знаю, чем когда-либо, просто программируя свои повседневные вещи, которые я делаю изо дня в день.
источник
Промежуточное состояние программирования подразумевает, что вы выходите из менталитета кода «быстрее печатайте» в область стремления создавать реальные системы как карьеру. Это серьезное профессиональное изменение, и, честно говоря, речь идет не о технических навыках. Работа на среднем уровне (он же «разработчик») требует значительного набора навыков людей.
Вот некоторые симптомы, о которых вы могли подумать:
Лучшее резюме, которое я могу придумать, это то, что программист среднего уровня (или «разработчик») научился быть более продуктивным за восемь рабочих часов, чтобы они могли пойти домой и жить вне работы.
Бонусные баллы начисляются, если вам удастся найти супруга и воспроизвести ....
источник
То, что вы делаете сейчас, прекрасно, но если вы хотите невероятно ускорить свой прогресс, вы можете сделать две дополнительные вещи:
1) «Обучить» - простой способ сделать это - завести блог и попытаться внести что-то полезное на регулярной (возможно, еженедельной) основе. Старайтесь рассказывать о вещах, которые вы недавно узнали или о которых вы еще не знали . Это означает, что вы заставите себя исследовать, понимать и заново раскрывать.
Кстати, вы можете очень легко зарегистрировать учетную запись SingingEels, на которую вы получите бесплатный блог в существующем сообществе разработчиков.
2) Пишите много мини-программ - под этим я подразумеваю около 1 в неделю. Вы можете использовать это в сочетании с вышеуказанным ... или просто для удовольствия. Я, молодой разработчик, просто выбрал (не шучу) пространство имен в .NET Framework. В этом случае выберите класс, который вы никогда раньше не видели / не использовали, и создайте небольшую программу, которая его использует.
источник
Попробуй
Читать больше книг Возьмите эти большие названия из Амазонки и прочитайте их. Например, автор Code Complete написал отличную книгу по разработке программного обеспечения - Rapid Software Development, купите одну и прочитайте ее.
Выучить другой язык программирования сценариев, такой как python / ruby, стоит изучить. Или, может быть, функциональный язык программирования :) Это может изменить ваше мнение о программировании. Возможно, вы знаете, что некоторые шаблоны GOF не нужны для языков такого типа.
Присоединяйтесь к сообществу Люди могут обмениваться своими мыслями, слушая других и выступая с презентациями.
источник
Найдите умных программистов и учитесь у них. Подражать им. Обратите внимание на то, что они делают иначе, чем вы.
Ваша компания занимается проверкой кода? Это один из лучших способов учиться. Вы можете быть удивлены предложениями, которые делают более продвинутые программисты, и тем, о чем они думают во время кодирования.
источник
как насчет участия в другом текущем проекте с открытым исходным кодом, так что, по крайней мере, ваша работа будет кому-то полезна, и вы сможете учиться и взаимодействовать с другими более продвинутыми разработчиками, которые работают в реальном мире.
так что, по крайней мере, вы не ограничены в том, что вы хотите изучить или какой тип проекта вы хотите сделать. и это уже бесплатный инструмент, который вы используете, вы можете гордиться тем, что действительно помогаете сделать его лучше.
и это хорошо видно вместе с твоим резюме. :)
так что если это все еще оставляет у вас немного свободного времени, почему бы не вести блог, документирующий ваши знания, опыт, а что нет. кто знает, вы могли бы быть следующей игрой в ужасе программного обеспечения или кодирования: p
источник
Чтобы преуспеть в качестве разработчика на C #, прочитайте следующие два. Обратите внимание, что основное внимание в этих книгах уделяется языку (C #), а не структуре (.NET).
Вы уже читали CLR через C # , иначе это, вероятно, третье предложение для разработчиков C #.
Это также должно сделать вас лучшим разработчиком: Руководства по разработке инфраструктуры и Эффективная работа с устаревшим кодом .
источник