向后学习编程,或者“所以我未通过FizzBu​​zz测试。现在呢?” [关闭]


94

一点背景

我今天28岁,我从未接受过软件开发方面的任何正式培训,但是我确实有两个高等教育学历,分别是公共关系学士学位和专注于项目管理的行政MBA。我已经在这些领域工作了大约6年,而在2.5年前,我辞去了工作/辞掉工作并决定转移方向。

经过一个月的思考,我决定开始自由招募以WordPress开发小型网站。我自学了学习它的方式,今天我可以说我在为自己的客户从头开始开发主题和插件方面做得很谦虚但成功的职业-多数是代理商将他们的一些开发工作外包给大中型网站。

但是有时候我只是觉得我没有学习足够的数学,或者对事情没有一个正式的了解,这确实使我落后于当我不得不与更有经验的开发人员竞争或合作时。我一直在寻找更多学习的方法,但是我似乎缺乏基础知识。

不幸的是,现在不能再花4年的时间来学习计算机科学,所以我正在尝试从书籍和在线资源中学习所有知识。这种方法永远不会让NASA雇用我,但我现在真的不在乎。我的目标是首先通过认证,并能够称自己为真正的程序员。

我目前正在业余时间学习Java for Programmers(掌握每个人都说的困难/要求的语言),阅读Code Complete的摘录(掌握最佳实践)以及Code:计算机的隐藏语言硬件和软件(掌握计算机的内部工作原理)。

TL; DR

所以,我目前的情况是这样的:我基本上能够用PHP编写任何完整的系统(借助于Google和几本书),集成Ajax,SQL和诸如此类的东西,而且可能比有经验的开发人员所期望的要慢一些由于所有的研究。

但是昨天我被困于试图为FizzBu​​zz测试找到一个解决方案(不是Google),因为我没有记住模数运算符if($n1 % $n2 == 0) 方法

您会提出什么建议来解决这个难题?我应该学习哪些主题/书,以更快,甚至更多地“以程序员的方式” 解决问题

编辑 -似乎对我不知道的解决FizzBu​​zz感到有些困惑。

也许我没有表达自己的意思:我知道解决问题所需的步骤。我没有记住的是模运算符。问题在于将基本数学转换为程序,而不是了解基本数学。

在阅读有关Coding Horror的文章后,我很有趣地参加了测试。我只是认为这是我与经过正式培训的开发人员之间的良好基础比较。

我只是以此为例说明了如何在计算机环境中不处理数学,然后才让我浪费时间查找诸如模运算符之类的基本知识,从而能够解决简单的问题。


63
当我读到这篇文章: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编写的东西的了解。我认为您所做的大多数事情都超出了简单的模运算。您能否对您认为能够做的事情提供更多的见解?
phant0m 2012年

10
我也是一个自学成才的程序员..十年来一直在使用它,所有时间都在网络上..那时没有网络开发课程...我认为自己学习会有些好处。您确实会想了解基本的OO原理和设计模式。在解决问题时,它们可以帮助您将它们放在脑后。.通常,我发现我并不总是拥有别人所拥有的词汇,但是如果您喜欢编码,并且喜欢编写优雅的解决方案,那么最终您就能将您的方式编码为所需的内容
hanzolo 2012年

56
关于这个stuck b/c I didn't memorize %问题,值得注意的是,还有其他方法可以做到这一点:(假设$ n2!= 0)if (is_int ($n1 / $n2))if (($n1 / $n2) == (int) ($n1 / $n2))知道关键字是一回事,而知道如何在没有内置解决方案的情况下表达基本思想是一回事。另一个。
grossvogel 2012年

18
@grossvogel就是这样!人们喜欢Fizzbuzz的原因之一是有很多解决方法。了解您是否知道模运算符不只是一个技巧。一个关键的编程技巧是把从它的既定成最适合你的知识/工具/资源/等形式形式问题的能力
octern

18
不知道模运算符不是FizzBu​​zz失败的原因。当您发现缺少的东西时,您必须能够解决它。
罗伦·佩希特

Answers:


144

就您而言,因为您是自学成才的,并且已经拥有一种似乎是一种良好,健康且无BS的学习方法。还有一些建议...

实践使完美

我认为您应该参加编程练习,例如:

