Немного фона
Мне сегодня 28 лет, и у меня никогда не было формального обучения по разработке программного обеспечения, но у меня есть две степени высшего образования, эквивалентные степени бакалавра по связям с общественностью и Executive MBA, ориентированных на управление проектами. Я работал на этих полях в общей сложности около 6 лет, 2,5 года назад я уволился / потерял работу и решил сменить направление.
После месяца обдумывания я решил заняться фрилансингом, разрабатывая небольшие веб-сайты в WordPress. Я сам научился этому, и сегодня я могу сказать, что управляю скромными, но успешными карьерными разработками тем и плагинов с нуля для своих клиентов - в основном, агентства аутсорсингуют некоторые из своих разработок для средних и крупных сайтов.
Но иногда я просто чувствую, что отсутствие достаточного изучения математики или формального понимания вещей действительно удерживает меня, когда мне приходится конкурировать или работать с более опытными разработчиками. Я постоянно ищу способы узнать больше, но мне, кажется, не хватает основ.
К сожалению, провести еще 4 года в области компьютерных наук сейчас не вариант, поэтому я стараюсь извлечь все возможное из книг и онлайн-ресурсов. Этот метод никогда не заставит НАСА нанять меня, но мне сейчас все равно. Моя цель - сначала пройти планку и быть в состоянии назвать себя настоящим программистом.
В настоящее время я провожу свободное время, изучая Java для программистов (чтобы овладеть языком, который все считают трудным / требовательным), читаю выдержки из Code Complete (чтобы овладеть передовыми методами), а также Code: The Hidden Language of Computer Аппаратное и программное обеспечение (чтобы понять внутреннюю работу компьютеров).
TL; DR
Итак, моя текущая ситуация такова: я в основном способен написать любую полную систему на PHP (с помощью Google и нескольких книг), интегрировать Ajax, SQL и еще много чего, и, возможно, немного медленнее, чем ожидал бы опытный разработчик из-за всех исследований.
Но вчера я оказался в затруднении, пытаясь найти (не Google) решение для теста FizzBuzz, потому что у меня не было запомненного оператора модуля if($n1 % $n2 == 0)
метода .
Что бы вы предложили в качестве хорошего способа решения этой дилеммы? Какие предметы / книги я должен изучать, чтобы я мог быстрее решать проблемы и, возможно, более "по-программистски"?
РЕДАКТИРОВАТЬ - Кажется, было некоторое замешательство о том, что я не знал, чтобы решить FizzBuzz.
Возможно, я не выразил себя правильно: я знал шаги, необходимые для решения проблемы. То, что я не запомнил, был оператор модуля. Проблема заключалась в переносе базовой математики в программу, а не в знании базовой математики.
Я взял тест для удовольствия, прочитав об этом на Coding Horror . Я просто решил, что это хорошая линия сравнения базовых показателей между мной и формально обученными разработчиками.
Я просто использовал это как пример того, как если бы я не занимался математикой в компьютерной среде, я терял время на поиск таких базовых вещей, как операторы модулей, чтобы иметь возможность решать простые задачи.
stuck b/c I didn't memorize %
проблемы, то стоит отметить, что есть и другие способы сделать это: (при условии, что $ n2! = 0) if (is_int ($n1 / $n2))
или if (($n1 / $n2) == (int) ($n1 / $n2))
Знать ключевые слова - это одно, а знание того, как выразить основные идеи в отсутствие встроенного решения, - это одно. еще один.
I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)
и объединяю это с тем, что вы не знаетеif($n1 % $n2 == 0)
, я удивляюсь тому, как вы знакомы с вещами, написанными на PHP. Я думаю, что большинство вещей, которые вы делаете, выходят за рамки простого вычисления по модулю. Не могли бы вы дать больше информации о том, что, по вашему мнению, вы можете сделать?