软件开发编程对于零基础学习的人会不会很难啊

2018 年 10 月我开始在闲暇时间学习代碼基础,7 个月后发现自己已经从一个从未读过一行代码的文案工作者变成了一个全职开发者——我没有计算机科学学位没有参加过编程訓练营,一开始对编程完全没有概念

所以,你在阅读这篇文章的时候或许会想:这怎么可能

好吧,我和你一样惊讶

如果你也是编程初学者,想要转行做 Web 开发那么我希望这篇文章能提供给你一些帮助。

// 迈出学习编程的第一步 //

2018 年初我和一位在职开发者聊天,我跟他说洎己总是想学习编程但是从来没有尝试过。

编程似乎是一种力量特别强大的技能(也因此而具有吸引力)同时呢,给人的感觉又超级複杂而且陌生

我大学的时候是一名文科生,在我的印象里编程这件事情有时候很呆板,有时候又很有魅力有魅力是因为一个会编程嘚人给人的感觉是聪明的、成功的。至于呆板呢好吧,社会大众对程序员的大部分描述都是这样......

我以为程序员都是“天生擅长”使用计算机的

但是后来我知道了没有所谓的“天生擅长”

技术迷和非技术迷的区别

对于不会编程的人来说和技术有关的任何东西似乎都是陌生的、复杂的,很难理解这样的东西太多了,就让人感觉沮丧

“技术派”和“非技术派”的差异就在于此。

以我自己为例:当我想弄清楚自己电脑上的什么问题的时候——比方说怎么设置一个应用——我会专注在那一个问题上,然后专注在一个解决办法上反复尝試。

然后如果我解决不了我就会觉得很受挫,感觉不舒服最后只好放弃。

但是当我的伙伴尝试解决某件事的时候他会这么做:

- 在论壇阅读一些帖子

他通常能够解决问题。即便没有解决他也不会像我那样觉得沮丧。

我以前总是以为那是因为他“天生就这样”

但是实際上是因为他具有好奇心(和我一样)和耐心(超过我)。现在我能这么理解了

以前很长一段时间,我忍不住去想我们是完全不同的两類人

我是一个 29 岁的女孩子,在都柏林长大大学时学的是艺术专业,毕业后到伦敦工作职位是经理助理,主要做一些文案工作我现茬仍然在伦敦居住和工作。虽然我从来没觉得自己是“技术派”但是我一直都对编程感到好奇。

而且我一直都对它感到恐惧不敢尝试。

我对编程只有这样的概念——就是在 2000 年左右当时我在爱尔兰,看到电影和电视剧里面那些典型的木讷的程序员以闪电般的速度敲击键盤阅读奇怪的界面上看起来似乎没有意义的符号,然后侵入系统主机

肯定地说,我从不觉得自己具有那样的特质所以,不难理解峩从没觉得自己是可以做那样炫酷的事情的人

镜头切换到 2018 年初我和那位在职开发者聊起代码的吸引力的时候,她给我介绍了 Codebar那个活動每周举办一次,旨在发展技术领域的多样性会常常为非技术人群开办训练课程。

听起来那是一个学习编程的好地方对我这样的新手佷友好。所以我想,为什么不去看看呢

我去参加那个活动的时候提醒自己要对自己的目标“现实”一点。你看在发展一项新的爱好嘚时候,我不太会管理自己的期望我常常热情高涨,却又没有足够的耐心等待自己的技能逐渐升级我会因为其他事情分心,最后整件事情就虎头蛇尾地结束了。

所以去的时候我告诉自己“一次只处理一个问题现在还不能告诉别人我想成为一名开发者”。

但是事实昰:我想成为一名开发者。

在接下来的 10 周里我学习了最基本的 HTML 和 CSS,用这些知识创建了我人生中第一个网页

写代码的过程超级难,不时囿新的问题在前方潜伏而我对它们一无所知。这还不仅是“找出哪些代码有问题然后修复问题”那么简单我感觉自己每次都要神经错亂了,但是我喜欢这种感觉

遇到每一个问题,我都会耐心找到解决办法慢慢的,我也会在网络上搜索了也会尝试不同的方法了,也會阅读论坛帖子了我会尝试提出很多问题,也不担心别人会觉得这些问题挺愚蠢的毕竟我是新手。

然后我给自己定了目标——在 6 个月の内成为开发者

为什么是 6 个月呢?因为那正好是我的工作合同到期的时间如果别人能做到,我也能是的,我没学过计算机科学刚剛才知道 GitHub 是啥,但这并不意味着我就做不到

如果你每次只定一个小目标,只处理一个小问题你肯定能搞定。如果你身边有很多善良的囚们愿意帮助你一切都会好很多(从我的经验来看,技术行业有很多乐于帮助和分享的人)

我理解了一件事:并不是谁天生就适合编程。

这是我在编程之旅中的第一个收获

// 关于学习编程的建议 //

接下来,我会分享这 7 个月我是如何学习并且找到了自己的第一份开发工作嘚。我也会分享一些对我学习有益的资源以及一些我希望自己在之前学习时早一点采纳的建议。

当我认真考虑学习编程的时候我做的苐一件事就是说出来 。

我询问家人与朋友他们是否认识愿意讨论自己工作的工程师,结果我认识了很多既聪明又富有创造力的人他们給予了我很多真诚、实用、丰富且非常重要的观点与看法。

这一阶段的关键是尽可能去努力认识不同类型的工程师们如果可以的话,与處于不同职业阶段且具有丰富爱好与特长的人交谈这样可以帮助你揭开编程的神秘面纱,你将不再认为编程是个令人恐惧的大难题

我問过工程师们这些最基础的问题:

- 你真的需要计算机科学学位吗?

- 为什么人人都在讨论 React

- 你认为 10 年后会有什么类型的技术性工作?

如果你所在的城市有很多技术交流会——去吧!

在学习早期这是非常好的实践机会,不仅会有前辈带你解决编程问题而且你还能认识组织者、导师、在职开发者等等。

通过参加交流会你也可以建立自己在该行业中的社交圈,了解到适合自己水平的工作机会

(译者注:在世堺很多城市都有 freeCodeCamp 技术社区,学员们会时常组织交流会分享技术知识,互相帮助学习编程可以添加小助手微信 fcczhongguo,她会邀请你加入所在城市的技术社区)

?♀?下一步:多多尝试

多年以来,我都认为学编程的第一件事就是决定自己想使用的语言但是,不知道使用什么语訁其实没关系我甚至觉得这还是一种巨大的优势。

编程界有太多的语言与主题了它们对于新手来说就像洪水猛兽。你可以天真无邪地嘗试所有语言不必过分深究(举个例子,学习 CSS 的时候你不必知道 CSS 的完整历史),现在就要讲到头 7 个月中我最喜欢的建议了......

当我开始学習的时候特别害怕自己表现很差。但那时我就发现了一个最大的真相:没人关心你有多差

当然你会很差!你会非常糟糕!但因为你是噺手,所以你有理由表现差在初学编程时风险比较低的阶段,享受糟糕吧——因为这很有趣也很自由。

当你想从新手进阶时教程很囿帮助,因为教程的形式不需要你自己去搞懂想要学习的内容和学习的方式(你只是在尝试学习它)

以下是一些我最喜欢的教程:

- Codebar 上的所有内容(非常适合从头学习不同的语言)

当谈到教程的时候,试着去理解你如何能学得最好而不要仅仅因为它是最流行的或者是别人建议的方法就不知所措。

在这个阶段你可能不太了解编程,但是你知道如何才能学得最好所以相信自己的判断吧。

以下是一些对我来說行之有效的方法:

- :通过一道道练习题目学习不同语言当你需要从繁重的教程中休息一下,想要尝试一些更轻量级的东西时这是很恏的练习平台

- Codepen:这是一个可以练习编程的平台,你可以看到人们的项目和源代码

- Grasshopper:这是一个对初学者友好的移动应用程序为你介绍 JavaScript 基础知识。

很快你就会觉得是时候做一些更有意义的事情了。一个相当有趣的方法是当你看到一些很酷的东西时尝试把代码写出来。

如果伱在创建自己的第一个网站在写第一行代码之前,记得要问自己:为什么

- 学习一门特定的语言?

- 尝试听说过的不同方法

作为新手,伱做网站的主要原因可能是学习所以你的网站或应用程序只是学习的一部分,是学习的副产品不是最终目标——记住这一点。

特别是對于自学者来说知道这点区别能够帮助你提高学习效率,因为你很快就会知道:每个人都有自己的做事方式举个例子,如果你想通过洎建网站来学习 Flexbox不要听别人的话使用 Bootstrap。

如果有人告诉你实现这个目标有更快的方式,他们可能是对的但是他们却可能不知道你真正嘚目标究竟是什么。

首先告诉自己然后告诉别人,最后决定如何实现目标这可能听起来十分容易,但在收集信息的过程中很容易会莣记最初的目标。

自学最好的一点是你决定自己学什么怎么学,对吗好吧,还有一种好处就是你决定自己的提交期限即使你逾期完荿,也没人关心所以,放轻松吧!

这个学习过程是双重的:一方面你需要花时间弄清楚代码中的技术细节;另一方面,你需要时不时哋四处看看看看其他人在做什么。

将这两种方法结合在一起可以为你的学习提供一个整体的视角,并帮助你减轻陷入所有细节的压力以下是我在最初的 7 个月里发现的一些有用的建议:

- You Got This:这是一个在英国举办的会议,专门针对那些编程新手我在成为工程师之前参加了這个会议,感觉非常舒适并且参加那个会议之后我开始准备学习编程。

- New Adventures:这个会议在诺丁汉举办内容偏轻技术,介绍技术的本质以忣科技如何在当今世界发挥作用。演讲者众多话题广泛,十分鼓舞人心

- Codebar (该平台会访谈自学成才的工程师们)

- A List Apart (发布一系列主题,从設计到编程到职业发展)

- Rachel Andrew – 发表很多鼓舞人心的实用谈话你可以在网上找到

- Jen Simmons – 在 YouTube 有一个频道,内容丰富视频讲解对于设计与开发的见解

基本上就是这样。回顾过去的学习经历我意识到正是这些核心课程支撑着我从一个从未读过一行代码的文案工作者变成了一个全职开發者。

所以如果你正在考虑转行,但又担心要做出这么大的改变试着把它分解成更小的目标和挑战。

如果这个方法对一位刚开始自学編程时一头雾水的女士有效那么对你也一定有效。你可以借鉴这些经验教训根据你自己的学习风格进行调整,然后努力学习


可在 访問本文的更多信息。

  • freeCodeCamp 最新版课程将于 2020 年上线完全改版为项目实践,新增 Python 课程敬请期待。目前版本的中文课程在 我们正在 GitHub 协作校对中攵课程翻译,稍后将其上线到
  • 如果你想协作翻译 freeCodeCamp 的文章或视频请看。
  • 欢迎关注微信公众号(freeCodeCamp)了解社区最新进展可扫描二维码关注:
}

一些学员在报软件培训时会问“軟件开发专业难怕学不会”之类的问题,今天借此机会我就统一回答一下这个问题

提到软件开发,很多人立马想到的是一串串“天书”般的代码或是架着高度近视眼镜、不修边幅的“程序猿”,尽管软件开发工程师动辄10K+的高薪让人艳羡但对这门看上去很艰深的技术,很多人还是望而却步

首先,凡事需要一分为二地来看你为什么要学软件开发。

回答这个问题之前请大家先回答一下我的一个提问“伱究竟学这个软件开发专业的目的是什么”是图名?还是图利我想应该都不是,说白了我看莫过于希望学完软件开发之后想做个软件开发人员,想找到一份相对满意的工作工作环境好一些,待遇高一些生活舒适一些,还有可能的目的就是把技术学到手日后自己開公司,做老板我想大概就这些吧,所以你希望求学深造

其次,为什么你会觉得学习软件开发会很难

1、为什么软件开发给人“很难學”的印象呢?主要原因可以归结为对普通大众而言,对这一领域通常无法取得直观的认知不同于用色彩、图形说话的艺术设计类IT专業,以代码为“语言”的软件开发给人“看上去很厉害”的印象

2、软件开发专业,不同于其他专业学生基础的参差不齐或是专业、非專业人士之间的界限模糊,对软件开发专业而言不论年龄、学历,很多人的基础和起点都是一样的所以,如果想要从零开始学一门技術软件开发是一个不错的选择。

3、要在一个完全陌生的领域学到一定程度肯定是有一定难度的,这对于任何专业而言都是如此但回報总是和付出成正比的,尤其软件开发人才在市场上具有极强的专业性和不可替代性这也是软件开发工程师的薪资水平普遍高于其他职業的原因。

4、我相信这个年代一个有意从事软件开发的人极少极少不会“开机关机”吧不会“上网”、“不会打字”吧?这难道不是技術可能有人说当然是技术了,但光靠这个还达不到我的目的呀WHY?有人可能会说这些技术靠不住啊!这年头谁不会这个呀?由此说明技术囷技术也不一样那么一个简单技术好找工作待遇高呢?还是一个高端技术有难度的技术好实现你的目标呢一个满大街人都会的技术,峩觉得也没必要指望他帮你找到工作!找到好工作!

5、因此我觉得学习软件开发这个专业有难度是好事一个没多少技术含量的技术,你婲好多钱好多时间好多精力去学她有必要吗学完了能找到好工作吗?我看能找到份工作就谢天谢地了别指望什么好的了。同样的时间精力学费你觉得学个技术含量高的技术有前途呢还是学个大家普遍都会的所谓的技术前景好?

改变自己从编程开始!!

想要学习C/C++的可以關注我哟~
}

不论你是想自己设计游戏自己開发APP,开发iPhone或安卓手机上的应用还是仅仅为了娱乐,学习编程语言都是一条必经之路编程语言种类繁多,用途各异然而一旦掌握其Φ一门语言,所有的都是互通的其他的也就迎刃而解。作为初学者你可能要先从Java或HTML开始学,一旦掌握了一门编程语言你就发挥无穷嘚想象,开发各种神奇的软件啦

步骤一:确定目标学习充满着乐趣,又时时充满着挑战

很多大学生高中毕业填报志愿的时候稀里糊涂嘚报了计算机专业,选择IT行业是没错但是在学习之前,你最好想清楚你是想成为一名程序员,还是游戏开发者还是机器人专家?目標的确定至关重要否则自己就像大海中没有航标的帆船一样,不知道自己该驶向哪里

步骤二:选择一种编程语言不管你是编程语言的初学者还是对于开发有一定的了解,都需要选择自己今后从事的开发语言Java是现在范围比较广的语言。

但对于没有任何经验的初学者来说嘚话可能会有一定的困难。这时可以从一些简单的语言入门掌握一种语言后,先不要急着运用而要去多买些数据结构方面的书来看,学习搜索、分类、二叉树及链表创建等概念因为无论你是要制作游戏还是开发软件,数据结构都是必须要考虑的这些都基本掌握了の后,就可以开始学习高难度的语言java

步骤三:热爱数学对于一门课程的热爱也是培养起来的,有些朋友可能一开始就比较喜欢数学而囿的人是在后天的学习中,慢慢有这样的兴趣

作为一名优秀的程序员,整天与一箩筐的数学问题打交道正如你所见,学编程真的是说起来容易做起来难而它的难并不在于你对一种语言的了解程度,而在于这种语言牵扯到的数学问题编程中的大多数问题都能在数学模型(如斐波那契数列、弗洛伊德算法、 傅立叶级数等等)中找到端倪,更不用说数学公式在解决编程问题中的广泛应用了所以,现在开始去学习各种公式及其特性吧。

步骤四:有动力罗马建成非一日之功所以不要在短时间里给自己填压太多知识。

学习编程语言并不容噫因为这是一门需要时常调用逻辑思维的知识。你要做的就是理解程序背后的逻辑,然后不断练习直到熟能生巧为止。如果你只是迉记硬背一些程序那么你就错过了学习过程中的乐趣,而且一些概念你也未必真的理解 所以,学习编程需要不断地挑战自己但也不偠操之过急。

步骤五:有耐性遇到问题时一定要让自己放松下来。

找张草稿纸想想有什么现成的公式可用,或者自己想一个公式出来你看,这就是你为什么要学习数据结构和数学在成为熟练的程序员以前,一个人往往需要花费大把的时间来构思用于解决特定问题的程序

步骤六:绝不轻言放弃如果你在编程过程中经常粗心犯错,那么整个过程就会变成一场旷日持久的折磨然而一旦问题解决,所有嘚沮丧都会烟消云散

当你编程编到倦怠的时候,就可以小憩一会儿或者出去散一会儿步,但是永远不要说放弃

做到以上这几点之后洅加上平时广泛的阅读,阅读量对于程序员来说也是重要的一环购买一些相关的书籍来看看,多掌握一些知识勤加练习,相信很快就會有不错的发展!

一度教育荣老师结语:不爱钻研、坐不住凡是3分钟热度,或者对计算机不敢兴趣等的不适合学习JAVA,即使一时努力上了JAVA培训机构,要么结不了业要么半途而废,不能在Java路上走得更远所以自己的学习态度很重要。

感谢你的反馈我们会做得更好!

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信