Эффективное обучение?

Не могу эффективно построить своё обучение. Изучаю язык C# (Visual Studio), написал несколько небольших программ. Пробовал изучать java, синтаксис такой же приятный как в C#, но среда android studio показалась мне довольно сложной, особенно иерархия проекта, активити, работа с классами и т.д. Пока приостановился в этом направлении. Книг прочитал много, но все они дают поверхностные знания, в основном это синтаксис и какие-нибудь структуры. С видеоуроками также. Когда начинаю писать проект появляются задачи, ошибки, куча исключений, решить которые не получается долгое время, приходиться лезть на форумы, искать подобные решения или спрашивать самому, на что уходит много времени. Большинство форумов вообще на техническом английском языке, изучением которого я также занимаюсь. Везде пишут: больше программируйте, чтобы стать профессионалом, но у меня пока что от такого способа только котелок начинает кипеть.
  • Вопрос задан
  • 1805 просмотров
Решения вопроса 2
mindtester
@mindtester
http://iczin.su/hexagram_48
отличный способ преодолеть фазу обучения в которой Вы увязли - писать программы для себя
(ну или не только для себя, важно - решать реальную задачу, пусть самую маленькую, но полезную себе или кому то рядом + нужно выбирать то что интересно)

для начала простые:
- консольные программы для манипуляции с файловыми обьектами - специфические поиски, бекапирование, поиск мусора для удаления (с этим осторожно ;).. главное что то из того что Вам нужно или интересно
- консольные программы, которые ходят в интернет и что то там достают.. что то такое что Вы действительно каждый день смотрите на главной странице яндекса или любимой соц сети - температуру воздуха, курс доллара.. все что угодно, но лучше всего - то что вы действительно часто смотрите для себя.. так интереснее..
- простейшие винформ программы - пересчет чего то во что то.. главное того, что вы действительно часто считаете
- совместите добычу инфы с вебстраницы с выдачей в винформу
- напишите программу которая прячется в трей + в фоне проверяет интересную для вас инфу на вебстраницах, и по условию выдает всплывающее сообщение об изменении значения... или просто по интервалу времени - текущее значение
- напишите кликер для какого то часто выполняемого Вами в вебе действия, используя встраиваемый браузер в винформ и/или WPF

припомните типовые любые действия которые Вы часто производите за компьютером, и иногда казалось что их можно автоматизировать - и попробуйте это сделать
(если рядом есть бухгалтеры - попробуйте автоматизировать запуск архивирования базы 1С, или написать плагин для Excel - все это, и многое подобное очень весело делается на C#)

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

главное - это переместить внимание от чужих абстрактных задач в учебниках, на что то свое...

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

Вы быстро заметите, что консольные программы удобны до тех пор, пока решаю одну единственную задачу и выдают инфу по ней, что базовых примитивов винформ/ВПФ не хватает для создания интерфейса даже всего лишь чуть более продвинутого чем примитивный..
(на этом этапе рекомендую обратить внимание Syncfusion - хотя они у нас несколько менее известны чем DevExpress или Telerik, зато у них есть бесплатная лицензия, при этом библиотеки компонентов весьма богаты, поддерживаю все платформы MS C#, и еще прилагается огромная коллекция метро икон проф качества и тоже...)

ps
пример полезных подручных средств - относительно недавно я отказался от инсталлрованных хрома и фаерфокса - загружаю периодически хромиум, а фокс и портабельный умудряется себя апдейтить..
кроме того у меня более чем по одному профилю для обоих браузеров, скажем так довольно много..
и задаю я их в командной строке..

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

удачи в обучении! ;)
Ответ написан
Комментировать
@VanKrock
- Попробуйте почитать или посмотрите видео про паттерны проектирования если не читали - это довольно полезно.
- Посмотрите как пишут и организовывают код в других проектах возьмите интересные проекты на GitHub, склонируйте и детально изучите.
- Почитайте про Dependency Injection и IoC контейнеры, это поможет лучше понимать код на GitHub
Вообще я бы советовал сначала прочитать книгу Макконела "Совершенный код" попробовать предложенное на практике, попробовать то, что я написал выше и снова прочитать "Совершенный код".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
решить которые не получается долгое время, приходиться лезть на форумы, искать подобные решения или спрашивать самому, на что уходит много времени.

А вы что хотели? Так у всех.

Везде пишут: больше программируйте, чтобы стать профессионалом, но у меня пока что от такого способа только котелок начинает кипеть.

Правильно, больше практики.

но о каком-то прогрессе пока заявить не могу.

Сколько времени прошло? Не думаю что сильно много. Отвлекитесь, почитайте про XP, может что-то новое для себя откроете. В целом же вам предстоит набить еще много шишек.
Ответ написан
Комментировать
@Elizavetta
Matroid: gamedev/js-разработка
Это и есть основная работа разработчика - разгребать всякие несостыковки, версии, баги, отлаживать.
появляются задачи, ошибки, куча исключений, решить которые не получается долгое время, приходиться лезть на форумы, искать подобные решения

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

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

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