Создаете полную программу?

15

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

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

Как вы рекомендуете людям, которые не обязательно плохо знакомы с программированием, но плохо знакомы с программированием реальных приложений и настоящих программистов, заниматься его разработкой? Что такое «процесс разработки» - особенно для одиноких программистов (или, может быть, 2-3 подростков)?

Кроме того, что касается веб-разработки, каков процесс? Было ли что-то вроде Facebook или Groupon написано с помощью фреймворка (например, CodeIgniter или Zend for PHP)? Или они развивают свои собственные структуры? Я не спрашиваю, как придумать отличную идею, а как эффективно реализовать прекрасные идеи? У кого-нибудь есть совет?

Я прочитал пару книг на C и C ++ (в первую очередь на языке программирования C и на языке программирования C ++) и изучил AP Computer Science (а также прочитал несколько дополнительных книг по Java и ООП). Я также прочитал несколько учебных пособий по PHP (и CodeIgniter) и Python. Но я все еще в старшей школе, и технически я даже не достаточно взрослый, чтобы работать на стажировке еще несколько месяцев.

боб
источник
3
Reading books, watching videos, and reviewing tutorials is all very easy, Да, читать их легко, понять их - трудная часть.
Яннис
@Yannis Rizos На самом деле, я их понимаю и говорю об этом в предложении позже.
Боб
@ Боб, изучающий материал и действительно понимающий его, на самом деле совсем другой, второй намного сложнее. Мое личное определение «понимания» - это когда я могу объяснить поднятую тему так, как это понял бы десятилетний ребенок. Быстро, объясните «интерфейсы» :)
Thanos Papathanasiou
1
@ThanosPapathanasiou Программное обеспечение, оборудование или концепция ОО? :)
Яннис
2
@YannisRizos - это прелесть объяснять вещи, как если бы вы были десятилетним ребенком, вы были бы вынуждены использовать упрощенный пример, который инкапсулировал бы все три :)
Thanos Papathanasiou

Ответы:

8

Существует разница между простым умением программировать и умением структурировать программу (архитектура программного обеспечения).

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

Есть также книги, которые помогут вам с архитектурой программного обеспечения. Темы, которые вы должны искать, - это шаблоны проектирования , абстракция программного обеспечения, архитектура / дизайн программного обеспечения и многое другое ... ( Head First Design Patterns стала для меня настоящим откровением).

Для более широкого набора ресурсов этот вопрос может вас заинтересовать.

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

Стивен Джеурис
источник
6

Это та же самая распространенная проблема с (инди) разработкой игры: как закончить.

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

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

Цели являются целью для достижения, они не должны описывать, как туда добраться, только какие основные требования / функции вы должны считать первой версией вашего приложения как «законченной». Кроме того, не ставьте цели слишком далеко во времени.

Напишите ваши цели где-нибудь. Напиши это.

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

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

Klaim
источник
4

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

Я вижу, что многие люди, которые только что сделали это, чем думали / читали о том, чтобы сделать это, являются теми, кто преуспевает.

Если вы хотите быть пловцом, просто прыгайте в воду и учитесь плавать, если вы хотите быть программистом, просто начните программировать с идеей и изучите программирование.

Я считаю, что сочинение Питера Норвига уместно здесь: научи себя программированию за 10 лет

18bytes
источник
2
Хороший ответ! У меня есть два друга, которые продолжали читать (начинали читать) книги по программированию, надеясь, что однажды они почувствуют себя готовыми начать программирование. Вы никогда этого не почувствуете. Просто прыгайте в холодную воду и начинайте работать над реальным проектом. Если вы чувствуете, что это слишком сложно, выберите меньшее. Работайте над этим, пока он не закончится. Во время проекта ищите книги и чтения в соответствии с открытыми вопросами, которые всплывают на ходу.
Джорджио
1

Звучит как слишком фокусируются на реализации аспектов программного обеспечения, что только часть всего процесса разработки программного обеспечения (см SDLC). Возможно, вам придется взглянуть на некоторые программные методологии и научиться использовать ту, которая вам нравится. Помимо этого, прочитайте тематические исследования, выясните плюсы и минусы каждого инструмента, которые вы также хотели бы использовать в своем программном обеспечении, оцените и оттуда. После быстрого прочтения вашего вопроса вам, возможно, придется сосредоточиться на областях программного обеспечения для анализа и проектирования , а также узнать о UML, декомпозиции и, возможно, некоторых шаблонах проектирования ... возможно ...

Надеюсь это поможет..

Стив Рэтбоун
источник
0

Короткий ответ, поставьте свои цели и начните.

Нет книги или способа научить вас этому, но есть практический опыт.

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

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

С вашим новым пониманием общих проблем вы получите в книгах абстрактные понятия о чистом и отделенном коде, потому что ваш первый проект будет неразрешимым беспорядком.

Книги (обычные подозреваемые):

Olivers
источник
0

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

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

Кевин Клайн
источник
0

Когда вы выходите из дома и пытаетесь написать несколько программ, которые хотите продать, я рекомендую вам прочитать это эссе Джоэла Спольски о "Уровне абстракции разработки".

http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html

Док Браун
источник