甚至还可以解决您周围知名大学或本地(或远程)编程竞赛过去的考试问题。例如,我们在法国有一个很好的软件供有抱负的高中程序员使用,称为Prologin,它每年确实为您提供一系列令人头疼的难题(虽然可能只有法语,但很抱歉,但这就是我的意思。 )。

更多信息:在哪里可以找到编程难题和挑战?

经典书籍和参考

我们还可以推荐一长串令人惊叹的 书籍,但我要说的是Zen的答案是没有唯一正确的启蒙方法。

很难告诉您哪些是最重要的。因此,请继续阅读大量内容,以学习避免的一般陷阱以及可以遵循的最佳实践,就像您现在正确所做的那样。

有关更多:

突破极限

另外,寻找令人抓挠的材料,例如:

不一定要作为当今要做的事的一个例子,但是值得尝试弄清楚那里到底发生了什么。

对等系统是激励性的

您可能还想潜伏(并参与)以下社区,以与他人面对面来逐步提高自己的技能。

兼职教育

如果您没有时间或动力去参加另一门为期四年的课程或类似的课程(可能甚至没有必要或无济于事,而且昂贵),则可以考虑在网上寻找教材。当然,这些不限于计算机科学。

得益于MIT OpenCourseWare最初的努力,现在有成千上万的大学紧随其后,您可以免费找到许多大学水平的课程资料。自己导航和阅读并不总是那么容易,但是有些做得很好。要从头开始并达到更高的水平,请考虑同时考虑可汗学院

有些甚至更进一步,并免费提供真正的在线课程,您可以在该课程中同样获得该课程的材料,但它们还提供有节奏的讲座和定期的自我评估。例如,访问CourseraUdacity

上面的大多数内容经常在YouTube或iTunesU上发布他们的讲座,因此,如果您对知识的渴求还没有被前面的所有链接所消除,那么您会发现很多材料。

如果您想提供与“真实”大学更近的体验的东西,可以考虑使用远程大学,这些大学也可以让您从事兼职工作,但要求您保持步调,并进行自我评估和结业。年考试(有时是现场考试),例如OpenUniversity及其国际版本。

激情让你前进

  • 查找宠物项目:创建您自己的项目或加入一个或多个现有软件项目并做出贡献。
  • 代码,代码,代码。然后编写更多代码。

(并获得足够多的关注来查看您的代码,以批评您并提出不同的看法)

法国人说:

C'est en forgeant que l'on devient forgeron。

继续做您正在做的事情,最终您将成为专家。需要时间和工作。

另请参阅“ 我在学习中遇到麻烦”


PS:尽管这是一个非常有争议的面试工具,并且不能帮助您找到优秀的候选人,但我还是经常使用FizzBu​​zz至少清除掉令人难以置信的“坏人”。因此,请在这个练习的东西上加油!:)


3
超级超级!:)感谢您的清单。欧拉计划和困惑似乎非常好。而且我已经使用了其他一些SE网站。将深入其中。
Moryeida 2012年

@moraleida:很高兴您喜欢这个答案。别客气。
haylem 2012年

关于您的PS:我现在并不真的担心面试,因为我真的不想回到公司当雇员。在阅读有关“编码恐怖”的内容后,我参加了该测试的乐趣。我只是认为这是我与经过正式培训的开发人员之间的良好基础比较。:)
Morideida 2012年

4
+1恰好说明了为什么在最后使用FizzBu​​zz ...我经常在这里或博客上看到有关人们批评它的评论,因为他们认为公司正在使用它来识别超级编码器。(对那些公司:您做错了!)
Izkata 2012年

1
它在某些链接上列出,但我认为它值得一呼:我还会环顾rosettacode.org。它具有大量以各种编程语言解决的不同问题。这是阅读代码的好习惯,这与编写代码一样重要,也是查看许多解决同一问题的不同方法的好方法。而且,如果您发现用您所知道或想要学习的语言尚未解决的问题,那对您来说就是编程上的挑战。
马克·里德

60
I didn't have the if($n1 % $n2 == 0) method memorized.

我已经很长时间没有编码了(大约在27个月前开始自学SQL,大约20个月前开始在Perl中进行编码),但是上面的引用听起来像是我从以前的学生那里听到的一些东西:

我应该如何记住要针对每个问题使用的集成技术?

我没有记住是应该相加还是相乘,还是使用“ n select k”或使用阶乘。

等一下!您说x昨天等于2!现在等于零吗?

