Задать вопрос
@Amarg0
student

Как лечится кризис начинающего программиста?

В общем, такой расклад: начал обучение c# с книги Шилдта ( до этого только примитивный базовый университетский уровень с,с++), всё идёт легко, гладко, а временами ну очень скучно. И постепенно от одной серой главы к другой пропадает сам интерес программировать. Не то чтобы я ожидал от обучения праздника жизни, но всё же.
Возможно, нужно было начинать с чего-то другого, или неправильно рассматриваю обучение в целом, потому что хочется задачек, небольших программ ибо понимание материала происходит очень легко, но также легко я просто забываю его. А когда основательно сажусь писать какую-либо мелькнувшую идею, то понимаю, что практически никаких инструментов под рукой не обнаруживаю.
Доктор, что со мной?
  • Вопрос задан
  • 26745 просмотров
Подписаться 52 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 17
kumaxim
@kumaxim
Web-программист
Господин начинающий, у Вас извращенный подход к программированию в целом.
Программа - это способ более эффективно решить какую-то задачу... способ достижения какой-то заданной цели с меньшим количеством ресурсов.

Возьмем, как пример, тот же бух.учет на предприятии. Как Вы думаете, почему 1С Бухгалтерия так широко распространилась в РФ и СНГ? Эта программа позволяет бухгалтеру в 2-3 клика мышки сформировать отчет для регулятора(ФНС, ПФР и т.д.), вместо того чтобы человеку сидеть руками искать платежные поручения, вычислять налоги и т.п. Софт просто подтягивает выписку из банка, анализирует ее и выдает готовую для печати бумажку, что экономит бухгалтеру сильно много времени. Расчет заплатанный налогов и отчеты в соц.фонды это вообще красота - 8 кликов мышкой и все готово :-)

Что я описал выше? Это способ решения одной конкретной задачи с гораздо меньшим количеством ресурсов, в данном случае - времени. Эта программа экономит время на подготовку бумаг, на расчеты сумм налогов, снижает вероятность ошибки и т.д. Это ее основная ценность, которую несут ее создатели обществу

И вот, далее Вы для себя определитесь, какая Ваша основная цель? Какой Ваш основной посыл обществу?

Личной мой посыл - "Я помогаю людям экономить: время, деньги, нервы и т.д.".

Как я это делаю?
У меня сначала был маленький интернет-магазин по продаже катализаторов для бензина(в поиск "кондиционеры метала для а/м"). При соблюдении определенных условий, расход топлива на малометражках снижался от 20% до 45%
Вторым моим проектам было небольшое мобильное приложение для отслеживания хода исполнительного производства в ФССП(для взыскательней, уже сдохло). Мне и моим знакомым(не юристы) это экономило достаточно много времени на ругань с приставами, чего они должны делать и т.д. Кто сталкивался с этой службой должен знать эффективность и оперативность их работы, особенно в регионах...
Сейчас я пишу небольшой конструктор сайтов, который поможет одной дружественной мне веб-студии сильно оптимизировать процесс создания низкобюджетных сайтов визиток

К чему я все здесь это пишу? Я пытаюсь донести до Вас, что нет Вам смысла учить программирование на какой бы то ни было языке ради самого программирования. Нет смысла Вам учить алгоритмы, структуры, паттерны и т.д. ради их самих.

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

Если говорить о чисто практических инструментах(функции стандартной библиотеки, фреймворки и т.д.)... Лично я могу считать себя профессионалом в какой бы то ни было технологии, ни когда я прочитал 1-2 книги и/или написал 1,5 задачи оттуда же. С таким уровнем я не могу сказать что я знаю язык/технологию в принципе, просто знаком - да, но я ее не знаю. Считать себя профессионалом я могу после того как решу не менее сотни задач, используя эту технологию и написал не менее 1 млн строк кода, именно написал, а не сгенерировал rake/gii/artisan или чем-то там еще.

Вам же я желаю не останавливаться, развивайтесь. Мастерство приходит с опытом.

P.S.: от холиваров на тему 1С прошу всех воздержаться
Ответ написан
@Dementor
программист, архитектор, аналитик
Не знаю насколько мой случай типичен или является экзотикой, но я целенаправленно не учился программировать и все познавал в процессе.

