Побудова повноцінної програми?


15

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

Річ у тім, що насправді це не готує вас до написання повної програми чи веб-сайту. Скажімо, ви ці підлітки (тільки в середній школі, немає справжніх (на рівні коледжу) курсів з інформатики чи програмування, і немає реального світового досвіду), і ви зустрічаєтесь з Groupon. Або навіть Марк Цукербург, впевнений, що він геній, і він був дуже здібним програмістом ... але як?

Як ви рекомендуєте людям, які не обов'язково новачки в програмуванні, але новачки в програмуванні реальних програм і справжні програмісти, займаються його розробкою? Який «процес розвитку» - особливо для одиноких програмістів (а може, 2-3 підлітків)?

Крім того, що стосується веб-розробки, який процес? Щось на зразок Facebook чи Groupon написано з рамкою (наприклад, CodeIgniter чи Zend для PHP)? Або вони розробляють власні рамки? Я не запитую, як придумати чудову ідею, а як ефективно реалізувати чудові ідеї? Хтось має поради?

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


3
Reading books, watching videos, and reviewing tutorials is all very easy. Так, читати їх легко, зрозуміти їх - найважча частина.
янніс

@ Янніс Різос Насправді я їх розумію, і про це говорю в реченні згодом.
Боб

@Bob вивчаєш матеріал і справді розумієш його насправді зовсім інше, друге набагато складніше. Моє особисте визначення поняття "розуміння" - це коли я можу пояснити дану тему таким чином, щоб десятирічна дитина не відмовлялася. Швидко, поясніть "інтерфейси" :)
Thanos Papathanasiou

1
@ThanosPapathanasiou Програмне забезпечення, обладнання або концепція ОО? :)
yannis

2
@YannisRizos, яка красуня з поясненням таких речей, як ти, десятирічному віку, тебе змусять використовувати спрощений приклад, який би інкапсулював усіх трьох :)
Thanos Papathanasiou

Відповіді:


8

Існує різниця між просто вмінням програмувати та вмінням структурувати програму (архітектура програмного забезпечення).

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

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

Що стосується більш широкого набору ресурсів, це питання може вас зацікавити.

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


6

Це та сама дуже поширена проблема з розвитком гри (indie): як закінчити.

Крім того, щоб переконатися, що ви можете це зробити, або тому, що у вас є всі необхідні знання або ви готові вчитися - і ви перевірили, що інші люди перевіряли, що це неможливо ...

... головне, що робить можливим «оздоблення» - це встановити цілі .

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

Десь запишіть свої цілі. Напиши це.

Після того, як ви встановите цілі, вам доведеться просто знайти способи його досягнення. Це знаменита «стежка», яка цікавіша за приїзд. Не турбуйтеся про те, щоб досягти стін і виявити, як ви помилитесь. Здебільшого, якщо тема нова, ви зрозумієте її неправильно, і ви дізнаєтеся, чому і зможете правильно її встановити, і зробили налаштування один для іншого, щоб наблизитися до цілей.

Навіть в ігровому дизайні ми знаємо, що ви повинні поставити завдання, щоб переконатися, що гравець навіть абстрактно знає, чого йому потрібно досягти, незалежно від того, яким чином він робить.


4

Багато читати про плавання не робить одного плавця. Звичайно, він готує одного з необхідними знаннями, щоб стати плавцем, який вам доведеться стрибнути у воду.

Я бачу, що багато людей, які щойно це зробили, ніж думали / читали про це, - це ті, хто досягає успіху.

Якщо ви хочете бути плавцем, просто стрибайте у воду і вчіться плавати, якщо ви хочете бути програмістом, просто починайте програмування з ідеї та вивчіть програмування.

Я вважаю, реферат Пітера Норвіга тут актуальний: Навчіть себе програмуванню через 10 років


2
Гарна відповідь! У мене є двоє друзів, які продовжували читати (починаючи читати) книги з програмування, сподіваючись, що одного дня вони почуватимуться готовими розпочати програмування. Ви ніколи цього не відчуєте. Просто стрибайте в холодну воду і починайте працювати над справжнім проектом. Якщо ви вважаєте, що це занадто складно, виберіть менший. Працюйте над ним до її закінчення. Під час проекту шукайте книги та читання відповідно до відкритих питань, які з’являються під час поїздки.
Джорджіо

1

Звучить як дуже фокусуються на реалізації аспектів програмного забезпечення, що тільки частина всього процесу розробки програмного забезпечення (див SDLC). Можливо, вам доведеться ознайомитися з деякими програмними методологіями та навчитися використовувати ту, яка вам подобається. Окрім цього, читайте приклади, з’ясовуйте плюси та мінуси кожного інструменту, який ви також можете використати у своєму програмному забезпеченні, оцінюйте та вирушайте звідти. Після швидкого ознайомлення з вашим запитанням вам може знадобитися зосередитись на областях аналізу та дизайну програмного забезпечення та дізнатися про UML, декомпозицію та, можливо, деякі шаблони дизайну .. можливо ..

Сподіваюся, це допомагає ..


0

Коротка відповідь, поставте свої цілі і почніть.

Немає книги чи способу цього навчити вас, окрім досвіду.

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

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

З вашим нещодавно усвідомленим загальними проблемами ви отримаєте книги тез концепцій чистого і нерозділеного коду, тому що ваш перший проект буде незрозумілим безладом.

Книги (звичайні підозрювані):


0

У цей момент вам потрібно припинити читати про програмування і почати програмування. Якщо ви хочете створити веб-сайт, тоді пройдіть навчальний посібник для обраної вами рамки. Просто виберіть той, який вам подобається. Пропрацюйте підручник, щоб навчитися використовувати рамки, а потім починайте створювати власний веб-додаток.

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.