Я перестал программировать чуть больше года назад, когда продолжал бить эту стену. Я возвращаюсь к этой теме, потому что хочу создать базовое приложение для Android. Но я чувствую, что моих ограниченных знаний будет недостаточно.
Здесь моя проблема.
Я прочитал несколько книг и посмотрел видеоуроки на C # / Java, следовал примерам и закончил книгу. В конце они, кажется, всегда оставляют меня ошеломленным относительно того, что делать дальше.
Что значит, что они учат вас от вашего базового приложения «hello world» вплоть до if и массивов, и, похоже, ожидают, что вы узнаете, как выйти в мир кодирования и создать что-нибудь.
Я что-то здесь упускаю? Я знаю, что это строительные блоки всех программ, но книги, которые я читаю, никогда не показывают мне, что делать дальше.
Я полагаю, что простым ответом было бы «начать кодирование», но где? Я читаю "Head First Java", например; вплоть до того, что они скажут вам взять все, что вы узнали, и создать гоночную игру для собак ....
«постарайтесь не обманывать и смотреть на предоставленный исходный код, вы должны быть в состоянии сделать это сейчас» _ это не точная цитата, но в основном это то, что мне сказали .......
Полчаса назад они просто объясняли, как делать массивы, и тогда без какой-либо теории я собирался создать работающую игру?
Причина, по которой я спрашиваю об этом, заключается в том, что я боюсь, что это все, что я должен знать, по крайней мере, для начала кодирования, но мне кажется, что мне дали небольшой набор инструментов и сказали построить небоскреб.
Спасибо за любой совет
источник
Ответы:
Вообще-то, нет. Это не так. Строительные блоки всех программ - абстракция и повторное использование. Многие языки программирования даже не имеют массивов,
if
s или циклов.Есть несколько замечательных книг, которые учат вас программировать, а не тому, как работает конкретный язык программирования, который, кажется, является книгами, которые вы читали.
Как разрабатывать программы ака HtDP это такая книга. Он учит вас, ну, как разрабатывать программы. И делает это, давая вам рецепты, чтобы следовать за тем, как анализировать проблемы, решать их, преобразовывать их в алгоритмы и далее в рабочие программы.
Обратите внимание, что «рецепт» - это, по сути, другое слово «программа», иными словами, книга учит вас программам для людей, которые запускаются у них в голове, чтобы генерировать программы, которые будут выполняться компьютерами. Как это круто? :-)
В настоящее время авторы работают над черновиком для второго издания HtDP , которое вы можете прочитать вместо первого. Материал об императивном программировании был удален и будет описан во еще не написанном втором томе « Как проектировать компоненты» , но вы можете прочитать эти недостающие главы из первого издания.
Обратите внимание, что HtDP не предполагает никаких знаний в области программирования и ориентирован на учащихся старших классов. Но не позволяйте этому останавливать вас: это просто означает, что вы, вероятно, сможете быстрее закончить некоторые первые главы, но я не думаю, что вам будет скучно.
Конкретные Абстракции - также хорошее чтение по подобным венам. Как и HtDP, он не предполагает никаких знаний в области программирования.
Другая книга, о которой вы могли бы упомянуть, - « Структура и интерпретация компьютерных программ», также известная как SICP. Это одна из величайших книг по программированию, когда-либо написанных, и опять же, она не предполагает никаких знаний в области программирования.
Это будет , однако, направлено на комплектные новичок , которые учатся в MIT . И так, в то время как она не предполагает каких - либо знаний в области программирования, он делает предположить , совсем немного области знаний, например , в области электротехники, физики и математики. Примечание: они не имеют никакого отношения к изучаемым концепциям , они просто необходимы для понимания упражнений и примеров . Поэтому, может быть, лучше сначала прочитать HtDP или Конкретные абстракции, а затем прочитать SICP.
источник
if
утверждений или чего-то подобногоloop
: он не был бы полным без них.loop
операторов, и они завершены по Тьюрингу.Ну, вы не в уникальной ситуации. В большинстве книг для начинающих по языку программирования больше внимания уделяется основным строительным блокам языка, и это хорошо. Однако, как это случилось с вами, в конце мы оказались в ситуации, когда мы выучили каждую отдельную конструкцию, которую может предложить язык, но не можем применить ее для решения некоторых практических проблем. Короче говоря, разрыв между текстовыми примерами и практическими программами может быть преодолен только тогда, когда вы попытаетесь поиграть с кодом (как сказал Теластин). Вот что я обычно делаю, изучая некоторые новые вещи:
В конце концов, это все о практике и исследованиях, которые помогут вам улучшить свои навыки программирования и в конечном итоге сделать вас архитектором многих небоскребов.
источник
Смотрите это для C #. Это очень полно: http://www.programmersheaven.com/ebooks/csharp_ebook.pdf Я сам использовал это, всего полгода назад. Я использую компилятор #Develop с ним для примеров. Я не могу вам сильно помочь с Java, потому что я почти никогда не использовал его.
Когда приходит время программировать, многие люди не понимают, что вы обычно используете дополнительный SDK или инфраструктуру для разработки. Поэтому не ожидайте немедленного перехода с Java или C # на программирование телефона, потому что вам, скорее всего, понадобится хорошая промежуточная структура, и кривые обучения для них могут быть такими же утомительными, как и кривые обучения для самих языков программирования. Хотя учебник по C #, который я опубликовал, охватывает только C #, многие из рассматриваемых концепций встречаются в других объектно-ориентированных языках, таких как Java.
Изменить: сценарий, который вы описываете, к сожалению, путь, которому следуют многие учебники. Вам не обязательно следовать такому руководству, и если оно работает против того, как вы учитесь, вероятно, лучше попробовать и другое (я не знаю ни одного, но, вероятно, Google). Но просто чтобы убедиться, проверьте, объясняет ли автор этой книги, которую вы описываете, код построчно. Не беспокойтесь о том, насколько вы умны, только вундеркинд может перейти прямо из книги в рабочую игру. Просто помните, что учебные пособия отнюдь не являются стандартным измерением способностей, поэтому выбирайте то, что преподает вам лучше всего, и не падайте духом!
источник
Да, этого должно быть достаточно, чтобы делать супер базовые программы. На этом этапе вы пытаетесь составить немного более сложную программу, чем то, что вы делали из книг. Когда вам нужно сделать что-то конкретное и не знать, как даже с какой-то работой, тогда вы ищете в Интернете или спросите учителя / наставника. Это приведет к более продвинутым функциям (и довольно часто к тупику, поскольку вы по незнанию выбрали нечто более сложное, чем то, что вы можете сделать).
Ни одна книга не научит вас, как решать проблемы.
Ни одна книга не объясняет, как разрабатывать программы - это приходит с практикой. Ни одна книга не научит вас делать нетривиальные приложения - слишком много нюансов; вы бы научились строить эту реализацию, а не такие вещи.
Лучший способ научиться этому - баловаться. Чтобы поиграть с кодом, чтобы создать что-то. Как художники часто начинают рисовать маленькие лакомые кусочки, которые становятся все более изощренными и красивыми, так и программисты нуждаются в этом исследовательском прогрессе.
источник
Я не могу вспомнить, использовал ли я книгу для программирования, но я думаю, что в те дни это было скорее справочное руководство по синтаксису, а не учебное пособие. Он научил меня тому, что может делать язык программирования, но не тому, как создать из него реальное приложение.
К счастью, в книге было несколько примеров, которые я набирал (да, тогда не было загружаемых примеров исходного кода), а затем пытался выяснить, как это работает. Это не оптимальный способ изучения программирования, но для меня это было весело в то время.
Я бы порекомендовал вам поставить перед собой цель, такую как « Я хочу создать приложение Javascript, которое рисует прыгающий круг », а затем использовать уже приобретенные знания для запуска и поиска всего остального в языковых SDK / документации и / или здесь. на ТАК.
Именно такой подход я использую, когда пытаюсь перейти на новый язык и выучить свои первые шаги. Большинство книг, которые я прочитал в последние дни, меня не удовлетворило, потому что я чувствовал, что упускаю что-то важное . Но, к счастью, у нас теперь есть интернет, поэтому на любом языке, который вы хотите выучить, вы можете найти пример исходного кода в Интернете и использовать его для продолжения обучения.
редактировать Конечно, некоторые более общие книги учит вас , как разработать приложение или какой процесс (SCRUM, XP, V-Modell) для наблюдения является хорошим дополнением к знаниям чистого языка.
источник
Я согласен с Йоргом в том, что вам также следует прочитать некоторые общие книги по понятиям программирования, а не изучать слишком много деталей о конкретном языке на данном этапе. Что касается книги « Как разрабатывать программы» , она используется в качестве справочного материала в этом курсе , который может вас заинтересовать.
В противном случае, другой инструмент, о котором другие не упомянули, это много говорить с другими разработчиками . Я помню, что для меня одним из наиболее эффективных способов обучения программированию было проводить много часов, обсуждая с коллегами или другими программистами аспекты программирования, языков программирования, методов или конкретных проблем, с которыми я столкнулся в тот конкретный момент. Устная передача знаний все еще может быть одним из наиболее эффективных средств обучения новым навыкам.
источник
Я бы предложил найти проекты с открытым исходным кодом и превратить их в личные песочницы. Изменить существующее поведение, добавить новое поведение и удалить некоторые тоже. Поиграйте, воплотите в жизнь свои собственные идеи и «что, если я попробую это».
Я не призываю вас преобразовать кого-то еще в проект с открытым исходным кодом и заявить, что он ваш.
Я говорю о том, чтобы посмотреть на другие рабочие проекты, чтобы научить себя, как перейти к следующим шагам. Есть много сайтов с открытым исходным кодом для скачивания. Вот некоторые из них, которые приходят на ум: CodePlex CodeProject
источник
Это жизнь кодеров. Вы не знаете технологии, но вы развиваете «привет мир» и становитесь экспертом. В компаниях (в реальной жизни) так все и работает. Удачи
источник