Мне захотелось сделать сайт и я просто открыл исходный код похожей страницы и стал изучать как там все устроено - так я изучил HTML и CSS. Захотел сделать галерею и просто начал делать - в процессе освоил PHP (тогда это была еще третья версия). На сисадминской подработке попросили автоматизировать ежедневную рутинную операцию с заявками - освоил 1С 7.7. На следующей работе меня посадили на поддержку бухгалтерского софта для бюджетных организаций и единственным источником информации были только исходники программы - так я освоил Foxpro и SQL. И все это происходило в начале 2000-х в так сказать догугловскую и достекоферфлововский период.

И вот как-то мне захотелось изучить Java. У меня была какая-то бумажная книга от Питера, потом электронная версия философии Экера, смотрел форумы... Но не пошло и я забросил. А где-то пару лет назад нужно было для моего проекта сделать мобильное приложение и снова все пошло как по маслу - все что в подкорке лежало по Jave всплыло, а остальное быстро выловил на стековерфлоу, джаватолке и стартандроиде.

Так что мой совет: найдите себе дело и просто делайте его.
Ответ написан
Комментировать
DmitryITWorksMakarov
@DmitryITWorksMakarov
Начинай писать какой-нибудь проект. Я в свое время, когда учился программировать (правда по другой книге: "С# для профессионалов" какая-то из редакций), тоже заскучал.....начал писать проекты (например, решение системы линейных уравнений с произвольным порядком, что-то с нейронными сетями еще делал, с СОМ-портом что-то)....появилась какая-то уверенность в своих силах.....появились вопросы....искал в "интернетах", возвращался к книжке....в итоге язык освоил, а книжку использую как справочник.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Доктор, что со мной?

Волчанка

или неправильно рассматриваю обучение в целом

из того что вы расписали у вас в целом и нет этого процесса обучения. Теория это хорошо, но без практики вы не сможете усваивать полученные знания. Так что больше практики.
Ответ написан
@Gems
Что научиться писать программы, нужно их писать.

Есть такое хорошее выражение прямо про ваш случай «чтобы что-то сделать, нужно что-то делать». Дарю!
Ответ написан
Комментировать
Читать книгу, чтобы научиться программировать, бесполезно. Вы не учитесь программировать до тех пор, пока не начинаете программировать.

Сколько книг нужно прочитать токарю или плотнику, чтобы стать высококлассным специалистом? Не стоит полагать, что в программировании что-то иначе.

Пишите свои велосипеды. А вот на их основании книги начнут читаться уже совсем иначе.

Ну и не Шилдтом единым.
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Доктор, что со мной?


Суха теория мой друг
Но древо жизни зеленеет
©Доктор Фауст
Ответ написан
Комментировать
@Eserchik
В процессе обучения важную роль играет "проблемно-ориентированный подход"
Задача программирования решать проблемы или задачи!
Т.е ставите задачу на начинаете ее решать.
В процессе решения вы будете сталкиваться с непонятками, вот их решение вы и будете искать в теоретических материалах.

Я бы делал так:
1) Программирование ради программирования не имеет смысл.
Нужен результат работы который бы удовлетворял ваше эго (результат который реальный пользователь сможет потрогать и оценить, а возможно и купить)
2) C# заменил бы на на что то более практичное например на Java или Obj-c,
Объяню С# применяется B2B секторе или B2C, обычно - это некие проекты для компаний, т.е пока у вас нет компании и проекта, результат вашей работы никто не оценит, соответственно смысла этим заниматься особо нет.(Вам будет скучно,т.к это "Обезьяний труд")
Лучше начать учиться с разработки мобильных приложений, так кол-во скачиваний и лестные отзывы будут греть ваше эго, т.е уже появляется цель для чего это делать

