В настоящее время я довольно опытен на PHP и написал несколько приложений. Я знаю HTML, CSS, MySQL и Javascript вместе с PHP. Каков следующий шаг в программировании?
(Я знаю, что существуют такие языки, как Perl, C, Python, но не знаю точно, если они основаны на веб-интерфейсах, на базе настольных компьютеров и т. Д.)
обновленный
Мои цели – изучить достаточное количество программ, которые я могу сделать профессионально. Позвольте мне прояснить, что мне 15, и запрограммировал несколько сложных приложений. Я занимался объектно-ориентированным программированием, но едва коснулся работы с фреймворками. Это то, что я должен пойти дальше?
В программировании нет «следующего шага»; PHP, как и другие технологии, которые вы упоминаете, являются инструментами, которые мы используем для решения проблем.
Одна полезная вещь, которую вы могли бы сделать, – посмотреть, как схожие проблемы решаются с использованием других технологий: вы, похоже, заинтересованы в разработке веб-приложений, поэтому аналогичные инструменты существуют как Java / JSP, Ruby / Rails, C # / ASP.NET и скоро. После вашего редактирования это, по-видимому, самый разумный путь, так как платформы, такие как Java и .NET, похоже, как это делают организации, и где навыки используются во множестве заданий в программировании.
Потратив некоторое время на эти маршруты, вас могут заинтересовать более крупные системы, которые используют функции предприятия. Такие вещи, как JSF, Struts или Futher – J2EE с EJB используют веб-технологии, но более корпоративно.
Я также предлагаю вам взглянуть на некоторые веб-приложения с открытым исходным кодом, чтобы увидеть, как инструменты, такие как упоминаемые вами, используются в более крупных приложениях с большим количеством пользователей. Кто знает, возможно, вы можете присоединиться и помочь в широко используемом проекте!
Все, что я могу вам сказать, это мой собственный опыт. Я изучил PHP / HTML / MySQL / Oracle в UNIX около 12 лет назад, и мне понравилось, что это простота использования и то, как вы можете легко скомбинировать сайты (по сравнению с CGI и C). Однако около 6 лет назад я неохотно перешел на «темную сторону» и должен был изучить программирование Windows для своей работы. После ужасного периода обучения «Классический ASP» и VB я попал в новую, новую технологию .NET, в частности ASP.NET и C #. И я очень рад, что сделал.
Изучение «правильного» строго типизированного языка ООП, такого как C # (или Java), поможет улучшить ваши навыки программирования и сделать вас более дисциплинированным программистом. Если вы можете изучить платформу .NET, вы расширите свои горизонты, а также свою возможность трудоустройства. Вы также узнаете много навыков программирования, которые могут переместить вас за пределы Web – в разработку приложений и т. Д. Вы расширите свой взгляд и будете обогащены и вознаграждены в процессе.
Если вы хотите продолжать делать веб-сайты, я предлагаю вам остаться с теми же технологиями, но узнайте больше о них.
Вы действительно не указали, какую работу вы делали в PHP / HTML / CSS / JavaScript / MySQL, поэтому трудно дать указатели.
На стороне PHP есть ряд достойных фреймворков, которые вы могли бы изучить, таких как Zend Framework или CakePHP .
Вы также можете узнать о некоторых ранее существовавших системах CMS, таких как Joomla или Drupal . Многому предстоит пройти – сама система, дополнительные дополнения и разработка собственных аддонов. Если я не создаю что-то, у которого нет каких-либо CMS-подобных функций (что редко), я, как правило, строю почти все поверх Joomla.
Там также улучшаются ваши навыки PHP. Довольно легко попасть в ловушку написания быстрого, простого и незаметного кода спагетти с PHP. Существуют всевозможные полезные шаблоны и методы проектирования, которые вы можете подобрать (вышеупомянутые рамки или CMS могут дать некоторые подсказки о том, как это сделать, и как не делать этого). Вы можете изучить такие вещи, как классы / объекты, соответствующие уровни абстракции базы данных (PDO или даже ADO), применяя шаблоны проектирования для проектов PHP. Стандартные библиотеки содержат много классных функций, которые вы, вероятно, не использовали, а библиотеки PEAR содержат еще больше.
На стороне JavaScript вы можете захотеть взглянуть на такие фреймворки, как JQuery , а затем на некоторые из плагинов , которые были построены поверх него, например, JQuery UI . Добавьте AJAX в свой репертуар.
Почему бы не продолжить работу с PHP?
Станьте экспертом, а затем гуру. PHP – довольно большой предмет, и за несколько лет развития я не стал использовать и знать все его аспекты, независимо от того, сколько больших или меньших проектов я сделал. В PHP-кодировании также существуют разные подходы, в наши дни появились рамки, и они сами по себе являются темами.
И не последнее, вероятно, из-за его популярности, PHP является живым языком и продолжает развиваться. Новые материалы появляются на ежедневных базах, модулях, новых версиях, новых приложениях, новых фреймворках, новых проблемах, которые нужно решить.
В качестве предположения, прежде чем вы перейдете к изучению другого языка, некоторое время, потраченное на разработку шаблонов дизайна, будет содержать значительное количество (языковых нейтральных) фруктов.
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
Это действительно зависит от того, что вы, например, могли бы сделать сложным решением для электронной коммерции с нуля?
Значит, вы знаете, как вам php-классы и объекты?
Возможно, вы могли бы научиться использовать фреймворк javascript, который позволяет создавать фантастические анимации.
Мой совет – выбрать проект, который вы хотели бы создать, и в идеале заинтересованы в том, чтобы использовать его, и посмотреть, где он вас принимает.
Я многому научился и многому научился с Java после PHP и немного Perl, и я очень доволен, что сделал это. Я понял, что в кругах Java гораздо больше внимания уделяется созданию правильных программных архитектур. Здесь я много узнал о качестве программного обеспечения, (гибких) процессах разработки, архитектуре.
Это не похоже на то, что динамические языковые сообщества не способны поставлять надежные приложения или вообще не имеют знаний в целом – я сам из этого мира, и я alos видел много кода дерьма в Java. Тем не менее, я многому научился там.
Я также сделал небольшие проекты с рубинами / рельсами и groovy / grails тем временем и немного поиграл с python / django – но теперь возвращаюсь к подходам на основе Java, но вы можете варьироваться.
В конце концов, хорошо знать несколько языков и фреймворков, чтобы иметь возможность выбирать наилучший вариант, где бы вы ни находились, в зависимости от требований и персонала, и я бы рекомендовал не только изучать динамические, веб-ориентированные языки и рамки, но и более общие , С такими вещами, как Perl (хотя он действительно теряется из-за возможностей Power и OO для thers), Python и Ruby имеют общие языки, которые легко доступны в большинстве систем, могут использоваться для сценариев оболочки, веб-приложений и автономных графических интерфейсов так же – тоже очень хорошее направление!
У меня все еще есть простые C, схемы / lisp и scala – и многие интересные рамки – в моем списке «to-learn».
Разработайте что-то, что может привлечь внимание к языку программирования. Библиотека или файл класса, которые могут помочь сообществу.
Вы также можете думать о чем-то, где вы можете сделать вещи намного проще по сравнению с текущим процессом, который, если вы чувствуете себя жестким словом.
Это очень субъективно, но здесь.
Структуры данных обычно являются вторым университетским курсом по информатике и почти наверняка помогут вам в кодировании. Если вы создадите примеры, чтобы научить себя этому, используйте язык, который вы еще не знаете, так что одновременно получаете знание нового языка и знания новой теории.
Существуют онлайн-ссылки для изучения материала. Вы должны изучать связанные списки, деревья и графики; сортировка, поиск и анализ O (n).
С точки зрения менеджера по найму, я бы ни с кем не беседовал, не продемонстрировав знаний о структурах данных.
В любом случае Project Euler также может помочь вам; это группа задач программирования, призванных помочь вам освоить новые языки и решить задачи, которые помогут вам решить новые проблемы.
На мой взгляд, намек на «следующий шаг в программировании» можно найти, просмотрев некоторые учебные программы по программе CS в некоторых крупных школах. Если бы я был вами, я бы выбрал что-то совершенно отличное от веб-программирования, просто чтобы расширить свое мнение.
Если вам 15, я бы предложил изучить C # и попытаться написать простую игру, такую как Tetris.
Ваш ход мысли правильный: для программиста важно изучать разные языки. Я бы предложил Ruby и Ruby on Rails.
Отличное преимущество Rails заключается в том, что он легко делает все правильно – возможность передать свой код другому разработчику, не проводя недели, чтобы понять, что ваш код довольно большой.
Текущая тенденция на многих языках заключается в том, чтобы поместить их в Rails, т. Е. Реализовать среду MVC. Это было сделано для Javascript, .NET и многих других.
В качестве альтернативы, если вы хотите изучить некоторые основы программирования, получите Структуру и Интерпретацию компьютерных программ и действительно вздумайте!
Единственное, что я предлагаю, – это начать изучение архитектуры программного обеспечения, ООП и шаблонов проектирования, парадигмы программирования.
Вы даже можете использовать инструменты, которые вы уже знаете, просто обновляйте, как вы программируете, изучаете новые и лучшие способы решения задач, смотрите, что делают другие и другие основные структуры.
Поскольку вы используете объектно-ориентированную функциональность PHP, я бы предложил Java дальше. Функциональность OO от PHP в значительной степени была вдохновлена Java, например, они имеют как формализованное «ориентированное на интерфейс» программирование через фактический конструктор / ключевое слово: «интерфейс».
В любом случае, наличие Java в качестве другого языка на стороне сервера, в котором я наиболее свободно работаю для меня. Ваш пробег может отличаться.
Я думаю, вы должны попробовать большие перемены, расширить свои горизонты. Изучите Python , получите pygame и запрограммируйте игру, например tetris, но может быть что угодно. Я определенно рекомендовал бы сделать что-то не-веб-основанное, потому что это поможет вам увидеть вещи под другим углом.
Сначала знайте, что у вас нет никаких ограничений, кроме вашего собственного выхода;)
Если вам интересно писать программы, просматривать интернет и искать приложения, которые, по вашему мнению, «человек, которого я мог бы улучшить» или «хороший инструмент», но у меня есть другие идеи ».
Затем просто загляните за языки, на которых написаны эти приложения, и сделайте несколько быстрых исследований о сложности создания такого приложения самостоятельно (например, на stackoverflow.com).
Когда вы нашли какой-то проект, который вы действительно хотите настроить, и вы выбрали язык, который наиболее подходит для написания этого приложения: начните изучать этот язык.
Не всегда важно искать определенный язык, просто искать проект и настраивать его.