好的,最后一个可能有点苛刻...但是我要说明的是解决问题不是背诵。如果是这样的话,那么某些天才可以对计算机编程,以解决所有问题,而我们中的任何人都不必再三思(那将是一个多么地狱的世界……)。

现在,的确是,任何智力上的努力都至少需要一点记忆。特别是,如果要使用PHP编写代码,则应该了解基本数据类型(数字,字符串,数组),可以使用它们的基本内容(对于数字:加,减,乘,除和模数;用于字符串:串联,子字符串,替换和至少对正则表达式的一些了解;对于数组:串联,固定元素,拼接元素,循环,计数元素等)以及可以使用的基本逻辑结构(if / then / else语句,foreach循环,while循环等)。

然后,当您遇到问题时,请使用该问题来提供所需工具的上下文。对于FizzBu​​zz,您需要确定一个数字何时可以被3、5或15整除。好吧,所以我们要处理数字。...什么基本工具可以让我们知道一个整数何时可以被另一个整数整除?好,模运算符。因此,使用它。(当然,如果您的数字是$n,您可能会很喜欢,看看它的最后一位数字$n是0还是5,并且/或者如果$n加起来的数字加起来等于3的整数,但是我离题了...)您需要为1到100之间的每个数字执行此操作,因此为了避免进入心皮隧道,请使用foreach循环。

这个故事的士气是,如果您一方面说“我基本上有能力用PHP编写任何完整的系统”,另一方面又说不出FizzBu​​zz的代码,那么第一个断言是不正确的。我的一些以前的微积分学生发誓要理解这些概念,但是他们只是无法解决考试中的问题……或作业问题……或测验问题。他们的理解也是错误的。

停止找借口,学习基础知识。


6
我不背诵,而是代谢这些东西并将其作为直觉的一部分。始终寻求扩大这一范围。
ncmathsadist 2012年

@ncmathsadist-是的,扩大直觉是关键,但是即使直觉也必须依靠少量非常基本的概念和事实的记忆。

对于记录,您不必将数字乘以3,然后再添加数字以查看其是否可以被3整除,您只需添加数字即可。例如,
864、8

@ leaf68-h![拍打额头]你是绝对正确的... lemme编辑!

27

您可能会认为FizzBu​​zz是一个玩具问题;什么时候需要在实际程序中使用模运算符。但实际上您一直在使用它。三个常见示例:

  1. 您正在显示一个表格,并且希望不同行的背景色交替出现。您检查一行是否为偶数(row_number % 2 == 0),并为偶数行显示一种颜色,为奇数行显示一种颜色。
  2. 您有一个正在循环遍历的对象的集合,并且要打印出每行N个对象的表。那么何时添加换行符的标准是(item_number%N == 0)。我实际上对这个确切的行为有一个SO问题,尽管在该模板语言中,条件if item_number % N == 0被写为等效的(if item_number|divisbleby: N)。
  3. 您正在执行要分组为事务的多个操作,这些事务仅在出于效率原因而达到一定规模时才提交。也许您使用的是Google数据API,并且不希望HTTP头/身份验证开销为每个操作创建一个新事务,所以将它们分为50个操作组。或者,您正在将记录保存到数据库中,并希望在合理大小时提交事务。有点像if cur_item_number % 50 == 0 then commit_data

当然,还有其他方法可以完成所有这些事情。但是,您无需使用模数运算符或将浮点除法与整数除法进行比较即可发出嘶嘶声。例如,对于FizzBu​​zz,您可以执行以下伪代码。

div_by_3_rem = 0
div_by_5_rem = 0
for(i = 0; i< 50; i++) {
    if(div_by_3_rem == 0 && div_by_5_rem == 0) {
       print "FizzBuzz"
    } elif(div_by_3_rem == 0) {
       print "Fizz"
    } elif(div_by_5_rem == 0) {
       print "Buzz"
    } else {
       print i
    }
    div_by_3_rem += 1
    div_by_5_rem += 1
    if(div_by_3_rem == 3) {
       div_by_3_rem = 0
    }
    if(div_by_5_rem == 5) {
       div_by_5_rem = 0
    }
}

总而言之,如果有朝一日想成为一名优秀的程序员,请不要学习语言书籍。是的,一本PHP / Java书会让您从google / stackoverflow和半工作程序中获得答案的速度比其他任何东西都快。但是要真正能够知道如何编写质量最佳的程序并像程序员一样思考,您需要对真实的CS书籍有所了解。

