Делаете логический переход от полного новичка к разработчику?

12

Я программировал очень легко в течение нескольких лет, и не добился большого прогресса. Это то, что определенно меня интересует, но у меня просто нет мотивации. Затем, я думаю, я понял, что меня убивает. Кажется, что все книги, которые я прочитал, все просмотренные скриншоты упустили одну важную вещь:

Как мне перейти от операторов печати, переменных и т. Д. К более сложным вещам?

Например, давайте возьмем сайт наподобие Posterous. Для тех, кто не знает, это платформа для блогов, которая принимает сообщения в блоге по электронной почте. У автора блога есть специальная электронная почта @ posterous.com, на которую он отправляет сообщения в блоге, и они автоматически форматируются и публикуются.

Как бы разработчик использовал свой набор функций и операторов для выполнения чего-то подобного в бэкэнде?

Извините, если этот вопрос кажется очень широким, он просто расстраивает меня. Я чувствую, что у меня есть приличное понимание основных понятий, но я не знаю, как на самом деле что- то делать .

Блэр Беквит
источник
Они будут анализировать электронную почту, сохранять кодировку и вставлять текст в базу данных. Затем просто выберите все сообщения и отобразите их на данной странице. Что касается объяснения вашего отсутствия навыков программирования, вы можете улучшить это, просто сделав это больше.
Ramhound
Так много удивительных ответов, ребята. Теперь все становится немного яснее. Спасибо всем!
Блэр Беквит с

Ответы:

12

Ключ состоит в том, чтобы разбить задачу на отдельные шаги, которые вы знаете, как сделать (или можете узнать, как это сделать). То, что вы знаете, как делать, зависит от уровня вашего опыта.

Давайте возьмем пример вашего постерного письма:

Требования: принимайте электронные письма @ posterous.com, форматируйте и публикуйте их на сайте.

Задача 1) Принять электронную почту.

Электронные письма, скорее всего, придется получать с почтового сервера. Вам нужно будет изучить вызовы API, чтобы получить электронную почту с вашего конкретного почтового сервера. Вам также придется выяснить, как извлечь содержимое из тела письма (возможно, еще один вызов API).

Задача 2) Форматировать электронную почту.

Из задачи 1 вы, вероятно, где-то храните содержимое в памяти. Отформатируйте это так, чтобы оно соответствовало шагу 3 ...

Задача 3) Разместить контент в блоге.

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

Теперь, как мы получаем из операторов печати, если операторы и функции для выполнения каждой из задач.

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

Я не особо обсуждал форматирование, но если вы знаете, как выполнять манипуляции со строками, то вы знаете, как форматировать. Форматирование html-страницы - это упражнение по добавлению тегов, например, <b>bolded text</b>внутри строки.

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

Если после прочтения всего этого вы все еще не понимаете, о чем я говорю, то я надеюсь, что убедил вас, что ничто не заменит опыт. Так что просто иди и построй что-нибудь! Не беспокойтесь о том, чтобы делать ошибки нубов, потому что каждый разработчик когда-то был нубом.

Стив
источник
5

Главное - найти то, что ты хочешь сделать и сделать это .

Так начинались большинство великих компаний.

  • Google? Брин и Пейдж были увлечены индексацией сети.

  • MetaFilter? Мэтт Хоги был увлечен написанием и распространением.

  • Twitter? Дорси был увлечен простотой, и вы не стали намного проще, чем 140 персонажей.

  • Переполнение стека? Джоэл и команда были увлечены ответами.

Языки, такие как PHP, Perl, Python и Ruby, были разработаны одинаково. Так было с GNU / Linux. У кого-то была царапина, и она начала чесаться, а затем выпустила свои инструменты для общего потребления.

Так что посмотрите вокруг и решите, где ваш зуд, а затем начните писать программу, чтобы избавиться от этого зуда. Может быть, вам нравится играть в игры, чтобы вы могли написать несколько игр. Возможно, у вас есть проблема с тегами ID3 в вашей коллекции mp3, и вам нужно это исправить. Или, возможно, вы интересуетесь семейной историей и хотите ползти в Интернете, ища ссылки на людей или места в вашей истории. Или, может быть, вы хотите как-то взаимодействовать с реальным миром. Или, может быть, вы хотите разработать программное обеспечение FLOS - взгляните на GitHub, Gitorious и Sourceforge.

Найдите то, чем вы увлечены, и начните программировать, и очень скоро у вас появятся огромные программы, прежде чем вы поймете это. И именно поэтому планирование какого-то рода является хорошей идеей;)

Уэйн Вернер
источник
2

Медленно и постепенно.

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

Чтобы стать лучше, тебе нужна практика! Начните с небольшого проекта. Что-то простое, и это также вас интересует. Планируйте то, что вы делаете, прежде чем делать это, и вы увидите, что «действительно что- то сделать » не так уж и сложно .

FrustratedWithFormsDesigner
источник
1

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

Райан Мэтьюз
источник
1

Я тоже столкнулся с этой проблемой, и в общем и целом я нашел свое решение: мне нужен был внешний источник, чтобы повысить свою продуктивность.

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

Если вы хороший начинающий, вам, возможно, просто нужны идеи. Попробуйте загадки программирования или посмотрите на простые утилиты, которые вы регулярно используете, и спросите себя: «Могу ли я сделать это? Если бы я это сделал, что бы я изменил?»

Это действительно сложно сидеть перед открытым редактором или чистым листом бумаги и говорить: «Ладно, мозги, твори! ». Но если ты сломаешь это, подумай о том, что у тебя может быть причина сделать, и отгоняй себя оттуда, можешь идти дальше.

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

asfallows
источник
1

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

Сначала составьте карту того, что вы пытаетесь сделать, и получите некоторое представление о том, как вы собираетесь это сделать, все сводится к тому, чтобы свести детали к конкретике, поскольку это поможет вам быстрее разобраться в этом. Тогда просто Google, что вы пытаетесь сделать на языке, который вы используете, если вы застряли - даже задавайте вопросы о переполнении стека (я сам уже задал более 70 вопросов, хе-хе)!

Лично я научился гуглить, сначала я даже не взял основы, что я должен был сделать, однако уже к тому времени, когда я делал довольно хорошие вещи, я все еще не знал, что такое «массив». ;)

Джефф
источник
0

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

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

Дж. Лундберг
источник
0

Прыгнуть во что-то немного над головой и понять это может стать отличным способом расширить ваши навыки. Вы можете попробовать взглянуть на некоторые из серии кулинарных книг О'Рейли:

http://oreilly.com/store/series/cookbooks.html

Звуки в формате Проблема / Решение / дискуссии , как это может быть именно то , что вы ищете, код «рецептов» , которые будут DO - то интересное и некоторые дискуссии о том , как это работает.

DKnight
источник
1
Если вы решили совершить покупку, обязательно сначала найдите
DKnight
0

Я думаю, что вы просто не можете бросить вызов себе, чтобы сделать больше.

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

У вас есть лучший инструмент, который вам когда-либо понадобится, Интернет.

Брайан Харрингтон
источник
0

Помимо разбиения проекта на задачи, ключом также является обучение повторному использованию кода. Разделите ваш код на модули, которые вы можете использовать в других проектах, где вам нужно сделать то же самое.

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

Нажмите Upvote
источник