一点背景
我今天28岁,我从未接受过软件开发方面的任何正式培训,但是我确实有两个高等教育学历,分别是公共关系学士学位和专注于项目管理的行政MBA。我已经在这些领域工作了大约6年,而在2.5年前,我辞去了工作/辞掉工作并决定转移方向。
经过一个月的思考,我决定开始自由招募以WordPress开发小型网站。我自学了学习它的方式,今天我可以说我在为自己的客户从头开始开发主题和插件方面做得很谦虚但成功的职业-多数是代理商将他们的一些开发工作外包给大中型网站。
但是有时候我只是觉得我没有学习足够的数学,或者对事情没有一个正式的了解,这确实使我落后于当我不得不与更有经验的开发人员竞争或合作时。我一直在寻找更多学习的方法,但是我似乎缺乏基础知识。
不幸的是,现在不能再花4年的时间来学习计算机科学,所以我正在尝试从书籍和在线资源中学习所有知识。这种方法永远不会让NASA雇用我,但我现在真的不在乎。我的目标是首先通过认证,并能够称自己为真正的程序员。
我目前正在业余时间学习Java for Programmers(掌握每个人都说的困难/要求的语言),阅读Code Complete的摘录(掌握最佳实践)以及Code:计算机的隐藏语言硬件和软件(掌握计算机的内部工作原理)。
TL; DR
所以,我目前的情况是这样的:我基本上能够用PHP编写任何完整的系统(借助于Google和几本书),集成Ajax,SQL和诸如此类的东西,而且可能比有经验的开发人员所期望的要慢一些由于所有的研究。
但是昨天我被困于试图为FizzBuzz测试找到一个解决方案(不是Google),因为我没有记住模数运算符的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编写的东西的了解。我认为您所做的大多数事情都超出了简单的模运算。您能否对您认为能够做的事情提供更多的见解?