从一本介绍编程语言和CS背景的CS书籍开始,以著名的计算机程序结构和解释示例(该课程将教Scheme-Lisp方言)或其他类似Think Python的方法像计算机一样科学家(我没有读过)。这两个都是免费的在线。

您最终需要阅读一本好的算法书,最好是CLRS的算法(不是免费的),尽管这本免费的在线算法书可能是低成本的替代产品(尽管如果您只能购买CLRS)。算法书将教您如何思考解决计算机问题,并向您介绍各种数据结构(数组/链接列表/堆/二叉树/ B树/哈希表)以及需要了解如何最佳使用的重要算法。您不需要记住每个证明,也不需要知道如何完美地编写每个算法(曾经使用斐波那契堆的人);但是您应该直观地知道两个嵌套的for循环是O(N ^ 2); 比较排序最多为O(N Ng N),二进制搜索为O(Ng N),可以找到O(N)的中位数,为什么硬盘数据库使用B树等。至少,对算法书籍的深入了解将帮助您获得google / facebook种类的技术编程访谈。阅读编程书籍时,不要只是略读/阅读;您'

在阅读完CS和算法书之后,我还会推荐一本有关软件工程的书(无论是Code Complete还是Pragmatic Programmer),它将教您如何编写可维护的良好代码(清晰的名称;在必要时进行评论)的最佳实践。 ;将代码放在一起;在必要时进行重构;使用版本控制等)。


4
最好的评论;虽然我看到很多人说练习,练习,练习,但这不是走的路。他们说,实践可以使事情变得完美,但这只会加剧不良行为。致OP:将自己介绍给其他概念,了解为什么比起泡排序更喜欢快速排序。只有完美的实践才能完美。获得该CS课程。
Pieter B

2
感谢您发布示例代码,我已经以为自己必须这样做。–我们可以仅使用“与非”门构建任何复杂的逻辑电路;我们的语言几乎没有图灵完成的简单操作;我们不需要那些花哨的操作员来解决问题。解决问题不仅仅在于了解正确的工具,能够解决问题,找出适合自己的解决方案的程序员。

22

但是我昨天陷入困境,试图找出(不是Google)FizzBu​​zz测试的解决方案,因为我没有记住if($ n1%$ n2 == 0)方法。

没有人会记住那件事。您应该自己提出。如果您知道模运算符并且知道它的作用,那么它就非常适合FizzBu​​zz问题。

我将在这里走出去,一般建议问题出在PHP。我想说Java是有史以来最糟糕的语言,而PHP是有史以来最糟糕的语言,因为即使它的创建者也承认它从未设计过。当您的环境实际上是这样做的定义时,很难学习良好的软件工程实践。依靠框架来完成所有工作并不多说。

我目前正在业余时间学习Java for Programmers(掌握每个人都说的困难/要求的语言)

Java是现有的最简单和最糟糕的语言之一。它只有一件事:垃圾收集的手动继承。如果您的朋友或顾问说Java很难,那就找到新朋友。C ++是一个困难的语言,其中包括了很多的概念,并认为没有人会有异议。您也可以执行C#,至少包含一些泛型和lambda。

当您的语言是由无法编写代码的人设计和实现的,而您依赖于框架来完成所有工作时,您将如何学习编码?


14
@moraleida:查找您没有理由使用的运算符的语法没有什么可耻的。
DeadMG

2
@moraleida:在那种情况下,我同意没有任何实际问题。我认为没有任何专业人士,面试官或其他人应该介意,如果您能清楚地表达自己的意图,那么您是否无法完全掌握另一种语言的确切语法。
haylem 2012年

5
同意大多数观点,但是为什么您认为Java是“有史以来最糟糕的语言”?我不是Java的忠实拥护者,但这听起来很自以为是。
Casey Kuball 2012年

7
-1表示当问题与所询问的内容之间的关系为零时,以该问题为借口来抨击PHP。
StasM 2012年

1
@Darthfett:我可以写一篇文章。快来SO C ++聊天,您可以阅读它:P
DeadMG 2012年

11

我认为您必须认真研究为什么您被困在试图弄清楚FizzBu​​zz的原因。因此,假设您记得,有一个运算符可以$n告诉您该运算符是否可以被数字整除。而且您很不幸会忘记它是什么。很好,为什么不继续尝试其他方式呢?如果您对代码有所了解,那么您应该能够找到其他十二种方法。其中一些可能看起来很怪异-例如,将5的每个倍数放入一个数组中,然后检查其中是否$n包含-这是一个不好的解决方案,但仍然是一个解决方案。但是,您是说没有任何东西,只是被卡住了。这可能是更大问题的征兆。

编程中需要学习两件事。

  1. 一袋花招。如何在PHP中读取文件,如何在Java中解析XML,如何在Python中连接数据库。有些人会记住它,但实际上只有每天使用它们,这些事情才值得记住。否则,您只需转到文档并进行查找。这些东西除了它们的字面形式外没有任何实质内容,您只需要知道特定的魔咒的发音和结果即可。
  2. 心态。这是最重要的。这是您编程的方式,与记忆无关。您需要了解如何向计算机解释要执行的操作,执行操作的方式以及在特定情况下应使用的操作方式。现在,有了现代工具和现代文档,似乎可以使用“技巧包”方法在PHP中编写整个CMS,但是一旦遇到没有现成解决方案的任务,您就会“陷入困境”。

从您的描述看来,您似乎是从第一部分开始的,但是在第二部分中却有所欠缺。良好的CS课程通常可以提供很多帮助,但这不是唯一的方法。尝试解决不同的问题并了解如何解决这些问题,请阅读此处引用的基本书籍-所有这些都将有所帮助。一旦掌握了程序员的思想,您就会发现使用新手法将不会有太大问题。当然,您必须在这里和那里搜索Google,但是您永远不会被束缚。


1
“并了解如何解决这些问题” –实际上,针对同一问题寻找不同的解决方案。尝试了解它们中的每一个,比较它们的共同点和不同之处。理解这些事情,您将自动选择关于同一问题的不同思考方式。

我会完全同意心态。一旦掌握了思维定势和概念,学习基础语言结构就变得容易多了,并且您当然会开始考虑使用其他方法来做事。(例如,对于fizzbuzz,所有可被5整除的数字都将以5或0结尾,因此不需要该部分上的模数操作数)
JohnP

9

您善于发展,而您擅长于其他任何事情:练习。编程世界中有一个很好的概念称为代码kata。从本质上讲,这是一个练习,其中您编写了一个相对较小的问题的解决方案,分析了什么是好的和什么是坏的,将其全部废弃,然后再次进行。FizBuzz本身就是一个kata。因此,做到这一点,并做更多的事情。当您发现看起来不太好或根本不起作用的事情时,请进行研究并彻底检查它。在问答网站上提问,阅读文章和博客,看看其他人如何处理,然后实践所学。

在进行此练习的过程中,您将了解可能需要多少其他数学/理论背景。如果您遇到一些无法解决的问题,请阅读这些概念及其先决知识,然后逐案决定是否要学习课程或具备什么才能扩展自己的知识理论背景。


1
这个代码kata看起来也很棒!
Moryeida 2012年

8

...因为我没有记住if($ n1%$ n2 == 0)方法。

我的意思是,您不了解和/或不记得模数运算符。在这种情况下,首先要检查您使用的语言的语言结构。复习您不“知道冷”的任何内容,并学习您不知道的任何内容。


4
+1。当其他答案都在谈论如何成为一个更好的工匠时,了解实际存在的工具可能更为重要。是否曾经尝试过轻易地卸下损坏的螺丝?还有其他解决方法,但是当您最终了解针对它的工具时,这是一个额头。我想说OP应该很早以前就仔细研究过任何PHP运算符列表,然后与不熟悉的PHP运算符一起玩。
蒂姆·莱纳

5

保持编码,保持学习。最终,您将以足够的奉献精神看着FizzBu​​zz,想知道为什么还要考虑它。许多公司在面试的早期就提出了FizzBu​​zz式的问题,因此一次不参加就意味着您至少了解了有关招聘过程的知识。

只需继续编写代码,提出项目构想并进行研究即可。


4

我可以建议在Java,C ++之前学习JavaScript吗?您的理由:

  1. 用于前端设计(jQuery,一些WordPress插件,Twitter提要,通过JSON将数据库加载到浏览器中而几乎没有后端工作,进行表单验证等)
  2. 可以通过Node.js在服务器端使用
  3. 可用于构建适用于iOS,Android,Win8等的混合应用程序
  4. 学习JS可帮助您更好地了解不同浏览器和设备上的网页性能
  5. JS被设计为对新手更友好
  6. 您已经知道HTML和CSS(我希望;),所以对JS有帮助

免费的新手资源

http://www.codecademy.com/tracks/code-year
https://stackoverflow.com/tags/javascript/info
我还有大约10个链接,但是SE直到我达到10个代表时才允许我发布它们。

学习C ++,Java等也有帮助,但是IMHO不会像JS那样对Web编程产生整体影响,因为您可以在前端和后端都使用它。玩得开心!



1
而当您准备工作时:jobety.com
imns

3

您可以找到并帮助其他人,例如Give.code(公开:我的网站)或Code for America等等。这是使更多人接触非PHP网页制作问题并感觉良好的好方法。

如果您有问题要解决-或帮助解决或只是了解-挑选代码就很自然。有目标是学习某些东西的最好方法。


1
太棒了!这确实是学习的好方法!
moraleida

0

因此,您无法解决FizzBu​​zz问题。大事了 现在您可以了,我敢打赌,您将永远不会忘记各种方式。不要仅仅因为您无法解决一个愚蠢的问题而就急于将自己打造成一个不好的程序员。

那是一个问题。另一个是您似乎对编程学习曲线感到有些落伍。正如其他人所说,请保持编码并继续阅读。您做得越多,就会越好。就这么简单。从您认为是背景中最大的漏洞开始,然后从那里开始。


(这听起来真令人振奋。不确定我在那里取得了成功。大声笑。)
Nick Spreitzer 2012年

0

我不认为我会拒绝推荐某人,因为他们不知道这是模运算符,但前提是:

  1. 他们知道这是某种操作员。
  2. 一旦我提示他们,他们就能告诉我什么是“模数”。

它并不总是(尽管通常)%,有些语言很奇怪。而且,地狱,十年后,我不能诚实地说我知道所有的perl运算符(又是一艘太空飞船又做什么?),我也永远不会永远记得完美的按位运算符。自从我做了任何甚至需要这些的事情已经过去了几年。

我可能不愿意推荐某人的原因是,如果这导致他们因错过该问题/测试而受到惊恐发作。那可能给我的印象是它们有点太绿了(除非这是入门级别的职位)。没有人需要做到(或觉得有必要)记住这些事情的人。您需要了解更广泛概念的人。如果您在Google上查询,就不会有人在意,但是您必须对面试充满信心,知道知道%没什么大不了的,而且您知道在执行快速google时会使用“运算符”作为关键字搜索。

另外,这只是个主意...但是,如果您当地的社区大学有compsci计划,那么您的其他学分将全部转移,并且您两年制学位仅需要约20个学分。一个学期几乎可以完成。他们会让您学习数据结构课程,并希望算法能够……使您变得更强大。


-1

这是一个示例课程:http : //www.ox.ac.uk/admissions/undergraduate_courses/courses/computer_science/computer_science_.html

我建议先阅读以下内容:面向对象的程序设计(非常普遍,在任何地方都可以使用,这是Java的来历)并发(编写在现实世界中不会神秘崩溃的Java程序,了解死锁)数据库概念(大多数应用程序需要保存数据,理论在这里很重要)编程范例(了解至少一种非oops语言,最好是功能性语言,以扩大您的思维范围并学习新知识)

老实说,当我看完四年的计算机科学教育时,我认为您只需要认真学习几门课程。

数据结构和算法(这里需要数学才能真正变得更好,并被其他程序员所重视),计算机网络和操作系统被认为是最重要的。可以处理汇编代码的其他主题对于您而言并不那么重要。软件工程和测试向您展示了有用的概念,您可以随时了解。

只需下载一个以直观方式解释这些概念的pdf文件,您就可以正常进行。

在某些计算机科学课程中,至少在我的计算机科学课程中,一年级是对所有工程领域(如机械,电气,土木等)的入门。适用于当今大多数应用程序程序员。因此,当今许多工程师实际上只接受了3年的计算机科学专业知识培训(希望这会使您感觉更好:)

答案的症结:您每天可能需要花费一些时间来学习,比如说一个小时左右,然后在一段时间内成为一名优秀的程序员。只是继续学习。并记住每天都要编写一些代码。


-3

对我来说,我的策略是仅攻击与我所从事的工作有关的问题,所以我的建议是您不必全部学习,只需阅读与您所从事的工作有关的那些事情,因为如果您尝试一次学习所有内容,那么就有一种容易陷入困境并最终讨厌编程的趋势。

和平

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.