3)Как лучше это делать.
Берете любое приложение с большим кол-вом скачиваний ипытаетесь сделаеть, такое же, но только лучше(Лучше в интерфейсе или каких то плюшках. В общем главное сделать лучше).
Ответ написан
Комментировать
globuzer
@globuzer
gezgrouvingus progreszive ombusgrander greyderzux
ММмммммм, вы определили для себя конкретную цель?
Вы просто хотите научиться программировать или хотите научиться программировать для работы и карьеры, зарабатывания денег и решения задач?
Какова ваша главная мотивация? От этого то все и зависит! Если просто для себя - это все быстро проходит, если нету жуткострашного интереса.
Но и он должен быть чем-то все равно постоянно подпитан и подкреплен, хотя бы любопытством: " а что будет, если я сделаю вот так?"
Если же у вас мотив научиться программировать для зарабатывания на жизнь, развития и построения своей карьеры в этом деле, то одной книги вам явно мало. Тем более Шилдта, тем более только по Си. Накачайте или купите или возьмите популярные книги по программированию, основам информатики, основам математики и алгебры, постарайтесь разобраться во всем, прорабатывайте каждый алгоритм, его решение. Пробуйте разные книги, каждую главу, теорию, подкрепляйте практикой.
Придумывайте себе задачи для автоматизации, для программирования, для решения. Пытайтесь решить. Ставте перед собой сложные и нерешаемые задачи, но которые хотелось бы решить. Ищите ответы, в интернете, в книгах, в форумах. В сложностях рождается истина познания, которая хорошо усваивается и главное запоминается. В этом и будет ваша ценность учебы программированию, а не просто теория. Лично сам сталкивался, теория быстро забывается. И раз по одной книге не получается либо скучно, попробуйте по другой. По языку программирования Си и его диалектам и прообразам за всю историю насобирал кучу книг, как в электронном так и в бумажном виде. Комбинируя их, сочетая с блогами профессиональных программистов, используя и обозревая чужие исходники с гитхаба, читая профессиональные журналы, идеи, статьи, видеоконференции вы будете подкреплены достаточным багажом интереса и стремления все это охватить. И не забывайте про математику, теорию алгоритмов, структуры данных, статистику, теорию вероятностей, алгебру, любите и цените, изучайте и повторяйте основополагающие вещи. В мире программирования они встречаются часто.
Сжимайте всю эту солянку воедино и будет хорошая основа для обучения и понимания, привыкания, осваивания профессии программист.
Кризис начинающего программиста лечиться еще большим программированием и постановкой все новых и новых СЛОЖНЫХ задач и проблем, в решении которых ваше будущее!
Ответ написан
Комментировать
customtema
@customtema
arint.ru
Замените "программирование" на любой другой труд - ничего не изменится.

Работать, только работать.
Ответ написан
Комментировать
@RandomKK
Так не читай Шилда там же столько воды что утонуть можно.
Ответ написан
Комментировать
Bandicoot
@Bandicoot
Вась-программист
Создавайте проекты, которые могут быть так или иначе полезны - самому себе или кому-то другому. Не пишите "в стол", не решайте общих задач.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Как лечится кризис начинающего программиста?
Так же как и другие психические заболевания. Обратитесь к психотерапевту.
Ответ написан
Комментировать
DEFAULT0
@DEFAULT0
Раз два три четыре пять Slender идет тебя искать.
Каждому нужен свой подход, попробуйте начать с книги Head First, и желательно не цифровую лицензию удачи.
Ответ написан
Комментировать
struggleendlessly
@struggleendlessly
.net Senior developer
стартап тебя спасет
Ответ написан
Комментировать
Ничего странного в этой ситуации нет.
Иногда надо делать перерыв.

Книга хорошо, но зайдите на канал https://www.youtube.com/user/CBSystematicsTV/video... пролистайте до конца, и начните с самых первых видео про C#.
Это отвлечет от нудного чтения, как надоест смотреть, возвращайтесь к книге.
Ответ написан
@Sandrokes
Есть один рецепт - практика, и либо всё пройдёт, либо начнётся аллергия :)
Между обучением и самостоятельной работой лежит огромная пропасть, заполнить которую может только практика! Подобно верёвочному мосту, дощечка за дощечкой каждая на первый взгляд бесполезная программа будет закреплять полученные навыки, однако нельзя уповать исключительно на примеры из книг и готовые решения. Часто, такие примеры подробно рассматривают решение одной конкретной задачи, их можно, и нужно развивать, дополняя пройденными ранее элементами, закрепляя их на практике. Всегда надо помнить, что пример это частный случай, и для развития надо смотреть шире.
Формальное знание языка далеко не самое главное в программирование, гораздо важней умение логично и грамотно формулировать свои мысли, ставить и решать задачи, создавать новое знание, не бояться спрашивать и экспериментировать - остальное придёт с опытом.
В этом свете, программирование (на мой взгляд) неразрывно связано с риторикой :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы