新手入门程序必须克服的5个障碍

转载 2015年07月09日 15:57:03


程序员作为目前当下互联网行业中必不可少的角色,高薪酬,好就业成为其身上颇具代表性的两个标签。

很多人都有入行或者转行来做程序员的想法。不过想要成为一个合格的程序可并不轻松,作为一个新手想要入门程序,首先就有5个必须克服的障碍。这里笔者一一为大家道来并说明如何克服。


一.不知道选择哪种语言

很多人会问:“我应该先学什么编程语言?”能有此一问,自然是因为你明白程序划分的细致,但也说明认知也仅仅停留在这一层上。

如果你心中已经有了一个既定的目标或者说是想要完成的项目,那么就可以依此做出选择。

1.如果你想构建iOS app,那么你需要学习Objective C或Swift。

2.如果你想构建Android app,那么你需要学习Java。

3.如果你想构建Web app,那么你需要学习JavaScript。

其实现在我们可以使用JavaScript来创建任何类型的项目——无论是简单的web和移动app,还是高级的硬件项目。大多数行业中都有它的身影:音乐、医疗、游戏、时装等等。

此种语言被淘汰的概率极低,且市场需求广泛。如果你追求稳妥,那么笔者建议你学习此种语言。

二.不知道如何学以致用

选择好方向之后,刚开始学习理论总是很轻松的,而且网上也有许许多多免费和付费的在线课程。

很多人都能较快的掌握理论知识,甚至能够做到自己来解释某个代码片段的工作原理。然而一旦实际应用理论来解决问题并编写新代码的时候,就会无力应对。

导致这种情况出现的原因很简单:技能空白。

比如说游泳。你可以阅读大量的技术文章,然后解释得就像一个专业教练。但是,要想实际应用这些理论,就需要大量的实践、斗争和错误——你肯定会吞下大量的水!

所以我们需要将理论结合大量的练习,具体的方法步骤如下:

1.选择一个复杂的项目。最好这项目得能够激起你的兴趣。

2.将 这个任务分割成小而独立的任务。例如,“实现登录页面”是一个很大的任务。但你可以将其分解为多个小任务。而关于一个小任务我们可以再次做个细分:不应该 超过20行左右的代码。一次不使用太多的理论概念。一次专注一项任务,而不是并行解决多任务。不要跳到下一个任务,除非你已经彻底测试过当前任务,并确信 没有问题。

3.自己在开始任务之前知道所有必要的理论知识。有时候,你可能不知道需要学习什么理论,这很正常,所以你需要向他人寻求帮助:程序员朋友,导师,或类似Dev    Store的平台。

4.你解决了任务,获得了经验值。

三.不知道吸取教训

圆满完成任务的感觉很好,但如果你完成任务后,直接开展下一个任务,那么你浪费了一个绝佳的学习与成长机会。

完成任务后,最好做一个完成的总结。例如问问自己以下的问题:

1.哪些边界情况会导致我的代码失败?即使现在还没有失败,有哪些应用程序状态可能会破坏代码?

2.我的代码是否足够整洁?对其他开发人员,甚至是自己而言,代码是否易于理解和改变?因为以后可能需要修复隐藏在这段代码中的问题,或者根据其他产品规格改变代码。

3.我的方法是最好的吗?有没有其他选项是我可以选择使用的?各个方案的利弊?这任务是否值得用不同的方式解决?

4.此模块与其他模块是如何交互的?是否会对其他模块造成负面影响?是否容易被其他模块影响?

四、不知道攻破难点

这里有两种难点。第一种,你不知道如何解决。

你不知道从哪里开始?你可能会随机地去尝试,或者从其他地方复制一些你自己也不明白的代码。但是,这是没有帮助的。即使你复制来的代码有效也没用。因为当你今后再一次碰到类似的任务,你依然不能解决。

如果你想妥善解决任务,那么首先你得知道你为什么卡壳。下面是一些可能的原因:

1.没有很好地掌握这些理论知识:

语言语法。

库或API的工作原理,某个具体方法或类的工作原理。

编程范式(例如:异步编程)。

系统运作(例如:HTTP请求是理解Web开发的关键)。

如果是上述情况,那么可以去复习理论知识,如果依然摸不着头脑,也可以去找人寻求帮助。

2.任务太大了,那就分解为一个个小任务。

3.也有可能是因为你读得太快,忽略了一些你以为熟悉其实似是而非的概念,所以无法理解任务要求。

第二种,你知道如何解决,但解决方法无效。

这是编程中最常见的情况,哪怕是那些经验丰富的资深程序员也是如此。你的解决方案之所以不起作用最大的可能是你的代码中存在着bug。

如何修复?方法是调试代码。这也是作为一个程序员需要学习的最重要的技能之一。这不是可以随便凑合的事,也不是玩幸运猜猜猜游戏。如何寻找bug是有具体步骤的。而且很多书中都有教这个技能。

不幸的是,这是很多新手程序员失去动力选择放弃的难关。很少有课程会说明调试的重要性。如果你不知道如何正确地调试,那么它就是不可战胜无法攻克的难关。

很多人担心会花太多时间用于调试代码。这是正常的,在你第一年的编程规划中这是不可避免的。

甚至,你还得学着去喜欢调试。不妨将此看成是一个机会,一个修复错误提高编程能力的机会。当你解决了一个bug,可以问问自己这个问题:“我为什么会犯这种错误?以后我该如何预防再犯?”

还有一个好主意是将找到的bug写成编程日记,方便你总结和学习。

五、不知道如何利用资源

当你在学习代码,或调试代码时,可以咨询很多材料:书籍、课程、教程、导师,开发者社区等等。

在你学习这些资源时最常见的问题是,你并没有完全了解幕后发生了什么事情,也不知道概念是如何融入到更大的蓝图中的。

简单的打个比方:你在某个问题上花了10小时,最后终于有人提供一个解决方案,你往往会在高兴之余拿了就用,并不考虑太多。而这样做的弊端不小,笔者建议你在解决问题之后:

1.思考自己之前的思维过程。问问自己,做错了什么,对于这个特定的解决方案有哪些是值得你先前的思路借鉴和改进的地方。

2.询问他人的思维过程。她/他是如何解决的呢?向对方学习,吸取经验。

如果你足够细心,可能会发现这五个障碍循环相扣,包含了作为一个程序员从入门到提升的整个过程。作为一个准备入门或者刚刚入门的程序员,可能其中的很多点你还没有接触。但在之前就拥有先验的认识对于你在之后的学习成长中避开弯路还是非常有帮助的。

新手入门程序必须克服的5个障碍

新手入门程序必须克服的5个障碍 2015-06-23 09:26 251人阅读 评论(0) 收藏 举报 目录(?)[+] 程序员作为目前当下互联网行业中必...
  • yejianm1234
  • yejianm1234
  • 2015年06月23日 16:24
  • 50

克服沟通障碍的三种方法

(一)利用反馈     在沟通过程,由于缺乏反馈而导致沟通失败的现象非常普通。我们想当然对方已经明白了自己的意图(因为自认为问题很简单、表达得也很清楚)而忽视了要求对方反馈,其实对方还真没明白你的意...
  • xiaoxiangtuo
  • xiaoxiangtuo
  • 2013年04月08日 10:00
  • 1174

java程序员入门必须克服的5个障碍

java程序员作为目前当下互联网行业中必不可少的角色,高薪酬,好就业成为其身上颇具代表性的两个标签。而刚刚从一些java培训机构培训出来的java程序员又很多人都有入行或者转行来做java程序员的想法...
  • yexiaobo1990
  • yexiaobo1990
  • 2015年07月09日 13:52
  • 318

《团队协作的五大障碍》读后感

一个现代企业最根本的竞争优势来自它的团队,团队建设具有重要意义。书中分析了团队建设过程中容易产生的五种机能障碍及其危害性,同时提出了克服并解决这五种机能障碍的指导方法。结合自己的理解,下面谈谈我对这五...
  • pingwyc
  • pingwyc
  • 2011年09月10日 11:40
  • 10434

摩根士丹利发布2025年区块链技术预测报告

最近,摩根士丹利(Morgan Stanley)发布了新报告分析区块链技术是否会给大型银行造成威胁,并表示该技术的短期收益微乎其微,但却不排除未来有增长的可能性。 该报告标出了摩根士丹利所预...
  • qq53016353
  • qq53016353
  • 2016年04月25日 21:21
  • 299

程序员应克服的障碍

程序员与项目经理之间,往往有一条鸿沟。对技术钻研越深的程序员,这条鸿沟可能越大。这是由程序员的性格特征决定的。 程序员普遍有非常多的优点:例如聪明、逻辑思维强、学习能力强、创新能力强、直率等。但...
  • feiying008
  • feiying008
  • 2012年11月30日 17:54
  • 541

克服当众表达的恐惧心理-《卡耐基语言的突破与相处的艺术》(美)卡耐基

20世纪初,心理学家和哲学家断言,普通人只用了全部潜力的极小的一部分。与我们应该成为的人相比,我们只苏醒了一半;我们的热情受到打击,我们的蓝图没有展开,我们只运用了我们头脑和身体资源中极小的一部分。这...
  • u010678947
  • u010678947
  • 2016年03月28日 22:53
  • 384

如何克服开源中的隐蔽障碍

来源:Thinkstock 你的团队可能无意中会对免费的软件有偏见。下面介绍对于采购协议和IT部门如何识别克服这些偏见。 Paul Rubens| CIO | 2014年8月12日上午6:07 ...
  • LIFE_lv
  • LIFE_lv
  • 2014年08月18日 11:43
  • 616

程序员需要克服的10大障碍

软件开发中最艰巨的任务其实并不是代码。写代码是一种锻炼,一种逻辑思维上的锻炼,相比于开发人员在日常工作中要执行的其他任务,它可显得可爱多了。如果你觉得自己才刚刚跨入这个行业,只能算个业余程序员,那么为...
  • save_hhhhhP
  • save_hhhhhP
  • 2014年10月20日 10:35
  • 479

开发mr程序必须的jar包(5个)

mr程序必要的jar包
  • beagreatprogrammer
  • beagreatprogrammer
  • 2014年12月09日 16:42
  • 331
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:新手入门程序必须克服的5个障碍
举报原因:
原因补充:

(最多只允许输入30个字)